session-resume

jrc1883's avatarfrom jrc1883

Use at start of new session to restore context from STATUS.json - loads previous state, displays session type, shows what to continue working on. Calculates session type (Continuation/Resume/Fresh Start) based on time gap. Do NOT use mid-session or when starting fresh work unrelated to previous session - just begin the new task directly.

⭐0stars🔀0forks📁View on GitHub🕐Updated Dec 31, 2025

When & Why to Use This Skill

The Session Resume skill for Claude Code enables seamless context restoration by loading previous session states from a STATUS.json file. It intelligently categorizes sessions into Continuation, Resume, or Fresh Start based on the time elapsed, ensuring the AI agent maintains continuity by tracking branches, test statuses, and pending tasks without manual re-entry.

Use Cases

  • Resuming work after a short break: Automatically identifies a 'Continuation' session (< 30 min) to instantly pick up the exact focus and next action item without losing momentum.
  • Starting a new workday: Triggers a 'Fresh Start' session (> 4 hours) that performs a full context load, verifies git branches, checks uncommitted files, and runs tests to ensure the environment is ready.
  • Context switching between meetings: Provides a 'Resume' summary (30 min - 4 hours) that refreshes the agent on key decisions made and the current implementation progress to reduce cognitive load.
  • Automated session initialization: Integrates with session-start hooks to provide a visual dashboard of the project's health and status the moment a developer opens the terminal.
namesession-resume
description"Use at start of new session to restore context from STATUS.json - loads previous state, displays session type, shows what to continue working on. Calculates session type (Continuation/Resume/Fresh Start) based on time gap. Do NOT use mid-session or when starting fresh work unrelated to previous session - just begin the new task directly."

Session Resume

Overview

Restore context from STATUS.json when starting a new Claude Code session.

Core principle: Start where you left off, not from scratch.

Trigger: Beginning of new conversation (via session-start hook or manual)

Session Types

Based on time since last update:

Time Gap Session Type Behavior
< 30 min Continuation Quick restore, assume full context
30 min - 4 hours Resume Restore context, brief refresh
> 4 hours Fresh Start Full context load, verify state

Resume Process

Step 1: Load STATUS.json

# Check for STATUS.json
if [ -f ".claude/STATUS.json" ]; then
  cat .claude/STATUS.json
elif [ -f "STATUS.json" ]; then
  cat STATUS.json
fi

Step 2: Calculate Session Type

const lastUpdate = new Date(status.lastUpdate);
const now = new Date();
const hoursSince = (now - lastUpdate) / (1000 * 60 * 60);

if (hoursSince < 0.5) return "Continuation";
if (hoursSince < 4) return "Resume";
return "Fresh Start";

Step 3: Display Session Summary

Continuation (< 30 min):

⚡ Continuation Session
Last: 15 minutes ago

Quick context:
- Branch: feature/auth
- Focus: Password reset flow
- Next: Add email template

Ready to continue.

Resume (30 min - 4 hours):

🔄 Resume Session
Last: 2 hours ago

Context restore:
- Branch: feature/auth (2 uncommitted files)
- Last commit: feat: add login form
- In Progress: Implement password reset flow
- Focus: Authentication system
- Next: Add forgot password email template

Key decisions from last session:
- Using nodemailer for emails
- Password reset expires in 1 hour

Shall I continue with the next action?

Fresh Start (> 4 hours):

🌅 Fresh Start Session
Last activity: Yesterday at 2:30 PM

Full context load:
- Branch: feature/auth (2 uncommitted files)
- Last commit: feat: add login form
- Test status: 45 passing
- Build status: passing

Tasks in progress:
- [ ] Implement password reset flow

Last focus: Authentication system
Last blocker: None

Recommended: Review STATUS.json and verify current state before continuing.

Step 4: Verify Current State (Fresh Start only)

For fresh starts, verify the saved state is still accurate:

# Verify branch
git branch --show-current

# Verify uncommitted count
git status --porcelain | wc -l

# Run tests
npm test

# Check services
curl -s http://localhost:3000/health

Report discrepancies if any.

Step 5: Offer to Continue

After displaying context:

Ready to continue. Options:

1. Continue with: [nextAction from STATUS.json]
2. Review full context first
3. Start fresh (ignore previous session)

What would you like to do?

Output Format

┌─────────────────────────────────────────────┐
│ 🔄 Resume Session                           │
│ Last: 2 hours ago                           │
├─────────────────────────────────────────────┤
│ Branch: feature/auth                        │
│ Uncommitted: 2 files                        │
│ Tests: 45 passing                           │
├─────────────────────────────────────────────┤
│ In Progress:                                │
│ • Implement password reset flow             │
├─────────────────────────────────────────────┤
│ Next Action:                                │
│ Add forgot password email template          │
└─────────────────────────────────────────────┘

Integration

Pairs with:

  • session-capture - Creates STATUS.json that this reads
  • context-restore - More detailed context loading

Hook integration:

  • Triggered by session-start hook
  • Runs automatically when Claude Code starts