Spec Enforcement Toolkit for AI Coding Agents
Project description
Wolverine Kit
Constraint-first governance for AI-assisted development.
Named after the animal: tenacious, ferocious, holds ground against much larger opponents.
The Problem
AI coding agents make architectural decisions on the fly. Without guardrails, you get implementations that contradict each other, spec drift that nobody notices, and code that passes every test but violates the design. The usual fix is ceremony: twelve-role workflows, checklists on every PR, role-play prompts. It doesn't scale and people start ignoring it.
What This Does Instead
You write invariants before code. The framework enforces them. It stops at first failure.
uvx wolverine-kit init my-project --agent claude
That gives you a spec/ directory with constraint files, agents that enforce them, and slash commands that wire it together.
Project Layout
my-project/
├── spec/ # Your constraints (never overwritten on update)
│ ├── INVARIANTS.md # Hard rules the gatekeeper enforces
│ ├── DECISIONS.md # Binding ADRs
│ ├── ARCHITECTURE.md # Module boundaries
│ └── ...
├── .claude/agents/ # Governance agents (managed by wolverine-kit)
│ ├── wk-gatekeeper.md # Veto gate: PASS / BLOCK / NEEDS-DECISION
│ ├── wk-spec-synthesizer.md # Produces implementation briefs
│ ├── wk-drift-detector.md # Finds spec-code divergence
│ └── ...
└── .claude/commands/ # Slash commands
├── wk-check.md # Full hygiene sweep
├── wk-impl.md # Gate chain + handoff
└── ...
The Gate Chain
Every /wk-impl runs these steps in order. A failure at any step stops the chain.
- Gatekeeper checks the proposal against invariants and ADRs. BLOCK = stop.
- Spec-synthesizer produces a brief a senior dev could implement from. DRAFT = stop.
- Test-author generates Given/When/Then test specs.
- Handoff to Claude Code for implementation. Only runs if everything above passed.
PASS -> READY -> tests -> implement
BLOCK -> stop. Fix the spec or the proposal.
NEEDS-DECISION -> record it in DECISIONS.md, then re-run.
Install
# One-shot (no install needed)
uvx wolverine-kit init my-project
# Or install persistently
uv tool install wolverine-kit
wk init my-project --agent claude
Only prerequisite: uv.
Current support: Claude Code + Python projects. Other agents (Cursor, Kiro, Copilot) and language stacks are coming soon.
Commands
| Command | What it does |
|---|---|
/wk-check |
Gatekeeper gate + glossary consistency sweep |
/wk-impl <module> |
Full gate chain, then implementation handoff |
/wk-impl-brief <module> |
Gatekeeper + implementation brief (no handoff) |
/wk-test <module> |
Generate test specifications |
/wk-drift |
Scan for spec-code divergence |
/wk-decision <title> |
Draft an ADR interactively, propagate it |
/wk-deps |
Audit dependencies for upgrades |
/wk-status |
Roadmap burn-down |
/wk-review-spec |
Architect review of spec quality |
/wk-propagate <doc> |
Fan a spec change across all downstream files |
/wk-help |
List all commands |
How It Differs
Unlike ceremony-heavy frameworks (BMAD, etc.) that run multiple roles on every feature, Wolverine Kit triggers agents selectively and enforces hard invariants with machine verdicts. When the spec is ambiguous, it stops and escalates instead of guessing.
Compared to GitHub's Spec Kit (which focuses on the spec-to-implementation generation workflow), Wolverine Kit focuses on enforcement: blocking violations, catching drift, and escalating ambiguity. Spec Kit helps you write good specs and hand them off. Wolverine Kit makes sure nobody violates them after.
Principles
- Invariants first. Write rules before code.
- Stewardship over ceremony. Few agents, triggered selectively.
- Stop at first failure. Partial gate chains produce false confidence.
- Escalate, don't guess. Silence in the spec means stop, not invent.
- Generic over prescriptive. Opinions about process, not tech stack.
Upgrading
wk update
Regenerates managed agent/command files from the latest templates. Your spec/ files are never touched.
Packs
Packs add tech-stack-specific agents:
wk init my-project --agent claude --pack python-library
Available now: python-library (adds a protocol validator). More coming.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wolverine_kit-0.0.3.tar.gz.
File metadata
- Download URL: wolverine_kit-0.0.3.tar.gz
- Upload date:
- Size: 225.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95f2d7f706dc2767b47ebbd4554776dd1c1c17d2226646902058257578abc492
|
|
| MD5 |
7fe7c5e413a7bec7d97f92ab10867934
|
|
| BLAKE2b-256 |
e4460244443ec5ae39e37f7e1a92faac9bee6aa58d87004c951ad0baa67a42dc
|
File details
Details for the file wolverine_kit-0.0.3-py3-none-any.whl.
File metadata
- Download URL: wolverine_kit-0.0.3-py3-none-any.whl
- Upload date:
- Size: 41.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4244520dcd845751bd26b8cac67de16b2ba054d47b91214004639df1923b7678
|
|
| MD5 |
8733bd590559a93a5cf3331f74987f96
|
|
| BLAKE2b-256 |
cee61667e03e10e947bd42b2141e5dd7597afd10ab1dc685f374d6973bdbe1fc
|