Reference

Scripts

The zero-dependency plugin scripts and their commands.

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//spec.md) and the delta specs of changes (work/changes/NNN-slug/specs/.md). Notation: EARS requirements (### 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//spec.md) are handled by specs.mjs.

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