Agent skill
resume-work
Restore session state from handoff artifacts (HANDOFF.json, .continue-here.md, task_plan.md) and resume.
Install this agent skill to your Project
npx add-skill https://github.com/notque/claude-code-toolkit/tree/main/skills/resume-work
SKILL.md
/resume-work - Session State Restoration
Overview
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:
- HANDOFF.json — Best case. Machine-readable, structured, created by explicit
/pause. Contains reasoning context. - .continue-here.md — Good case. Human-readable prose. May exist without JSON if user wrote it manually.
- task_plan.md — Fallback. Records task structure but not session reasoning. Better than nothing.
- git log + git status — Last resort. Can infer recent activity but cannot reconstruct reasoning or rejected approaches.
Each level down the cascade loses more context, so the skill always starts from the top.
Instructions
Phase 1: DISCOVER
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:
- Read and parse the JSON
- Check
created_attimestamp — if older than 24 hours, setstale_warning = trueand plan to alert user before proceeding - This is the richest source: proceed to Phase 2 with full structured data
- Also read
.continue-here.mdif it exists (for supplementary prose context)
Step 3: Check for .continue-here.md (Priority 2)
If no HANDOFF.json but .continue-here.md exists:
- Read the prose content
- Extract what you can: task description, completed items, next action, decisions
- Note that reasoning context may be limited compared to JSON handoff
Step 4: Check for task_plan.md (Priority 3)
If neither handoff file exists but task_plan.md exists:
- Read the plan
- Extract: completed phases
[x], remaining phases[ ], decisions, errors, current status - Note: this source captures task structure but not session reasoning
Step 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."
Phase 2: RECONSTRUCT
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.
Phase 3: PRESENT
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
- Quick resume (user said "continue", "resume", or similar with no qualifiers): Skip options menu and proceed directly to Phase 4 to execute
next_action. This optimizes for the common case where the user trusts the handoff and wants to get back to work fast. - Review mode (user said "what was I doing", "where did I leave off", or asked a question): Display dashboard only, wait for user to choose what to do next
GATE: User has seen the dashboard. In quick resume mode, proceed to Phase 4. In review mode, wait for user direction.
Phase 4: EXECUTE
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:
- If it matches a skill trigger (e.g., "run tests" -> /vitest-runner), invoke that skill via the
/dorouting system for proper agent/skill selection - If it describes a code change, proceed with the implementation directly
- If it requires user input (e.g., "need clarification on threshold"), present the question
Carry 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.
Error Handling
Error: No State Sources Found
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."
Error: HANDOFF.json Parse Failure
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.
Error: Uncommitted Files Missing
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.
Error: Stale Handoff Rejected
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.
References
Related Skills
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 phases
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
voice-writer
Unified voice content generation pipeline with mandatory validation and joy-check. 9-phase pipeline: LOAD, GROUND, GENERATE, VALIDATE, REFINE, JOY-CHECK, OUTPUT, CLEANUP. Use when writing articles, blog posts, or any content that uses a voice profile. Use for "write article", "blog post", "write in voice", "generate content", "draft article", "write about".
image-auditor
Non-destructive image validation for accessibility and health.
video-editing
Video editing pipeline: cut footage, assemble clips via FFmpeg and Remotion.
comment-quality
Review and fix temporal references in code comments.
e2e-testing
Playwright-based end-to-end testing workflow.
anti-ai-editor
Remove AI-sounding patterns from content.
Didn't find tool you were looking for?