Skip to content

docs(planning): rung 0-2 fixture spec — phase4/field_patch_monoid (Branch-using) - #4028

Merged
briansrls merged 5 commits into
mainfrom
session/wise-seal-69
May 30, 2026
Merged

briansrls merged 5 commits into
mainfrom
session/wise-seal-69

Conversation

@briansrls

@briansrls briansrls commented May 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

W2.5 Phase 4 fixture widening, first artifact — ratifies the Phase 4 Branch-using fixture per docs/planning/v4-merge-wave-and-next-waves-2026-05-30.md §5.

Decision: PROMOTE the already-landed claim module src/v4/test/claim/algebra_laws/field_patch_monoid.dag (179 lines, 10 CompilesClaim rows) as phase4/field_patch_monoid rather than authoring fresh. The module's primary control shape is if/else (line 33 fp_ok) + coproduct discrimination over FieldPatch { Inherit | Override }, which is exactly the Branch-using shape the widening calls for.

What this PR does:

  • Authors docs/planning/v4-ladder-fixture-phase4-field-patch-monoid-2026-05-30.md — fixture ratification doc (§1), inheritance pointer to master rung gate shape (§2), wiring targets (§3), SG acceptance rule (§4), no-rustc-clean-headline enforcement (§5), spot-check receipts (§6), manager sign-off (§7).
  • Does NOT duplicate the §2 rung gate shape (PASS|FAIL|SKIP, prerequisites, blocking-receipt rules) — that's authoritative in docs/planning/v4-ladder-rung-specs-2026-05-30.md §2 (CLAUDE.md ledger standing principle).
  • Does NOT touch the claim module, CI authority, GHA workflow, or host gate script — those are follow-up wiring PRs.

Follow-ups (this manager, not this PR):

Wave alignment: W2.5 maturation work for v0.1.1 narrative; not blocking Jun 1 v0.1.0 tag.

Predecessor structure cited

Test plan

  • Doc-only PR; no code changes. CI runs nominally.
  • Spot-check receipts (§6) verified against origin/main @ 887f0f2ed (last commit before this branch diverged):
  • Reviewer rubric: confirm doc only inherits §2 by reference (no parallel-ledger duplication), fixture choice rationale lands, predecessor citations line up.

🤖 Generated with Claude Code

briansrls and others added 5 commits May 30, 2026 19:45
Review nit from claude/claude-opus-4-7 on PR #4015: both branches called
note_blocking with the same receipt id. Collapse to a single call.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Review finding from cursor/composer-2.5 on PR #4015: `gofmt -e -l` exits
non-zero when emitted Go is syntactically valid but not gofmt-formatted,
which would record R0-go-parse=FAIL with `go_emit_parse_rejected` for a
formatting delta — violating §2.1 parse-only authority. Use plain
`gofmt -e` (exits non-zero only on parse/syntax errors) and discard the
formatted stdout, keeping stderr as the log.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Review finding from openai-pro/gpt-5.5-pro on PR #4015: the three new parse-only
host-process invocations (rustc -Z parse-only nightly probe, per-file rustc
parse, xargs gofmt -e) bypassed V4_PHASE1_NAT_SEMIRING_TIMEOUT_SECS, breaking
the declared per-toolchain timeout contract (INVARIANTS P3 fail-closed).

Adds a `timed` command-prefix array (`timeout --preserve-status $secs` when set,
empty otherwise) and routes the three callsites through it. run_step is still
used for full compile/build checks where tee logging is desired; the prefix
form is for cases that pipe through xargs or discard stdout.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…anch-using)

Ratifies the Phase 4 Branch-using fixture (W2.5 widening per
docs/planning/v4-merge-wave-and-next-waves-2026-05-30.md §5).

Promotes the already-landed claim module
src/v4/test/claim/algebra_laws/field_patch_monoid.dag (179 lines, 10
CompilesClaim rows) as the Branch-using fixture rather than authoring fresh.
Primary control shape: if/else (line 33 fp_ok) + coproduct discrimination over
FieldPatch { Inherit | Override }.

