Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Track progress across work sessions using SESSION.md with git checkpoints and concrete next actions. Converts IMPLEMENTATION_PHASES.md into trackable session state with phase status, progress markers, and recovery points. Use when: starting projects after planning phase, resuming work after context clears, managing multi-phase implementations, or troubleshooting lost context, missing progress tracking, or unclear next steps.
.claude/skills/microck-project-session-management/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 54% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 420% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 49% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 50% | 0% |
Track progress across work sessions using SESSION.md with git checkpoints and concrete next actions.
project-planning generates IMPLEMENTATION_PHASES.mdPhases (IMPLEMENTATION_PHASES.md): Units of WORK (e.g., "Database Schema", "Auth API"). Have verification/exit criteria. May span multiple sessions.
Sessions (SESSION.md): Units of CONTEXT. Complete before clearing/compacting context. Can complete a phase, part of a phase, or multiple small phases.
Example: Phase 3 (Tasks API) → Session 1 (GET/POST) → Session 2 (PATCH/DELETE) → Session 3 (verify) ✅
Starting New Project:
project-planning creates IMPLEMENTATION_PHASES.md, offer: "Create SESSION.md to track progress?"Ending Session:
/wrap-session (updates SESSION.md, creates checkpoint commit, outputs summary)Resuming:
/continue-session (loads context, shows summary, continues from "Next Action")/wrap-session: Analyzes state → updates SESSION.md → updates related docs → creates checkpoint commit → outputs summary → optionally pushes
/continue-session: Loads SESSION.md + planning docs → shows git history + summary → displays verification criteria (if in Verification stage) → opens "Next Action" file → asks permission to continue
Purpose: Navigation hub referencing planning docs, tracking current progress Target: <200 lines in project root Update: After significant progress (not every change)
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`
Use these emoji status icons consistently:
Update SESSION.md with current stage and progress. Example:
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) **Current Issue**: Invalid data returning 500. Check src/middleware/validate.ts
✅ Collapse completed phases (2-3 lines), concrete "Next Action" (file+line+task), reference planning docs, checkpoint at phase end or when context full
❌ No code copying, no duplicating IMPLEMENTATION_PHASES.md, no vague actions, keep <200 lines
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]Example (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)
Next: Phase 4 - Start building Task List UI componentCheckpoint Cycle: /wrap-session creates commit → gets hash → updates SESSION.md with hash. Therefore SESSION.md is always uncommitted when resuming (BY DESIGN).
Expected uncommitted files (no warning):
Warning triggers (unexpected):
/continue-session behavior:
Context full mid-phase: Update SESSION.md → checkpoint → clear context → read SESSION.md + planning docs → continue from "Next Action"
Phase complete: Check verification criteria → mark 🔄→✅ → checkpoint → move next phase ⏸️→🔄
Troubleshooting: Update to "Debugging" stage → document "Current Issue" → when fixed, return to "Verification" or "Implementation"
project-planning generates IMPLEMENTATION_PHASES.md (the plan) → project-session-management creates SESSION.md (the tracker) → work through phases → git checkpoints → resume from SESSION.md
Planning docs (/docs): Reference material, rarely change SESSION.md (root): Living document, updates constantly
After project-planning runs:
Offer: "Would you like me to create SESSION.md to track progress through these phases? (clear current phase, progress tracking, easy resume, git checkpoint format)"
Templates: SESSION.md.template, checkpoint-commit-format.md, CLAUDE-session-snippet.md
Scripts: resume.sh (show current state)
References: session-handoff-protocol.md, best-practices.md
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 4,673 | 2,919 | -38% | 1 | 1 | 0% | 797 | 2,202 | +176% | 0 | 0 | — |
case-02 | fail→fail | 9,965 | 7,364 | -26% | 1 | 1 | 0% | 1,329 | 2,284 | +72% | 0 | 0 | — |
case-03 | fail→fail | 17,233 | 10,864 | -37% | 1 | 1 | 0% | 298 | 3,681 | +1135% | 0 | 0 | — |
case-04 | fail→pass | 8,374 | 1,644 | -80% | 1 | 1 | 0% | 1,399 | 2,148 | +54% | 0 | 0 | — |
case-05 | pass→pass | 6,917 | 1,487 | -79% | 1 | 1 | 0% | 1,138 | 2,090 | +84% | 0 | 0 | — |
case-06 | pass→pass | 12,175 | 5,744 | -53% | 1 | 1 | 0% | 1,954 | 2,851 | +46% | 0 | 0 | — |
case-07 | pass→pass | 10,425 | 5,679 | -46% | 1 | 1 | 0% | 1,653 | 2,883 | +74% | 0 | 0 | — |
case-08 | pass→pass | 6,629 | 3,043 | -54% | 1 | 1 | 0% | 1,021 | 2,294 | +125% | 0 | 0 | — |
case-09 | pass→pass | 11,119 | 4,374 | -61% | 1 | 1 | 0% | 1,763 | 2,665 | +51% | 0 | 0 | — |
case-10 | fail→pass | 2,647 | 1,603 | -39% | 1 | 1 | 0% | 410 | 2,134 | +420% | 0 | 0 | — |
case-11 | pass→pass | 6,492 | 4,035 | -38% | 1 | 1 | 0% | 918 | 2,553 | +178% | 0 | 0 | — |
case-12 | pass→pass | 6,301 | 2,948 | -53% | 1 | 1 | 0% | 930 | 2,428 | +161% | 0 | 0 | — |
case-13 | fail→pass | 11,859 | 5,799 | -51% | 1 | 1 | 0% | 1,941 | 2,897 | +49% | 0 | 0 | — |
case-14 | fail→pass | 11,516 | 3,971 | -66% | 1 | 1 | 0% | 1,959 | 2,551 | +30% | 0 | 0 | — |
case-15 | fail→pass | 11,807 | 7,163 | -39% | 1 | 1 | 0% | 1,997 | 2,987 | +50% | 0 | 0 | — |
case-16 | pass→pass | 5,442 | 1,503 | -72% | 1 | 1 | 0% | 900 | 2,073 | +130% | 0 | 0 | — |
case-17 | fail→pass | 11,693 | 1,756 | -85% | 1 | 1 | 0% | 1,936 | 2,075 | +7% | 0 | 0 | — |
case-18 | fail→pass | 7,704 | 2,385 | -69% | 1 | 1 | 0% | 1,154 | 2,214 | +92% | 0 | 0 | — |
case-19 | fail→pass | 5,405 | 2,616 | -52% | 1 | 1 | 0% | 812 | 2,360 | +191% | 0 | 0 | — |
case-20 | fail→pass | 7,113 | 4,610 | -35% | 1 | 1 | 0% | 1,119 | 2,692 | +141% | 0 | 0 | — |
case-21 | fail→pass | 11,094 | 6,977 | -37% | 1 | 1 | 0% | 1,718 | 3,089 | +80% | 0 | 0 | — |
case-22 | fail→pass | 8,274 | 4,735 | -43% | 1 | 1 | 0% | 1,281 | 2,623 | +105% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +50 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.