[{"data":1,"prerenderedAt":1548},["ShallowReactive",2],{"navigation_docs_en":3,"-en-reference-changelog":188,"-en-reference-changelog-surround":1543},[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":174,"body":190,"description":1536,"extension":1537,"links":1538,"meta":1539,"navigation":1540,"path":175,"seo":1541,"stem":176,"__hash__":1542},"docs_en\u002Fen\u002F4.reference\u002F6.changelog.md",{"type":191,"value":192,"toc":1515},"minimark",[193,198,255,259,281,285,412,416,592,596,794,798,883,887,922,926,943,947,997,1001,1045,1049,1143,1147,1219,1223,1312,1316,1362,1366,1475,1479,1502,1506],[194,195,197],"h2",{"id":196},"_0143-2026-10-11","0.14.3 — 2026-10-11",[199,200,201,237],"ul",{},[202,203,204,208,209,213,214,217,218,221,222,225,226,229,230,213,233,236],"li",{},[205,206,207],"strong",{},"Git guard without download-like words",": the list of every git subcommand the guard recognises (with ",[210,211,212],"code",{},"pull"," and ",[210,215,216],{},"clone",") also moved to ",[210,219,220],{},"git-rules.mjs",", and the guard's messages say \"branches + PRs\"; the directory validator still read ",[210,223,224],{},"git-guard.mjs"," as a download-and-execute pattern after ",[210,227,228],{},"fetch"," moved out. Behaviour unchanged: ",[210,231,232],{},"git pull",[210,234,235],{},"git clone"," are still blocked in read-only projects.",[202,238,239,242,243,246,247,250,251,254],{},[205,240,241],{},"No \"Ask AI\" assistant on the docs",": Docus switches its assistant on whenever AI Gateway credentials exist, and Vercel always provides them (",[210,244,245],{},"VERCEL_OIDC_TOKEN","), so the Vercel deployment showed an \"Ask AI\" box that failed on every question. It is now explicitly off (",[210,248,249],{},"docus.assistant.enabled: false","); agents read the docs through the MCP server and ",[210,252,253],{},"llms.txt",".",[194,256,258],{"id":257},"_0142-2026-10-11","0.14.2 — 2026-10-11",[199,260,261],{},[202,262,263,266,267,270,271,274,275,277,278,280],{},[205,264,265],{},"Directory validation warnings cleared",": a 1024 × 1024 listing icon (",[210,268,269],{},"plugin\u002F.claude-plugin\u002Ficon.png",", the razcue.github.io terminal icon); a Privacy page in the docs (EN + ES) linked as ",[210,272,273],{},"privacyPolicyUrl","; the read-only git subcommand data moved from ",[210,276,224],{}," to ",[210,279,220],{},", so the guard no longer reads as a download-and-execute pattern. The plugin README states that the environment only reaches local tools (git, commitlint, the project's tests). Two reviewer holds remain by design: Node hook scripts in a subfolder plugin, and local tools receiving the environment while the plugin also has a remote MCP server.",[194,282,284],{"id":283},"_0141-2026-10-11","0.14.1 — 2026-10-11",[199,286,287,322,383],{},[202,288,289,292,293,296,297,300,301,304,305,308,309,308,312,308,315,308,318,321],{},[205,290,291],{},"Ready for Anthropic's plugin directory",": ",[210,294,295],{},"plugin\u002FREADME.md"," (what each hook reads, runs and writes; no network, no data collected) and ",[210,298,299],{},"plugin\u002FLICENSE","; ",[210,302,303],{},"plugin.json"," gets ",[210,306,307],{},"displayName",", ",[210,310,311],{},"homepage",[210,313,314],{},"repository",[210,316,317],{},"license",[210,319,320],{},"keywords"," and an up-to-date description (also in the marketplace entry).",[202,323,324,327,328,334,335,339,340,343,344,347,348,351,352,355,356,359,360,308,362,308,365,367,368,371,372,374,375,378,379,382],{},[205,325,326],{},"Every channel points to the others"," — documentation (",[329,330,331],"a",{"href":331,"rel":332},"https:\u002F\u002Frazcue.github.io\u002Fagent-kit\u002F",[333],"nofollow","), docs MCP server (",[329,336,337],{"href":337,"rel":338},"https:\u002F\u002Frazcue-agent-kit.vercel.app\u002Fmcp",[333],"), Claude Code plugin (",[210,341,342],{},"\u002Fplugin install agent-kit --marketplace razcue\u002Fagent-kit",") and npm CLI (",[210,345,346],{},"npx @razcue\u002Fagent-kit init","): one source of truth in ",[210,349,350],{},"cli\u002Flib\u002Fchannels.mjs","; a \"Channels\" docs page (EN + ES); the plugin declares the MCP server as ",[210,353,354],{},"agent-kit-docs"," (",[210,357,358],{},"plugin\u002F.mcp.json","; its README says what is sent: only the page path or locale); README, npm metadata (",[210,361,311],{},[210,363,364],{},"bugs",[210,366,320],{},"), CLI help and ",[210,369,370],{},"init"," output name the docs and the MCP server; ",[210,373,253],{}," names the MCP endpoint; the Pages root redirects to ",[210,376,377],{},"\u002Fen\u002F"," or ",[210,380,381],{},"\u002Fes\u002F"," by browser language (it returned 404).",[202,384,385,292,388,391,392,395,396,399,400,403,404,407,408,411],{},[205,386,387],{},"Pinned launchers",[210,389,390],{},".ts"," scripts and vitest run with the project's own ",[210,393,394],{},"node_modules\u002F.bin"," binaries, else ",[210,397,398],{},"npx --yes tsx@4.23.15"," \u002F ",[210,401,402],{},"vitest@5.0.3"," — never a floating version. Every ",[210,405,406],{},"npx @razcue\u002Fagent-kit@\u003Cversion>"," command inside the plugin carries the plugin's version, and ",[210,409,410],{},"bump.mjs"," re-pins them on release. The upgrade notice names the package and version instead of a launcher.",[194,413,415],{"id":414},"_0140-2026-10-11","0.14.0 — 2026-10-11",[199,417,418,437,458,494,518,531,559,579],{},[202,419,420,292,423,426,427,430,431,399,433,436],{},[205,421,422],{},"Documentation website on Docus 5",[210,424,425],{},"site\u002F"," is now a Docus project (Nuxt 4 + Nuxt Content + Nuxt UI) in ",[205,428,429],{},"English and Spanish"," — landing, getting started, concepts, guides and reference: installation, every setup kind, upgrade, uninstall, lanes, living specs and notation, QA and test data, knowledge, scripts, guardrails, session context, self-improvement, and step-by-step workflows. Search, dark mode, ",[210,432,253],{},[210,434,435],{},"llms-full.txt"," built in. The Spanish guide for non-technical users moved into the site, with an English version.",[202,438,439,292,442,445,446,449,450,453,454,457],{},[205,440,441],{},"Reference generated from the source",[210,443,444],{},"scripts\u002Frelease\u002Fdocs.mjs sync"," writes the CLI, configuration, skills, hooks, scripts and changelog pages; ",[210,447,448],{},"docs.mjs check"," (run by ",[210,451,452],{},"npm test",") fails on stale generated pages, missing or stale translations (each Spanish page records its English page's hash; ",[210,455,456],{},"docs.mjs stamp"," after translating) and CLI commands not explained outside the reference.",[202,459,460,463,464,467,468,470,471,474,475,478,479,482,483,486,487,308,490,493],{},[205,461,462],{},"Deploy",": GitHub Pages builds the static site (",[210,465,466],{},"npm run generate:pages"," in ",[210,469,425],{},", base path ",[210,472,473],{},"\u002Fagent-kit\u002F","); the same app on Vercel (",[210,476,477],{},"site\u002Fvercel.json",") serves Docus's MCP server at ",[210,480,481],{},"\u002Fmcp"," for agents. ",[210,484,485],{},"scripts\u002Frelease\u002Fsite-base.mjs"," adds the base path where Docus 5.14 leaves it out (",[210,488,489],{},"llms*.txt",[210,491,492],{},"sitemap.md",", favicon).",[202,495,496,497,501,502,505,506,509,510,513,514,517],{},"Look of ",[329,498,499],{"href":499,"rel":500},"https:\u002F\u002Frazcue.github.io",[333],": its light \u002F dark palette mapped onto Nuxt UI's tokens (",[210,503,504],{},"site\u002Fapp\u002Fapp.css","), its terminal icon as favicon and header logo; the footer keeps one GitHub link plus the author's website, the theme toggle stays in the header. The homepage shows GitHub stars and forks (live, with ",[210,507,508],{},"stats.json"," from ",[210,511,512],{},"scripts\u002Frelease\u002Frepo-stats.mjs"," as fallback) and clones of the last 14 days when the ",[210,515,516],{},"TRAFFIC_TOKEN"," secret is set; the Pages site rebuilds daily.",[202,519,520,523,524,526,527,530],{},[205,521,522],{},"Homepage",": an animated terminal hero (",[210,525,370],{}," typing itself), a measured comparison — about 23k tokens loaded every session by a real project vs about 3.6k by a new agent-kit monorepo (84% less, both from ",[210,528,529],{},"agent-kit context",") — with rows comparing work with and without the kit, the git guard blocking a commit on main, and a delta merging into a living spec (requirement lands, old id retired, test and QA item shown). CSS animations that play once in view and stay still with reduced motion.",[202,532,533,292,536,538,539,542,543,399,545,547,548,551,552,308,555,558],{},[205,534,535],{},"Main branch detected at setup",[210,537,370],{}," reads it from git (origin's HEAD, or the only main \u002F master \u002F trunk \u002F production \u002F prod branch) and asks when not sure; ",[210,540,541],{},"upgrade"," replaces a configured branch that doesn't exist. ",[210,544,370],{},[210,546,541],{}," keep ",[210,549,550],{},"agent-kit.json"," fields they don't ask about (",[210,553,554],{},"testCommand",[210,556,557],{},"contextBudget",").",[202,560,561,562,308,565,308,568,308,571,574,575,578],{},"The kit runs its own workflow: 001 and 002 converted to proposals + EARS \u002F Given-When-Then delta specs and merged; living specs ",[210,563,564],{},"specs",[210,566,567],{},"qa",[210,569,570],{},"setup",[210,572,573],{},"website","; every kit test that proves a scenario is named by its id; the kit's branch is ",[210,576,577],{},"master"," (Pages trigger, edit links).",[202,580,581,582,585,586,589,590,254],{},"CLI help moved to ",[210,583,584],{},"cli\u002Flib\u002Fhelp.mjs","; the ",[210,587,588],{},"--commits"," flag is listed under ",[210,591,370],{},[194,593,595],{"id":594},"_0130-2026-10-10","0.13.0 — 2026-10-10",[199,597,598,637,684,694,726,768,787],{},[202,599,600,292,603,606,607,467,610,613,614,617,618,621,622,308,625,628,629,632,633,636],{},[205,601,602],{},"Spec-anchored SDD with living specs",[210,604,605],{},"work\u002Fspecs\u002F\u003Ccapability>\u002Fspec.md"," is the source of truth for current behaviour. Spec-lane work is a ",[205,608,609],{},"change",[210,611,612],{},"work\u002Fchanges\u002FNNN-slug\u002F"," — ",[210,615,616],{},"proposal.md"," (first artifact), delta specs ",[210,619,620],{},"specs\u002F\u003Ccapability>.md"," (ADDED \u002F MODIFIED \u002F REMOVED requirements), ",[210,623,624],{},"plan.md",[210,626,627],{},"tasks.md",". ",[210,630,631],{},"specs.mjs merge NNN"," applies the deltas all or nothing, retires removed ids (never reused) and marks the proposal ",[210,634,635],{},"merged:",". Fast-track edits the living spec in place.",[202,638,639,642,643,355,646,649,650,653,654,657,658,661,662,665,666,669,670,673,674,677,678,308,681,254],{},[205,640,641],{},"One standard notation",": requirements in ",[205,644,645],{},"EARS",[210,647,648],{},"### cap.R1 — name"," + ",[210,651,652],{},"When …, the \u003Csystem> shall …","), ",[205,655,656],{},"Given\u002FWhen\u002FThen"," scenarios (BDD) as the acceptance tests (ATDD), one ",[205,659,660],{},"ZOMBIES"," tag each (",[210,663,664],{},"#### cap.R1.S1 — name @boundary","). ",[210,667,668],{},"specs.mjs lint|next|merge|trace|list"," (also ",[210,671,672],{},"agent-kit specs …","); skill reference ",[210,675,676],{},"spec\u002Freferences\u002Fnotation.md","; global knowledge ",[210,679,680],{},"ears-requirements",[210,682,683],{},"gherkin-scenarios",[202,685,686,689,690,693],{},[205,687,688],{},"Scenario traceability",": tests start their name with the scenario id; preflight blocks a done change with uncovered scenarios or not merged, warns on living-spec gaps and notation errors. Changes from ≤ 0.12 keep their ",[210,691,692],{},"NNN\u002FAC-n"," traces.",[202,695,696,699,700,703,704,707,708,653,711,714,715,718,719,628,722,725],{},[205,697,698],{},"QA dimension"," (asked at setup, default on, change by re-running init): ",[210,701,702],{},"work\u002Fqa\u002Fchecklist.md"," + offline ",[210,705,706],{},"checklist.html"," generated from the living specs (one item per scenario, its steps, ZOMBIES tag and fixture); dated QA runs (",[210,709,710],{},"qa.mjs run",[210,712,713],{},"qa.mjs status"," with ",[205,716,717],{},"re-check"," when a scenario changed after passing; ",[210,720,721],{},"qa.mjs gaps",[210,723,724],{},"specs.mjs merge"," refreshes the checklist.",[202,727,728,355,731,734,735,738,739,742,743,745,746,355,749,752,753,756,757,760,761,764,765,254],{},[205,729,730],{},"Supabase test data",[210,732,733],{},"--test-data",", Supabase projects only): ",[210,736,737],{},"supabase\u002Ftest-data\u002F{env,seed,purge}.sql"," + README — one transaction each, the ",[210,740,741],{},"_env"," guard first (refuses unless dev \u002F test \u002F staging; ",[210,744,741],{}," belongs in every environment and is in the monorepo init migration), rows marked with ",[210,747,748],{},"qa.testPrefix",[210,750,751],{},"TEST_","), fixtures tagged ",[210,754,755],{},"-- @fixture \u003Cids> @\u003Czombies>",". Applied in the SQL Editor; skills may offer ",[210,758,759],{},"supabase db query --linked -f …"," \u002F psql and run it only after approval — never ",[210,762,763],{},"db reset",". Preflight warns when migrations change without seed\u002Fpurge changes. Stack skill reference ",[210,766,767],{},"test-data.md",[202,769,770,292,773,776,777,277,780,783,784,254],{},[205,771,772],{},"Upgrade",[210,774,775],{},"agent-kit upgrade"," moves ",[210,778,779],{},"work\u002Fspecs\u002FNNN-*",[210,781,782],{},"work\u002Fchanges\u002F",", asks the new QA questions, and refreshes ",[210,785,786],{},"work\u002FREADME.md",[202,788,789,790,793],{},"E2E: ",[210,791,792],{},"scripts\u002Fe2e\u002Fspec-flow.mjs --lane spec|feature"," — a complex request opens a change with lint-clean deltas; a fast-track tweak keeps its living spec true.",[194,795,797],{"id":796},"_0120-2026-10-08","0.12.0 — 2026-10-08",[199,799,800,831,847,867,880],{},[202,801,802,292,805,808,809,812,813,815,816,819,820,822,823,826,827,830],{},[205,803,804],{},"A stack skill per template, in the project only",[210,806,807],{},"stack-nuxt-supabase"," moved out of the plugin and ",[210,810,811],{},"stack-nuxt-content-site"," is new; ",[210,814,370],{}," installs the template's skill into ",[210,817,818],{},".claude\u002Fskills\u002F",", so unrelated projects pay no tokens for it. ",[210,821,541],{}," refreshes it (backed up), ",[210,824,825],{},"doctor"," checks it's current, ",[210,828,829],{},"uninstall"," removes it.",[202,832,833,292,836,839,840,843,844,558],{},[205,834,835],{},"Blank projects",[210,837,838],{},"--kind blank"," (or \"Blank project\") — agent layer only, no template, with a minimal ",[210,841,842],{},"package.json","; existing and blank projects can opt into a stack skill (",[210,845,846],{},"--stack none|nuxt-supabase|nuxt-content-site",[202,848,849,854,855,858,859,862,863,866],{},[205,850,851],{},[210,852,853],{},"agent-kit propose \"\u003Ctitle>\"",": projects send improvement ideas to the kit — into the clone's ",[210,856,857],{},"work\u002Fproposals\u002F"," inbox, or as a ready ",[210,860,861],{},"gh issue create"," command; the ",[210,864,865],{},"retro"," skill uses it.",[202,868,869,292,872,875,876,879],{},[205,870,871],{},"Evolve",[210,873,874],{},"scripts\u002Fevolve\u002Fscout.mjs"," (new Claude Code version, new hook events in the docs, template dependencies a major behind, vs a reviewed baseline) and ",[210,877,878],{},"scripts\u002Fevolve\u002FROUTINE.md"," (weekly cloud routine: scout + web research on skills, harnesses and workflows → at most 5 proposals).",[202,881,882],{},"Trigger eval covers both stack skills (each in its template's project).",[194,884,886],{"id":885},"_0110-2026-10-08","0.11.0 — 2026-10-08",[199,888,889,899,908],{},[202,890,891,894,895,898],{},[205,892,893],{},"Session context budget",": rendered under 9,500 characters (Claude Code caps hook context at 10,000 and cuts the rest silently); when needed it collapses global knowledge groups, then the scripts list, then project groups, and clips summaries to 160 characters. ",[210,896,897],{},"knowledge check"," warns about longer summaries.",[202,900,901,355,904,907],{},[205,902,903],{},"Template CI",[210,905,906],{},".github\u002Fworkflows\u002Ftemplates.yml","): scaffolds the app monorepo and the content site, installs, checks, builds, and runs the auth e2e — on template changes and weekly.",[202,909,910,292,913,916,917,300,919,921],{},[205,911,912],{},"Site figures stay true",[210,914,915],{},"scripts\u002Frelease\u002Fsite.mjs"," syncs the version and skill count into both languages and ",[210,918,253],{},[210,920,410],{}," runs it; a test fails when the site is stale.",[194,923,925],{"id":924},"_0100-2026-10-08","0.10.0 — 2026-10-08",[199,927,928],{},[202,929,930,355,933,935,936,938,939,942],{},[205,931,932],{},"Project website",[210,934,425],{},"): single page in English and Spanish — problem, how it works, lanes and methods, the 12 skills, guardrails, knowledge, scaffolds, verification, get started; light\u002Fdark, mobile, copy buttons, ",[210,937,253],{},". Deployed to GitHub Pages by ",[210,940,941],{},".github\u002Fworkflows\u002Fpages.yml",". Site test: links, anchors, assets, same sections in both languages.",[194,944,946],{"id":945},"_090-2026-10-08","0.9.0 — 2026-10-08",[199,948,949,967,989],{},[202,950,951,954,955,958,959,962,963,966],{},[205,952,953],{},"Auth e2e"," ",[210,956,957],{},"scripts\u002Fe2e\u002Fauth.mjs",": the built app server + real supabase-js against a fake Supabase (Auth + RPC) — wrong password 401, short login + email domain, ",[210,960,961],{},"app_metadata"," name, ",[210,964,965],{},"\u002Fme",", server-side logout revocation, throttle 429 after 5 failures (9\u002F9).",[202,968,969,972,973,976,977,980,981,984,985,988],{},[205,970,971],{},"Git guard",": configured aliases are resolved (",[210,974,975],{},"git ci"," → ",[210,978,979],{},"git commit",", shell aliases too); inline ",[210,982,983],{},"-c alias.…"," is blocked; branch detection works in a fresh repo with no commits (a first commit onto main in ",[210,986,987],{},"pr"," flow was not caught).",[202,990,991,292,994,254],{},[205,992,993],{},"Spanish guide for non-technical users",[210,995,996],{},"docs\u002Fguia-sitio-web.md",[194,998,1000],{"id":999},"_080-2026-10-08","0.8.0 — 2026-10-08",[199,1002,1003,1016,1025,1033,1039],{},[202,1004,1005,1008,1009,1012,1013,1015],{},[205,1006,1007],{},"Version-drift notice",": when the installed plugin is newer than the project's ",[210,1010,1011],{},"kitVersion",", the session suggests ",[210,1014,775],{}," once.",[202,1017,1018,1024],{},[205,1019,1020,1021],{},"Knowledge ",[210,1022,1023],{},"log.md"," (OKF): every index run appends what was added, changed or removed, newest first.",[202,1026,1027,1032],{},[205,1028,1029],{},[210,1030,1031],{},"agent-kit doctor --fix",": regenerates knowledge indexes (+ log), the scripts index and the work board, then checks.",[202,1034,1035,1038],{},[205,1036,1037],{},"Negative trigger evals",": unrelated questions must load no agent-kit skill — 3\u002F3 on haiku and sonnet (no over-triggering).",[202,1040,1041,1044],{},[205,1042,1043],{},"Hook latency budget"," in the lint tests (\u003C 1.5 s each; measured 72–101 ms).",[194,1046,1048],{"id":1047},"_070-2026-10-08","0.7.0 — 2026-10-08",[199,1050,1051,1064,1090,1111,1134],{},[202,1052,1053,1056,1057,1060,1061,254],{},[205,1054,1055],{},"Fix",": frontmatter values kept YAML inline comments (",[210,1058,1059],{},"status: draft # draft | approved…","), so work files created from the templates were never seen as active (resume, board, AC trace) and commented knowledge examples failed ",[210,1062,1063],{},"check",[202,1065,1066,1069,1070,308,1073,308,1076,308,1079,1082,1083,308,1086,1089],{},[205,1067,1068],{},"Git guard hardening",": quote-aware command splitting; git hidden in ",[210,1071,1072],{},"bash\u002Fsh -c",[210,1074,1075],{},"eval",[210,1077,1078],{},"xargs",[210,1080,1081],{},"$( )",", backticks, ",[210,1084,1085],{},"nohup",[210,1087,1088],{},"timeout"," is checked too.",[202,1091,1092,355,1097,1100,1101,308,1104,213,1107,1110],{},[205,1093,1094],{},[210,1095,1096],{},"work.mjs new feature|spec \u003Cslug>",[210,1098,1099],{},"agent-kit work new …","): next free number, files from the templates, board updated; ",[210,1102,1103],{},"feature",[210,1105,1106],{},"spec",[210,1108,1109],{},"start"," use it.",[202,1112,1113,954,1116,1119,1120,308,1122,308,1125,308,1128,308,1131,1133],{},[205,1114,1115],{},"Skill trigger eval",[210,1117,1118],{},"scripts\u002Fe2e\u002Ftriggers.mjs",": one realistic prompt per skill in a scaffolded monorepo; descriptions of ",[210,1121,1103],{},[210,1123,1124],{},"tdd",[210,1126,1127],{},"commit",[210,1129,1130],{},"adopt",[210,1132,807],{}," rewritten to \"Use BEFORE…\" — 12\u002F12 skills trigger on haiku and sonnet after the changes (borderline ones re-run twice per model).",[202,1135,1136,1137,1139,1140,254],{},"The kit adopts itself: ",[210,1138,550],{},", a 48-line AGENTS.md for kit work, commitlint + husky, ",[210,1141,1142],{},".knowledge\u002F",[194,1144,1146],{"id":1145},"_060-2026-10-08","0.6.0 — 2026-10-08",[199,1148,1149,1181,1190,1201,1216],{},[202,1150,1151,1154,1155,1158,1159,653,1162,308,1165,1168,1169,1172,1173,1176,1177,1180],{},[205,1152,1153],{},"Auth starter"," in the app template: BFF ",[210,1156,1157],{},"POST \u002Fapi\u002Fauth\u002Flogin"," (DB-backed throttle per login and IP, migration ",[210,1160,1161],{},"000000000001_login_throttle.sql",[210,1163,1164],{},"GET \u002Fapi\u002Fauth\u002Fme",[210,1166,1167],{},"POST \u002Fapi\u002Fauth\u002Flogout","; Pinia ",[210,1170,1171],{},"useAuthStore"," (session restore, setSession, logout), global route guard with safe redirects, login page; ",[210,1174,1175],{},"Input","\u002F",[210,1178,1179],{},"Label"," in the UI layer.",[202,1182,1183,1187,1188,254],{},[205,1184,1185],{},[210,1186,775],{},": asks only questions the project hasn't answered, re-applies the agent layer, prints the CHANGELOG since the project's ",[210,1189,1011],{},[202,1191,1192,1197,1198,1200],{},[205,1193,1194],{},[210,1195,1196],{},"agent-kit uninstall [--dry-run]",": removes the AGENTS.md block, agent-kit settings entries and ",[210,1199,550],{}," (backed up); project content stays.",[202,1202,1203,355,1206,1209,1210,300,1213,1215],{},[205,1204,1205],{},"Optional read-only Supabase MCP",[210,1207,1208],{},"--supabase-mcp \u003Cref>",", asked for new app projects): hosted server, project-scoped, ",[210,1211,1212],{},"read_only=true",[210,1214,825],{}," flags a non-read-only one.",[202,1217,1218],{},"Kit CI (Node 20 and 22: tests + pack check).",[194,1220,1222],{"id":1221},"_050-2026-10-08","0.5.0 — 2026-10-08",[199,1224,1225,1237,1270,1281,1297,1307],{},[202,1226,1227,1232,1233,1236],{},[205,1228,1229,1231],{},[210,1230,1127],{}," skill",": preflight → review → Conventional Commit message (English, ",[210,1234,1235],{},"type(scope): subject",", ≤ 72) → validate → commit by git flow (read-only projects get the exact command).",[202,1238,1239,355,1242,1245,1246,308,1249,308,1252,1255,1256,1259,1260,213,1263,300,1266,1269],{},[205,1240,1241],{},"Setup question \"Commit messages\"",[210,1243,1244],{},"--commits conventional|none",", default conventional): adds ",[210,1247,1248],{},"@commitlint\u002Fcli",[210,1250,1251],{},"@commitlint\u002Fconfig-conventional",[210,1253,1254],{},"husky"," and a ",[210,1257,1258],{},"prepare"," script to package.json, ",[210,1261,1262],{},"commitlint.config.mjs",[210,1264,1265],{},".husky\u002Fcommit-msg",[210,1267,1268],{},"npm install"," activates the hook.",[202,1271,1272,355,1277,1280],{},[205,1273,1274],{},[210,1275,1276],{},"commit.mjs",[210,1278,1279],{},"agent-kit commit draft|check","): files → scope\u002Ftype hints; message check via the project's commitlint, or built-in rules pinned to commitlint's verdicts by a parity test.",[202,1282,1283,1285,1286,1289,1290,399,1293,1296],{},[205,1284,971],{},": validates ",[210,1287,1288],{},"git commit -m …"," messages in conventional projects before they run; blocks ",[210,1291,1292],{},"--no-verify",[210,1294,1295],{},"-n"," everywhere.",[202,1298,1299,1303,1304,558],{},[205,1300,1301],{},[210,1302,825],{},": commitlint configured, hook file present, hooks active (",[210,1305,1306],{},"core.hooksPath",[202,1308,1309,1311],{},[210,1310,370],{}," no longer backs up files it created earlier in the same run.",[194,1313,1315],{"id":1314},"_040-2026-10-08","0.4.0 — 2026-10-08",[199,1317,1318,1332,1337,1347,1356],{},[202,1319,1320,1323,1324,1327,1328,1331],{},[205,1321,1322],{},"Verified live in Claude Code"," (2.1.294): ",[210,1325,1326],{},"scripts\u002Fe2e\u002Flive.mjs"," runs a headless session with ",[210,1329,1330],{},"--plugin-dir"," and a cheap model, and checks plugin + skills load, SessionStart context, git guard, stray-script reminder and checkpoint (~$0.01 per run).",[202,1333,1334,1336],{},[205,1335,1055],{},": the Stop checkpoint hook is now synchronous — async hooks were dropped when a headless run exited (found by the live test).",[202,1338,1339,649,1343,1346],{},[205,1340,1341,1231],{},[210,1342,1130],{},[210,1344,1345],{},"agent-kit context --sections",": move a large AGENTS.md\u002FCLAUDE.md and auto-memory onto agent-kit section by section (skill, folder CLAUDE.md, knowledge or delete), measuring tokens after each move.",[202,1348,1349,292,1352,1355],{},[205,1350,1351],{},"Hook tracing",[210,1353,1354],{},"AGENT_KIT_HOOK_LOG=\u003Cfile>"," makes every hook append one line when it runs.",[202,1357,1358,1361],{},[205,1359,1360],{},"Plugin lint tests",": skill names\u002Fdescription budget, total listing ≤ 1500 tokens, hook commands exist, hooks silent outside agent-kit projects, versions agree.",[194,1363,1365],{"id":1364},"_030-2026-10-08","0.3.0 — 2026-10-08",[199,1367,1368,1381,1400,1414,1428,1440,1452],{},[202,1369,1370,1373,1374,1377,1378,254],{},[205,1371,1372],{},"Resume across sessions",": Stop hook (async) saves ",[210,1375,1376],{},".agent-kit\u002Fcheckpoint.json","; session start shows where the last session ended and the active work with its next task. ",[210,1379,1380],{},"work.mjs status|board",[202,1382,1383,1386,1387,300,1389,1392,1393,1396,1397,254],{},[205,1384,1385],{},"Acceptance-criteria traceability",": tests name ",[210,1388,692],{},[210,1390,1391],{},"work.mjs trace","; preflight blocks a ",[210,1394,1395],{},"done"," spec with an uncovered AC, warns for ",[210,1398,1399],{},"approved",[202,1401,1402,292,1405,1407,1408,1410,1411,1413],{},[205,1403,1404],{},"Context report",[210,1406,529],{}," estimates the tokens loaded every session (CLAUDE.md chain + imports, memory, agent-kit context, skill listings) and lists skills Claude Code can't see; ",[210,1409,825],{}," checks the budget (",[210,1412,557],{},", default 8000).",[202,1415,1416,1419,1420,1423,1424,1427],{},[205,1417,1418],{},"Stray-script reminder",": PostToolUse(Write) hook points to the ",[210,1421,1422],{},"scripts"," skill when a script is written outside ",[210,1425,1426],{},"scripts\u002F","\u002Fscratch.",[202,1429,1430,292,1433,1436,1437,1439],{},[205,1431,1432],{},"Content site",[210,1434,1435],{},"--kind site"," scaffold (Nuxt + Nuxt Content, Markdown pages, static) and the ",[210,1438,1109],{}," skill (guided kickoff in plain language).",[202,1441,1442,292,1445,1447,1448,1451],{},[205,1443,1444],{},"Retro",[210,1446,865],{}," skill + ",[210,1449,1450],{},"agent-kit usage"," (runs, failures, unused scripts, scratch to promote, orphan knowledge).",[202,1453,1454,1455,1458,1459,1461,1462,1464,1465,1467,1468,1470,1471,1474],{},"Also: ",[210,1456,1457],{},"knowledge related \u003Cname>"," (links + backlinks), ",[210,1460,1011],{}," in agent-kit.json checked by ",[210,1463,825],{},", backups of every file ",[210,1466,370],{}," changes, GitHub Actions ",[210,1469,1063],{}," workflow in scaffolds, ",[210,1472,1473],{},"agent-kit preflight|work|context|usage"," commands.",[194,1476,1478],{"id":1477},"_020-2026-10-07","0.2.0 — 2026-10-07",[199,1480,1481,1491],{},[202,1482,1483,1484,1486,1487,1490],{},"Method question: SDD or SDD + TDD; ",[210,1485,1124],{}," skill, ",[210,1488,1489],{},"tdd.mjs status|run",", preflight blocks untested logic.",[202,1492,1493,1447,1495,1498,1499,254],{},[210,1494,1422],{},[210,1496,1497],{},"scripts.mjs"," registry (find\u002Frun\u002Ftest\u002Fnew\u002Findex\u002Fcheck), ZOMBIES test stubs, ",[210,1500,1501],{},".agent-kit\u002Fscratch\u002F",[194,1503,1505],{"id":1504},"_010-2026-10-07","0.1.0 — 2026-10-07",[199,1507,1508],{},[202,1509,1510,1511,1514],{},"Plugin (spec, feature, knowledge, decide, stack-nuxt-supabase, preflight; reviewer agent; session + git-guard hooks), ",[210,1512,1513],{},"init\u002Fsetup\u002Fdoctor"," CLI, Nuxt + Supabase monorepo scaffold, global knowledge.",{"title":1516,"searchDepth":1517,"depth":1517,"links":1518},"",2,[1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535],{"id":196,"depth":1517,"text":197},{"id":257,"depth":1517,"text":258},{"id":283,"depth":1517,"text":284},{"id":414,"depth":1517,"text":415},{"id":594,"depth":1517,"text":595},{"id":796,"depth":1517,"text":797},{"id":885,"depth":1517,"text":886},{"id":924,"depth":1517,"text":925},{"id":945,"depth":1517,"text":946},{"id":999,"depth":1517,"text":1000},{"id":1047,"depth":1517,"text":1048},{"id":1145,"depth":1517,"text":1146},{"id":1221,"depth":1517,"text":1222},{"id":1314,"depth":1517,"text":1315},{"id":1364,"depth":1517,"text":1365},{"id":1477,"depth":1517,"text":1478},{"id":1504,"depth":1517,"text":1505},"What changed in every version.","md",null,{},{"icon":177},{"title":174,"description":1536},"-3j-TBYrGAIs6fxSvxCGhEoHkYEgiWHgB4veW900Hg4",[1544,1546],{"title":66,"path":171,"stem":172,"description":1545,"icon":69,"children":-1},"The zero-dependency plugin scripts and their commands.",{"title":179,"path":180,"stem":181,"description":1547,"icon":182,"children":-1},"What each setup kind scaffolds.",1793099616844]