Rung gate shape (§2) is NOT duplicated — inherited verbatim from
docs/planning/v4-ladder-rung-specs-2026-05-30.md §2 per CLAUDE.md ledger
standing principle. Only fixture subject + Phase 4 specifics in this doc.

Rungs 3-4 specs follow in separate PRs mirroring #4003 / #3990. Wiring
(roster .dag + CI gate + host script) is a follow-up PR; this doc is the
ratification authority only.

Predecessor structure:
- #3946 (rungs 0-2 spec on phase1/nat_semiring)
- #4003 (rung-3 spec template)
- #3990 (rung-4 spec template)
- #4015 (post-script-alignment receipt shape)

Not blocking Jun 1 v0.1.0 tag; v0.1.1 maturation narrative.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls briansrls changed the title Ladder/Fixture Manager — authority over 9-rung correctness ladder, fixture set, rung gate shape (acceptance predicates per rung), 'no rustc-clean as headline' enforcement per PR #3938 §11.1. First artifact: nat_semiring × rungs 0-2 acceptance predicate spec; ratify nat_semiring as Phase 1 fixture; d docs(planning): rung 0-2 fixture spec — phase4/field_patch_monoid (Branch-using) May 30, 2026
@briansrls
briansrls marked this pull request as ready for review May 30, 2026 21:10
@briansrls
briansrls merged commit af7f1fe into main May 30, 2026
20 checks passed
briansrls added a commit that referenced this pull request May 30, 2026
…1/W1b inherited)

