Skip to content

docs(spec) add Phase 2 § Parallelism plan to build-spec#67

Merged
jkeeley2073 merged 1 commit into
mainfrom
Dev-Phase2ParallelismPlan
May 4, 2026
Merged

docs(spec) add Phase 2 § Parallelism plan to build-spec#67
jkeeley2073 merged 1 commit into
mainfrom
Dev-Phase2ParallelismPlan

Conversation

@jkeeley2073
Copy link
Copy Markdown
Contributor

Summary

Add a ### Parallelism plan sub-section to docs/build-spec.md Phase 2, between § Non-goals and § Risks. Captures how the seven remaining Phase 2 scope items (after ADRs 0012 + 0013 shipped in PRs #65 + #66) execute in parallel where possible, given the established 2–3-active-PRs ceiling for one-developer-plus-AI work.

The plan articulates:

  • Dependency core (sequential): 3 → 4 → 5. Item 3's seed enables item 4's write-back path; items 4 + 5 share OpdbSyncService and so must sequence to avoid merge pain.
  • Independent surface (parallel-safe): items 6, 7, 8, 9 don't conflict with each other or with the core sequence.
  • Three waves:
    • Wave 1 — items 9 (work-email denylist) + 7-round-1 (close deprecated Dependabot PRs) + 3 (seed ingestion_sources). Three PRs in parallel; no file conflicts.
    • Wave 2 — items 6 (Playwright bump) + 8 (Stern asymmetry route ii) + 4 (OPDB --dry-run code + operational hand-off) + 7-round-2 (clean Dependabot bumps sequenced).
    • Wave 3 — item 5 (OTel groundwork). Last because it shares OpdbSyncService with item 4 and benefits from item 4's real run as the first telemetry source to instrument.
  • Sizing: ~8–10 PRs + 1 operational hand-off, matching the earlier 8–12 ballpark.
  • Conventions: item 4's operational run is a phase-retrospective hand-off (not a PR); item 7 triage PRs get brief descriptions and skip /local-review; docs/observability.md (Wave 3) defines the OTel inventory pattern Phase 3 / 4 / 5 inherit.

The plan is forward-looking spec content; it belongs in the build-spec next to the scope items it sequences, not in session memory.

Test Plan

  • Docs-only PR; no code paths affected.
  • dotnet build PinballWizard.slnx --nologo and dotnet test PinballWizard.slnx are expected to remain green.
  • Cross-references verified: pointers to guardrails.md § Per-PR gate and § Risk register resolve; pointers to § Exit criteria and § Scope items in this same Phase 2 section resolve.

Out of Scope

  • Wave 1 execution. No actual scope items 3 / 7 / 9 land in this PR — that's the next set of PRs once this parallelism plan is merged.
  • docs/observability.md — created in Wave 3 (item 5), not now.
  • Any Phase 3 / 4 / 5 work. Phase 2 closes its 9 scope items first per build-spec.md.

Checklist

  • CI is green (build + test + coverage + CodeQL + sanitization) — will verify after the workflows run
  • PR title follows the Conventional Commits format
  • If this is a new architectural decision, an ADR has been added — N/A; this is execution sequencing within an already-approved phase
  • If user-visible behavior changes, README.md and/or docs/ are updated — yes, build-spec.md updated
  • If a memory is now stale, it has been updated or removed — N/A; the session-handoff memory written at the start of this turn already references this plan
  • No TODO / FIXME / commented-out code committed
  • No new entries in <NoWarn> without justification — N/A; no code

Pre-push self-audit (additive PRs)

N/A for this PR — docs-only, no scraper / options class / extension / additive code surface. Per docs/guardrails.md § "Per-PR gate" and CLAUDE.md § "PR self-audit", "Doc-only PRs and pure dependency bumps may skip" the audit. Identity check still verified:

  • git log -1 --format='%an <%ae>'Jim Keeley <94459922+jkeeley2073@users.noreply.github.com>

🤖 Generated with Claude Code

Add a Parallelism plan sub-section to docs/build-spec.md Phase 2,
between § Non-goals and § Risks. Captures the dependency core
(3 → 4 → 5), the independent surface (6, 7, 8, 9), three execution
waves with concrete PR ordering, and the sizing estimate
(~8–10 PRs + 1 operational hand-off).

Wave 1 (parallel): item 9 (work-email denylist) + item 7 round 1
(close deprecated-path Dependabot PRs) + item 3 (seed
ingestion_sources). No file conflicts.

Wave 2 (after Wave 1): item 6 (Playwright bump) + item 8 (Stern
asymmetry route ii) + item 4 (OPDB --dry-run code + operational
hand-off) + item 7 round 2 (clean Dependabot bumps in sequence).

Wave 3: item 5 (OTel groundwork) — last because it touches the
same OpdbSyncService as item 4 and benefits from item 4's real run
as the first telemetry source to instrument.

Conventions captured: item 4's operational run is a phase-
retrospective hand-off (not a PR); item 7 triage PRs get brief
descriptions and skip /local-review (per guardrails Per-PR gate
exemption); docs/observability.md (Wave 3) defines the OTel
inventory pattern Phase 3 / 4 / 5 inherit.

This sub-section is forward-looking spec content that belongs next
to the scope items it sequences. Future contributors find the
parallelism plan in the build-spec, not in session memory.
@jkeeley2073 jkeeley2073 added the claude-code Generated with Claude Code label May 4, 2026
@jkeeley2073 jkeeley2073 merged commit 4744bb7 into main May 4, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

claude-code Generated with Claude Code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant