Scripts
The scripts folder path is in the session context; most are also agent-kit commands.
changes
What changed since the base branch: committed + staged + unstaged + untracked. Shared by preflight.mjs and tdd.mjs. Read-only git.
checkpoint
Stop hook: after every turn (sync: async hooks are dropped when a headless run exits), saves where the work stands so the next session can resume — branch, changed files, active work. Silent; never fails.
commit
Conventional Commit helpers for agents.
node commit.mjs draft [--staged] changed files → suggested scope(s) and type
node commit.mjs check "<message>" validate: project commitlint if installed,
node commit.mjs check --file <path> else the built-in rules below (exit 1 = invalid)
config
Shared paths and config for the agent-kit plugin scripts and CLI.
context
Estimates the context loaded into EVERY Claude Code session of a project (CLAUDE.md chain + imports, memory index, agent-kit session context, skill listings) and finds skills Claude Code can't see. ~4 characters per token.
node context.mjs [dir] [--budget 8000] exit 1 over budget
node context.mjs [dir] --sections cost of every heading in the CLAUDE.md chain
git-guard
PreToolUse(Bash) hook: blocks git commands the project's git flow forbids. Exit 2 blocks the call and shows stderr to Claude. Silent outside agent-kit projects.
git-rules
Which git commands never change a repository: data for the git guard (git-guard.mjs). Subcommands that never change the repo, whatever their arguments.
knowledge
Knowledge base: one concept per Markdown file with frontmatter, grouped in scopes, linked with [[name]]. This script does the deterministic work (index, search, validation) so agents spend tokens only on the entries they open.
node knowledge.mjs paths
node knowledge.mjs find <terms...> [--body]
node knowledge.mjs related <name> the entry, what it links to, what links to it
node knowledge.mjs index [--global]
node knowledge.mjs check [--global]
preflight
Pre-merge checklist from the diff between the merge base and the working tree (committed + staged + unstaged + untracked). Read-only git.
node preflight.mjs [base-branch] exit 1 when a violation is found
qa
QA dimension: a checklist generated from the living specs (one item per scenario), dated QA runs that record results, and the map from scenarios to the test-data fixtures (-- @fixture <ids…> @tag in seed.sql).
node qa.mjs sync [--check] regenerate work/qa/checklist.md + checklist.html (--check: exit 1 if stale)
node qa.mjs run start work/qa/runs/<today>.md with every scenario unticked
node qa.mjs status latest result per scenario (pass / fail / blocked / n/a / re-check / never run)
node qa.mjs gaps scenarios without a fixture; fixtures naming unknown scenarios (exit 1)
run
Runs a command and returns a compact result for the agent: exit code, time, the lines that matter (failures, errors) and the tail. The full output goes to a log file, so a long run costs a few dozen lines of context, not thousands.
script-nudge
PostToolUse(Write) hook: when the agent writes a script somewhere it will be lost (outside the project, at the project root, or in a tmp folder), remind it of the scripts skill so the script is found and reused next time.
scripts
Script registry: find, run, test, scaffold and document the scripts agents and users write, so they are reused instead of rebuilt. A script is documented by @key: value lines in its first 40 lines (any comment style): @name @summary @usage (required: summary, usage) · @tags a, b · @test file
node scripts.mjs find <words...> scripts (project, scratch, library) + skills
node scripts.mjs list
node scripts.mjs run <name|path> [--lines N] [-- args...]
node scripts.mjs test [name]
node scripts.mjs new <area>/<name>.<ext> --summary "…" [--usage "…"] [--scratch|--library]
node scripts.mjs index regenerate scripts/README.md
node scripts.mjs check undocumented, duplicate, missing tests
session-start
SessionStart hook: injects the project profile (voice, language, git flow, method, work lanes), a compact knowledge index and the script index. Silent outside agent-kit projects.
specs
Living specs (work/specs/### cap.R1 — name), Given/When/Then scenarios tagged with one ZOMBIES category (#### cap.R1.S1 — name @boundary). IDs are never reused.
node specs.mjs lint [cap|NNN] notation + id checks (exit 1 on errors)
node specs.mjs next <cap|cap.Rn> next free requirement / scenario id
node specs.mjs merge <NNN> apply a change's deltas to the living specs
node specs.mjs trace [NNN|cap] scenario → tests (id in the test name) or ✅ rows
node specs.mjs list capabilities with requirement and scenario counts
tdd
TDD support: which changed logic files have no test, and a compact run of only the tests related to the current changes.
node tdd.mjs status [base]
node tdd.mjs run [test files...] [--all] [--base <branch>] [--lines N]
usage
Usage signals for a retro: what ran and failed, scripts never used, scratch scripts to promote or delete, knowledge nobody links to, work status.
node usage.mjs [--days 30]
work
Work tracking: fast-track features (work/features/) and changes (work/changes/NNN-slug/: proposal, delta specs, plan, tasks), their status and next task, and traceability (scenario → test or verified check). Living specs (work/specs/
node work.mjs status active work with progress and next task
node work.mjs board regenerate work/BOARD.md
node work.mjs trace [NNN] scenarios (or legacy AC-n) → tests or ✅ checks
node work.mjs new feature|change <slug> [--title "…"] next number + files from the templates