principle-progress-tracking · git:20260903.933291d · 2026-09-03 · sha256 e0475e12bcf1c41b

principle-progress-tracking git:20260903.933291dA

Immutable. This exact content is served forever at /api/v1/blob/e0475e12bcf1c41b.

---
name: principle-progress-tracking
description: "Apply when executing any procedure with two or more ordered steps. Seed one todo item per step before starting and mark each complete as you go; the context running the procedure owns its own ledger and never merges it upward."
user-invocable: false
---

# Progress Tracking

A convention, not a gate. It produces no artifact and blocks nothing. It
shapes how any agent or skill executing a multi-step procedure keeps its own
work visible, so steps are not silently skipped.

## When it applies

When a procedure has two or more ordered steps, seed one todo item per step
before starting and mark each complete as you go. The rule starts at two
because a one-item ledger is noise.

## Per-step granularity

One todo item per numbered step — not per phase, not per file. When a
procedure states goals and constraints rather than numbered steps, seed one
item per natural unit of work (a slice, a question, a hard-gate finding),
never one per sentence of guidance. Mark each item `in_progress` when its
step starts and `completed` when that step lands, matching how `team-fix`
already marks each step.

## Ledger ownership

The **orchestrator** (the main Claude Code session) owns the single
phase-level ledger. An **agent** executing a multi-step skill tracks its own
sub-steps **within its own context** and never merges them up into the
orchestrator's phase ledger. A standalone, directly-invoked skill seeds its
own ledger. The two ledgers live in separate ownership scopes and are never
read across.

## See also

The orchestrator's phase-level TodoWrite contract lives in
`skills/qrspi-workflow/SKILL.md` — the phase-ledger sibling of this
per-procedure convention.