[{"data":1,"prerenderedAt":446},["ShallowReactive",2],{"navigation_docs_en":3,"landing_en":188},[4,35,85,145],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting started",false,"\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F1.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Project layout","\u002Fen\u002Fgetting-started\u002Fproject-layout","en\u002F1.getting-started\u002F3.project-layout","i-lucide-folder-tree",{"title":26,"path":27,"stem":28,"icon":29},"Upgrade and uninstall","\u002Fen\u002Fgetting-started\u002Fupgrade-uninstall","en\u002F1.getting-started\u002F4.upgrade-uninstall","i-lucide-refresh-cw",{"title":31,"path":32,"stem":33,"icon":34},"Channels","\u002Fen\u002Fgetting-started\u002Fchannels","en\u002F1.getting-started\u002F5.channels","i-lucide-radio-tower",{"title":36,"icon":6,"path":37,"stem":38,"children":39,"page":6},"Concepts","\u002Fen\u002Fconcepts","en\u002F2.concepts",[40,45,50,55,60,65,70,75,80],{"title":41,"path":42,"stem":43,"icon":44},"Lanes and methods","\u002Fen\u002Fconcepts\u002Flanes-and-methods","en\u002F2.concepts\u002F1.lanes-and-methods","i-lucide-route",{"title":46,"path":47,"stem":48,"icon":49},"Living specs and changes","\u002Fen\u002Fconcepts\u002Fliving-specs","en\u002F2.concepts\u002F2.living-specs","i-lucide-book-open-check",{"title":51,"path":52,"stem":53,"icon":54},"Notation","\u002Fen\u002Fconcepts\u002Fnotation","en\u002F2.concepts\u002F3.notation","i-lucide-pen-line",{"title":56,"path":57,"stem":58,"icon":59},"QA and test data","\u002Fen\u002Fconcepts\u002Fqa-and-test-data","en\u002F2.concepts\u002F4.qa-and-test-data","i-lucide-clipboard-check",{"title":61,"path":62,"stem":63,"icon":64},"Knowledge","\u002Fen\u002Fconcepts\u002Fknowledge","en\u002F2.concepts\u002F5.knowledge","i-lucide-brain",{"title":66,"path":67,"stem":68,"icon":69},"Scripts","\u002Fen\u002Fconcepts\u002Fscripts","en\u002F2.concepts\u002F6.scripts","i-lucide-file-code",{"title":71,"path":72,"stem":73,"icon":74},"Guardrails","\u002Fen\u002Fconcepts\u002Fguardrails","en\u002F2.concepts\u002F7.guardrails","i-lucide-shield",{"title":76,"path":77,"stem":78,"icon":79},"Session context","\u002Fen\u002Fconcepts\u002Fsession-context","en\u002F2.concepts\u002F8.session-context","i-lucide-gauge",{"title":81,"path":82,"stem":83,"icon":84},"How the kit improves","\u002Fen\u002Fconcepts\u002Fself-improvement","en\u002F2.concepts\u002F9.self-improvement","i-lucide-sprout",{"title":86,"icon":6,"path":87,"stem":88,"children":89,"page":6},"Guides","\u002Fen\u002Fguides","en\u002F3.guides",[90,95,100,105,110,115,120,125,130,135,140],{"title":91,"path":92,"stem":93,"icon":94},"New app monorepo","\u002Fen\u002Fguides\u002Fnew-app-monorepo","en\u002F3.guides\u002F01.new-app-monorepo","i-lucide-boxes",{"title":96,"path":97,"stem":98,"icon":99},"Your website with Claude","\u002Fen\u002Fguides\u002Fcontent-site","en\u002F3.guides\u002F02.content-site","i-lucide-globe",{"title":101,"path":102,"stem":103,"icon":104},"Adopt an existing project","\u002Fen\u002Fguides\u002Fadopt-existing-project","en\u002F3.guides\u002F03.adopt-existing-project","i-lucide-git-merge",{"title":106,"path":107,"stem":108,"icon":109},"A change, end to end","\u002Fen\u002Fguides\u002Fspec-lane-change","en\u002F3.guides\u002F04.spec-lane-change","i-lucide-git-pull-request",{"title":111,"path":112,"stem":113,"icon":114},"A fast-track change","\u002Fen\u002Fguides\u002Ffast-track-change","en\u002F3.guides\u002F05.fast-track-change","i-lucide-zap",{"title":116,"path":117,"stem":118,"icon":119},"The TDD loop","\u002Fen\u002Fguides\u002Ftdd-loop","en\u002F3.guides\u002F06.tdd-loop","i-lucide-repeat",{"title":121,"path":122,"stem":123,"icon":124},"A QA pass","\u002Fen\u002Fguides\u002Fqa-pass","en\u002F3.guides\u002F07.qa-pass","i-lucide-clipboard-list",{"title":126,"path":127,"stem":128,"icon":129},"Test data","\u002Fen\u002Fguides\u002Ftest-data","en\u002F3.guides\u002F08.test-data","i-lucide-database",{"title":131,"path":132,"stem":133,"icon":134},"Releasing and upgrading","\u002Fen\u002Fguides\u002Freleasing-and-upgrading","en\u002F3.guides\u002F09.releasing-and-upgrading","i-lucide-rocket",{"title":136,"path":137,"stem":138,"icon":139},"Proposing improvements","\u002Fen\u002Fguides\u002Fproposing-improvements","en\u002F3.guides\u002F10.proposing-improvements","i-lucide-lightbulb",{"title":141,"path":142,"stem":143,"icon":144},"Docs for agents","\u002Fen\u002Fguides\u002Fdocs-for-agents","en\u002F3.guides\u002F11.docs-for-agents","i-lucide-bot",{"title":146,"icon":6,"path":147,"stem":148,"children":149,"page":6},"Reference","\u002Fen\u002Freference","en\u002F4.reference",[150,155,160,165,170,173,178,183],{"title":151,"path":152,"stem":153,"icon":154},"CLI","\u002Fen\u002Freference\u002Fcli","en\u002F4.reference\u002F1.cli","i-lucide-terminal",{"title":156,"path":157,"stem":158,"icon":159},"Configuration","\u002Fen\u002Freference\u002Fconfiguration","en\u002F4.reference\u002F2.configuration","i-lucide-settings",{"title":161,"path":162,"stem":163,"icon":164},"Skills","\u002Fen\u002Freference\u002Fskills","en\u002F4.reference\u002F3.skills","i-lucide-sparkles",{"title":166,"path":167,"stem":168,"icon":169},"Hooks","\u002Fen\u002Freference\u002Fhooks","en\u002F4.reference\u002F4.hooks","i-lucide-webhook",{"title":66,"path":171,"stem":172,"icon":69},"\u002Fen\u002Freference\u002Fscripts","en\u002F4.reference\u002F5.scripts",{"title":174,"path":175,"stem":176,"icon":177},"Changelog","\u002Fen\u002Freference\u002Fchangelog","en\u002F4.reference\u002F6.changelog","i-lucide-history",{"title":179,"path":180,"stem":181,"icon":182},"Templates","\u002Fen\u002Freference\u002Ftemplates","en\u002F4.reference\u002F7.templates","i-lucide-layout-template",{"title":184,"path":185,"stem":186,"icon":187},"Privacy","\u002Fen\u002Freference\u002Fprivacy","en\u002F4.reference\u002F8.privacy","i-lucide-lock",{"id":189,"title":190,"body":191,"description":190,"extension":437,"meta":438,"navigation":439,"path":440,"seo":441,"stem":444,"__hash__":445},"landing_en\u002Fen\u002Findex.md","",{"type":192,"value":193,"toc":434},"minimark",[194,239,267,291,307,341,396,430],[195,196,199,205,215,218,233],"u-page-hero",{":ui":197,"orientation":198},"{\"title\":\"text-4xl sm:text-5xl lg:text-[3.4rem] lg:leading-[1.1]\"}","horizontal",[200,201,202],"template",{"v-slot:headline":190},[203,204],"repo-stats",{},[200,206,207,208,214],{"v-slot:title":190},"Answer a few questions. Get a project your agent ",[209,210,213],"span",{"className":211},[212],"text-primary","understands",".",[200,216,217],{"v-slot:description":190},"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.",[200,219,220,226],{"v-slot:links":190},[221,222,225],"u-button",{"to":17,"size":223,"trailing-icon":224},"xl","i-lucide-arrow-right","Get started",[221,227,232],{"to":228,"color":229,"size":223,"variant":230,"icon":231},"https:\u002F\u002Fgithub.com\u002Frazcue\u002Fagent-kit","neutral","outline","i-simple-icons-github","View on GitHub",[234,235],"terminal-demo",{":lines":236,"replay":237,"title":238},"[{\"t\":\"cmd\",\"text\":\"npx @razcue\u002Fagent-kit init shop\"},{\"t\":\"q\",\"text\":\"Setup\",\"a\":\"New app monorepo\"},{\"t\":\"q\",\"text\":\"Technical level\",\"a\":\"Technical\"},{\"t\":\"q\",\"text\":\"Development method\",\"a\":\"SDD + TDD\"},{\"t\":\"q\",\"text\":\"Git flow for the agent\",\"a\":\"Branches + pull requests\"},{\"t\":\"q\",\"text\":\"QA checklist · Supabase test data\",\"a\":\"Yes · Yes\"},{\"t\":\"gap\"},{\"t\":\"ok\",\"text\":\"apps\u002Fweb · apps\u002Fapp · apps\u002Fdocs · packages\u002Fui · packages\u002Fshared\"},{\"t\":\"ok\",\"text\":\"AGENTS.md · agent-kit.json · .claude\u002Fsettings.json\"},{\"t\":\"ok\",\"text\":\".knowledge\u002F · work\u002Fspecs\u002F · work\u002Fqa\u002F · supabase\u002Ftest-data\u002F\"},{\"t\":\"ok\",\"text\":\"plugin agent-kit@agent-kit enabled\"},{\"t\":\"gap\"},{\"t\":\"out\",\"text\":\"Next: cd shop && npm install && claude\"}]","Replay","~\u002Fshop",[240,241,242,245,252,261],"u-page-section",{},[200,243,244],{"v-slot:title":190},"Less context, more work",[200,246,247,248,214],{"v-slot:description":190},"What the agent reads before your first question, measured with ",[249,250,251],"code",{},"agent-kit context",[253,254],"context-meter",{":with":255,":without":256,"saved-label":257,"source":258,"with-label":259,"without-label":260},"3631","22974","less context every session","Both measured with agent-kit context, including the same personal ~\u002FCLAUDE.md. agent-kit's own session context is about 1,300 tokens; doctor fails a project above 8,000.","A new agent-kit monorepo, everything included","A real production project, rules in AGENTS.md + memory",[262,263],"compare-rows",{":rows":264,"with-title":265,"without-title":266},"[{\"topic\":\"Rules\",\"without\":\"A line in AGENTS.md the agent may forget or ignore.\",\"with\":\"Hooks and checks — the git guard blocks what your git flow forbids, live-tested every release.\"},{\"topic\":\"New session\",\"without\":\"You explain again where you were and what was next.\",\"with\":\"It starts with the last checkpoint and each piece of work's next task.\"},{\"topic\":\"Requirements\",\"without\":\"Scattered across chats and tickets; nobody knows the current truth.\",\"with\":\"Living specs — EARS requirements with Given \u002F When \u002F Then scenarios, ids never reused.\"},{\"topic\":\"Proof\",\"without\":\"“Looks done.”\",\"with\":\"Every scenario traced to a test or a check; preflight blocks a change that isn't.\"},{\"topic\":\"Scripts\",\"without\":\"Rewritten in \u002Ftmp every time, lost the next day.\",\"with\":\"Searched first, kept with a header and a test, run with a compact result.\"},{\"topic\":\"QA\",\"without\":\"Clicking around from memory.\",\"with\":\"A checklist generated from the living specs, dated runs, seed \u002F purge test data.\"},{\"topic\":\"Setup\",\"without\":\"Hand-written AGENTS.md, settings, hooks and conventions.\",\"with\":\"One command, about ten questions, nothing inferred.\"}]","With agent-kit","On your own",[240,268,269,272,283,287],{"orientation":198},[200,270,271],{"v-slot:title":190},"Rules that are enforced, not requested",[200,273,274,275,278,279,282],{"v-slot:description":190},"\"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 ",[249,276,277],{},"bash -c",", ",[249,280,281],{},"eval"," and aliases — and tells the agent what to do instead.",[200,284,285],{"v-slot:links":190},[221,286,71],{"to":72,"color":229,"trailing-icon":224,"variant":230},[234,288],{":lines":289,"replay":237,"title":290},"[{\"t\":\"cmd\",\"text\":\"git commit -m \\\"feat: add invoices\\\"\"},{\"t\":\"err\",\"text\":\"[agent-kit git-guard] Git flow is branches + pull requests:\"},{\"t\":\"out\",\"text\":\"  don't `git commit` on main. Create a feature branch first\"},{\"t\":\"out\",\"text\":\"  (`git switch -c feat\u002F\u003Cname>`).\"},{\"t\":\"gap\"},{\"t\":\"cmd\",\"text\":\"git switch -c feat\u002Finvoices\"},{\"t\":\"ok\",\"text\":\"Switched to a new branch 'feat\u002Finvoices'\"}]","agent · shop (main)",[240,292,293,296,299],{},[200,294,295],{"v-slot:title":190},"Living specs that merge, not rot",[200,297,298],{"v-slot:description":190},"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.",[300,301],"spec-merge",{"delta-label":302,"qa-label":303,"retired-label":304,"spec-label":305,"test-label":306},"Change 004 — delta spec","QA checklist","retired","Living spec","Test",[240,308,309,312],{},[200,310,311],{"v-slot:title":190},"How it works",[200,313,314,324,333],{"v-slot:features":190},[315,316,318,321],"u-page-feature",{"icon":317,"to":17},"i-lucide-list-checks",[200,319,320],{"v-slot:title":190},"Answer fixed questions",[200,322,323],{"v-slot:description":190},"Setup kind, technical level, language, method (SDD or SDD + TDD), commits, git flow, QA. Nothing is inferred.",[315,325,327,330],{"icon":326,"to":22},"i-lucide-layers",[200,328,329],{"v-slot:title":190},"Get the agent layer",[200,331,332],{"v-slot:description":190},"A short AGENTS.md block, agent-kit.json, enforced settings, knowledge, work files, scripts — and the plugin with its skills and hooks.",[315,334,335,338],{"icon":44,"to":42},[200,336,337],{"v-slot:title":190},"Work in lanes",[200,339,340],{"v-slot:description":190},"Answer, fast-track or spec. Complex work becomes a change with EARS requirements and Given\u002FWhen\u002FThen scenarios that merge into the living specs.",[240,342,343,346],{},[200,344,345],{"v-slot:title":190},"What you get",[200,347,348,356,364,372,380,388],{"v-slot:features":190},[315,349,350,353],{"icon":49,"to":47},[200,351,352],{"v-slot:title":190},"Living specs, one notation",[200,354,355],{"v-slot:description":190},"EARS requirements, Given\u002FWhen\u002FThen scenarios as acceptance tests, ZOMBIES to pick the cases — merged by a script, ids never reused.",[315,357,358,361],{"icon":59,"to":57},[200,359,360],{"v-slot:title":190},"QA that follows the specs",[200,362,363],{"v-slot:description":190},"A checklist generated from the living specs, dated QA runs, and Supabase test data that refuses to run on production.",[315,365,366,369],{"icon":164,"to":162},[200,367,368],{"v-slot:title":190},"Skills loaded only when needed",[200,370,371],{"v-slot:description":190},"Eleven plugin skills plus one stack skill per template; descriptions are tested to trigger on real requests and stay quiet otherwise.",[315,373,374,377],{"icon":74,"to":72},[200,375,376],{"v-slot:title":190},"Guardrails that are enforced",[200,378,379],{"v-slot:description":190},"Git guard, preflight before a merge, commit checks, a stray-script reminder — silent outside agent-kit projects.",[315,381,382,385],{"icon":64,"to":62},[200,383,384],{"v-slot:title":190},"Knowledge that stays cheap",[200,386,387],{"v-slot:description":190},"One concept per file, only one-line summaries load; project, machine and global scopes.",[315,389,390,393],{"icon":144,"to":142},[200,391,392],{"v-slot:title":190},"Docs for agents too",[200,394,395],{"v-slot:description":190},"llms.txt, llms-full.txt and an MCP server, so your agent can read these docs while it works.",[397,398,403],"u-page-c-t-a",{":links":399,"description":400,"title":401,"variant":402},"[{\"label\":\"Read the installation guide\",\"to\":\"\u002Fen\u002Fgetting-started\u002Finstallation\",\"trailingIcon\":\"i-lucide-arrow-right\"},{\"label\":\"Adopt an existing project\",\"to\":\"\u002Fen\u002Fguides\u002Fadopt-existing-project\",\"color\":\"neutral\",\"variant\":\"outline\"}]","Node ≥ 20.11 and Claude Code. No runtime dependencies are added to your project.","Start with one command","subtle",[404,405,410],"pre",{"className":406,"code":407,"filename":408,"language":409,"meta":190,"style":190},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx @razcue\u002Fagent-kit init my-project\n","Terminal","bash",[249,411,412],{"__ignoreMap":190},[209,413,416,420,424,427],{"class":414,"line":415},"line",1,[209,417,419],{"class":418},"sBMFI","npx",[209,421,423],{"class":422},"sfazB"," @razcue\u002Fagent-kit",[209,425,426],{"class":422}," init",[209,428,429],{"class":422}," my-project\n",[431,432,433],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":190,"searchDepth":435,"depth":435,"links":436},2,[],"md",{},true,"\u002Fen",{"title":442,"description":443},"agent-kit — a minimal harness for Claude Code","Answer a few questions, get a project your agent understands. Rules enforced by hooks, a small session context, work that resumes, living specs traced to tests, QA that follows the specs.","en\u002Findex","tssDbpA_HXL2tIasoqXdn-gWoAUOV6mFZGDlnF8X2wE",1793099610819]