Files
relicario/docs/superpowers/coordination/2026-05-09-cli-tail-coordinator.md
adlee-was-taken f3d6c0a880 docs(coordination): cycle-2 CLI tail kickoff prompts (PM + Dev A/B/C)
Partitions Plan B's remaining phases (3-8) across three cycle-2 streams
once cycle-1 Stream A and Stream B's bundled Phase 1+2 PR have merged.
Stream A picks up Phase 3 (prompt_or_flag + builder compression),
Stream B owns Phases 4/5/6 (after_manifest_change, ParamsFile, batched
purge), Stream C owns Phases 7/8 (parser migration to relicario-core +
WASM exports). Plan C (extension restructure) is not in cycle 2.

Each kickoff bakes in cycle-1 lessons: prefer single-line relay body
content, avoid the f-string footgun in Python inbox-monitor scripts,
narration discipline (IN-PROGRESS updates at meaningful in-flight
moments, not just phase boundaries). The PM prompt also captures
cycle-1 outcomes (commits/PRs landed, the 17 pre-existing extension
test failures pattern, DEV-B's option-(b) git_run choice) so the new
PM picks up cold without relay history.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 22:18:43 -04:00

5.1 KiB

CLI Tail — Cycle 2 Coordinator

Date: 2026-05-09 Status: Draft (launches once cycle-1 prerequisites land) Theme: parallelize the post-split tail of Plan B (the CLI restructure) across three independent streams. Plan B's eight phases are already defined in docs/superpowers/specs/2026-05-04-cli-restructure-design.md; this coordinator only partitions the remaining phases across cycle-2 streams and records the cross-stream contracts.

What this is

The cycle-1 four-agent run (2026-05-04-arch-followup-*) ships:

  • Stream A — Plan A (security + docs polish): impl Drop for SessionHandle, JS swallow removal, recovery_qr.rs docs, start.sh fourth-window. Independent of B and C.
  • Stream B — Plan B Phases 1 + 2 only (mechanical main.rs split + helpers::git_run + 16-site sweep). Stops after Phase 2 per a 2026-05-09 user-driven RESCOPE directive.
  • Stream C — Plan C (extension restructure). Did not launch in cycle 1 (DEV-C never acked); remains pending and is not picked up by cycle 2 (still its own multi-week effort, separate kickoff).

The remaining six Plan B phases (3 through 8) are partitioned across three cycle-2 streams below. Each cycle-2 stream is independent of the other two once cycle-1 Stream B (Phase 1 + 2) has merged to main.

Pre-launch checklist (cycle 2 cannot open until all green)

  • Cycle-1 Stream A merged to main
  • Cycle-1 Stream B PR (Phase 1 + 2 bundle) merged to main
  • Working tree clean on main; git pull reflects both merges
  • All cycle-1 worktrees torn down (git worktree remove ../relicario.arch-followup-stream-a and *-stream-b); cycle-1 branches deleted locally if requested
  • Relay server still running on localhost:7331 (check ss -ltn 'sport = :7331')
  • Cycle-2 kickoff prompts present in docs/superpowers/coordination/2026-05-09-cli-tail-{pm,dev-a,dev-b,dev-c}-prompt.md

Stream partition

Stream Branch Worktree Plan B phases Theme
A feature/cli-tail-stream-a-prompt-helpers /home/alee/Sources/relicario.cli-tail-stream-a Phase 3 prompt_or_flag<T> + build_*_item compression
B feature/cli-tail-stream-b-session-manifest /home/alee/Sources/relicario.cli-tail-stream-b Phases 4, 5, 6 Vault::after_manifest_change, canonical ParamsFile, batched purge
C feature/cli-tail-stream-c-core-wasm-seam /home/alee/Sources/relicario.cli-tail-stream-c Phases 7, 8 parser migration to relicario-core + base32 dedup + WASM exports

Phases reference the canonical definitions in docs/superpowers/specs/2026-05-04-cli-restructure-design.md. Devs do NOT redesign — they execute against that spec.

Cross-stream dependencies (cycle 2)

  • Stream A and Stream B: both touch crates/relicario-cli/src/commands/*.rs files but in disjoint ways. Stream A modifies commands/add.rs (the seven build_*_item builders). Stream B modifies commands/init.rs (ParamsFile), commands/trash.rs (batched purge), and seven manifest-mutation sites scattered across commands/{add,edit,trash,attach,settings,import}.rs. Conflict surface is commands/add.rs (A modifies builders; B modifies the after_manifest_change callsite). Whoever opens their PR second rebases.
  • Stream B internal sequencing: Phase 6 (batched purge) depends on Phase 4 (after_manifest_change wrapper) — Phase 6's commit message logic uses the wrapper. Phase 5 (ParamsFile) is independent of 4 and 6 within Stream B; can ship first, last, or middle.
  • Stream C: touches crates/relicario-core/, crates/relicario-wasm/, and extension/src/wasm.d.ts only. Zero overlap with Streams A and B. Internal sequencing: Phase 7 (parser migration to core) before Phase 8 (WASM exports + wasm.d.ts mirror).
  • No cross-stream interface contracts. All three plans were finalized in cycle 1; the partition does not introduce new contracts.

Pre-merge checklist (per cycle-2 stream)

Same as cycle 1, plus a narration check:

  • Stream's owned phases all complete per Plan B's "Done criteria"
  • cargo test --workspace green on the stream's worktree
  • cargo clippy --workspace silent
  • cargo build -p relicario-wasm --target wasm32-unknown-unknown clean (always, but Stream C in particular)
  • No regression in CLI behaviour — existing crates/relicario-cli/tests/* tests pass without modification
  • Narration discipline observed — STATUS UPDATEs include in-flight beats, not just phase boundaries
  • PR description cross-references the corresponding Plan B phase numbers

Out of scope for cycle 2

  • Plan C (extension restructure) — multi-week effort, scheduled separately when DEV-C bandwidth available
  • The Plan B helpers::git_run itself (shipped in cycle 1 Stream B)
  • The cycle-1 P3 nits explicitly out-of-scope in Plan B
  • The eight "Open architectural decisions" from the synthesis

Tag

No release tag for cycle 2. Same as the cycle-1 architecture-review followup train — these are structural-cleanup bundles, not versioned releases. Each stream merges via gh pr merge --merge (preserve history; no squash per project convention).