name: 72-close-session-150 description: "[72] CLOSE. Save and restore session context between conversations. Use when ending a session to preserve progress, or starting a new session to restore context. Triggers on "save session", "end session", "preserve context", "handoff", "continue from last time", or when context window is running low."
Close-Session 150 Protocol
Core Principle: Never lose progress. Save context before ending, restore context when starting.
What This Skill Does
This skill handles two modes:
💾 SAVE MODE (End of Session)
- Capture current state and progress
- Document key decisions and why
- Define next steps clearly
- Create handoff for next session
🔄 RESTORE MODE (Start of Session)
- Read saved context
- Restore working state
- Verify what's still valid
- Continue seamlessly
When to Use This Skill
SAVE triggers:
- Context window running low
- Ending work session
- Before major context switch
- Handoff to another person/session
- "Save progress", "end session", "preserve context"
RESTORE triggers:
- Starting new session
- Continuing previous work
- "Resume", "continue from last time", "restore context"
The 150% Continuity Rule
- 100% Core: Current state + next steps
- 50% Enhancement: Decision rationale + blockers + risks
Save Protocol
Step 0: GATHER SOURCES (Read First!)
Before saving, collect data from all sources:
| Source | What to Read | Purpose |
|---|---|---|
.sessions/SESSION_[date]-[name].md | Progress Log / Findings / Decisions | Raw data for lessons |
| Chat history | Current conversation context | What was discussed, tried, decided |
MEMORY.md | Lessons Inbox | Existing lessons |
| Files touched | Recent changes | What was modified |
Critical: Don't start saving until you've read all sources!
Step 1: EXTRACT LESSONS FROM PROGRESS LOG
Review the session log Progress Log and extract lessons:
- Look for patterns in ❌ (what didn't work)
- Identify root causes from 🔄 (what was tried)
- Confirm solutions from ✅ (what worked)
- Write lessons to
MEMORY.mdLessons (Inbox)
Progress Log Analysis:
❌ Failed attempts → Why did they fail? → Principle for future
✅ Successful fixes → What made it work? → Confirm understanding
🔄 Experiments → What was learned? → Document insight
Step 2: SUMMARIZE PROGRESS
What was accomplished:
- Tasks completed
- Current state
- Files changed
Step 3: CAPTURE DECISIONS
Key choices made and why:
- What was decided
- Why this approach
- Alternatives considered
Step 4: DEFINE NEXT STEPS
Clear continuation path:
- Immediate priorities
- What's blocked
- What's ready
Step 5: NOTE CONTEXT
Important state to remember:
- Active files/components
- Dependencies
- Risks/concerns
Output Format: Session Save
💾 **SESSION-SAVE 150**
**Date:** [YYYY-MM-DD HH:MM]
**Project:** [Project name/path]
## Progress Made
- ✅ [Completed item 1]
- ✅ [Completed item 2]
- 🔄 [In progress item]
## Current State
- Working on: [Current focus]
- Files touched: [Key files]
- Status: [Overall status]
## Key Decisions
| Decision | Reasoning |
|----------|-----------|
| [Choice 1] | [Why] |
| [Choice 2] | [Why] |
## Next Steps (Priority Order)
1. **Immediate:** [Next action]
2. **Then:** [Following action]
3. **Later:** [Future action]
## Blockers & Risks
- ⚠️ [Blocker/Risk 1]
- ⚠️ [Blocker/Risk 2]
## Context to Remember
- [Important detail 1]
- [Important detail 2]
---
**Handoff Status:** ✅ Ready for next session
Output Format: Session Restore
🔄 **SESSION-RESTORE 150**
**Restoring from:** [Date of saved session]
## Previous Progress
[Summary of what was done]
## Continuing From
- Last state: [Where we left off]
- Next step: [What to do now]
## Context Restored
- ✅ [Verified context 1]
- ✅ [Verified context 2]
- ⚠️ [Needs verification]
## Ready to Continue
Starting with: [First action]
Quick Save Template
For fast saves when time is short:
💾 **QUICK SAVE**
**Done:** [What was accomplished]
**Current:** [Where we are]
**Next:** [What to do next]
**Remember:** [Key context]
Integration with Mid-Session Checkpoints
If 74-mid-session-save-150 was used during the session:
Session Flow:
┌─────────────────────────────────────────────────────────┐
│ mid-session-save → mid-session-save → close-session │
│ ↓ ↓ ↓ │
│ Progress Log #1 Progress Log #2 READ ALL LOGS │
│ (raw data) (more data) EXTRACT LESSONS │
│ FINAL HANDOFF │
└─────────────────────────────────────────────────────────┘
Close-session responsibility:
- Read accumulated Progress Logs from
.sessions/SESSION_[date]-[name].md - Extract patterns → formulate lessons
- Write lessons to
MEMORY.mdLessons (Inbox) - Create final handoff with full context
Where to Save Context
📁 SAVE LOCATIONS
├── MEMORY.md # Project memory file + extracted lessons
├── .sessions/SESSION_[date]-[name].md # Session-specific log (read & update)
├── Project README # For major milestones
└── Git commit message # For code changes
What to Read vs Write
| Location | READ | WRITE |
|---|---|---|
.sessions/SESSION_[date]-[name].md | Progress Log, checkpoints, findings | Final handoff state |
MEMORY.md | Lessons Inbox | New lessons |
| Chat history | Full conversation context | — |
| Files touched | What was modified | — |
Operational Rules
- READ SOURCES FIRST: Gather from the session log, chat, MEMORY.md before saving
- EXTRACT LESSONS: Don't close without reviewing Progress Log for lessons
- SAVE BEFORE ENDING: Always save context before session ends
- RESTORE BEFORE STARTING: Check for saved context when starting
- BE SPECIFIC: Vague notes are useless later
- INCLUDE WHY: Decisions without rationale cause confusion
- PRIORITIZE NEXT STEPS: Make continuation obvious
- FLAG RISKS: Don't hide problems
Examples
Example: Extracting Lessons from Progress Log
Input: Progress Log from .sessions/SESSION_[date]-[name].md
### Checkpoint #1
❌ Didn't Work: Direct state update in useEffect — infinite loop
Reason: dependency array included computed object
### Checkpoint #2
🔄 Tried: useMemo for computed dependency
✅ Worked: useMemo solved the loop — stable reference now
### Checkpoint #3
❌ Didn't Work: Hardcoded colors in component
Reason: Violates project convention (use themeColors)
✅ Worked: Imported from @/utils/themeColors
Output: Lessons extracted to MEMORY.md
### 2026-01-10 useEffect dependency stability
**Problem:** Infinite loop from computed object in useEffect deps
**Attempts:** Direct state update failed
**Solution:** Use useMemo to create stable reference
**Why it worked:** useMemo memoizes the computed value, preventing new reference on each render
**Principle:** Never use computed objects in useEffect deps — wrap with useMemo or extract primitive IDs
### 2026-01-10 Color convention adherence
**Problem:** Hardcoded colors violated project standards
**Solution:** Import from @/utils/themeColors
**Principle:** All colors must come from central theme utilities, never hardcoded
❌ Bad Session Save
"Was working on stuff. Continue later."
Result: Next session spends 30 min figuring out what "stuff" was
✅ Good Session Save
💾 SESSION-SAVE 150
Progress Made:
- ✅ Created 7 skills from protocols
- ✅ Refactored chain-flow to include action-plan
- 🔄 Working through remaining protocols
Current State:
- Converting PROTOCOLS_GENERALIZED.md to skills
- 7/13 protocols converted
Key Decisions:
| Decision | Reasoning |
|----------|-----------|
| Renamed "Plan-First" → "chain-flow" | It's an orchestrator, not just a plan |
| Separated action-plan as own skill | Needed as component in chains |
Next Steps:
1. **Immediate:** Create a mid-session checkpoint (`74-mid-session-save-150`) if context is low
2. **Then:** Continue with remaining protocols
3. **Later:** Test skills integration
Context to Remember:
- Skills go in ./.codex/skills/ folder
- Each skill needs SKILL.md with yaml frontmatter
- chain-flow orchestrates other skills
Handoff Status: ✅ Ready
Failure Modes & Recovery
| Failure | Detection | Recovery |
|---|---|---|
| No save | Session ended without handoff | Reconstruct from memory, files, git |
| Vague save | Can't understand notes | Ask questions, check artifacts |
| Outdated context | Things changed since save | Verify current state, update |
| Missing decisions | Don't know why choices made | Review code/docs, make new decision |
| Skipped Progress Log | Lessons not extracted | Re-read session log, extract |
| Didn't read sources | Incomplete handoff | Gather from all sources, redo save |
Remember: Future you (or next session) will thank present you for good notes. Context loss is expensive — prevention is cheap.