context-saver
π―SkillInstallation
npx skills add mhylle/claude-skills-collection --skill context-saverRun it in a terminal; it asks which AI coding tools to install it for (Claude Code, Codex, Cursor and more).
Uses skills.sh Β· Node.js 22.20+
After installing
It does not run on its own. Call it when you need it.
/context-saverInstall by hand
Copy the whole skill folder from GitHub to the place below. Copying only SKILL.md can leave out files the skill uses.
Open the skill folder β- This project
.claude/skills/context-saver/ - All projects
~/.claude/skills/context-saver/
These paths are for Claude Code. For other tools, the command above puts it in the right place.
SKILL.md
View on GitHub βWrite the current session's in-flight work state to a human-readable handoff doc on disk (docs/context/CONTEXT-{topic}.md) so a future chat session β or another person β can pick up exactly where this one stops. Distinct from Claude Code's built-in memory system, which captures long-lived facts and preferences; this skill captures **active session context** (what's being built right now, which files are mid-edit, what's been tried, what's next). Use when the user says "save context", "checkpoint", "save progress", "preserve state", "save before I step away", "dump this so I can continue tomorrow", or before ending a long session with incomplete work. Optimizes for correctness, completeness, minimal size, and trajectory preservation.
Context Saver
Contents
- Scope β how this differs from auto-memory
- When to Use
- Core Principles
- Context File Structure
- Decisions Made
- Approaches Taken
- User Requirements
- Blockers & Open Questions
- Next Steps
- Session Notes
Reference files (open one when a step points to it):
references/context-template.md: Context File Template
Preserve in-flight session state to disk for seamless continuation in another session. Extracts signal from noise β captures the essential state (trajectory, decisions, active files, blockers, next steps) while discarding ephemeral details (exploratory reads, rejected paths, verbose tool output).
Scope β how this differs from auto-memory
Claude Code has a built-in memory system at ~/.claude/projects/.../memory/ that captures long-lived, typed entries (user, feedback, project, reference). That handles persistent knowledge: facts about you, validated preferences, project-state that's true across sessions.
This skill handles what memory doesn't: the snapshot of what you're actively doing right now. It's the answer to "I need to step away mid-task β capture where I am so a new session can pick up seamlessly."
- Memory: "This user prefers pytest over unittest." (always true, loads into every session)
- This skill: "Currently refactoring
src/auth/token.service.ts:45-78β tried approach A (failed, see line 60), now trying approach B, next step is to update the test at__tests__/token.service.spec.ts:120." (true right now, for this specific task)
Memory grows bigger over months; context-save docs are ephemeral β delete them once the work they describe lands.
When to Use
- User explicitly requests context saving ("save context", "checkpoint this")
- Before ending a long session with incomplete work
- When switching focus and needing to preserve state
- Before attempting risky operations that may require rollback
- When collaborating and need to hand off context to another session
Core Principles
Signal Extraction Priority
- Trajectory (highest): What is the user trying to achieve? What's the end goal?
- Decisions: What choices were made and why? What was rejected?
- State: What code is being modified? What's the current progress?
- Approaches: What has been tried? What worked/failed?
- Noise (discard): Exploratory reads, rejected paths, verbose tool output
Information Density Rules
- Include: Specific file:line references, concrete decisions, blockers, next steps
- Exclude: General exploration, routine file reads, verbose error traces
- Compress: Long code blocks β key excerpts with line references
- Preserve: User-stated requirements verbatim, even if seemingly minor
Context File Structure
Create context files in docs/context/ or project root as CONTEXT-{topic}.md:
# Context: {Descriptive Title}
> Saved: {ISO timestamp}
> Session: {Brief session identifier}
> Status: {in-progress | blocked | ready-for-review | completed}
## Trajectory
**Goal**: {One sentence: what is the user ultimately trying to achieve?}
**Success Criteria**:
- {Concrete, measurable outcome 1}
- {Concrete, measurable outcome 2}
**Current Phase**: {Where in the journey: planning | implementing | debugging | testing | refining}
## Problem Statement
{2-4 sentences describing the core problem. Include:}
- What triggered this work
- Key constraints or requirements
- Why existing solutions don't suffice
## Active Code Focus
### Primary Files
| File | Lines | Reason |
|------|-------|--------|
| `path/to/file.ts` | 45-78 | {Why this section matters} |
| `path/to/other.ts` | 12-34 | {What's being modified here} |
### Key Code Context
```{language}
// {file}:{start_line}-{end_line}
// {Brief explanation of what this code does and why it's relevant}
{Essential code excerpt - max 30 lines}
Dependencies & Relationships
{file1}imports from{file2}via{what}{component}depends on{service}for{why}
Decisions Made
| Decision | Rationale | Alternatives Rejected |
|---|---|---|
| {Choice made} | {Why this approach} | {What was considered but rejected} |
Approaches Taken
Succeeded
- {Approach}: {Brief result}
Failed/Abandoned
- {Approach}: {Why it didn't work, lesson learned}
In Progress
- {Current approach}: {Current state, what remains}
User Requirements
{Verbatim or near-verbatim capture of specific user requests}
- "{Exact user statement about requirement}"
- "{Another specific ask}"
Blockers & Open Questions
- {Blocker 1}: {What's needed to unblock}
- {Question 1}: {Context for why this matters}
Next Steps
- {Immediate next action with specific file/function reference}
- {Following action}
- {Subsequent action}
Session Notes
{Any important context that doesn't fit above - debugging findings, environment quirks, temporary workarounds}
Resume command: Continue working on {brief description}. Read CONTEXT-{topic}.md first.
## Extraction Process
### Step 1: Identify Trajectory
Before extracting anything, answer:
- What transformation is the user trying to achieve?
- What would "done" look like?
- What constraints exist?
### Step 2: Map Active Code
Scan recent tool calls to identify:
- Files with Write/Edit operations β primary focus
- Files with multiple Read operations β secondary context
- Grep/Glob patterns β areas of exploration
For each active file, capture:
- Specific line ranges being modified
- The "why" behind modifications
- Relationships to other files
### Step 3: Extract Decisions
Review conversation for:
- Explicit choices ("let's use X instead of Y")
- Implicit preferences (user accepted one approach, rejected another)
- Constraints stated or discovered
### Step 4: Capture Approaches
Document what was tried:
- **Succeeded**: Brief note on what worked
- **Failed**: Crucially, why it failed (prevents re-trying)
- **In Progress**: Current state and remaining work
### Step 5: Preserve User Requirements
Search conversation for:
- Direct quotes of user requirements
- Specific asks even if mentioned once
- Preferences and style guidance
### Step 6: Define Next Steps
Convert remaining work into actionable items:
- Each step should reference specific files/functions
- Order by logical dependency
- Include enough context to start without re-reading everything
## Quality Checklist
Before finalizing context file:
- [ ] **Trajectory clear?** Can a new session understand the goal in 30 seconds?
- [ ] **Code references specific?** File:line, not just "the auth module"
- [ ] **Decisions documented?** Including what was rejected and why?
- [ ] **User requirements preserved?** Verbatim where possible?
- [ ] **Next steps actionable?** Each step is specific enough to start immediately?
- [ ] **Noise removed?** No exploratory reads, verbose outputs, tangential discussion?
- [ ] **Size reasonable?** Under 500 lines, ideally under 300?
## File Naming Convention
CONTEXT-{topic}.md # General format CONTEXT-auth-refactor.md # Feature work CONTEXT-bug-123.md # Bug fix CONTEXT-spike-caching.md # Investigation CONTEXT-{date}-{topic}.md # Time-sensitive work
## Usage Examples
### Saving Mid-Implementation Context
User: "Save context - I need to step away"
Action:
- Identify trajectory (what feature being built)
- Map all files with recent edits
- Extract key code sections with line numbers
- Document current approach and progress
- List concrete next steps
- Write to docs/context/CONTEXT-{feature}.md
### Saving After Investigation
User: "Checkpoint this debugging session"
Action:
- Capture problem statement and symptoms
- Document what was investigated
- Record findings (both positive and negative)
- Note hypotheses tested and results
- List remaining investigation paths
- Write to docs/context/CONTEXT-debug-{issue}.md
### Saving Before Risky Operation
User: "Save state before we refactor"
Action:
- Document current working state
- Capture all files that will be touched
- Note the planned changes
- Record rollback points
- Write to docs/context/CONTEXT-pre-{operation}.md
## Anti-Patterns to Avoid
- **Dumping full files**: Use excerpts with line references
- **Including tool output**: Summarize findings, don't paste logs
- **Vague references**: "The service file" β "src/services/auth.service.ts:45-78"
- **Missing rationale**: What was done without why
- **Forgotten rejections**: Document why alternatives were rejected
- **Stale context**: Always update, don't create parallel files
More from this repository10
Skill
Skill
Skill
Skill
Skill
Skill
Skill
Skill
Skill
Skill