Binds rung-3 acceptance predicate to phase4/field_patch_monoid (ratified
#4028). Additive per-fixture doc — does NOT restate the W1/W1b predicate
shape, prerequisite chain, SG rule, or headline rule; those inherit verbatim
from #4003 (rung-3 spec on phase1/nat_semiring) per CLAUDE.md ledger standing
principle.

Fixture-particular content only:
- Scope binding (§1): predicate ids namespaced phase4/field_patch_monoid/rung3/*
- Note on Branch-using shape: round-trip predicate is shape-agnostic; if/else
  and FieldPatch coproduct discrimination are surface for algebraic laws, not
  new rung-3 predicates.
- Spot-check receipts (§6): fixture module on main, no RoundTripClaim row
  bound to field_patch_monoid → wedge per inherited #4003 §2.3.
- Baseline (§7): rung3=FAIL (dag=SKIP), blocking_receipt
  upstream_blocked:claim_field_patch_monoid_module_roundtrip_not_authored.
  Mirrors phase1/nat_semiring wedge per #4003 §6; same W3 module-loader
  unblock path.

Wave alignment: W2.5 maturation for v0.1.1; not Jun 1 gating. Coordinates
with royal-wolf-898 who is authoring rung-3/4 specs for phase4/branch_dispatch
+ phase4/loop_linear_bound in parallel (no overlap).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 30, 2026
…1/W1b inherited) (#4036)

* WIP: Ladder/Fixture Manager — authority over 9-rung correctness ladder, fixtu

* fix(ci): drop dead if/else around R2-rust upstream_blocked note

Review nit from claude/claude-opus-4-7 on PR #4015: both branches called
note_blocking with the same receipt id. Collapse to a single call.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(ci): drop -l from R0-go-parse gofmt, discard formatted stdout

Review finding from cursor/composer-2.5 on PR #4015: `gofmt -e -l` exits
non-zero when emitted Go is syntactically valid but not gofmt-formatted,
which would record R0-go-parse=FAIL with `go_emit_parse_rejected` for a
formatting delta — violating §2.1 parse-only authority. Use plain
`gofmt -e` (exits non-zero only on parse/syntax errors) and discard the
formatted stdout, keeping stderr as the log.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(ci): bound R0 parse probes under per-toolchain timeout

Review finding from openai-pro/gpt-5.5-pro on PR #4015: the three new parse-only
host-process invocations (rustc -Z parse-only nightly probe, per-file rustc
parse, xargs gofmt -e) bypassed V4_PHASE1_NAT_SEMIRING_TIMEOUT_SECS, breaking
the declared per-toolchain timeout contract (INVARIANTS P3 fail-closed).

Adds a `timed` command-prefix array (`timeout --preserve-status $secs` when set,
empty otherwise) and routes the three callsites through it. run_step is still
used for full compile/build checks where tee logging is desired; the prefix
form is for cases that pipe through xargs or discard stdout.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(planning): rung 0-2 fixture spec — phase4/field_patch_monoid (Branch-using)

Ratifies the Phase 4 Branch-using fixture (W2.5 widening per
docs/planning/v4-merge-wave-and-next-waves-2026-05-30.md §5).

Promotes the already-landed claim module
src/v4/test/claim/algebra_laws/field_patch_monoid.dag (179 lines, 10
CompilesClaim rows) as the Branch-using fixture rather than authoring fresh.
Primary control shape: if/else (line 33 fp_ok) + coproduct discrimination over
FieldPatch { Inherit | Override }.

Rung gate shape (§2) is NOT duplicated — inherited verbatim from
docs/planning/v4-ladder-rung-specs-2026-05-30.md §2 per CLAUDE.md ledger
standing principle. Only fixture subject + Phase 4 specifics in this doc.

Rungs 3-4 specs follow in separate PRs mirroring #4003 / #3990. Wiring
(roster .dag + CI gate + host script) is a follow-up PR; this doc is the
ratification authority only.

Predecessor structure:
- #3946 (rungs 0-2 spec on phase1/nat_semiring)
- #4003 (rung-3 spec template)
- #3990 (rung-4 spec template)
- #4015 (post-script-alignment receipt shape)

Not blocking Jun 1 v0.1.0 tag; v0.1.1 maturation narrative.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(planning): rung-3 acceptance spec — phase4/field_patch_monoid (W1/W1b inherited)

Binds rung-3 acceptance predicate to phase4/field_patch_monoid (ratified
#4028). Additive per-fixture doc — does NOT restate the W1/W1b predicate
shape, prerequisite chain, SG rule, or headline rule; those inherit verbatim
from #4003 (rung-3 spec on phase1/nat_semiring) per CLAUDE.md ledger standing
principle.

Fixture-particular content only:
- Scope binding (§1): predicate ids namespaced phase4/field_patch_monoid/rung3/*
- Note on Branch-using shape: round-trip predicate is shape-agnostic; if/else
  and FieldPatch coproduct discrimination are surface for algebraic laws, not
  new rung-3 predicates.
- Spot-check receipts (§6): fixture module on main, no RoundTripClaim row
  bound to field_patch_monoid → wedge per inherited #4003 §2.3.
- Baseline (§7): rung3=FAIL (dag=SKIP), blocking_receipt
  upstream_blocked:claim_field_patch_monoid_module_roundtrip_not_authored.
  Mirrors phase1/nat_semiring wedge per #4003 §6; same W3 module-loader
  unblock path.

Wave alignment: W2.5 maturation for v0.1.1; not Jun 1 gating. Coordinates
with royal-wolf-898 who is authoring rung-3/4 specs for phase4/branch_dispatch
+ phase4/loop_linear_bound in parallel (no overlap).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 30, 2026
…4039)

* WIP: Ladder/Fixture Manager — authority over 9-rung correctness ladder, fixtu

* fix(ci): drop dead if/else around R2-rust upstream_blocked note

Review nit from claude/claude-opus-4-7 on PR #4015: both branches called
note_blocking with the same receipt id. Collapse to a single call.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(ci): drop -l from R0-go-parse gofmt, discard formatted stdout

Review finding from cursor/composer-2.5 on PR #4015: `gofmt -e -l` exits
non-zero when emitted Go is syntactically valid but not gofmt-formatted,
which would record R0-go-parse=FAIL with `go_emit_parse_rejected` for a
formatting delta — violating §2.1 parse-only authority. Use plain
`gofmt -e` (exits non-zero only on parse/syntax errors) and discard the
formatted stdout, keeping stderr as the log.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(ci): bound R0 parse probes under per-toolchain timeout

Review finding from openai-pro/gpt-5.5-pro on PR #4015: the three new parse-only
host-process invocations (rustc -Z parse-only nightly probe, per-file rustc
parse, xargs gofmt -e) bypassed V4_PHASE1_NAT_SEMIRING_TIMEOUT_SECS, breaking
the declared per-toolchain timeout contract (INVARIANTS P3 fail-closed).

Adds a `timed` command-prefix array (`timeout --preserve-status $secs` when set,
empty otherwise) and routes the three callsites through it. run_step is still
used for full compile/build checks where tee logging is desired; the prefix
form is for cases that pipe through xargs or discard stdout.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(planning): rung 0-2 fixture spec — phase4/field_patch_monoid (Branch-using)

Ratifies the Phase 4 Branch-using fixture (W2.5 widening per
docs/planning/v4-merge-wave-and-next-waves-2026-05-30.md §5).

Promotes the already-landed claim module
src/v4/test/claim/algebra_laws/field_patch_monoid.dag (179 lines, 10
CompilesClaim rows) as the Branch-using fixture rather than authoring fresh.
Primary control shape: if/else (line 33 fp_ok) + coproduct discrimination over
FieldPatch { Inherit | Override }.

Rung gate shape (§2) is NOT duplicated — inherited verbatim from
docs/planning/v4-ladder-rung-specs-2026-05-30.md §2 per CLAUDE.md ledger
standing principle. Only fixture subject + Phase 4 specifics in this doc.

Rungs 3-4 specs follow in separate PRs mirroring #4003 / #3990. Wiring
(roster .dag + CI gate + host script) is a follow-up PR; this doc is the
ratification authority only.

Predecessor structure:
- #3946 (rungs 0-2 spec on phase1/nat_semiring)
- #4003 (rung-3 spec template)
- #3990 (rung-4 spec template)
- #4015 (post-script-alignment receipt shape)

Not blocking Jun 1 v0.1.0 tag; v0.1.1 maturation narrative.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(planning): rung-3 acceptance spec — phase4/field_patch_monoid (W1/W1b inherited)

Binds rung-3 acceptance predicate to phase4/field_patch_monoid (ratified
#4028). Additive per-fixture doc — does NOT restate the W1/W1b predicate
shape, prerequisite chain, SG rule, or headline rule; those inherit verbatim
from #4003 (rung-3 spec on phase1/nat_semiring) per CLAUDE.md ledger standing
principle.

Fixture-particular content only:
- Scope binding (§1): predicate ids namespaced phase4/field_patch_monoid/rung3/*
- Note on Branch-using shape: round-trip predicate is shape-agnostic; if/else
  and FieldPatch coproduct discrimination are surface for algebraic laws, not
  new rung-3 predicates.
- Spot-check receipts (§6): fixture module on main, no RoundTripClaim row
  bound to field_patch_monoid → wedge per inherited #4003 §2.3.
- Baseline (§7): rung3=FAIL (dag=SKIP), blocking_receipt
  upstream_blocked:claim_field_patch_monoid_module_roundtrip_not_authored.
  Mirrors phase1/nat_semiring wedge per #4003 §6; same W3 module-loader
  unblock path.

Wave alignment: W2.5 maturation for v0.1.1; not Jun 1 gating. Coordinates
with royal-wolf-898 who is authoring rung-3/4 specs for phase4/branch_dispatch
+ phase4/loop_linear_bound in parallel (no overlap).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* WIP: Ladder/Fixture Manager — authority over 9-rung correctness ladder, fixtu

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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