Initial commit
This commit is contained in:
318
references/session-handoff-protocol.md
Normal file
318
references/session-handoff-protocol.md
Normal file
@@ -0,0 +1,318 @@
|
||||
# Session Handoff Protocol
|
||||
|
||||
**Complete reference for managing session state and context across multiple work sessions**
|
||||
|
||||
---
|
||||
|
||||
## Purpose
|
||||
|
||||
Track execution progress and manage context between sessions while working through project phases.
|
||||
|
||||
This protocol solves the problem of **context loss** when:
|
||||
- Context window gets full mid-phase
|
||||
- Starting a fresh session after a break
|
||||
- Switching between multiple projects
|
||||
- Resuming work after clearing context
|
||||
|
||||
---
|
||||
|
||||
## Core Concepts
|
||||
|
||||
### Phases vs Sessions
|
||||
|
||||
**Phases** (from IMPLEMENTATION_PHASES.md):
|
||||
- Units of WORK (e.g., "Database Schema", "Auth API", "Task UI")
|
||||
- Defined in planning docs
|
||||
- Have verification criteria and exit criteria
|
||||
- Ideally fit in one session, but may span multiple if complex
|
||||
|
||||
**Sessions** (what this protocol manages):
|
||||
- Units of CONTEXT (what you accomplish before clearing/compacting context)
|
||||
- Tracked in SESSION.md
|
||||
- Can complete a phase, part of a phase, or multiple small phases
|
||||
- Bridges work across context window limits
|
||||
|
||||
**Example**:
|
||||
```
|
||||
Phase 3: Tasks API (estimated 4 hours)
|
||||
Session 1: Implement GET/POST endpoints → context full, checkpoint
|
||||
Session 2: Implement PATCH/DELETE → context full, checkpoint
|
||||
Session 3: Fix bugs, verify all criteria → Phase 3 complete ✅
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference
|
||||
|
||||
### When Starting a New Project
|
||||
|
||||
1. Use `project-planning` skill to generate IMPLEMENTATION_PHASES.md
|
||||
2. Create SESSION.md from the generated phases
|
||||
3. Start Phase 1
|
||||
|
||||
### Before Ending Any Session
|
||||
|
||||
1. Update SESSION.md with current state
|
||||
2. Create git checkpoint commit
|
||||
3. Note concrete "Next Action"
|
||||
|
||||
### When Resuming
|
||||
|
||||
1. Read SESSION.md
|
||||
2. Check "Next Action"
|
||||
3. Continue from that point
|
||||
|
||||
---
|
||||
|
||||
## SESSION.md Structure
|
||||
|
||||
### Purpose
|
||||
**Navigation hub** that references planning docs, tracks current progress
|
||||
|
||||
**Target Size**: <200 lines
|
||||
**Location**: Project root
|
||||
**Update Frequency**: After significant progress (not every tiny change)
|
||||
|
||||
### Template
|
||||
|
||||
```markdown
|
||||
# Session State
|
||||
|
||||
**Current Phase**: Phase 3
|
||||
**Current Stage**: Implementation (or Verification/Debugging)
|
||||
**Last Checkpoint**: abc1234 (2025-10-23)
|
||||
**Planning Docs**: `docs/IMPLEMENTATION_PHASES.md`, `docs/ARCHITECTURE.md`
|
||||
|
||||
---
|
||||
|
||||
## Phase 1: Setup ✅
|
||||
**Completed**: 2025-10-15 | **Checkpoint**: abc1234
|
||||
**Summary**: Vite + React + Tailwind v4 + D1 binding
|
||||
|
||||
## Phase 2: Database ✅
|
||||
**Completed**: 2025-10-18 | **Checkpoint**: def5678
|
||||
**Summary**: D1 schema + migrations + seed data
|
||||
|
||||
## Phase 3: Tasks API 🔄
|
||||
**Type**: API | **Started**: 2025-10-23
|
||||
**Spec**: `docs/IMPLEMENTATION_PHASES.md#phase-3`
|
||||
|
||||
**Progress**:
|
||||
- [x] GET /api/tasks endpoint (commit: ghi9012)
|
||||
- [x] POST /api/tasks endpoint (commit: jkl3456)
|
||||
- [ ] PATCH /api/tasks/:id ← **CURRENT**
|
||||
- [ ] DELETE /api/tasks/:id
|
||||
- [ ] Verify all endpoints (see IMPLEMENTATION_PHASES.md for criteria)
|
||||
|
||||
**Next Action**: Implement PATCH /api/tasks/:id in src/routes/tasks.ts:47, handle validation and ownership check
|
||||
|
||||
**Key Files**:
|
||||
- `src/routes/tasks.ts`
|
||||
- `src/lib/schemas.ts`
|
||||
|
||||
**Known Issues**: None
|
||||
|
||||
## Phase 4: Task UI ⏸️
|
||||
**Spec**: `docs/IMPLEMENTATION_PHASES.md#phase-4`
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Stages Within a Phase
|
||||
|
||||
Track where you are in the build-test-fix cycle:
|
||||
|
||||
1. **Implementation** → Writing code for tasks
|
||||
2. **Verification** → Testing against verification criteria
|
||||
3. **Debugging** → Fixing issues found during verification
|
||||
|
||||
**Update SESSION.md** to reflect current stage:
|
||||
|
||||
```markdown
|
||||
**Current Stage**: Verification
|
||||
|
||||
**Verification Progress**:
|
||||
- [x] GET /api/tasks returns 200 ✅
|
||||
- [x] POST /api/tasks creates task ✅
|
||||
- [ ] POST with invalid data returns 400 ❌ (returns 500)
|
||||
- [ ] PATCH updates task
|
||||
- [ ] DELETE removes task
|
||||
|
||||
**Current Issue**: Invalid data returning 500 instead of 400. Need to check validation middleware in src/middleware/validate.ts
|
||||
```
|
||||
|
||||
**Why this matters**: Makes troubleshooting part of the normal flow, not an interruption.
|
||||
|
||||
---
|
||||
|
||||
## Rules for SESSION.md
|
||||
|
||||
### ✅ DO
|
||||
|
||||
- **Collapse completed phases** to 2-3 lines (save space)
|
||||
- **Make "Next Action" concrete** (file + line + what to do)
|
||||
- **Reference planning docs**, don't duplicate them
|
||||
- **Update after significant progress** (not every tiny change)
|
||||
- **Create git checkpoint** at end of phase OR when context is getting full
|
||||
- **Track verification progress** when in that stage
|
||||
|
||||
### ❌ DON'T
|
||||
|
||||
- **Copy code** into SESSION.md (it's a tracker, not a code archive)
|
||||
- **Duplicate IMPLEMENTATION_PHASES.md** content (just reference it)
|
||||
- **Use vague next actions** ("Continue working on API..." is too vague)
|
||||
- **Let SESSION.md exceed 200 lines** (archive old phases if needed)
|
||||
|
||||
---
|
||||
|
||||
## Git Checkpoint Format
|
||||
|
||||
Use this structured format for checkpoint commits:
|
||||
|
||||
```
|
||||
checkpoint: Phase [N] [Status] - [Brief Description]
|
||||
|
||||
Phase: [N] - [Name]
|
||||
Status: [Complete/In Progress/Paused]
|
||||
Session: [What was accomplished this session]
|
||||
|
||||
Files Changed:
|
||||
- path/to/file.ts (what changed)
|
||||
|
||||
Next: [Concrete next action]
|
||||
```
|
||||
|
||||
### Examples
|
||||
|
||||
#### Phase Complete
|
||||
```
|
||||
checkpoint: Phase 3 Complete - Tasks API
|
||||
|
||||
Phase: 3 - Tasks API
|
||||
Status: Complete
|
||||
Session: Completed all CRUD endpoints and verified functionality
|
||||
|
||||
Files Changed:
|
||||
- src/routes/tasks.ts (all CRUD operations)
|
||||
- src/lib/schemas.ts (task validation)
|
||||
- src/middleware/validate.ts (validation middleware)
|
||||
|
||||
Next: Phase 4 - Start building Task List UI component
|
||||
```
|
||||
|
||||
#### Context Full Mid-Phase
|
||||
```
|
||||
checkpoint: Phase 3 In Progress - Endpoints implemented
|
||||
|
||||
Phase: 3 - Tasks API
|
||||
Status: In Progress
|
||||
Session: Implemented GET and POST endpoints, need PATCH/DELETE
|
||||
|
||||
Files Changed:
|
||||
- src/routes/tasks.ts (GET, POST endpoints)
|
||||
- src/lib/schemas.ts (task schema)
|
||||
|
||||
Next: Implement PATCH /api/tasks/:id in src/routes/tasks.ts:47
|
||||
```
|
||||
|
||||
#### Blocked or Paused
|
||||
```
|
||||
checkpoint: Phase 3 Paused - Need design decision
|
||||
|
||||
Phase: 3 - Tasks API
|
||||
Status: Paused
|
||||
Session: Built endpoints but need to decide on tag filtering approach
|
||||
|
||||
Files Changed:
|
||||
- src/routes/tasks.ts (basic endpoints)
|
||||
|
||||
Next: Decide: client-side tag filtering or add SQL query parameter? Then resume at src/routes/tasks.ts:89
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Context Management Strategies
|
||||
|
||||
### When Context is Getting Full (but phase isn't done)
|
||||
|
||||
1. Update SESSION.md with current progress
|
||||
2. Create checkpoint commit
|
||||
3. Clear context or start fresh session
|
||||
4. Read SESSION.md + referenced planning docs
|
||||
5. Continue from "Next Action"
|
||||
|
||||
### When a Phase is Complete
|
||||
|
||||
1. Check all verification criteria in IMPLEMENTATION_PHASES.md
|
||||
2. Mark phase complete in SESSION.md (change 🔄 to ✅)
|
||||
3. Create checkpoint commit
|
||||
4. Move to next phase (change next phase from ⏸️ to 🔄)
|
||||
|
||||
### When Troubleshooting Takes Over
|
||||
|
||||
- Don't fight it - update SESSION.md to show "Debugging" stage
|
||||
- Document the issue in "Current Issue" field
|
||||
- When fixed, move back to "Verification" or "Implementation"
|
||||
|
||||
---
|
||||
|
||||
## Integration with Planning
|
||||
|
||||
```
|
||||
project-planning skill
|
||||
↓
|
||||
Generates IMPLEMENTATION_PHASES.md (the plan)
|
||||
↓
|
||||
Create SESSION.md (the tracker)
|
||||
↓
|
||||
Work through phases, updating SESSION.md
|
||||
↓
|
||||
Git checkpoints preserve state
|
||||
↓
|
||||
Resume from SESSION.md after context clear
|
||||
```
|
||||
|
||||
**Planning docs** (in `/docs`): Reference material, rarely change
|
||||
**SESSION.md** (in root): Living document, updates constantly
|
||||
|
||||
---
|
||||
|
||||
## Benefits
|
||||
|
||||
### Token Efficiency
|
||||
- **~500-800 tokens** to resume from SESSION.md
|
||||
- vs **~12,000 tokens** to manually reconstruct state
|
||||
- **85-93% token savings** on resume
|
||||
|
||||
### Context Safety
|
||||
- Phases sized to fit in one session (2-4 hours)
|
||||
- Clear checkpoints for mid-phase saves
|
||||
- No loss of progress on context clear
|
||||
|
||||
### Clarity
|
||||
- Always know what to do next
|
||||
- No "where was I?" moments
|
||||
- Verification criteria prevent premature "done"
|
||||
|
||||
### Flexibility
|
||||
- Works across multiple sessions per phase
|
||||
- Handles interruptions gracefully
|
||||
- Supports debugging as normal part of flow
|
||||
|
||||
---
|
||||
|
||||
## Production Validation
|
||||
|
||||
This protocol has been tested across:
|
||||
- 27+ production skills
|
||||
- Multiple multi-phase projects
|
||||
- Various project sizes (4-20 phases)
|
||||
- Different tech stacks (Cloudflare, Next.js, etc.)
|
||||
|
||||
**Result**: 100% successful resumes after context clear
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2025-10-28
|
||||
**Version**: 1.0
|
||||
**Author**: Jeremy Dawes | Jezweb
|
||||
Reference in New Issue
Block a user