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.

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

    Answer fixed questions
    Setup kind, technical level, language, method (SDD or SDD + TDD), commits, git flow, QA. Nothing is inferred.
    Get the agent layer
    A short AGENTS.md block, agent-kit.json, enforced settings, knowledge, work files, scripts — and the plugin with its skills and hooks.
    Work in lanes
    Answer, fast-track or spec. Complex work becomes a change with EARS requirements and Given/When/Then scenarios that merge into the living specs.

What you get

    Living specs, one notation
    EARS requirements, Given/When/Then scenarios as acceptance tests, ZOMBIES to pick the cases — merged by a script, ids never reused.
    QA that follows the specs
    A checklist generated from the living specs, dated QA runs, and Supabase test data that refuses to run on production.
    Skills loaded only when needed
    Eleven plugin skills plus one stack skill per template; descriptions are tested to trigger on real requests and stay quiet otherwise.
    Guardrails that are enforced
    Git guard, preflight before a merge, commit checks, a stray-script reminder — silent outside agent-kit projects.
    Knowledge that stays cheap
    One concept per file, only one-line summaries load; project, machine and global scopes.
    Docs for agents too
    llms.txt, llms-full.txt and an MCP server, so your agent can read these docs while it works.

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