Bug → §V protocol. Traces root cause, decides whether a new §V invariant prevents recurrence. Invoke when the user says "ds:backprop", "bug: ", "backprop B ", "root-cause this", "add invariant for ", or auto-trigger from ds:build on test failure.
Drift detector. Mutates no DOSSIER.md and no repo; it writes only derived caches. Invoke when the user says "ds:check", "check drift", "audit dossier", "does code still match spec", "verify invariants", or before opening a PR.
Run a wave contract's done-when criteria and report whether the wave is over. Use when the user says "ds:converge", "are we done", "is this wave finished", or asks whether more work on the current wave is warranted.
Define-phase interrogation before ds:new. Separates environment-lookup facts (model looks up, cites, never asks) from operator decisions (asked, never assumed) — serial one-question-at-a-time while decisions chain, frontier-batched rounds once independent. Stops only when the frontier is empty AND the operator…
Convert legacy 4-file dossiers (PLAN+SPEC+AUDIT+closeout/) to single-file DOSSIER.md. Invoke when the user says "ds:migrate", "migrate dossiers", "convert legacy dossier", "migrate from ck/cavekit/SPEC.md", or after installing the plugin to upgrade existing repos.
Scaffold a new dossier. Sole entrypoint for starting a phase wave. Invoke when the user says "new dossier", "start dossier", "open dossier", "ds:new", or "scaffold dossier ".
Persist Claude Code TaskList across session boundaries. PreCompact + SessionEnd hooks auto-dump. Invoke when user says "/dossier:roll", "roll the session", "save tasks before compact", "restore tasks", "dump tasklist".
Ship-stage changelog before ds:close, derived from the §T ledger. Version bump is advisory, never an auto tag. Invoke when the user says "ds:ship", "generate the changelog", "write the changelog for this wave", "what's the version bump", or before ds:close --complete / --successor on a dossier with unreleased §T work.…
The dossier driver + read-only sit-rep. Default session-open action. Invoke when the user says "ds:status", "ds", "dossier status", "where are we", "sit-rep", "what's next", "check dossier", or session-start before any other ds: verb.
Empirical fact-check for freshness-sensitive claims — versions, EOLs, package latest, GitHub Action SHAs, k8s apiVersions, AI model deprecations, image tags, or anything the model's training cutoff may have staled. Primary sources only. Auto-fires as a PreToolUse hook on Edit/Write/MultiEdit, but only in a repo with a…
Adversarial doubt cycle on a plan or design before any code exists — distinct from post-hoc code review. Use when the user asks to doubt this, stress-test a design before building it, poke holes in a plan, find the flaw in an approach, or before committing to a non-trivial architecture or design decision.
Run a test suite repeatedly, compute a per-test flakiness rate, quarantine the nondeterministic ones. Use when the user asks whether a test is flaky, to audit test health, why a test sometimes fails, to find flaky tests, or as a scheduled nightly or weekly test-health routine.
Resolve git merge or rebase conflicts hunk-by-hunk with mandatory post-resolution verification. Use when the user hits a merge conflict, asks to resolve conflicts, fix the merge, or handle a rebase conflict, or when git reports CONFLICT / "both modified".
Lint and structure-check a SKILL.md — frontmatter, line budget, trigger clause, reference depth. Use when the user asks to write a new skill, review this skill, lint a SKILL.md, check skill frontmatter, or after editing any file under a skills//SKILL.md path.
Drive one vertical slice of behaviour red-green-refactor, seam agreed before the first test. Use when the user asks to add a feature, fix a bug, write code test-first, says "TDD this", "red green refactor", or "write a failing test first". Inside a live dossier:build covenant, invoke dossier:build instead — it…
Check the column budget of the lines a change adds, and read that change against the TIGERSTYLE shape rules a script cannot judge. Use when the user asks about line length or column limits, to check code shape, what the column check flagged, or why a commit was blocked on a column budget.