skills/handoff/SKILL.md
Write a handoff doc for the next session — either continuing the current arc, or proposing the natural next pickup if the current arc is wrapping up.
npx skillsauth add raddue/crucible handoffInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Write a handoff document so a fresh agent (with no memory of this conversation) can pick up where we left off.
Skill type: Rigid — follow the process; omit-over-fill is preferred over padding.
Execution model: Direct execution by the orchestrator. No subagent dispatch.
Announce at start: Output [handoff] Writing handoff document... before any processing.
Do not start or continue the work itself. Your only job here is to produce the handoff file. If you notice something that needs doing, write it as an open question — don't go fix it.
Before writing anything, sanity-check that there's actually something to hand off. Run these sub-steps in order:
git rev-parse --is-inside-work-tree. If it fails (not a git repo), ask the user where to write the file and what scope counts as "the project," then proceed using whatever they say. Skip git-specific verification steps in the rest of the process when in this mode. This step always runs first regardless of $ARGUMENTS.$ARGUMENTS (see bottom of this file) is non-empty, treat it as sufficient evidence of an arc and skip step 3. Proceed to Mode selection.git status shows modifications/staged), recent commits on a non-default branch, or an active line of investigation in the conversation? If none of the above apply (fresh session, clean tree, no real conversation history): tell the user there's nothing to hand off, suggest they invoke /handoff again after doing some work, and stop. Do not create a file.Survey the current session and the project state, then decide:
(A) Continuation handoff — when there's clearly an in-progress arc:
(B) Backlog handoff — when the current arc is genuinely wrapping up:
If you're in mode A but want to mention upcoming-pickup candidates, add a brief "Next on deck" subsection to the Continuation handoff — don't switch modes.
Ambiguity check — ask, don't guess. If the session has clear signals for one mode (mid-feature with concrete next steps → A; user just said "we shipped, what's next?" → B), pick silently and state the choice + one-line reason at the top of the doc. But if the session genuinely could go either way — e.g., one arc just shipped AND a separate half-done thread exists, or the user paused with no clear "done" signal but also no obvious next action — surface the choice to the user with one-line summaries of what each mode would produce, and let them pick. The user has context the model doesn't (what they're about to do next, whether the half-done thread matters). When the user is away or asks for default behavior, fall back to (A) — losing context is more costly than losing pickup recommendations.
Lead with what to do next — a fresh agent should be able to start the very next concrete action within 60 seconds of reading. Then layer in the context they need to act sensibly.
Sections to consider, in this order. Skip any section that would only contain restated generalities or filler — empty omission is preferred over padding. "Required" means "include if there's something real to put in it."
CLAUDE.md and MEMORY.md if those exist; otherwise capture from conversation.Lead with what just shipped so the next agent understands what's now stable. Then propose pickups, ordered by what makes the most sense to do next given the actual state of the codebase and project.
Same omit-over-filler rule applies.
Read the room. Survey the conversation, recent git log, recent PRs/issues, and the project's MEMORY.md / CLAUDE.md (if present) to understand current state.
For mode B, also identify the scope of the just-shipped arc by reading the most recent merged PRs/commits and the tickets they close. State the inferred scope (milestone, epic, label, or topic name) explicitly at the top of the handoff doc. If the scope is genuinely ambiguous (multiple plausible milestones), surface 2-3 candidates and ask the user which to use before continuing.
Decide A vs B. State your choice and one-line reason at the top of the doc.
Source the backlog (mode B only). Detect the project's issue tracker before querying:
git remote -v. If github.com and gh is on PATH → gh issue list.gitlab.com and glab is on PATH → glab issue list.gh issue list / glab issue list, filter by the milestone, epic label, or topic identified in step 1 (e.g., gh issue list --milestone 'Hex Phase 3' or --label epic:foo). Only fall back to an unfiltered list if no scope can be derived from the session.docs/plans/, docs/todo.md, TODO.md, in-tree // TODO: comments). Never invent issue numbers — if you can't find a real source, say so and ask the user.Verify load-bearing claims, with a budget. Spend at most a handful of tool calls verifying things you're about to cite (current branch name, last commit SHA, PR numbers, file paths, function names). If a claim can't be cheaply verified, mark it (unverified) in the doc rather than digging deeper. Don't audit the entire codebase.
Write the file. Detect the project's handoff convention before choosing a path:
docs/handoffs/, handoffs/, or .handoffs/ directory in the project root. If one exists, use it and match the filename style of the most recent file in that directory (ls -t | head it).docs/handoffs/YYYY-MM-DD-<short-topic-slug>.md. Create the directory if needed and note the new convention in the doc itself.<milestone-or-epic>-backlog).-pt2 (or -pt3, etc.) appended to the slug, and reference the prior file's path in the new file's first paragraph. The Read this doc and continue: line then points unambiguously at the freshest content.Output the file path — see Output Contract below.
The user explicitly asked for the file location in the response. Make it impossible to miss:
Read this doc and continue: <absolute path>. Example: Read this doc and continue: /home/user/project/docs/handoffs/2026-04-19-foo.md<repo-root>/<relative-path> where repo-root comes from git rev-parse --show-toplevel. Native path separators are fine (Windows backslashes are acceptable). In the non-git fallback mode (see Step 0), use whatever absolute path the user directed you to write to.Read this doc and continue: (none — nothing to hand off) — same no-fence rule applies.(unverified).2026-04-19), not relative (yesterday, this week) — handoffs are read days or weeks later.Additional user instructions for this handoff (may be empty — if empty, proceed with the defaults above; if non-empty, treat as scoping/emphasis hints, not as a replacement for the process):
$ARGUMENTS
testing
Standalone instance-bug reviewer — runs a parallel finder fan-out + verify gate over a diff or a path and prints ranked, verified findings. Use when the user says "delve", "find bugs in this diff", "review this for bugs", "scan this file/subsystem for defects", "instance-bug sweep", or wants concrete reproducible defects (not a merge verdict, not systemic health). Works on a PR id, a base..head range, or a path, on any forge (GitHub, GitLab, Bitbucket, self-hosted).
testing
Render the Crucible calibration ledger weekly report — the honest "Crucible caught N silent bugs" headline, verdict breakdown, per-skill severity rates, and the inflation detector. Triggers on "/ledger", "weekly report", "weekly ledger", "caught N", "quality ledger", "calibration report", "render the ledger".
development
The Book of Grudges — cross-session bug graveyard. Every fixed bug is recorded as a structured "grudge"; before touching code, skills query the grudgebook for the files in scope and surface past regressions as forced "DO NOT REPEAT" context. Read mode (pre-flight) and write mode (on bug resolution / fix(*) PR). Machine-local, per-repo, never committed. Triggers on /grudge, "check grudges", "record a grudge", "any past bugs here", "regression oracle", "bug graveyard".
testing
Reconcile the Crucible calibration ledger — walk merged fix/hotfix branches to falsify the originating gating-verdicts, compute per-skill Brier calibration scores, and append a falsification log. Triggers on "/calibration-reconcile", "reconcile ledger", "reconcile calibration", "falsify verdicts", "brier score", "calibration reconcile", "compute brier".