session-continuation
Project-agnostic guidance for continuing work across Claude sessions. Ensures context recovery, task resumption, and state reconciliation.
When & Why to Use This Skill
This Claude skill provides a comprehensive framework for session continuation and context recovery across AI interactions. It enables Claude to intelligently resume work by performing mandatory hygiene checks, verifying git status, and reconciling backlog states. By standardizing startup and handoff protocols, it ensures project-agnostic guidance that prevents lost work, eliminates duplicate efforts, and maintains high productivity across multiple sessions.
Use Cases
- Resuming complex development tasks by automatically checking git status and uncommitted changes to pick up exactly where the last session ended.
- Recovering project context through automated backlog analysis to identify orphaned 'In Progress' tasks and clear out stale 'Done' items.
- Generating structured session handoff reports that document completed work, current blockers, and recommended next actions for the next AI interaction.
- Reconciling project state by synthesizing information from CLAUDE.md files, task notes, and git history to ensure the agent's internal context matches the actual file system.
- Preventing context thrashing in multi-task environments by enforcing a 'one task at a time' focus and mandatory cleanup of unarchived tasks.
| name | session-continuation |
|---|---|
| description | Project-agnostic guidance for continuing work across Claude sessions. Ensures context recovery, task resumption, and state reconciliation. |
Session Continuation Skill
Purpose
Guide Claude sessions to resume work intelligently by recovering context, identifying in-progress tasks, and reconciling state from previous sessions.
Session Startup Hygiene Protocol (MANDATORY)
BEFORE accepting user's work request, ALWAYS run these checks:
1. Check Git Status
git status
Look for:
- Uncommitted changes: Modified or staged files from previous session
- Action: Ask user "Commit or discard these changes?"
- Never proceed with new work until resolved
- Untracked files in
backlog/tasks/: Indicates MCP bypass (tasks created via Write instead of MCP tools)- Action: STOP immediately and alert user
- These files won't be indexed by Backlog MCP
- Current branch: Feature work vs. main
- Ahead/behind remote: Unpushed commits
2. Check Backlog State
# Find orphaned In Progress tasks
mcp__backlog__task_list(status="In Progress")
# Find stale Done tasks needing archive
mcp__backlog__task_list(status="Done", limit=20)
Look for:
- "In Progress" tasks: Should typically be 0-1 (focus on one task at a time)
- Action: Complete tasks with
task_complete(id)or reset to "To Do" withtask_edit(id, status="To Do") - Ask user: "Which task should I focus on?"
- Action: Complete tasks with
- >10 "Done" tasks: Indicates backlog clutter
- Action: Archive completed tasks with
task_complete(id)to move to completed/ folder - Keeps active backlog clean and focused
- Action: Archive completed tasks with
3. Report Findings to User
Present hygiene check results BEFORE starting new work:
Example Report:
Session startup hygiene check:
Git status:
- 2 uncommitted files: draft-1.md (1,200 words), research.md (updated citations)
- Recommendation: Commit these before starting new work?
Backlog state:
- 2 tasks In Progress: task-35.2 (first draft), task-36.1 (research)
- 15 tasks Done (not archived)
- Recommendation: Complete task-35.2 or reset to To Do? Archive Done tasks?
Please confirm cleanup approach before I proceed.
This protocol prevents:
- Lost work from uncommitted changes
- Blocking caused by orphaned In Progress tasks
- Backlog clutter from unarchived Done tasks
- Duplicate work from missing context
Session Start Protocol
Critical: Assess before acting. Never assume clean slate.
1. Run Mandatory Hygiene Checks (see above)
Complete all cleanup actions before proceeding to context recovery.
2. Read Workflow Overview
# If MCP resources available:
Read backlog://workflow/overview
# If only tools available:
Call: mcp__backlog__get_workflow_overview()
Why: Understand project-specific task management conventions before searching.
3. Read Relevant CLAUDE.md Files
Always read project documentation to understand current state:
# Project root documentation
Read(file_path="/CLAUDE.md")
# If working in subdirectory, read that CLAUDE.md too
Read(file_path="/path/to/subdir/CLAUDE.md")
# Example: Working on Essay 6
Read(file_path="/essays/06-skills-crisis-build-vs-buy/CLAUDE.md")
What to look for:
- Project status and completion notes
- Known issues and blockers
- Next recommended actions
- Quality standards specific to that component
- Recent work artifacts and decisions
4. Search for Relevant Tasks
# Option 1: List all in-progress (after hygiene cleanup)
mcp__backlog__task_list(status="In Progress")
# Option 2: Search by keyword
mcp__backlog__task_search(query="<project-specific term>")
# Option 3: List recent tasks
mcp__backlog__task_list(limit=10)
Priority order: In Progress → assigned to you → recently modified → high priority
5. Assess Current State
Before responding to user, synthesize:
- Active tasks and their status
- Uncommitted changes and what they represent (if hygiene check found any)
- Blockers or dependencies
- Recommended next action (from CLAUDE.md or task notes)
Report findings. Don't start work until user confirms direction.
Finding Existing Work
Task Discovery Pattern
1. Broad search first:
mcp__backlog__task_list(status="In Progress", limit=20)
2. Narrow by assignment:
mcp__backlog__task_list(assignee="<your-name>", limit=10)
3. Keyword search for topic:
mcp__backlog__task_search(query="essay", status="In Progress")
4. View full context:
mcp__backlog__task_view(id="task-XX")
What to Extract from Tasks
From task metadata:
- Title and description (what needs doing)
- Status (To Do, In Progress, Done)
- Assignee (who's responsible)
- Dependencies (what must complete first)
- Priority (urgency)
From task notes:
- Implementation plan (architectural decisions)
- Progress updates (what's been tried)
- Blockers (issues encountered)
- Commit references (where work is stored)
From acceptance criteria:
- Definition of done
- Quality standards
- Verification steps
Resuming In-Progress Tasks
Context Recovery Checklist
Before continuing work:
Read task plan (
task_view→ Implementation Plan section)- What approach was decided?
- What architectural decisions were made?
- Are there known issues flagged?
Check implementation notes (
task_view→ Notes section)- What's been completed?
- Where did previous session stop?
- Are there partial commits?
Review git history
git log --oneline -10 git diff- What was committed?
- What's uncommitted (work in progress)?
- Does git state match task notes?
Identify continuation point
- Don't restart completed subtasks
- Don't re-research already gathered information
- Pick up where previous session left off
Common Continuation Scenarios
Scenario A: Task marked "In Progress" with commits
- Previous session made progress and committed
- Read commits to understand what's done
- Continue with next subtask in plan
Scenario B: Task marked "In Progress" with uncommitted changes
- Previous session was interrupted mid-work
- Review uncommitted changes to understand intent
- Option 1: Commit work if complete
- Option 2: Continue work if incomplete
- Option 3: Discard if wrong direction (confirm with user)
Scenario C: Task marked "In Progress" with no changes
- Task was started but no progress made
- Previous session may have been planning-only
- Check task notes for decisions/blockers
- Start execution if plan exists
Scenario D: Multiple tasks "In Progress"
- Previous session was coordinating parallel work
- Identify highest priority or most advanced
- Complete one before switching (avoid context thrash)
Context from Previous Session
User Provides Handoff Message
Common pattern: User pastes final message from previous session:
Example handoff:
"Completed: task-35.1 (research compilation)
In Progress: task-35.2 (first draft - 40% done)
Blocked: task-35.3 (waiting for draft completion)
Next: Finish draft, then move to critique"
Your response:
Verify against current state:
mcp__backlog__task_view(id="task-35.2") git statusReconcile discrepancies:
- Handoff says 40% done → Check files/commits for evidence
- If missing: Ask user if work was committed
- If present: Confirm continuation point
Extract actionable items:
- What was completed (mark Done if not already)
- What's in progress (resume here)
- What's blocked (understand dependency)
- Recommended next action (execute or propose alternative)
Report reconciliation: "Verified: task-35.1 is complete with commit abc123. Task-35.2 shows draft-1.md at 2,100 words (target 4,000-5,000). Resuming draft generation from Section 3."
No Handoff Provided
User says: "Continue where we left off"
Your protocol:
- Check In Progress tasks
- Check git status
- Synthesize state
- Propose next action
- Wait for confirmation
Example response: "Found task-35.2 (first draft) marked In Progress. Git shows draft-1.md with 2,100 words uncommitted. Last commit was research completion. Recommend: Continue draft to 4,000-5,000 words, then commit. Proceed?"
Session Handoff Protocol
Ending a Session
Before closing conversation, document:
Completed work:
- Task IDs marked Done
- Commits with messages and SHAs
- Files created/modified
In-progress work:
- Task IDs still active
- Current state (percentage, section, blocker)
- Where to resume
Blocked work:
- Task IDs waiting on dependencies
- What's blocking (missing input, decision needed)
- Estimated unblock timing
Recommended next actions:
- What should happen next session
- Priority order if multiple options
- Dependencies to check
Handoff Template
## Session Summary
**Completed:**
- [task-35.1] Research compilation → commit abc123
- [task-35.5] Editorial standards → commit def456
**In Progress:**
- [task-35.2] First draft (2,100/4,000 words, Section 3 incomplete)
Resume: Continue Section 3, then Sections 4-5
**Blocked:**
- [task-35.3] Critique (waiting for draft completion)
Unblock: After task-35.2 completes
**Next Session:**
1. Finish task-35.2 (first draft)
2. Commit draft when complete
3. Start task-35.3 (critique)
Update task notes with this summary:
mcp__backlog__task_edit(
id="task-35.2",
notesAppend=["Session ended: 2,100 words complete. Resume at Section 3."]
)
Handling Stale State
Detecting Stale State
Indicators:
- Task marked "In Progress" but last modified >24 hours ago
- No commits/notes since marked In Progress
- Multiple tasks In Progress with no clear priority
- Git shows uncommitted changes but task notes silent
Resolution Pattern
1. Assess legitimacy:
- Is work actually in progress? (check files, commits)
- Was session interrupted? (no notes but partial work exists)
- Was task abandoned? (no evidence of work)
2. Update task state:
If work exists but incomplete:
mcp__backlog__task_edit(
id="task-XX",
notesAppend=["Resuming after interruption. Found partial work in <file>."]
)
If task should be reset:
mcp__backlog__task_edit(
id="task-XX",
status="To Do",
notesAppend=["Reset to To Do - no progress evidence found."]
)
If task should be completed:
mcp__backlog__task_complete(id="task-XX")
# Then add completion notes
3. Handle uncommitted changes:
If changes are valuable:
git add <files>
git commit -m "[task-XX] Recovered work from previous session"
If changes are experimental/broken:
- Confirm with user before discarding
- Consider stashing:
git stash save "WIP from previous session"
Quick Start Checklist
Every new session, before responding to user:
Hygiene Checks (MANDATORY - Do First)
- Run
git statusto check uncommitted work and untracked files - Call
task_list(status="In Progress")to find orphaned tasks - Call
task_list(status="Done", limit=20)to check for backlog clutter - Report hygiene findings to user BEFORE starting work
- Wait for user direction on cleanup actions
Context Recovery (After Hygiene Cleanup)
- Read
backlog://workflow/overviewor callget_workflow_overview() - Read
/CLAUDE.md(project overview) - Read subdirectory
CLAUDE.mdif working in specific component - Search for relevant tasks (after hygiene cleanup)
- If user provided handoff, call
task_view(id=...)to verify - Synthesize current state (completed, in-progress, blocked)
- Report findings to user with recommended next action
- Wait for user confirmation before executing work
Never assume:
- Clean slate (previous session may have left work)
- Task state is accurate (verify against files/commits)
- User wants to continue last task (ask for priorities)
- Backlog is clean (always run hygiene checks)
Always verify:
- Git status is clean (no uncommitted changes)
- Backlog state is focused (0-1 In Progress tasks, <10 Done tasks)
- What was done (commits, notes)
- What's pending (tasks, dependencies)
- What's blocked (missing inputs, decisions)
Integration with Project Workflows
This skill is project-agnostic. Combine with project-specific skills:
- Research compilation: Continue gathering sources from where previous session stopped
- Essay drafting: Resume writing at last completed section
- Code implementation: Continue from last commit, check for breaking changes
- Review processes: Pick up review checklist from last verified item
Key principle: Never duplicate work. Always recover context before acting.