From virtual-team
Implements checkpoint protocol for resuming multi-phase commands (/vt-debug, /vt-epic, /vt-feature, /vt-implement, /vt-plan) after session interruptions. Writes/reads docs/checkpoints/ files and warns on high context usage.
npx claudepluginhub ovargas/virtual-team --plugin virtual-teamThis skill uses the workspace's default tool permissions.
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.
Saves structured checkpoints of coding session state and searches them semantically for resuming after context compression. Invoke via /memory-checkpoint to save or query.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
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:vt-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-005 and ADR-008
- [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:vt-debug | 4 phases (Reproduce → Document) | commands/vt-debug.md |
/virtual-team:vt-epic | 6 phases (Decision Sync → Document) | commands/vt-epic.md |
/virtual-team:vt-feature | 6 phases (Understand → Stories) | commands/vt-feature.md |
/virtual-team:vt-plan | 5 phases (Arch Gate → Update Backlog) | commands/vt-plan.md |
/virtual-team:vt-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:vt-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:vt-commit or /virtual-team:vt-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:vt-implement FEAT-007 is run, there's one checkpoint file. Running it again resumes. Running /virtual-team:vt-implement FEAT-008 creates a separate checkpoint.