Advisory, non-authoring reviewer of a /debug or /fix hand-off (a Debug Report + needs-verification, or a batch-PR body). Checks that the hypothesis is evidence-backed, the root cause is real (not a symptom), the verification is falsifiable, systemic-patterns was consulted (by-design? regression? shared root?), the fix…
Advisory, non-authoring reviewer of a /pr-dev or /pr-main hand-off before merge. Checks PR base (dev, never master for /pr-dev; the release PR opened not merged for /pr-main), batch-cohesion, CHANGELOG issue-linking + rc-skip correctness, FAQ touch-up when a user-visible surface changed, CLAUDE.md.
Advisory, non-authoring reviewer of a /qa run. Checks that the chosen level (QA-0..QA-5) matched the target's risk, the live-bot drive stayed inside the guardrails (allowlisted dev bot only, bounded volume/pacing/retries, run-ID-tagged messages, fail-closed on a non-dev target), findings were capped (≤5) + de-duped +…
8-step deep debugging for Untether — general sweep across fleet logs + open issues, OR targeted investigation of named GitHub issues with hypothesis + verification spec. Project-aware, fleet-aware.
This directory is the canonical source for each step of Untether's 8-step deep debugging protocol. The parent command file at ../debug.md orchestrates the steps; each file here owns the detail for one step (or one shared output).
Two templates: Debug Report (targeted mode, posted as an issue comment) and Triage Report (sweep mode, printed to stdout). Plus the Verification Spec block embedded inside the Debug Report.
This is the canonical Untether issue-class table. Pick exactly one primary class per issue (the area where the root cause lives). If behaviour crosses boundaries, note a secondary class.
This is the data-source catalogue for Untether debugging. Run the relevant sources for the classified issue type (Step 1). Don't skip — each surfaces different context.
Always research before proposing a fix. The Untether bug you're chasing is often a known upstream engine quirk, a previously-fixed regression, or a documented config gotcha.
Action-authority defect sweep for Untether — run the 8-step /debug engine to a verified hand-off across open actionable defect issues, one at a time, rank-ordered. Branch off dev, minimal fix, tests+lint+changelog, PR to dev, needs-verification. Runaway-capped, batch-cohesion aware. Never master/tag/release.
Execute ONE approved plan-pack phase to a verified hand-off — ground-truth the pack, compose superpowers executing-plans + test-driven-development, build in-scope only, verify (phase tests + pytest + ruff), commit to feature/ -phase-N, STOP before the PR. Refuses multi-phase. Never opens the PR (/pr-dev does) or…
Weekly, human-gated, propose-only promotion of /kaizen bullets. Parse un-struck bullets on the [kaizen] collector, score/dedupe/cluster, present approval packets; on Accept mint a propose-only artefact (pytest/doc/rule draft + GH issue) and strike the source bullet. Never auto-edits rules, hooks.json, CLAUDE.md, or…
Session-end continuous-improvement capture for Untether. Record 0-3 evidence-linked process-learnings as bullets on the permanent [kaizen] GitHub collector issue. Read-only except ONE gh issue comment. Zero captures is a valid outcome. Self-invokes at session end; propose-only downstream via /kaizen-review.
Everyday finalise → ONE merge-ready PR to dev (→ TestPyPI on merge). Take a feature/fix/chore branch from "code+tests done" to a PR with docs reconciliation folded in as a completion criterion (CHANGELOG, FAQ touch-up, CLAUDE.md.
Release-prep for a stable version — confirm dev is green + ahead of master, bump pyproject.toml to X.Y.Z + uv lock, collapse the rc CHANGELOG sections into one dated release entry, run validaterelease.py clean, final FAQ pass, confirm the attestation marker exists, then open ONE dev→master PR and STOP. Merging that PR…
Untether's validation stage — answer "is this validated enough for its risk?" Classify the target + risk, pick the lightest sufficient depth (QA-0..QA-5), run local checks, and (opt-in) orchestrate the integration-test tiers against the allowlisted @untetherdevbot. Files capped findings, routes repair to /debug→/fix…
Claude Code CLI stream-json protocol as consumed by Untether. Covers JSONL event types, content blocks, control channel protocol, permission modes, auto-approve, the outline gate, and ExitPlanMode handling. This is the CONSUMER side — Untether spawns Claude Code as a subprocess.
Codex CLI, OpenCode CLI, and Pi CLI runner protocols for Untether. Covers JSONL event types, event translation, resume mechanisms, and key differences between engines. All three are non-interactive (no control channel).