<!-- last-reviewed: 2026-06-01 · owner: Delivery (PMO) (Project Manager) -->
SOP-074 — Wave-schedule run / milestone tracking
SOP · owner: Delivery (PMO) (Project Manager). Layer: SOP/Runbook (
docs/canon.md). How the PMO runs the documentation-program wave schedule, drives the milestone plan, and keepstracker.mdcurrent. Links to canon; does not restate it. ID is proposed (SOP-074…076 block); confirm with Operations — the SOP-ID numbering authority (docs/sop/registry.md).
Interface Contract
- Inputs: prioritised ready backlog ← from Product (Product Manager) · trigger:
backlog ready - Inputs: approved gate package (to sequence) ← from <Innovation Director / CPTO> · trigger:
gate package ready - Inputs: preserved record ← from Archivist · trigger:
preservation complete - Outputs: coverage / status roll-up → to all agents · trigger:
briefing posted - Outputs: approved
tracker.mdsnapshot → to Archivist · trigger:artifact approved - Outputs:
docs/units/delivery-pmo/or tracker canon Index row change → to Documentarian · trigger:document changed - Handoff trigger (in): a wave’s work is ready to sequence/track (Product hands a ready backlog, OR a wave checkpoint is reached, OR a cadence beat falls due)
- Handoff trigger (out): the wave’s coverage roll-up is reconciled and posted, and the tracker snapshot is approved for preservation
- Definition of Done before handoff:
- [ ] every in-scope agent/unit row for the wave is reconciled §2 → §3 in
tracker.md - [ ] the roll-up counts foot to
wave-schedule.md§8 (each agent counted once = 41) - [ ] no milestone marked
Donewithout its master-plan §9 DoD verified - [ ] the manual integrity gate has a recorded green run for the wave’s edges (SOP-076)
- [ ] one batched push per wave checkpoint (GR-7 / R9) — never per artifact
- [ ] tracker does not restate
wave-schedule.md/artifact-matrix.md(links only) - [ ] learnings captured to
docs/knowledge/if any (reported for indexing, SOP-024)
- [ ] every in-scope agent/unit row for the wave is reconciled §2 → §3 in
Trigger status: all phrases used here are registered —
backlog ready(Wave-2 block),preservation complete/briefing posted/artifact approved/document changed(Wave-0/1 seed). No new trigger is needed: a recorded milestone close is an intra-unit event intracker.mdwith no downstream consumer edge; the status broadcast reusesbriefing posted. Any future PMO event needing a phrase is proposed to Operations, not invented inline (docs/handoff-triggers.md).
Purpose
Run the documentation-program wave schedule in dependency order and keep the live
delivery record (tracker.md) true: drive each milestone to a verified finish,
reconcile per-agent status into the roll-up, and gate each wave on its Definition of
Done — so the org always has an accurate “what’s done, in what order, at what risk”
picture and no wave proceeds on an unverified claim.
When to use
- Product hands a prioritised, ready backlog to sequence (
backlog ready). - A wave checkpoint is reached (the unit of batching; before the batched push).
- A cadence beat falls due (the COO operating cadence —
tracker.md§4). - A roster change lands mid-program (re-reconcile the affected wave’s edges, R5).
Flow
flowchart LR
A["Open tracker.md +<br/>wave-schedule.md + matrix"] --> B["Confirm wave order<br/>(deps, critical path)"]
B --> C["Drive: collect each<br/>agent/Lead §2 row update"]
C --> D["Reconcile §2 → §3<br/>roll-up + counts"]
D --> E{"Milestone DoD<br/>verified?"}
E -->|no| F["Drive/unblock<br/>(coordinate Leads)"]
E -->|yes| G["Run integrity gate<br/>(SOP-076) → record green"]
F --> C
G --> H["One batched push (GR-7)<br/>+ post coverage update"]
H --> I["Snapshot → Archivist<br/>'artifact approved'"]
classDef s fill:#1d4ed8,color:#fff,stroke:#1e3a8a
classDef d fill:#0f766e,color:#fff,stroke:#134e4a
class A,B,C,D,F,G,H,I s
class E d
Text fallback: open tracker.md, wave-schedule.md, and artifact-matrix.md →
confirm the wave order, dependencies, and critical path (tracker.md §1) → drive
by collecting each agent/Lead’s §2 row update and unblocking dependencies → reconcile
§2 → §3 (roll-up counts foot to wave-schedule.md §8) → check each milestone’s
Definition of Done (master plan §9); if not met, keep driving/unblocking; if met,
run the integrity gate (SOP-076) and confirm a recorded green run → take one
batched push (GR-7) and post the coverage update → hand the approved tracker snapshot
to the Archivist (artifact approved).
Steps
- Open the sources.
tracker.md(the view I own),wave-schedule.md(the authoritative roster→wave mapping + §9.1 gate cadence),artifact-matrix.md(the authoritative per-agent obligations). The tracker links to these; it never restates them — if they disagree, those win and I correct the tracker. - Confirm the wave order & critical path. Per
tracker.md§1: M0→M1 serial; M2/M3/M4 parallel after M1 stable; M5 after all three green. Drive the slowest cluster (the critical path runs through it); float lives in the faster two. - Drive execution. Coordinate the Leads who do the work (Leads draft before members within a wave). Track dependencies and blockers; surface cross-cutting blockers to the COO early (do not wait for the checkpoint). Do not rewrite another unit’s artifacts — plan, sequence, unblock.
- Collect row updates. Each agent/Lead marks its own §2 status row as work lands
(
Not started/In progress/Done/N/A — <reason>/Blocked — <ref>). - Reconcile §2 → §3. Tally
Done(anN/A — <reason>counts as covered; an empty required slot does not —artifact-matrix.md§4). Confirm the org-wide count foots to 41 (each agent once; Wave 0 pilots are not an addend —tracker.md§3). - Verify milestone DoD. No milestone is
Doneuntil its master-plan §9 DoD is met and the partial register reconciles clean for that wave’s edges (wave-schedule.md§9). An asserted-done milestone is a defect — refuse it. - Run the integrity gate (SOP-076). Before the batched push, run the manual gate
and confirm a recorded green run for the wave’s edges in
tracker.md§3. A red number blocks the wave’s “done” (route the defect to its owner — not mine to fix). - Batch one push (GR-7 / R9). One push per wave checkpoint, never per artifact;
then post the coverage update (
briefing posted). - Snapshot & archive. File any learning to
docs/knowledge/(report for indexing, SOP-024); hand the approvedtracker.mdsnapshot to the Archivist (artifact approved). Hand canon Index changes to the Documentarian (document changed).
Roles / approvers
- Project Manager — runs the schedule, drives the plan, reconciles the tracker, gates each wave; the only agent who updates the roll-up (§3) and records the manual gate result.
- COO — owns the documentation program and the green stopping condition; receives wave-checkpoint status; arbitrates cross-cutting blockers. (Direct reporting line; not a registry edge.)
- Each agent / Lead — marks its own §2 row as work lands.
- Process Engineer (Operations) — owns the gate mechanism + the SOP-ID/registry the gate consumes (SOP-076 runs it; Operations owns it).
- Archivist — preserves the tracker snapshot on each wave close (0 drift).
Guardrails
- The tracker is a view, not a source — link to schedule/matrix/DoD; never restate
(charter rule 3; one home per fact,
CONTRIBUTING.md). - No milestone “done” on assertion — verify the DoD and record evidence (charter rule 1).
- Coordinate; don’t bypass owners — never rewrite, design, or accept another unit’s
work (
.claude/agents/project-manager.mdguardrail). - Batch pushes (GR-7 / R9) — one per checkpoint, never per artifact.
- Propose, don’t edit registry/canon/IDs — route through Operations / Documentarian (charter rule 7).
- Personal information is PA-only — never accessed here.
- Links to policy:
hr/employee-handbook.md,hr/policies/*; rulesCLAUDE.md.
See also: docs/units/delivery-pmo/charter.md · SOP-075 (status reporting) ·
SOP-076 (manual integrity-gate run) · docs/documentation-program/tracker.md ·
wave-schedule.md §8/§9 · artifact-matrix.md · interface-contract-spec.md ·
docs/handoff-triggers.md.