Reference
Changelog
What changed in every version.
0.14.3 — 2026-10-11
- Git guard without download-like words: the list of every git subcommand the guard recognises (with
pullandclone) also moved togit-rules.mjs, and the guard's messages say "branches + PRs"; the directory validator still readgit-guard.mjsas a download-and-execute pattern afterfetchmoved out. Behaviour unchanged:git pullandgit cloneare still blocked in read-only projects. - No "Ask AI" assistant on the docs: Docus switches its assistant on whenever AI Gateway credentials exist, and Vercel always provides them (
VERCEL_OIDC_TOKEN), so the Vercel deployment showed an "Ask AI" box that failed on every question. It is now explicitly off (docus.assistant.enabled: false); agents read the docs through the MCP server andllms.txt.
0.14.2 — 2026-10-11
- Directory validation warnings cleared: a 1024 × 1024 listing icon (
plugin/.claude-plugin/icon.png, the razcue.github.io terminal icon); a Privacy page in the docs (EN + ES) linked asprivacyPolicyUrl; the read-only git subcommand data moved fromgit-guard.mjstogit-rules.mjs, 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.
0.14.1 — 2026-10-11
- Ready for Anthropic's plugin directory:
plugin/README.md(what each hook reads, runs and writes; no network, no data collected) andplugin/LICENSE;plugin.jsongetsdisplayName,homepage,repository,license,keywordsand an up-to-date description (also in the marketplace entry). - Every channel points to the others — documentation (https://razcue.github.io/agent-kit/), docs MCP server (https://razcue-agent-kit.vercel.app/mcp), Claude Code plugin (
/plugin install agent-kit --marketplace razcue/agent-kit) and npm CLI (npx @razcue/agent-kit init): one source of truth incli/lib/channels.mjs; a "Channels" docs page (EN + ES); the plugin declares the MCP server asagent-kit-docs(plugin/.mcp.json; its README says what is sent: only the page path or locale); README, npm metadata (homepage,bugs,keywords), CLI help andinitoutput name the docs and the MCP server;llms.txtnames the MCP endpoint; the Pages root redirects to/en/or/es/by browser language (it returned 404). - Pinned launchers:
.tsscripts and vitest run with the project's ownnode_modules/.binbinaries, elsenpx --yes tsx@4.23.15/vitest@5.0.3— never a floating version. Everynpx @razcue/agent-kit@<version>command inside the plugin carries the plugin's version, andbump.mjsre-pins them on release. The upgrade notice names the package and version instead of a launcher.
0.14.0 — 2026-10-11
- Documentation website on Docus 5:
site/is now a Docus project (Nuxt 4 + Nuxt Content + Nuxt UI) in 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,llms.txt/llms-full.txtbuilt in. The Spanish guide for non-technical users moved into the site, with an English version. - Reference generated from the source:
scripts/release/docs.mjs syncwrites the CLI, configuration, skills, hooks, scripts and changelog pages;docs.mjs check(run bynpm test) fails on stale generated pages, missing or stale translations (each Spanish page records its English page's hash;docs.mjs stampafter translating) and CLI commands not explained outside the reference. - Deploy: GitHub Pages builds the static site (
npm run generate:pagesinsite/, base path/agent-kit/); the same app on Vercel (site/vercel.json) serves Docus's MCP server at/mcpfor agents.scripts/release/site-base.mjsadds the base path where Docus 5.14 leaves it out (llms*.txt,sitemap.md, favicon). - Look of https://razcue.github.io: its light / dark palette mapped onto Nuxt UI's tokens (
site/app/app.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, withstats.jsonfromscripts/release/repo-stats.mjsas fallback) and clones of the last 14 days when theTRAFFIC_TOKENsecret is set; the Pages site rebuilds daily. - Homepage: an animated terminal hero (
inittyping 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 fromagent-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. - Main branch detected at setup:
initreads it from git (origin's HEAD, or the only main / master / trunk / production / prod branch) and asks when not sure;upgradereplaces a configured branch that doesn't exist.init/upgradekeepagent-kit.jsonfields they don't ask about (testCommand,contextBudget). - The kit runs its own workflow: 001 and 002 converted to proposals + EARS / Given-When-Then delta specs and merged; living specs
specs,qa,setup,website; every kit test that proves a scenario is named by its id; the kit's branch ismaster(Pages trigger, edit links). - CLI help moved to
cli/lib/help.mjs; the--commitsflag is listed underinit.
0.13.0 — 2026-10-10
- Spec-anchored SDD with living specs:
work/specs/<capability>/spec.mdis the source of truth for current behaviour. Spec-lane work is a change inwork/changes/NNN-slug/—proposal.md(first artifact), delta specsspecs/<capability>.md(ADDED / MODIFIED / REMOVED requirements),plan.md,tasks.md.specs.mjs merge NNNapplies the deltas all or nothing, retires removed ids (never reused) and marks the proposalmerged:. Fast-track edits the living spec in place. - One standard notation: requirements in EARS (
### cap.R1 — name+When …, the <system> shall …), Given/When/Then scenarios (BDD) as the acceptance tests (ATDD), one ZOMBIES tag each (#### cap.R1.S1 — name @boundary).specs.mjs lint|next|merge|trace|list(alsoagent-kit specs …); skill referencespec/references/notation.md; global knowledgeears-requirements,gherkin-scenarios. - 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
NNN/AC-ntraces. - QA dimension (asked at setup, default on, change by re-running init):
work/qa/checklist.md+ offlinechecklist.htmlgenerated from the living specs (one item per scenario, its steps, ZOMBIES tag and fixture); dated QA runs (qa.mjs run),qa.mjs statuswith re-check when a scenario changed after passing;qa.mjs gaps.specs.mjs mergerefreshes the checklist. - Supabase test data (
--test-data, Supabase projects only):supabase/test-data/{env,seed,purge}.sql+ README — one transaction each, the_envguard first (refuses unless dev / test / staging;_envbelongs in every environment and is in the monorepo init migration), rows marked withqa.testPrefix(TEST_), fixtures tagged-- @fixture <ids> @<zombies>. Applied in the SQL Editor; skills may offersupabase db query --linked -f …/ psql and run it only after approval — neverdb reset. Preflight warns when migrations change without seed/purge changes. Stack skill referencetest-data.md. - Upgrade:
agent-kit upgrademoveswork/specs/NNN-*towork/changes/, asks the new QA questions, and refresheswork/README.md. - E2E:
scripts/e2e/spec-flow.mjs --lane spec|feature— a complex request opens a change with lint-clean deltas; a fast-track tweak keeps its living spec true.
0.12.0 — 2026-10-08
- A stack skill per template, in the project only:
stack-nuxt-supabasemoved out of the plugin andstack-nuxt-content-siteis new;initinstalls the template's skill into.claude/skills/, so unrelated projects pay no tokens for it.upgraderefreshes it (backed up),doctorchecks it's current,uninstallremoves it. - Blank projects:
--kind blank(or "Blank project") — agent layer only, no template, with a minimalpackage.json; existing and blank projects can opt into a stack skill (--stack none|nuxt-supabase|nuxt-content-site). agent-kit propose "<title>": projects send improvement ideas to the kit — into the clone'swork/proposals/inbox, or as a readygh issue createcommand; theretroskill uses it.- Evolve:
scripts/evolve/scout.mjs(new Claude Code version, new hook events in the docs, template dependencies a major behind, vs a reviewed baseline) andscripts/evolve/ROUTINE.md(weekly cloud routine: scout + web research on skills, harnesses and workflows → at most 5 proposals). - Trigger eval covers both stack skills (each in its template's project).
0.11.0 — 2026-10-08
- 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.
knowledge checkwarns about longer summaries. - Template CI (
.github/workflows/templates.yml): scaffolds the app monorepo and the content site, installs, checks, builds, and runs the auth e2e — on template changes and weekly. - Site figures stay true:
scripts/release/site.mjssyncs the version and skill count into both languages andllms.txt;bump.mjsruns it; a test fails when the site is stale.
0.10.0 — 2026-10-08
- Project website (
site/): single page in English and Spanish — problem, how it works, lanes and methods, the 12 skills, guardrails, knowledge, scaffolds, verification, get started; light/dark, mobile, copy buttons,llms.txt. Deployed to GitHub Pages by.github/workflows/pages.yml. Site test: links, anchors, assets, same sections in both languages.
0.9.0 — 2026-10-08
- Auth e2e
scripts/e2e/auth.mjs: the built app server + real supabase-js against a fake Supabase (Auth + RPC) — wrong password 401, short login + email domain,app_metadataname,/me, server-side logout revocation, throttle 429 after 5 failures (9/9). - Git guard: configured aliases are resolved (
git ci→git commit, shell aliases too); inline-c alias.…is blocked; branch detection works in a fresh repo with no commits (a first commit onto main inprflow was not caught). - Spanish guide for non-technical users:
docs/guia-sitio-web.md.
0.8.0 — 2026-10-08
- Version-drift notice: when the installed plugin is newer than the project's
kitVersion, the session suggestsagent-kit upgradeonce. - Knowledge
log.md(OKF): every index run appends what was added, changed or removed, newest first. agent-kit doctor --fix: regenerates knowledge indexes (+ log), the scripts index and the work board, then checks.- Negative trigger evals: unrelated questions must load no agent-kit skill — 3/3 on haiku and sonnet (no over-triggering).
- Hook latency budget in the lint tests (< 1.5 s each; measured 72–101 ms).
0.7.0 — 2026-10-08
- Fix: frontmatter values kept YAML inline comments (
status: draft # draft | approved…), so work files created from the templates were never seen as active (resume, board, AC trace) and commented knowledge examples failedcheck. - Git guard hardening: quote-aware command splitting; git hidden in
bash/sh -c,eval,xargs,$( ), backticks,nohup,timeoutis checked too. work.mjs new feature|spec <slug>(agent-kit work new …): next free number, files from the templates, board updated;feature,specandstartuse it.- Skill trigger eval
scripts/e2e/triggers.mjs: one realistic prompt per skill in a scaffolded monorepo; descriptions offeature,tdd,commit,adopt,stack-nuxt-supabaserewritten to "Use BEFORE…" — 12/12 skills trigger on haiku and sonnet after the changes (borderline ones re-run twice per model). - The kit adopts itself:
agent-kit.json, a 48-line AGENTS.md for kit work, commitlint + husky,.knowledge/.
0.6.0 — 2026-10-08
- Auth starter in the app template: BFF
POST /api/auth/login(DB-backed throttle per login and IP, migration000000000001_login_throttle.sql),GET /api/auth/me,POST /api/auth/logout; PiniauseAuthStore(session restore, setSession, logout), global route guard with safe redirects, login page;Input/Labelin the UI layer. agent-kit upgrade: asks only questions the project hasn't answered, re-applies the agent layer, prints the CHANGELOG since the project'skitVersion.agent-kit uninstall [--dry-run]: removes the AGENTS.md block, agent-kit settings entries andagent-kit.json(backed up); project content stays.- Optional read-only Supabase MCP (
--supabase-mcp <ref>, asked for new app projects): hosted server, project-scoped,read_only=true;doctorflags a non-read-only one. - Kit CI (Node 20 and 22: tests + pack check).
0.5.0 — 2026-10-08
commitskill: preflight → review → Conventional Commit message (English,type(scope): subject, ≤ 72) → validate → commit by git flow (read-only projects get the exact command).- Setup question "Commit messages" (
--commits conventional|none, default conventional): adds@commitlint/cli,@commitlint/config-conventional,huskyand apreparescript to package.json,commitlint.config.mjsand.husky/commit-msg;npm installactivates the hook. commit.mjs(agent-kit commit draft|check): files → scope/type hints; message check via the project's commitlint, or built-in rules pinned to commitlint's verdicts by a parity test.- Git guard: validates
git commit -m …messages in conventional projects before they run; blocks--no-verify/-neverywhere. doctor: commitlint configured, hook file present, hooks active (core.hooksPath).initno longer backs up files it created earlier in the same run.
0.4.0 — 2026-10-08
- Verified live in Claude Code (2.1.294):
scripts/e2e/live.mjsruns a headless session with--plugin-dirand a cheap model, and checks plugin + skills load, SessionStart context, git guard, stray-script reminder and checkpoint (~$0.01 per run). - Fix: the Stop checkpoint hook is now synchronous — async hooks were dropped when a headless run exited (found by the live test).
adoptskill +agent-kit context --sections: move a large AGENTS.md/CLAUDE.md and auto-memory onto agent-kit section by section (skill, folder CLAUDE.md, knowledge or delete), measuring tokens after each move.- Hook tracing:
AGENT_KIT_HOOK_LOG=<file>makes every hook append one line when it runs. - Plugin lint tests: skill names/description budget, total listing ≤ 1500 tokens, hook commands exist, hooks silent outside agent-kit projects, versions agree.
0.3.0 — 2026-10-08
- Resume across sessions: Stop hook (async) saves
.agent-kit/checkpoint.json; session start shows where the last session ended and the active work with its next task.work.mjs status|board. - Acceptance-criteria traceability: tests name
NNN/AC-n;work.mjs trace; preflight blocks adonespec with an uncovered AC, warns forapproved. - Context report:
agent-kit contextestimates the tokens loaded every session (CLAUDE.md chain + imports, memory, agent-kit context, skill listings) and lists skills Claude Code can't see;doctorchecks the budget (contextBudget, default 8000). - Stray-script reminder: PostToolUse(Write) hook points to the
scriptsskill when a script is written outsidescripts//scratch. - Content site:
--kind sitescaffold (Nuxt + Nuxt Content, Markdown pages, static) and thestartskill (guided kickoff in plain language). - Retro:
retroskill +agent-kit usage(runs, failures, unused scripts, scratch to promote, orphan knowledge). - Also:
knowledge related <name>(links + backlinks),kitVersionin agent-kit.json checked bydoctor, backups of every fileinitchanges, GitHub Actionscheckworkflow in scaffolds,agent-kit preflight|work|context|usagecommands.
0.2.0 — 2026-10-07
- Method question: SDD or SDD + TDD;
tddskill,tdd.mjs status|run, preflight blocks untested logic. scriptsskill +scripts.mjsregistry (find/run/test/new/index/check), ZOMBIES test stubs,.agent-kit/scratch/.
0.1.0 — 2026-10-07
- Plugin (spec, feature, knowledge, decide, stack-nuxt-supabase, preflight; reviewer agent; session + git-guard hooks),
init/setup/doctorCLI, Nuxt + Supabase monorepo scaffold, global knowledge.