skills/resume-work/SKILL.md
Restore session state from handoff artifacts (HANDOFF.json, .continue-here.md, task_plan.md) and resume.
npx skillsauth add notque/claude-code-toolkit resume-workInstall 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.
This skill reconstructs session state from handoff artifacts so work can continue without wasting time re-reading files and re-discovering decisions. It is the consumer half of the pause/resume pair — /pause-work creates the artifacts, /resume-work consumes them.
The priority cascade exists because handoff quality varies:
/pause. Contains reasoning context.Each level down the cascade loses more context, so the skill always starts from the top.
Goal: Find the best available state source using the priority cascade. Always check sources in order to ensure no high-quality context is lost (higher sources contain richer information than lower ones).
Step 1: Identify project root
git rev-parse --show-toplevel
Step 2: Check for HANDOFF.json (Priority 1)
Look for {project_root}/HANDOFF.json. If found:
created_at timestamp — if older than 24 hours, set stale_warning = true and plan to alert user before proceeding.continue-here.md if it exists (for supplementary prose context)Step 3: Check for .continue-here.md (Priority 2)
If no HANDOFF.json but .continue-here.md exists:
Step 4: Check for task_plan.md (Priority 3)
If neither handoff file exists but task_plan.md exists:
[x], remaining phases [ ], decisions, errors, current statusStep 5: Fall back to git reconstruction (Priority 4)
If no handoff files and no task_plan.md:
# Recent activity
git log --oneline -20
# Current branch context
git branch --show-current
# Uncommitted work
git status --short
# What's changed
git diff --stat
Synthesize a best-effort summary from git state. This is the least precise reconstruction — it shows WHAT happened but not WHY. Never skip to this source if higher-priority sources exist, as that would lose context.
Step 6: Set reconstruction quality indicator
| Source | Quality | Missing | |--------|---------|---------| | HANDOFF.json | Full | Nothing — richest source | | .continue-here.md | Good | Structured data, may lack reasoning detail | | task_plan.md | Partial | Session reasoning, rejected approaches, mental model | | git log | Minimal | All reasoning context, decisions rationale, next action specifics |
GATE: At least one state source found and read. If ALL sources are empty (no handoff, no plan, no git history), inform user: "No session state found. Use /do to start a new task."
Goal: Build a coherent state picture from available sources. Always present a status dashboard before taking action — the user needs to confirm the reconstructed state matches reality, since self-assessment of "what I was doing" is inherently fallible.
Step 1: Verify uncommitted files
If the handoff reports uncommitted_files, check whether they still exist (work may have been lost during worktree cleanup or manual revert):
# For each file in uncommitted_files list
git status --short -- <file>
Flag any files that were listed as uncommitted but are now missing — these represent potential work loss.
Step 2: Check for false completions
If the handoff reports false_completions, verify those placeholder markers still exist in the codebase. They may have been fixed by manual intervention between sessions.
Step 3: Synthesize status dashboard
Build the dashboard from available data. This dashboard is your knowledge checkpoint — it prevents false assumptions from carrying into the resumed session:
===================================================================
SESSION RESUMED
===================================================================
Source: HANDOFF.json (created: <timestamp>) [STALE WARNING if applicable]
Branch: <branch> (base: <base_branch>)
Task: <task_summary>
Completed:
- <completed item 1>
- <completed item 2>
Remaining:
- <remaining item 1>
- <remaining item 2>
Blockers: <blockers or "None">
Key Decisions:
- <decision>: <reasoning>
Uncommitted Work: <N file(s)> [WARNING: N file(s) missing if applicable]
False Completions: <N placeholder(s)> [or "None detected"]
Next Action:
<next_action description>
===================================================================
GATE: Status dashboard constructed. Ready to present to user.
Goal: Show the user what was reconstructed and confirm before proceeding. Never skip the dashboard — it is the validation checkpoint that catches assumptions made by the new session before they cause problems.
Step 1: Display status dashboard
Show the dashboard from Phase 2.
Step 2: Handle stale handoff warning
If stale_warning is true, warn the user before proceeding (stale handoffs may describe work superseded by manual changes between sessions):
WARNING: Handoff is from <timestamp> (>24 hours ago).
State may not reflect manual changes made since then.
Proceed with this handoff or discard it? [proceed/discard]
If user discards, fall to next priority level in cascade.
Step 3: Determine action mode
next_action. This optimizes for the common case where the user trusts the handoff and wants to get back to work fast.GATE: User has seen the dashboard. In quick resume mode, proceed to Phase 4. In review mode, wait for user direction.
Goal: Route to the next action and clean up handoff files (they are ephemeral session artifacts, not persistent state, so keeping them risks future /resume-work calls loading outdated context).
Step 1: Execute next action
Take the next_action from the handoff and execute it:
/do routing system for proper agent/skill selectionCarry forward all context from the handoff: decisions made, approaches rejected, gotchas to avoid. Honor previous session's findings unless circumstances have changed — reexploring rejected approaches burns context on work already done.
Step 2: Clean up handoff files
After the next action has been initiated (not necessarily completed — just successfully started), delete the one-shot handoff artifacts to prevent stale state:
# Remove one-shot handoff artifacts
rm -f HANDOFF.json .continue-here.md
If --keep flag was provided, skip deletion (use only for debugging).
Step 3: Update task_plan.md if present
If task_plan.md exists, update its status line to reflect that the session has resumed. The plan is the persistent record; handoff is the ephemeral session context:
**Status**: Resumed from handoff — executing: <next_action summary>
GATE: Next action initiated. Handoff files cleaned up. Session is now in active work mode. Note: This skill never modifies code, resets git state, or discards uncommitted changes — it only reads and deletes handoff files.
Cause: No HANDOFF.json, no .continue-here.md, no task_plan.md, and git log is empty or on a fresh branch Solution: Inform user: "No session state found to resume from. Use /do to start a new task, or describe what you were working on and I'll reconstruct manually."
Cause: HANDOFF.json exists but contains invalid JSON (corrupted, partially written, manually edited badly) Solution: Warn user about the parse error. Fall through to .continue-here.md if it exists, otherwise fall to task_plan.md. Do not silently ignore the error — the user should know their handoff was corrupted.
Cause: Handoff reports uncommitted files that no longer exist (worktree cleanup, manual deletion, git checkout)
Solution: Alert the user with specific file names. These changes are likely lost. The user may need to recreate them — the handoff's context_notes and decisions can help guide reconstruction.
Cause: User chose to discard a stale (>24h) handoff Solution: Delete the stale handoff files and fall through to the next priority level in the cascade (task_plan.md or git log). Proceed with the lower-quality reconstruction.
pause-work — Creates the handoff artifacts this skill consumesdo — Routes next_action to appropriate agent/skill for executionworkflow-orchestrator — For complex multi-phase tasks that benefit from handoff between phasesdata-ai
Extract video transcripts: yt-dlp subtitles to clean paragraphs.
tools
Collect, filter, and freshness-qualify news items.
development
Convert PDF, Office, HTML, data, media, ZIP to Markdown.
testing
Verify factual claims against sources before publish.