Skip to content

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

How step P3 runs P1's 32 tasks. A red critical path runs 1, 2, 4, 9, 10, 11, 12, 16, 17, 18, 20, 21, 22, 23 across milestones M1 to M5. Beside it: in M1, Tasks 3, 6 and 7 after Task 1, 5 after 4, and 8 after 2; the board gaps G1, then G2 and G3a, start at once and wait for Tasks 19 and 20; in M3, 12 beside 14, then 13 and 15 beside 16; Task 24 from M3 on, its Step 4 done by a person on an EMBL login node; in M4, 18 beside 19, then G4 before 20; in M5, Tasks 22 and 23 run on a CI runner and G7 runs beside 22. After M4, without waiting for M5: M6 (25 and 26), M7 (27) and M8 (28, then 29, 30 and 31, then 32 after 27 and G3b), with the slurm-mini checks of 28 to 30 batched on CI. Everything else runs in a cloud session. Each task's fill is its review track: review-code, tests and one review, or ux-reviewer for boards How step P3 runs P1's 32 tasks. A red critical path runs 1, 2, 4, 9, 10, 11, 12, 16, 17, 18, 20, 21, 22, 23 across milestones M1 to M5. Beside it: in M1, Tasks 3, 6 and 7 after Task 1, 5 after 4, and 8 after 2; the board gaps G1, then G2 and G3a, start at once and wait for Tasks 19 and 20; in M3, 12 beside 14, then 13 and 15 beside 16; Task 24 from M3 on, its Step 4 done by a person on an EMBL login node; in M4, 18 beside 19, then G4 before 20; in M5, Tasks 22 and 23 run on a CI runner and G7 runs beside 22. After M4, without waiting for M5: M6 (25 and 26), M7 (27) and M8 (28, then 29, 30 and 31, then 32 after 27 and G3b), with the slurm-mini checks of 28 to 30 batched on CI. Everything else runs in a cloud session. Each task's fill is its review track: review-code, tests and one review, or ux-reviewer for boards

What changed

  • New file: P2-execution.md (145 lines, commit b4d61dd). It does not repeat P1's tasks. It says how step P3 runs them:
    • §0: subagent-driven-development, one branch autopilot/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.
  • 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):
    • #72: the 0.0.1 Paper shell leaves out search, notifications and the avatar.
    • #73: spectio init --local refuses to run off Linux.
  • 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 by tools/diagrams/p2_lanes.py from P2 §0, §0.1, §1–§10; outputs docs/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 checks happy-local.yaml. M1, M3 and M6–M8 have none (P2 §1–§8, item "Done").
  • Assumed (a), pending Thomas: #72 and #73.
  • Review rule: CLAUDE.md still asks for review-code on every code change, while inbox #52 (b) asks for it on product code only. P2 §9 keeps the stricter rule until Thomas edits CLAUDE.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 sacct check probably needs slurm-site, not slurm-mini [to be validated].
    • The review-code scope 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):
    • 55: "why not like tower ? what justify not sending script and env ?". P1 assumes events carry neither.

    • 64 proposes keeping the SQLite file in the user's home folder, on backed-up storage, for the MVP.

    • 54: Kubernetes is to be discussed later.

  • Next: P3. It starts with Task 1 and, in parallel, the board gaps G1, G2 and G3a.