From virtual-team
Saves and resumes state for multi-phase commands like /debug, /epic, /feature, /implement, and /plan, enabling work to survive session interruptions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/virtual-team:checkpointsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Checkpoints let multi-phase commands survive session interruptions. When a phase completes, the command writes a checkpoint file. When the command is re-invoked, it reads the checkpoint and resumes from the first incomplete phase.
Checkpoints let multi-phase commands survive session interruptions. When a phase completes, the command writes a checkpoint file. When the command is re-invoked, it reads the checkpoint and resumes from the first incomplete phase.
Before starting a multi-phase command, check context usage:
/compact to free space, or finishing the current phase, committing the checkpoint, and starting a fresh session./virtual-team:handoff to generate a handoff document before context runs out, so the next session can resume cleanly.Checkpoints exist precisely for this scenario — running out of context mid-work is expected, not exceptional. The command proceeds either way, but the user knows checkpoints will protect their progress.
Checkpoint files live in docs/checkpoints/:
docs/checkpoints/<command>-<ID>.md
Where:
<command> is the command name: debug, epic, feature, implement, plan<ID> is the item identifier the command is working on (e.g., FEAT-003, EPIC-001, BUG-012, the plan filename slug)Examples:
docs/checkpoints/feature-FEAT-003.md
docs/checkpoints/implement-2026-02-12-notifications.md
docs/checkpoints/debug-BUG-012.md
docs/checkpoints/epic-EPIC-001.md
docs/checkpoints/plan-FEAT-007.md
If the item has no formal ID (e.g., a debug session started from a symptom description), derive a short slug from the context (e.g., debug-login-timeout).
---
command: <command>
item: <ID or description>
branch: <git branch name>
started: <ISO 8601 timestamp>
updated: <ISO 8601 timestamp>
status: in_progress
current_phase: 2
total_phases: 5
---
# Checkpoint: <command> — <item>
## Phases
| # | Phase | Status | Completed |
|---|---|---|---|
| 0 | Decision Sync | done | 2026-02-27T10:15:00Z |
| 1 | Capture | done | 2026-02-27T10:32:00Z |
| 2 | Product Analysis | in_progress | — |
| 3 | Technical Routing | pending | — |
| 4 | Agreements | pending | — |
| 5 | Document | pending | — |
## Current Phase Detail
<!-- Granular sub-tasks within the active phase only.
Cleared when the phase completes. -->
- [x] Gathered user interview notes from docs/research/
- [x] Identified three competitor approaches
- [ ] Draft market positioning summary
- [ ] Validate assumptions with user persona matrix
## Current State
<!-- Brief description of where things stand — what was the last thing completed,
what's next, any decisions made or blockers encountered. Keep this short
but specific enough to resume without re-reading everything. -->
## Key Decisions
<!-- Capture decisions made during completed phases that affect later phases.
This prevents re-asking the user questions they already answered. -->
- [Phase 0] Synced with hub decisions ADR-NNN and ADR-NNN
- [Phase 1] Scope confirmed: notifications for orders only, not marketing
## Artifacts Produced
<!-- List files created or modified by completed phases. This tells the
resuming session what already exists and doesn't need to be recreated. -->
- `docs/epics/EPIC-001-notifications.md` (draft, through Phase 1)
- `docs/decisions/2026-02-27-notification-transport.md`
## Key Context
<!-- References to documents and context the resuming session should re-read.
Populated on creation, stays fixed throughout. -->
- Feature: `docs/features/FEAT-003-notifications.md`
- Plan: `docs/plans/2026-02-12-notifications.md`
- Branch: `feat/CTR-12`
- Stack: Node.js + React (from stack.md)
Each command defines its own phases in its command file. The checkpoint tracks progress through those phases — it does not redefine them.
| Command | Phases | Source of truth |
|---|---|---|
/virtual-team:debug | 4 phases (Reproduce → Document) | commands/debug.md |
/virtual-team:epic | 6 phases (Decision Sync → Document) | commands/epic.md |
/virtual-team:feature | 6 phases (Understand → Stories) | commands/feature.md |
/virtual-team:plan | 5 phases (Arch Gate → Update Backlog) | commands/plan.md |
/virtual-team:implement | Dynamic (from plan document) | The plan file being implemented |
When writing a checkpoint, copy the phase names from the command's definition. Do not invent or rename phases here.
Every checkpointed command runs this before anything else:
If --fresh was passed:
docs/checkpoints/<command>-*.md matching the current itemCheck for existing checkpoint:
docs/checkpoints/<command>-<ID>.mdResuming from checkpoint: docs/checkpoints/<command>-<ID>.md
Last updated: <timestamp>
Completed: Phase 0 (Decision Sync), Phase 1 (Capture)
Resuming at: Phase 2 (Product Analysis)
pending or in_progressIf no checkpoint exists:
Update the checkpoint file:
done with a timestampin_progress (if there is one)updated timestamp in frontmatterCurrent State with a brief summaryKey DecisionsArtifacts ProducedCurrent Phase Detail sub-tasks (the next phase starts with a fresh list)Write the file using the Write tool — always overwrite the full file (not Edit), since multiple sections change each time.
Commit the checkpoint:
git add docs/checkpoints/<command>-<ID>.md
git commit -m "checkpoint: <command> <ID> — phase <N> complete"
When all phases are done:
rm docs/checkpoints/<command>-<ID>.md/virtual-team:implement)git rm + git commit -m "checkpoint: <command> <ID> — complete, removing checkpoint"If a phase fails (verification doesn't pass, blocker found):
Current Statein_progress (not done)git add docs/checkpoints/<command>-<ID>.md
git commit -m "checkpoint: <command> <ID> — phase <N> failed"
If the session is interrupted (context limit, user closes terminal):
docs/checkpoints/ if it doesn't exist (with .gitkeep)docs/checkpoints/ to .gitignore — checkpoint reliability depends on git persistence.Current State concise. Two to three sentences max. The resuming session will re-read artifacts for detail.Key Decisions records what was decided, not the deliberation.git commit. This is the reliability guarantee — without it, checkpoints don't survive session boundaries./virtual-team:commit or /virtual-team:review don't need them.Current Phase Detail tracks granular items within the active phase only. When the phase completes, sub-tasks are cleared — they've served their purpose.--fresh to start over./virtual-team:implement FEAT-007 is run, there's one checkpoint file. Running it again resumes. Running /virtual-team:implement FEAT-008 creates a separate checkpoint.npx claudepluginhub ovargas/virtual-team --plugin virtual-teamSaves session progress by committing changes, pushing to remote, creating/updating pull requests, persisting decisions/patterns to memory layers, compiling briefings, and archiving features. Use for checkpointing work or PRs.
Wraps up a work session by recording changed files, caveats, decisions, and next steps so a fresh session can resume without re-deriving context.
Persists architectural decisions, conventions, and progress across sessions by auto-saving to .rune/ files. Loads state at session start for continuity when skills establish patterns.