---
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.md` Lessons (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:**
1. Read accumulated Progress Logs from `.sessions/SESSION_[date]-[name].md`
2. Extract patterns → formulate lessons
3. Write lessons to `MEMORY.md` Lessons (Inbox)
4. 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

1. **READ SOURCES FIRST:** Gather from the session log, chat, MEMORY.md before saving
2. **EXTRACT LESSONS:** Don't close without reviewing Progress Log for lessons
3. **SAVE BEFORE ENDING:** Always save context before session ends
4. **RESTORE BEFORE STARTING:** Check for saved context when starting
5. **BE SPECIFIC:** Vague notes are useless later
6. **INCLUDE WHY:** Decisions without rationale cause confusion
7. **PRIORITIZE NEXT STEPS:** Make continuation obvious
8. **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.
