Skip to content

fix(r3): Cluster M follow-up corrections — Phase 1 carrier set + #87 conflation - #2365

Merged
briansrls merged 1 commit into
mainfrom
docs/cluster-m-followup-correction-2026-05-09
May 9, 2026
Merged

briansrls merged 1 commit into
mainfrom
docs/cluster-m-followup-correction-2026-05-09

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Summary

Follow-up correction PR addressing 2 substantive bugs in merged Cluster M briefs/plan (PRs #2361 + #2362). Authorized by Brian operator 2026-05-09 ~15:30Z ("can you make the followups directly to main").

Bug #1: Phase 1 substrate carrier set incomplete: locked design docs/design-tests-as-data-completeness.md §6 line 344 names 5 carriers (ProgramGenerator, ProgramShape, Quantifier, QuantifiedTestClaim, SuiteClaim); merged briefs only listed 3 (missed ProgramShape + SuiteClaim). Workers would close #85/#86 without full substrate surface.

Bug #2: #87 conflated with #85/#86: cementing-test discipline uses LensRegistry projection ratchet with DifferentialEquals/LensOutputEquals TestClaims per §C5 — orthogonal to property-based ProgramGenerator/Quantifier carriers. Conflation would make ProgramGenerator a closed roster over lens rows (exactly what lens-library-design.md §1.5 prohibits).

Files changed

Test plan

  • All 3 files build/render correctly
  • No new conflict markers
  • Citations to locked design §2.1/§2.2/§6/§C5 verifiable

🤖 Generated with Claude Code

…conflation (codex BLOCKING post-merge)

Follow-up correction PR for codex BLOCKING (4) on merged PR #2362 sha
6027978 (per-finding analysis at #2362 issuecomment-4412858415).

PRs #2361 + #2362 + #2363 + #2364 already merged 15:14-15:20Z 2026-05-09;
this PR corrects 2 substantive bugs that landed in the merged briefs +
sequencing plan.

**Bug #1: Phase 1 substrate carrier set incomplete (3 of 5)**

Locked design `docs/design-tests-as-data-completeness.md` §6 line 344
says Phase 1 introduces 5 carriers: ProgramGenerator, ProgramShape,
Quantifier, QuantifiedTestClaim, SuiteClaim. Merged briefs only listed
3 (Quantifier, QuantifiedTestClaim, ProgramGenerator); missed
ProgramShape (element type of ProgramGenerator's body) + SuiteClaim
(wrapper sum with Enumerated/Quantified variants for TestSuite.claims
migration per design §6 line 344). Workers reading the briefs would
close #85/#86 without full substrate surface — INVARIANTS P2 boundary
sufficiency.

Fix:
- substrate-canvas-asks brief §0 Scope: 5 carriers split across #85
  (Quantifier+QuantifiedTestClaim+SuiteClaim per §2.2) and #86
  (ProgramGenerator+ProgramShape per §2.1)
- substrate-canvas-asks brief §3.1: add SuiteClaim with verbatim
  variant signature + TestSuite.claims migration note
- substrate-canvas-asks brief §3.2: add ProgramShape with verbatim
  signature + LiteralProgram bootstrap variant per §8.2
- sequencing plan §1.2 dependency structure: 5-carrier split across
  Phase 1 (#85+#86); #87 reframed as "uses existing DB-15 TestClaim +
  DifferentialEquals/LensOutputEquals (terminal predicates)" rather
  than "consumes #85/#86 carriers"
- sequencing plan §2 Lane-Mgr partition: 5-carrier authoring scope
  with `SuiteClaim` (#85) + `ProgramShape` (#86) added

**Bug #2: #87 conflated with #85/#86 dependencies (real bug)**

Discipline-87 brief said "every .dag lens has at least one cementing
test in .dag form using #85 Quantifier + QuantifiedTestClaim carriers
+ #86 ProgramGenerator carrier" — but cementing uses LensRegistry
projection ratchet with DifferentialEquals/LensOutputEquals
TestClaims per locked design §C5. ProgramGenerator ranges over
ProgramShape (program family axis), NOT over LensRegistry rows.
The conflation would make ProgramGenerator a closed roster over lens
rows — exactly the anti-pattern flagged in lens-library-design.md
§1.5 that ProgramGenerator was specifically designed to avoid.

Fix:
- discipline-87 brief §2 Dispatch trigger: rewrote — #87 dispatches
  independently of #85/#86 at predicate level. Existing DB-15
  TestClaim + DifferentialEquals/LensOutputEquals (TERMINAL
  predicates available on main today) are the cementing axis. Phase
  1 → #87 coupling exists at SuiteClaim wrapper level only
  (mechanical post-#85 wrap, backward-compatible).
- discipline-87 brief §3 Authoring scope: rewrote — discipline
  pattern uses existing DB-15 + DifferentialEquals/LensOutputEquals
  per design §C5. Cementing axis (per-LensRegistry-row v2-vs-v3
  same-source) explicitly distinguished from property-based axis
  (program-family claims via ProgramGenerator).
- sequencing plan §1.2/§1.3 dependency structure: #87 reframed as
  independent of #85/#86 at predicate level; SuiteClaim wrapper
  coupling only.
- sequencing plan §2 Lane-Mgr partition: #87 partner column scoped
  to "SuiteClaim wrapper migration only post-#85" rather than
  "Substrate (#85/#86 consumer)".
- sequencing plan §8.2 Dispatch sequence: removed "Director
  ratifies" canvas-tier-ratification anti-pattern from #85/#86
  carrier landings (per locked design §1: "no Director ratification
  required before lane dispatch"); #87 dispatch independent of
  #85/#86 timing.
- sequencing plan §9 Open questions: marked all 3 RESOLVED with
  citations.

**Impact**

Workers reading the corrected briefs + plan now have:
- Correct full carrier set per locked design §6 line 344
- Correct cementing axis (DifferentialEquals/LensOutputEquals via
  existing DB-15 infrastructure, NOT property-based ProgramGenerator)
- Correct dispatch independence (#87 doesn't gate on #85/#86)
- No canvas-tier-ratification anti-pattern

Per Brian operator authorization 2026-05-09 ~15:30Z ("can you make
the followups directly to main").

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls
briansrls merged commit 7e75f50 into main May 9, 2026
3 checks passed
@briansrls
briansrls deleted the docs/cluster-m-followup-correction-2026-05-09 branch May 9, 2026 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant