Answer a few questions. Get a project your agent understands.
agent-kit sets up a project for agent-driven development with Claude Code: rules enforced by hooks instead of prose, a small context loaded every session, work that resumes where it stopped, living specs traced to tests, and a QA checklist that follows the specs.
~/shop
$ npx @razcue/agent-kit init shop
? Setup New app monorepo
? Technical level Technical
? Development method SDD + TDD
? Git flow for the agent Branches + pull requests
? QA checklist · Supabase test data Yes · Yes
✓ apps/web · apps/app · apps/docs · packages/ui · packages/shared
✓ AGENTS.md · agent-kit.json · .claude/settings.json
✓ .knowledge/ · work/specs/ · work/qa/ · supabase/test-data/
✓ plugin agent-kit@agent-kit enabled
Next: cd shop && npm install && claude
$
Less context, more work
What the agent reads before your first question, measured with
agent-kit context.84%
less context every session · 6.3×
A real production project, rules in AGENTS.md + memory22,974 tokens
A new agent-kit monorepo, everything included3,631 tokens
Both measured with agent-kit context, including the same personal ~/CLAUDE.md. agent-kit's own session context is about 1,300 tokens; doctor fails a project above 8,000.
On your ownWith agent-kit
RulesA line in AGENTS.md the agent may forget or ignore.Hooks and checks — the git guard blocks what your git flow forbids, live-tested every release.
New sessionYou explain again where you were and what was next.It starts with the last checkpoint and each piece of work's next task.
RequirementsScattered across chats and tickets; nobody knows the current truth.Living specs — EARS requirements with Given / When / Then scenarios, ids never reused.
Proof“Looks done.”Every scenario traced to a test or a check; preflight blocks a change that isn't.
ScriptsRewritten in /tmp every time, lost the next day.Searched first, kept with a header and a test, run with a compact result.
QAClicking around from memory.A checklist generated from the living specs, dated runs, seed / purge test data.
SetupHand-written AGENTS.md, settings, hooks and conventions.One command, about ten questions, nothing inferred.
Rules that are enforced, not requested
"Never commit on main" in a Markdown file is a suggestion. agent-kit's git guard reads your git flow and blocks the command before it runs — even through
bash -c, eval and aliases — and tells the agent what to do instead.agent · shop (main)
$ git commit -m "feat: add invoices"
✗ [agent-kit git-guard] Git flow is branches + pull requests:
don't `git commit` on main. Create a feature branch first
(`git switch -c feat/<name>`).
$ git switch -c feat/invoices
✓ Switched to a new branch 'feat/invoices'
$
Living specs that merge, not rot
A change carries a delta. When it is verified, one command merges it into the living spec: the new requirement lands, the removed one is retired for good, and its scenario is already proven by a test and listed for QA.
Change 004 — delta specchanges/004-invoices/specs/invoices.md
## ADDED Requirements
+### invoices.R3 — Rounded totals
+When an invoice is saved, the BFF shall round its total to 3 decimals.
+#### invoices.R3.S1 — Rounding edge @boundary
+- Given a line of 0.0005
+- When the invoice is saved
+- Then the total is 0.001
## REMOVED Requirements
−### invoices.R1 — Manual totals
specs.mjs merge 004
Living specspecs/invoices/spec.md
retired: [invoices.R1]
### invoices.R1 — Manual totalsretired
### invoices.R2 — Line amounts
### invoices.R3 — Rounded totals
When an invoice is saved, the BFF shall round its total to 3 decimals.
#### invoices.R3.S1 — Rounding edge @boundary
Testit("invoices.R3.S1 rounds 0.0005 up")
QA checklist[ ] invoices.R3.S1
How it works
What you get
Start with one command
Node ≥ 20.11 and Claude Code. No runtime dependencies are added to your project.
Terminal
npx @razcue/agent-kit init my-project