plugins/dev/skills/resume-handoff/SKILL.md
Resume work from a handoff document. **ALWAYS use when** the user says 'resume handoff', 'pick up where we left off', 'continue from handoff', or provides a handoff document path. Verifies current codebase state against handoff, validates changes, and creates an action plan.
npx skillsauth add coalesce-labs/catalyst resume-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.
# Check project setup (thoughts, CLAUDE.md snippet, config)
if [[ -f "${CLAUDE_PLUGIN_ROOT}/scripts/check-project-setup.sh" ]]; then
"${CLAUDE_PLUGIN_ROOT}/scripts/check-project-setup.sh" || exit 1
fi
# Auto-discover most recent handoff. Three-source waterfall:
# 1. CATALYST_HANDOFF_PATH env var (CTL-484 continuation-worker contract —
# set by orchestrate-revive's continuation branch when it spawns
# `claude --bg --resume` after a turn-cap exhaustion).
# 2. workflow-context.sh recent handoffs (interactive flows).
# 3. (handled later in Step 4) interactive picker.
RECENT_HANDOFF=""
if [[ -n "${CATALYST_HANDOFF_PATH:-}" && -f "$CATALYST_HANDOFF_PATH" ]]; then
RECENT_HANDOFF="$CATALYST_HANDOFF_PATH"
elif [[ -f "${CLAUDE_PLUGIN_ROOT}/scripts/workflow-context.sh" ]]; then
RECENT_HANDOFF=$("${CLAUDE_PLUGIN_ROOT}/scripts/workflow-context.sh" recent handoffs)
fi
if [[ -n "$RECENT_HANDOFF" ]]; then
if [[ "${CATALYST_IS_CONTINUATION:-}" == "true" ]]; then
echo "📋 Continuation worker — resuming from CATALYST_HANDOFF_PATH: $RECENT_HANDOFF"
else
echo "📋 Auto-discovered recent handoff: $RECENT_HANDOFF"
fi
else
echo "⚠️ No recent handoff found in workflow context or filesystem"
fi
This command uses ticket references like PROJ-123. Replace PROJ with your Linear team's ticket
prefix:
.catalyst/config.json if availableTICKET-XXXENG-123, FEAT-456, BUG-789You are tasked with resuming work from a handoff document through an interactive process. These handoffs contain critical context, learnings, and next steps from previous work sessions that need to be understood and continued.
Auto-discovery has already run in Prerequisites above. Check its output and follow this priority:
If CATALYST_IS_CONTINUATION=true AND CATALYST_HANDOFF_PATH is set (CTL-484
continuation-worker contract from orchestrate-revive): the env-var hook in Prerequisites
already selected the handoff. Skip directly to Step 3 without prompting the user — this is
a background-dispatched continuation, not an interactive resume. Confirmation gates would
hang the worker.
If user provided a file path as parameter: Use the provided path (user override). Skip to Step 3.
If user provided a ticket number (like PROJ-123):
humanlayer thoughts sync to ensure thoughts/ is up to datethoughts/shared/handoffs/PROJ-123/ directoryYYYY-MM-DD_HH-MM-SS)If no parameters provided AND Prerequisites output shows a discovered handoff (📋):
If no parameters AND Prerequisites shows no handoff found (⚠️):
thoughts/shared/handoffs/STEP 3: Analyze the handoff
Once you have a handoff path:
Read handoff document completely:
Spawn focused research tasks: Based on the handoff content, spawn parallel research tasks to verify current state:
Task 1 - Verify recent changes:
Check if the recent changes mentioned in the handoff still exist.
1. Verify files mentioned in "Recent changes" section
2. Check if the described changes are still present
3. Look for any subsequent modifications
4. Identify any conflicts or regressions
Use tools: Read, Grep, Glob
Return: Current state of recent changes with file:line references
Task 2 - Validate current codebase state:
Verify the current state against what's described in the handoff.
1. Check files mentioned in "Learnings" section
2. Verify patterns and implementations still exist
3. Look for any breaking changes since handoff
4. Identify new related code added since handoff
Use tools: Read, Grep, Glob
Return: Validation results and any discrepancies found
Task 3 - Gather artifact context:
Read all artifacts mentioned in the handoff.
1. Read feature documents listed in "Artifacts"
2. Read implementation plans referenced
3. Read any research documents mentioned
4. Extract key requirements and decisions
Use tools: Read
Return: Summary of artifact contents and key decisions
Wait for ALL sub-tasks to complete before proceeding
Read critical files identified:
Present comprehensive analysis:
I've analyzed the handoff from [date] by [researcher]. Here's the current situation:
**Original Tasks:**
- [Task 1]: [Status from handoff] → [Current verification]
- [Task 2]: [Status from handoff] → [Current verification]
**Key Learnings Validated:**
- [Learning with file:line reference] - [Still valid/Changed]
- [Pattern discovered] - [Still applicable/Modified]
**Recent Changes Status:**
- [Change 1] - [Verified present/Missing/Modified]
- [Change 2] - [Verified present/Missing/Modified]
**Artifacts Reviewed:**
- [Document 1]: [Key takeaway]
- [Document 2]: [Key takeaway]
**Recommended Next Actions:**
Based on the handoff's action items and current state:
1. [Most logical next step based on handoff]
2. [Second priority action]
3. [Additional tasks discovered]
**Potential Issues Identified:**
- [Any conflicts or regressions found]
- [Missing dependencies or broken code]
Shall I proceed with [recommended action 1], or would you like to adjust the approach?
Get confirmation before proceeding
Use TodoWrite to create task list:
Present the plan:
I've created a task list based on the handoff and current analysis:
[Show todo list]
Ready to begin with the first task: [task description]?
When you need to fetch ticket context from Linear (e.g., reading a ticket referenced in the
handoff), use the Linearis CLI. For exact syntax, run linearis issues usage or see
/catalyst-dev:linearis — do not guess commands.
Be Thorough in Analysis:
Be Interactive:
Leverage Handoff Wisdom:
Track Continuity:
Validate Before Acting:
User: /catalyst-dev:resume-handoff specification/feature/handoffs/handoff-0.md
Assistant: Let me read and analyze that handoff document...
[Reads handoff completely]
[Spawns research tasks]
[Waits for completion]
[Reads identified files]
I've analyzed the handoff from [date]. Here's the current situation...
[Presents analysis]
Shall I proceed with implementing the webhook validation fix, or would you like to adjust the approach?
User: Yes, proceed with the webhook validation
Assistant: [Creates todo list and begins implementation]
testing
Phase-agent that fixes a failing verify verdict so the pipeline self-heals instead of stalling to needs-human (CTL-653). Reads `${ORCH_DIR}/workers/<ticket>/verify.json`, fixes the `findings[]` (every severity:"high" plus the regression_risk drivers) directly via Edit/Write, commits the remediation, and emits `phase.remediate.complete.<ticket>`. The scheduler's router then re-dispatches `verify` to re-check (the verify⇄remediate cycle, cap 3). Dispatched as a `claude --bg` job by `phase-agent-dispatch`, which invokes it via slash command — hence `user-invocable: true`.
development
Phase agent for the verify step of the 9-phase orchestrator pipeline (CTL-450). NEW skill — has no canonical wrapper. Runs read-only adversarial verification against the implement-phase diff: tsc, tests, lint, security scan, reward-hacking scan, code review, test coverage, silent-failure hunt. Writes ${ORCH_DIR}/workers/<TICKET>/verify.json then emits phase.verify.complete.<ticket>. Reads phase-implement.json as its prior-phase artifact. NEVER writes application code — only test files allowed. Spawned via phase-agent-dispatch via slash command — hence `user-invocable: true`.
tools
--- name: phase-triage description: Phase agent that triages a Linear ticket — expands acronyms, classifies (feature/bug/docs/refactor/chore), identifies dependencies, estimates scope, writes triage.json, and posts a triage analysis comment to Linear. Triage completion is signaled by that comment plus the local triage.json — there is no `triaged` label. Emits phase.triage.complete.<TICKET> on success and phase.triage.failed.<TICKET> on error. Dispatched by the phase-agent orchestrator (CTL-452)
testing
Phase agent for the review step of the 9-phase orchestrator pipeline (CTL-450). Wraps the /review skill (gstack) — explicitly skips /ultrareview per user decision. Reads verify.json from the prior phase, runs /review against the diff, writes ${ORCH_DIR}/workers/<TICKET>/review.json, and creates a remediation commit for any HIGH-severity finding that has a deterministic fix. Emits phase.review.complete.<ticket>. Spawned via phase-agent-dispatch via slash command — hence `user-invocable: true`.