P2 · Execution guide for the P1 plan¶
Done 2026-10-29 · one guide, 8 milestones, 32 P1 tasks ordered, 8 gap tasks (G1–G7) · 2 new inbox entries assumed · next: P3

What changed¶
- New file:
P2-execution.md(145 lines, commitb4d61dd). It does not repeat P1's tasks. It says how step P3 runs them:- §0:
subagent-driven-development, one branchautopilot/P3-<task>per task, one Progress page per milestone (docs/progress/W5/P3-M<n>.md), and the critical path 1 → 2 → 4 → 9 → 10 → 11 → 12 → 16 → 17 → 18 → 20 → 21 → 22 → 23. - §0.1: where each part runs. Unit, API and Playwright tests run in a cloud session. Tasks 22 and 23 run in CI (cloud sessions cannot run sind). Task 24 Step 4 and inbox #64 need a person on an EMBL login node.
- §1–§8: for each milestone M1–M8, its tasks, their order, the command that proves it done, and its review track.
- §9: the three review tracks of inbox #52 option (b).
- §10: gap tasks G1, G2, G3a, G3b, G4, G5, G6 and G7. The GO's changes 3–5 need them, and P1 does not carry them.
- §11: eight notes for the next apply pass on P1. P1 itself is not edited.
- §0:
- Nav: one line in
mkdocs.yml, under Playbooks, after the P1 plan. - Decision log: a new entry, P2 is a short execution guide over P1, records Thomas's narrowing of the P2 prompt.
- Inbox: two new entries in commit
b4d61dd, both assumed (a): - No spec was edited.
Why¶
The GO of 2026-10-29 approved the whole P1 plan, M1 to M8, with five changes (decision log). Its "Next" line is "P2, then P3". P1 already gives every task its files, tests and commands. So P2 is one short guide on top of P1, not a second plan. It covers what P1 lacks: the order, the parallel lanes, where each part runs, the review track, and the gaps the GO opened.
Prompt: next-phase.md · P2. Step: P2 in docs/playbooks/pipeline.yaml (wave W5, kind: plan). The prompt still asks for one plan file per milestone; Thomas narrowed it (decision log).
Evidence¶
Context before the step.
Commit 7ba905a copied eleven dashboard answers of 2026-10-29 into the inbox, each marked Open (needs Thomas's confirmation in a session or commit). They are in entries #4, #46, #48–#51, #53–#55, #59 and #64. This commit is P2's base, so it does not appear in the step's diff.
Files changed by the step, against the base 7ba905a recorded in .autopilot/state.json (the commit that marks P2 done follows these):
$ git log --oneline 7ba905a..HEAD
cb0854c autopilot(P2): p2_lanes figure (execution lanes), media manifest entry
4dfecc7 autopilot(P2): doc-review fixes (log link, inbox numbers, step page link, stale finding)
50015d5 autopilot(P2): Progress page, nav line, decision log entry for P2's narrowing
b4d61dd autopilot(P2): execution guide for P1 (gaps G1-G7); inbox #72, #73 assumed
d012553 chore(autopilot): start P2
$ git diff --stat 7ba905a HEAD
.autopilot/state.json | 9 +-
docs/assets/diagrams/p2_lanes_dark.png | Bin 0 -> 289810 bytes
docs/assets/diagrams/p2_lanes_dark.svg | 1801 +++++++++++++++++++++++++++++++
docs/assets/diagrams/p2_lanes_light.png | Bin 0 -> 279104 bytes
docs/assets/diagrams/p2_lanes_light.svg | 1801 +++++++++++++++++++++++++++++++
docs/assets/media.yaml | 8 +
docs/decisions/log.md | 5 +
docs/plans/P2-execution.md | 152 +++
docs/progress/W5/P2.md | 109 ++
docs/reviews/inbox.md | 18 +
mkdocs.yml | 1 +
tools/diagrams/p2_lanes.py | 296 +++++
12 files changed, 4196 insertions(+), 4 deletions(-)
Counts re-checked by doc-writer:
$ grep -c "^### Task" docs/plans/P1-walking-skeleton.md
32
$ grep -o "^### 10\.[0-9] G[0-9a-z]*" docs/plans/P2-execution.md | tr '\n' ' '
### 10.1 G1 ### 10.2 G2 ### 10.3 G3a ### 10.4 G3b ### 10.5 G4 ### 10.6 G5 ### 10.7 G6 ### 10.8 G7
$ git diff 7ba905a -- docs/reviews/inbox.md | grep -c "^+### #"
2
Docs gate. The worker reported mkdocs build --strict exit 0 and docs gate: 0 failure(s). doc-writer re-ran both after writing this page:
$ python3 tools/docs/check.py
build: progress hook output checked on 3 pages
mermaid: 5 blocks checked
diagrams: 32 scripts re-run, 64 SVGs compared
media: 154 outputs in the manifest
progress: 48 pages checked
docs gate: 0 failure(s)
$ uvx --with mkdocs-material mkdocs build --strict -d /tmp/spectio-site
INFO - Documentation built in 5.01 seconds
$ echo $?
0
The generated Progress index now has a W5 section that links this page.
Exit criterion. P2 has no exit_check. Its output, docs/plans/P2-execution.md, exists. No code changed, so the review-code skill does not apply.
Figures and media¶
- Execution lanes at the top of this page:
p2_lanes, drawn bytools/diagrams/p2_lanes.pyfrom P2 §0, §0.1, §1–§10; outputsdocs/assets/diagrams/p2_lanes_{light,dark}.{svg,png}. It shows the critical path by milestone, the parallel lanes and gap tasks beside it, where each lane runs (cloud session, CI runner, a person on an EMBL login node), and each task's review track as its fill. Left to right is order, not time: P2 gives no durations.
Findings and open questions¶
- The P2 prompt differs from what P2 did. next-phase.md · P2 asks for one plan file per milestone. Thomas's narrowing is now recorded in its own decision log entry; the prompt itself is a playbook edit for the next apply pass.
- Milestones without a proving scenario. Only M5 has one (
happy-slurm-mini.yaml). M2 and M4 rely on stand-ins until gap G7 checkshappy-local.yaml. M1, M3 and M6–M8 have none (P2 §1–§8, item "Done"). - Assumed (a), pending Thomas: #72 and #73.
- Review rule:
CLAUDE.mdstill asks forreview-codeon every code change, while inbox #52 (b) asks for it on product code only. P2 §9 keeps the stricter rule until Thomas editsCLAUDE.md. - Notes for P1 (§11), for the next apply pass:
- Tasks 28–30 run cluster checks but do not depend on Task 22.
- Task 29's
sacctcheck probably needsslurm-site, notslurm-mini[to be validated]. - The
review-codescope differs between P1's "Done when" and its Process line. - P1 has no tasks for gaps G1–G7.
- Dashboard answers that bear on P3 (open, need confirmation):
- Next: P3. It starts with Task 1 and, in parallel, the board gaps G1, G2 and G3a.