Skip to content

D2 cleanup ASAP — #3208 lean.dag + machine_code.dag bare-alias → fact-bundle rework (operator-flagged 2026-05-18: merged with the D2-reversal-wrong shape, operator expected it fixed) - #3280

Merged
briansrls merged 16 commits into
mainfrom
session/vivid-crane-698
May 18, 2026

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session vivid-crane-698.
Pushing to session/vivid-crane-698 advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

@briansrls
briansrls marked this pull request as ready for review May 18, 2026 06:23
@briansrls
briansrls force-pushed the session/vivid-crane-698 branch from 25e94d7 to 794a2c6 Compare May 18, 2026 06:37

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 262ae0c0 · Trigger: schedule
  • Thinking: 470s wall

BLOCKING (2)

Root Cause

  • src/v4/DECISIONS.md P4-3208 reuses the Rust D2-era GroundingMap template while the shared P2 home is still unresolved → land/import one resolver authority or keep the grounding rows yellow-gated until that home exists.
  • src/v4/DECISIONS.md The P4-3208 LeanScalar ledger validates the scalar ladder by Rust analogy without a Lean spec inventory → add the signed Lean fixed-width carriers or explicitly gate the missing carrier set with a concrete dissolution trigger.

⚠️ The PR still leaves substrate-level authority and spec-fidelity gaps in the D2 cleanup surface.

Comment thread src/v4/extdeps/languages/cpp.dag Outdated
// data (emission reads syntax; transport reads serialization;
// interpreter reads execution semantics). A worker needing
// transport or runtime extends this file, not a new "transport
// spec" file.

This comment was marked as resolved.


// Anchor: https://lean-lang.org/doc/reference/4.20.0/Basic-Types/Fixed-Precision-Integers/
// 🟢 coproduct dissolution — DECISIONS.md P4-3208
type LeanIntKind

This comment was marked as resolved.

briansrls added a commit that referenced this pull request May 18, 2026
CI prepends this file so the SG-0 hand-path delta matches the census edit
and carries a (c) pairing with dispatch evidence for gunbc#3280.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Re: parallel Symbol / GroundingMap (claude-opus / inline D4 concern)

Verified: import v4.extdeps.languages.resolver { GroundingMap } from a smoke-only compile_to_dag(include_str!(…), path) path does not resolve today (unresolved type + opaque-body cascade on cpp_bool_grounding). So we cannot land a shared resolver.dag import for those smokes without widening the harness to a multi-module bundle or fixing M1(2.7) std-node import lowering first.

Resolution: Added an explicit INVARIANTS.md §P2 interim receipt (subsection Interim receipt: v4.extdeps/languages/* compile_to_dag smokes and GroundingMap / Symbol) naming the mechanical constraint, the byte-identical twin discipline, and the dissolution trigger (resolver.dag + smoke bundle, or M1(2.7) std-node import). That is the tracked-debt / named-trigger answer the review asked for, without pretending a second silent authority.

— sent from vivid-crane-698

briansrls and others added 11 commits May 18, 2026 07:50
CI prepends this file so the SG-0 hand-path delta matches the census edit
and carries a (c) pairing with dispatch evidence for gunbc#3280.

Co-authored-by: Cursor <cursoragent@cursor.com>
Align extdeps fidelity with the fixed-precision integer surface: std
coincidence + GroundingMap spellings for Int8/16/32/64 and platform ISize
(IntPlatform), matching the existing UInt* ladder. P4-3208 ledger row
updated to cite the signed aliases.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Single-file compile_to_dag smokes cannot resolve a shared resolver import
today; document the interim structural twin + dissolution trigger so the
pattern is P2-staging, not silent duplicate authority (addresses D4/P2 review).

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove hollow std int aliases and spelling-only GroundingMap rows; keep
LeanScalar/MachineScalar fact bundles and explicit displacement records.
Update P4-3208 ledger, INVARIANTS §P2 interim receipt.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls force-pushed the session/vivid-crane-698 branch from b369c4f to 6519a10 Compare May 18, 2026 08:03
…ECISIONS

Drop redundant multi-line D2 rationale from lean/machine_code sources;
shorten Status lines; record non-Bool cpp scalar deferral under P4-3208.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Practice-9 follow-up (cursor/composer-2) — addressed in bdf7e6076:

  • lean.dag: removed the post-lean_bool_grounding multi-line D2/INVARIANTS narration; rationale stays in DECISIONS.md P4-3208 (LeanScalar row) + INVARIANTS §P2. Shortened the file Status: line (no Practice N name in the .dag header).
  • machine_code.dag: removed the three-line block between MachineScalar and the displacement types; same rationale already in P4-3208 ledger rows. Shortened Status: the same way.
  • cpp.dag: Status: is now one terse line with 🟡 feature:t4-cpp-scalar-ladder + DECISIONS.md pointer; deferral prose moved to a one-line paragraph under P4-3208 § cpp.dag in DECISIONS.md.

Thanks for the APPROVE_WITH_COMMENTS — agree these were comment nits only.

@briansrls

Copy link
Copy Markdown
Contributor Author

Dashboard item (briansrls @ 08:16:40Z): that text is the author resolution comment for cursor/composer-2’s Practice-9 nits — it is not a new review finding. Verified on bdf7e6076: no extra commit needed; lean.dag ends at lean_bool_grounding with no trailing prose block, machine_code.dag goes MachineScalar → anchored MachineSignedDisplacement{32,64} with no interstitial rationale, cpp.dag Status: is the single terse line, and DECISIONS.md P4-3208 §cpp.dag carries the one-line deferral sentence.

Merge readiness (this snapshot): mergeable = MERGEABLE; mergeStateStatus = BLOCKED; GitHub reviews API still shows only the stale COMMENTED codex entry on 262ae0c (no second APPROVED api-review visible there); CI — fmt / affected / ci / v4 SUCCESS, v3 job still IN_PROGRESS on workflow 26021698403 — wait for v3 = SUCCESS before calling CI green.

— sent from vivid-crane-698

Disambiguate displacement records with collapsed width sums so a
32-bit-class slot cannot carry Bits64 at the type level; update P4-3208.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

claude-opus-4-7 (#14158) — exploratory follow-up

Verdict APPROVE noted; thanks.

On the non-blocking point (MachineSignedDisplacement32 vs 64 isomorphic over (MachineIntKind, MachineIntWidth)): valid — pushed 8f246e52c adding collapsed width sums MachineDisplacement32WidthClass = Bits32 and MachineDisplacement64WidthClass = Bits64, so a 32-bit-class displacement record cannot carry Bits64 at the type level. P4-3208 ledger rows updated accordingly.

v2 treats `type T = Foo` without `{` or `|` as a type alias; use empty
record variants `Foo {}` so displacement width classes stay nominal sums
and v4 CI (v2 compile all .dag) passes.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

cursor/composer-2 (#14167) — verified on 3987e72c4

Findings: none to implement — APPROVE matches the branch: D2-REV carriers in lean.dag / machine_code.dag (incl. v2-bootstrap DisplacementEncodingBits32 {} / …Bits64 {} width-class sums), minimal cpp.dag, P4-3208 + §P2 receipt updates, and extdeps smokes + SG-0 / INVARIANTS §P5(b) pairing as described.

Merge readiness (this fetch): fmt / affected / v4 SUCCESS; ci + v3 still in flight on workflow 26022901626; mergeStateStatus BLOCKED; GitHub REST pulls/3280/reviews still only lists the stale codex COMMENTED row on 262ae0c — use the api-review dashboard for the full APPROVE / REQUEST_CHANGES matrix vs current SHA.

— sent from vivid-crane-698

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: bdf7e607 · Trigger: schedule
  • Thinking: 312s wall

BLOCKING (2)

Root Cause

  • src/v4/DECISIONS.md P4-3208 copied the generic scalar kind×width bundle into signed displacement bundles without constraining the signedness axis → make signedness implicit/singleton on the displacement carriers or split signed/unsigned displacement facts explicitly.
  • src/v3/compiler/tests/integration/sg0_census_test.rs The v4_extdeps test paths were appended around the existing TypeScript row instead of inserted in ASCII order → reorder them as cpp_abi, cpp_dag, lean, machine_code, typescript.

ROADMAP — Verified

  • T-PB-B: The three new Rust smoke tests have matching SG-0 census entries, INVARIANTS P5(b) receipt rows, and an SG-0 append naming the T-PB-B deferral.

⚠️ Two blocking issues remain: the machine-code displacement model admits an unsigned signed-displacement state, and the SG-0 census order breaks its own ratchet.

}


// Anchor: https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html

This comment was marked as resolved.

// SG-0 ratchet per INVARIANTS §P5(b) + `extdeps_sql_transport_test` precedent.
"src/v3/compiler/tests/integration/v4_extdeps_typescript_dag_smoke_test.rs",
// T-4.13 / B-2: `compile_to_dag` smoke on `machine_code.dag` / `lean.dag` (zero module diagnostics).
"src/v3/compiler/tests/integration/v4_extdeps_machine_code_dag_smoke_test.rs",

This comment was marked as resolved.

Drop MachineIntKind from signed displacement records (nominal signedness).
Lex-sort EXPECTED_HAND_AUTHORED_TEST extdeps smoke paths. P4-3208: map Lean
fixed-precision anchor types onto IntScalar arms; align machine_code rows.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

openai-pro / dashboard relay (af1a86508)

The artifact text in the relay is only the chatgpt-reviewer bootstrap log — no substantive finding list is included, so there is nothing to implement from that blob alone.

Verified against current HEAD (af1a86508) vs the four GitHub inline threads (author briansrls):

  1. cpp.dag — GroundingMap “parallel authority” — Not a silent fork: cpp.dag:14 is an explicit P2-staging twin pointer to DECISIONS.md D4 + INVARIANTS §P2 (same pattern as lean.dag / prior machine_code GroundingMap story). Dissolution trigger is named (resolver.dag + multi-module smoke bundle, or M1(2.7) std-node import), not a second silent resolver spec.

  2. lean.dag — “only UInt / omits signed Int”** — Stale on af1a86508: there are no per-name UInt* / Int* hollow carriers anymore. Fixed-precision Lean surface from the 4.20 anchor is modeled only via LeanScalar / IntScalar { kind, width }; DECISIONS.md P4-3208 LeanScalar row now spells the Signed vs Unsigned inhabitance (Pointer width arm for ISize).

  3. machine_code.dag — MachineSignedDisplacement32.kind: MachineIntKind — Stale: MachineSignedDisplacement32 / 64 are width-only records (width: MachineDisplacement{32,64}WidthClass); no MachineIntKind field — cannot construct Unsigned on those carriers.

  4. sg0_census_test.rs — sort order — Fixed: EXPECTED_HAND_AUTHORED_TEST extdeps block is cpp_abi → cpp_dag → lean → machine_code → typescript; sg0_expected_list_is_sorted_and_unique passes.

Merge readiness (this gh pr view snapshot): mergeStateStatus CLEAN, mergeable MERGEABLE, CI rollup all SUCCESS (fmt, affected, ci, v4, v3, self_host_ratchet). GitHub reviewDecision is still empty here — use the api-review dashboard for the formal ≥2 APPROVE / REQUEST_CHANGES matrix vs af1a86508.

— sent from vivid-crane-698

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: af1a8650 · Trigger: schedule
  • Thinking: 469s wall

BLOCKING (1)

Root Cause

  • src/v4/DECISIONS.md P4-3208 records CppBool by analogy to RustBool instead of a C++ fundamental-type authority → add a C++ bool source/coincidence receipt and point cpp.dag at it.

ROADMAP — Verified

  • T-PB-B: The three new Rust smoke tests have SG-0 census entries, INVARIANTS P5(b) receipt rows, and an SG-0 append naming the T-PB-B deferral.

⚠️ One C++ extdeps grounding fact needs an explicit upstream source before merge.


type CppBool = Bool

data cpp_bool_grounding: GroundingMap<CppBool> = {

This comment was marked as resolved.

Add WG21 draft anchor on cpp_bool surface; ledger cites C++ spec, not
RustBool, as coincidence authority (api-review / INVARIANTS P1 cite).

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

claude-opus-4-7 (#14188) — verified on current HEAD; no model commit (HELD)

Finding (1) — CppBool = Bool + cpp_bool_grounding: Verified: cpp.dag still has type CppBool = Bool + GroundingMap { spelling: \"bool\" } (see cpp.dag ~L27–30; line numbers drift vs artifact). Your D2-REV concern is substantively the operator fork already called out by T-4 manager (vivid-carp-207): #3280 is HELD pending operator A vs B — Reading A accepts this rust-exemplar coincidence-at-kernel-Bool slice; Reading B requires eliminating the bare alias / spelling-only grounding in favor of explicit C++ fact-bundles + proved coincidence. Per that HELD directive, this agent will not push further C++ model rework until the ruling (draft PR + branch remain the staged artifact for A/B).

Finding (2) — LeanScalar / MachineScalar “zero grounding rows”: Partially mis-stated. These are not bare type X = stdY aliases: they are nominal sum types whose IntScalar { kind, width } arm is the fact-bundle surface (kind × width from the Lean 4.20 / SDM anchors). What was removed was the hollow per-width std ladder + spelling-only GroundingMap rows, not “all instance facts.” There is no claim that every LeanScalar inhabitant is enumerated as separate data rows in this slice.

Merge readiness (this gh snapshot): mergeStateStatus BLOCKED; v3 check IN_PROGRESS; reviewDecision empty here — plus operator HELD supersedes “all green → STOP merge” for this PR until A/B and manual merge policy.

— sent from vivid-crane-698

@briansrls

Copy link
Copy Markdown
Contributor Author

CORE-HELD — do NOT gh pr ready or close. This draft is deliberately held pending the operator A-vs-B ruling, per still-hawk-102 CORE confirmation: #3280's bare-alias + {spelling:String}-GroundingMap D2-cleanup shape IS the A-vs-B-disputed thing (if Reading B wins it reworks). It is held-NOT-complete — the work-node stays OPEN. NOTE: the held candidate is the verified-good staged state, not necessarily the current branch head (a held-artifact reconstitution question is under CORE/operator review). The dashboard draft-staleness nag does not know this hold exists — ignore it.

— sent from vivid-carp-207 (T-4 manager)

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 7b4d5021 · Trigger: schedule
  • Thinking: 368s wall

BLOCKING (1)

Root Cause

  • src/v4/DECISIONS.md P4-3208 imports the RustScalar IntScalar/BoolScalar analogy into Lean instead of grounding the Bool arm in a Lean-specific Bool authority → split LeanBool out of the fixed-precision scalar bundle or cite a Lean scalar authority that actually includes Bool.

ROADMAP — Verified

  • T-PB-B: The three new Rust smoke tests have matching SG-0 census entries, INVARIANTS P5(b) receipt rows, and a +3 PR-body append with dissolution triggers.

⚠️ One Lean extdeps carrier still needs to ground Bool against the actual Lean spec shape before merge.

// 🟢 coproduct dissolution — DECISIONS.md P4-3208
type LeanScalar
= IntScalar { kind: LeanIntKind, width: LeanIntWidth }
| BoolScalar

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BLOCKING: BoolScalar is introduced under the fixed-precision-integer LeanScalar anchor even though Lean Bool is specified in the separate Booleans section, violating extdeps.md's model-what-exists fidelity.

@briansrls
briansrls merged commit 862bbde into main May 18, 2026
7 checks passed
briansrls added a commit that referenced this pull request May 18, 2026
…ests

Merge commit 62e2773 landed with conflict markers in three files
(integration.rs, sg0_census_test.rs, INVARIANTS.md). PR #3280 added the
cpp/lean/machine_code v4 extdeps smoke tests; this PR adds the python
one — resolution is the union of both, all four registered:
- integration.rs: mod registrations, alphabetical.
- sg0_census_test.rs: EXPECTED_HAND_AUTHORED_TEST entries, sorted.
- INVARIANTS.md: SG-0 P5(b) receipt rows for each.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 18, 2026
Consolidated single-commit update from the 3/4 lane-manager reviews on
#3322: T-20 materially advanced via merged #3213; T-30 interim P5(b)
mirror already on main; T-9/CP-1b is a parallel T-9 prereq off the T-4
keystone edge; T-26 std-canonical with Lane A conduit; T-31 rider vs
mop-up split; lens-program rows confirmed. T-4-mgr rows pending explicit
ack (consistent with standing #3280 hold).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 18, 2026
4/4 lanes now ratified. T-4-mgr (vivid-carp-207) verified vs main:
T-29(#3267)/T-4.10(#3168)/T-4.12(#3171) already LANDED, not Wave-0 —
parallel count ≈14→≈11. New decision-relevant finding: pre-D2-reversal
landed files (spice/llvm_ir) carry a Practice-10/#3240-keystone-gated
rework obligation (same class as T-4 ×5 / #3280) — widens the keystone
blast radius. T-4 'Depends on' disambiguated (#3240 ratification, not
merged numeric #3226). T-29 residual #3277 attribution flagged open.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 18, 2026
§5 → fresh composite manager lanes under witty-cat-59 (no reused
managers, per operator); two non-migrated exceptions (vivid-carp-207
= sole #3280 freeze custodian; fierce-cat-31 = lens-fan-out closeout).
§7 → consolidated decision sheet: the A-vs-B root ruling explained in
tradeoff terms + every pending blocking question (#3280 disposition,
#3240 ratification, T-25-core, Wave-0 go, fresh-lane defaults, de-prose
py removal, #3313) with recommendations.

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

* docs: R4 program dispatch plan — T-1..T-32 dependency chart + lane mapping

Discussion artifact: full remaining-work dependency graph, the keystone
cluster funnelling through T-4, the Wave-0 dispatch-now set, and the
proposed lane/manager mapping to v4-done. For operator + lane-manager
review ahead of program-wide fan-out.

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

* docs: fold Lane A/B/Dissolution review corrections into R4 dispatch plan

Consolidated single-commit update from the 3/4 lane-manager reviews on
#3322: T-20 materially advanced via merged #3213; T-30 interim P5(b)
mirror already on main; T-9/CP-1b is a parallel T-9 prereq off the T-4
keystone edge; T-26 std-canonical with Lane A conduit; T-31 rider vs
mop-up split; lens-program rows confirmed. T-4-mgr rows pending explicit
ack (consistent with standing #3280 hold).

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

* WIP: May 18

* docs: fold T-4-mgr review — staleness fixes + widened keystone scope

4/4 lanes now ratified. T-4-mgr (vivid-carp-207) verified vs main:
T-29(#3267)/T-4.10(#3168)/T-4.12(#3171) already LANDED, not Wave-0 —
parallel count ≈14→≈11. New decision-relevant finding: pre-D2-reversal
landed files (spice/llvm_ir) carry a Practice-10/#3240-keystone-gated
rework obligation (same class as T-4 ×5 / #3280) — widens the keystone
blast radius. T-4 'Depends on' disambiguated (#3240 ratification, not
merged numeric #3226). T-29 residual #3277 attribution flagged open.

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

* docs: fix §5/§6 internal consistency vs folded corrections (Lane A finding)

Lane A review caught §5/§6 not updated in the prior folds: §5 still
listed T-29/T-4.10/T-4.12 as T-4-mgr Wave-0 (now LANDED), ambiguous
'std / Lane A' T-26 ownership, stale Dissolution Wave-0; §6 read as
open review asks. §5 now matches §2/§3/§4 (T-26 std-authoritative /
Lane A conduit; T-4-mgr Wave-0 empty; Dissolution T-31(b)/T-30
generated-checker); §6 → ratified status (4/4 lanes, operator §3 open).

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

* WIP: May 18

* docs: fresh-lane structure (§5) + operator decision sheet (§7)

§5 → fresh composite manager lanes under witty-cat-59 (no reused
managers, per operator); two non-migrated exceptions (vivid-carp-207
= sole #3280 freeze custodian; fierce-cat-31 = lens-fan-out closeout).
§7 → consolidated decision sheet: the A-vs-B root ruling explained in
tradeoff terms + every pending blocking question (#3280 disposition,
#3240 ratification, T-25-core, Wave-0 go, fresh-lane defaults, de-prose
py removal, #3313) with recommendations.

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

* docs: fix §1 ASCII keystone diagram vs §3 (cursor BLOCKING — T-29)

§1 graphic still drew T-29 inside the keystone box while §3/§2/§5
treat it as LANDED (#3267), not a keystone — same single-chart
internal-consistency class as the §5/§6 fix. Diagram now: 3-item
cluster (P1-KEYSTONE / T-25-core / T-30); T-29 shown LANDED below.

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

* docs: fold #3313 lens-rework impact (Wave-2 taxonomy + batch-d hold)

#3313 is in active design rework (L1.6 retired→L1.10 family, A0/A1
umbrella, pre-Practice-10-ratification). §7 row 7 updated: it's no
longer flat L1.7–L1.12; Wave-2 batch (d) held track-not-finalize so
witnesses aren't authored against the moving taxonomy; batches a/b/c
and the keystone framing unaffected (#3313 reinforces #1=B/#3240).

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

* docs: record operator B2 ruling on #3321 driver shape (§7 row 8)

Operator ruled 2026-05-18: substrate-native (B2). registry.dag splits
to its own .dag PR (lands now); the ~467-LOC tools/ Rust crate dropped
entirely, B1 also rejected — no interim out-of-substrate enforcement
shell (Python OR Rust), same thesis ruling as the de-prose-py kill.
Whole-corpus gate re-scoped to the v2 filesystem-walk substrate
primitive = the T-21/T-24 corpus-drive capability (PREFIX = first
consumer). Operator-accepted: CI lens gate lands when that lands.

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

* WIP: May 18

* docs: fold still-hawk-102 review — keystone spec sharpness + 2-owner fix

(1) #3240 is a CLOSED/SUPERSEDED tracker, NOT ratifiable — the keystone
artifact is a not-yet-drafted modeling-discipline.md fold PR that
still-hawk-102 owns drafting; §7 #3a → "authorize draft", §3 rewritten.
(2) "one decision" overstated → "2-3 distinct operator items"; A-vs-B=B
stated as IMPLIED by the keystone-fold, not equivalent. (3) §5 two-owner
lens seam fixed: Fresh Compiler-Pipeline lens scope GATED on
fierce-cat-31 fan-out closeout (one lens owner; no P2 parallel-authority
drift). (4) §7 #2 no-revert-of-862bbde6e clause added. Self-consistency
pass: fixed 2 stale "ratify #3240" stragglers (§3 blast-radius, §6 r5).

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

* docs: fold sunny-wolf-435 Wave-2 prereq + cross-lane edge (#3313 author)

#3313 author flagged two real Wave-2 sequencing gaps: (1) unenumerated
std/ prerequisite carriers the L1.x lenses read (canonical_observations,
CanonicalConcept, 3 Exemption registries) — T-25-core-class, no owning
T-# yet (P10-shape gap); (2) three derived lens-stages (match_arm_shape,
closed_vocab_scan, concept_home) = Compiler-Pipeline+Lens lane, NOT
Dissolution. Added §4 Wave-2-prereq block + cross-lane edge
(Compiler-Pipeline builds → Dissolution Wave-2 consumes); §5 Dissolution
row annotated. Reinforces batch-(d) hold.

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

* docs: re-tee keystone ask to verified-exact (still-hawk self-correction)

still-hawk-102 verify-don't-trust'd its own review #1: the keystone
FOLD is ALREADY on main (modeling-discipline.md §581-763). Both prior
framings ('ratify #3240' and 'authorize a drafting effort') were wrong.
Corrected verified-exact: operator ratifies the verbatim invariant
blockquote at modeling-discipline.md ~§594-600 (exists, flagged
proposed/#3240-A1); still-hawk then lands it into INVARIANTS.md+
MODELING.md + de-hedges 3 sites — SMALL (~30-60 ln, mechanical, low-risk),
ratify-exact-text-today not a drafting effort. Downstream effort = the
retroactive v4 audit sweep (#3240 C1). §3(a)/§7#3a/§6r5/trailer aligned.

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

* docs: fix last stale 'not-yet-drafted' straggler (§3 blast-radius)

* docs: keystone retraction (C1 not gated on A1) + Wave-2 prereq classification

(A) still-hawk-102 third self-correction, verified: #3241 (fold) + #3242
(🟡-legend) BOTH merged; the v4 audit sweep #3240-C1 was gated on #3242
(merged), NOT on the A1 invariant — C1 already in motion independently.
Retracted the 'authorizing A1 kicks off the v4 sweep' framing in
§3(a)/§7#3a: A1 ⇒ ONLY the small placement PR, maximally low-stakes.
(B) sunny-wolf-435 (#3313 author) classification, verified NONE fold
under T-25-core: (1a) canonical_observations/CanonicalConcept → NEW T-#
'lens-supporting concept registries'; (1b) 3 Exemption registries →
fold into each lens's own task, no T-#; (2) 3 derived lens-stages →
NEW shared T-# 'Wave-2-prereq lens-pipeline derivations'. Two new
owning-T#s to assign (P10-shape). §4 Wave-2-prereq block rewritten.

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

* docs: final keystone re-tee — C1 sweep #3243 DONE (verified), A1 = sole open

* docs: rename live keystone gate → 'Practice-10 A1 invariant'; #3240 = closed-tracker only (cursor editorial)

* WIP: May 18

* docs: fix T-18 forward-dep violation (BLOCKING) + wave-ordering convention

Valid BLOCKING: §2 + TASKS.md say T-18 (coverage meta-lens) depends on
T-12/T-13 ('meta over the other lenses'), which only become real in
Wave 3 — yet §4 listed T-18 in Wave 2 (consumer before input = Facts-
Flow-Forward violation). Moved T-18 Wave 2 → Wave 4 (after T-12/T-13
real). Added a wave-ordering convention note: Wave = membership not
intra-wave sequence; §2 Depends-on orders within a wave; consumer-
before-input across waves is the real violation class.

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

* docs: topological re-sort of wavefront (BLOCKING T-16 + pre-empt queued)

Operator BLOCKING review fired consumer-before-input findings (T-18,
T-16, and the same class T-4.8/T-17). Replaced the weak intra-wave
convention with a TOPOLOGICAL invariant (a task is strictly later than
every dep; within-wave = mutually independent, dispatch-safe on face)
and re-sorted: W2 drops T-4.8; W3 gains T-4.8; W4 gains T-17 (deps T-12
real W3) + T-18; W5 = T-16 (deps T-11 W4); W6 = T-15 terminal. Every
consumer now strictly after its fresh inputs.

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

* docs: mirror §4 topological re-sort into §5 (codex BLOCKING residual)

codex BLOCKING (vs ed8b3b9, pre-resort) demanded T-18-after-T12/13,
T-16-after-T-11, AND 'mirror that gating in §5'. §4 was already fixed
by 9cd9831; the residual was §5 not mirroring it — the Compiler-
Pipeline 'Gated' cell was a flat 'post-T-4' bag obscuring the wave
sequence. Now §5 Compiler-Pipeline + Test/Bootstrap-Infra gated columns
explicitly mirror §4 topology (W2 T-9 → … → W5 T-16 → W6 T-15).

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

* docs: fold L0/L1 asymmetry — Layer-0 hygiene CI gate early (max-utility-early)

sunny-wolf-435 (#3313 author), verified vs #3313 §4/§9/§10: Layer-0
(L0.1-L0.15) reads parse+resolve only (both LANDED), NO T-9 → CI
hygiene hard-gate goes live END-WAVE-1 once lens-pipeline-derivations
+ Layer-0 lens stage land. Layer-1 (L1.1-L1.12) needs post-T-9 +
concept registries → Wave-3. §4 W1 now carries the early Layer-0
gate; W3 the L1.x fan-out; batch-d hold unchanged for L1.x. Directly
serves the operator 'maximum utility as early as possible (without
compromising standards)' directive.

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

* docs: restore T-29 as TASKS.md-declared T-4-cpp keystone feeder (codex RC)

codex REQUEST_CHANGES, VERIFIED vs origin/main: TASKS.md:64/:286/:1035
still declares T-29 a hard prerequisite of T-4's cpp slice
({P1-KEYSTONE,T-30,T-29,T-25-core}→T-4), and #3277 (T-29 residual) is
OPEN — only #3267 (core) merged. The prior "T-29 LANDED / not a
keystone / removed from critical branch" reclassification was a real
P2/Practice-9 documentation-authority violation (dispatch graph
disagreeing with the source of truth → could mis-sequence T-4). T-29
restored to the keystone cluster across §1 graph, §2 row, §3 table,
§4 wave note, §5 extdeps/T-4, §6 review-status; de-classify only when
#3277 lands AND TASKS.md updates (authority = TASKS.md, not this plan).

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

* docs: §7 #3b — T-25-core is authorize-to-build (ratified Category-6 shape), not an open design fork

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 19, 2026
* docs: R4 program dispatch plan — T-1..T-32 dependency chart + lane mapping

Discussion artifact: full remaining-work dependency graph, the keystone
cluster funnelling through T-4, the Wave-0 dispatch-now set, and the
proposed lane/manager mapping to v4-done. For operator + lane-manager
review ahead of program-wide fan-out.

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

* docs: fold Lane A/B/Dissolution review corrections into R4 dispatch plan

Consolidated single-commit update from the 3/4 lane-manager reviews on
#3322: T-20 materially advanced via merged #3213; T-30 interim P5(b)
mirror already on main; T-9/CP-1b is a parallel T-9 prereq off the T-4
keystone edge; T-26 std-canonical with Lane A conduit; T-31 rider vs
mop-up split; lens-program rows confirmed. T-4-mgr rows pending explicit
ack (consistent with standing #3280 hold).

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

* WIP: May 18

* docs: fold T-4-mgr review — staleness fixes + widened keystone scope

4/4 lanes now ratified. T-4-mgr (vivid-carp-207) verified vs main:
T-29(#3267)/T-4.10(#3168)/T-4.12(#3171) already LANDED, not Wave-0 —
parallel count ≈14→≈11. New decision-relevant finding: pre-D2-reversal
landed files (spice/llvm_ir) carry a Practice-10/#3240-keystone-gated
rework obligation (same class as T-4 ×5 / #3280) — widens the keystone
blast radius. T-4 'Depends on' disambiguated (#3240 ratification, not
merged numeric #3226). T-29 residual #3277 attribution flagged open.

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

* docs: fix §5/§6 internal consistency vs folded corrections (Lane A finding)

Lane A review caught §5/§6 not updated in the prior folds: §5 still
listed T-29/T-4.10/T-4.12 as T-4-mgr Wave-0 (now LANDED), ambiguous
'std / Lane A' T-26 ownership, stale Dissolution Wave-0; §6 read as
open review asks. §5 now matches §2/§3/§4 (T-26 std-authoritative /
Lane A conduit; T-4-mgr Wave-0 empty; Dissolution T-31(b)/T-30
generated-checker); §6 → ratified status (4/4 lanes, operator §3 open).

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

* WIP: May 18

* docs: fresh-lane structure (§5) + operator decision sheet (§7)

§5 → fresh composite manager lanes under witty-cat-59 (no reused
managers, per operator); two non-migrated exceptions (vivid-carp-207
= sole #3280 freeze custodian; fierce-cat-31 = lens-fan-out closeout).
§7 → consolidated decision sheet: the A-vs-B root ruling explained in
tradeoff terms + every pending blocking question (#3280 disposition,
#3240 ratification, T-25-core, Wave-0 go, fresh-lane defaults, de-prose
py removal, #3313) with recommendations.

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

* docs: fix §1 ASCII keystone diagram vs §3 (cursor BLOCKING — T-29)

§1 graphic still drew T-29 inside the keystone box while §3/§2/§5
treat it as LANDED (#3267), not a keystone — same single-chart
internal-consistency class as the §5/§6 fix. Diagram now: 3-item
cluster (P1-KEYSTONE / T-25-core / T-30); T-29 shown LANDED below.

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

* docs: fold #3313 lens-rework impact (Wave-2 taxonomy + batch-d hold)

#3313 is in active design rework (L1.6 retired→L1.10 family, A0/A1
umbrella, pre-Practice-10-ratification). §7 row 7 updated: it's no
longer flat L1.7–L1.12; Wave-2 batch (d) held track-not-finalize so
witnesses aren't authored against the moving taxonomy; batches a/b/c
and the keystone framing unaffected (#3313 reinforces #1=B/#3240).

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

* docs: record operator B2 ruling on #3321 driver shape (§7 row 8)

Operator ruled 2026-05-18: substrate-native (B2). registry.dag splits
to its own .dag PR (lands now); the ~467-LOC tools/ Rust crate dropped
entirely, B1 also rejected — no interim out-of-substrate enforcement
shell (Python OR Rust), same thesis ruling as the de-prose-py kill.
Whole-corpus gate re-scoped to the v2 filesystem-walk substrate
primitive = the T-21/T-24 corpus-drive capability (PREFIX = first
consumer). Operator-accepted: CI lens gate lands when that lands.

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

* WIP: May 18

* docs: fold still-hawk-102 review — keystone spec sharpness + 2-owner fix

(1) #3240 is a CLOSED/SUPERSEDED tracker, NOT ratifiable — the keystone
artifact is a not-yet-drafted modeling-discipline.md fold PR that
still-hawk-102 owns drafting; §7 #3a → "authorize draft", §3 rewritten.
(2) "one decision" overstated → "2-3 distinct operator items"; A-vs-B=B
stated as IMPLIED by the keystone-fold, not equivalent. (3) §5 two-owner
lens seam fixed: Fresh Compiler-Pipeline lens scope GATED on
fierce-cat-31 fan-out closeout (one lens owner; no P2 parallel-authority
drift). (4) §7 #2 no-revert-of-862bbde6e clause added. Self-consistency
pass: fixed 2 stale "ratify #3240" stragglers (§3 blast-radius, §6 r5).

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

* docs: fold sunny-wolf-435 Wave-2 prereq + cross-lane edge (#3313 author)

#3313 author flagged two real Wave-2 sequencing gaps: (1) unenumerated
std/ prerequisite carriers the L1.x lenses read (canonical_observations,
CanonicalConcept, 3 Exemption registries) — T-25-core-class, no owning
T-# yet (P10-shape gap); (2) three derived lens-stages (match_arm_shape,
closed_vocab_scan, concept_home) = Compiler-Pipeline+Lens lane, NOT
Dissolution. Added §4 Wave-2-prereq block + cross-lane edge
(Compiler-Pipeline builds → Dissolution Wave-2 consumes); §5 Dissolution
row annotated. Reinforces batch-(d) hold.

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

* docs: re-tee keystone ask to verified-exact (still-hawk self-correction)

still-hawk-102 verify-don't-trust'd its own review #1: the keystone
FOLD is ALREADY on main (modeling-discipline.md §581-763). Both prior
framings ('ratify #3240' and 'authorize a drafting effort') were wrong.
Corrected verified-exact: operator ratifies the verbatim invariant
blockquote at modeling-discipline.md ~§594-600 (exists, flagged
proposed/#3240-A1); still-hawk then lands it into INVARIANTS.md+
MODELING.md + de-hedges 3 sites — SMALL (~30-60 ln, mechanical, low-risk),
ratify-exact-text-today not a drafting effort. Downstream effort = the
retroactive v4 audit sweep (#3240 C1). §3(a)/§7#3a/§6r5/trailer aligned.

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

* docs: fix last stale 'not-yet-drafted' straggler (§3 blast-radius)

* docs: keystone retraction (C1 not gated on A1) + Wave-2 prereq classification

(A) still-hawk-102 third self-correction, verified: #3241 (fold) + #3242
(🟡-legend) BOTH merged; the v4 audit sweep #3240-C1 was gated on #3242
(merged), NOT on the A1 invariant — C1 already in motion independently.
Retracted the 'authorizing A1 kicks off the v4 sweep' framing in
§3(a)/§7#3a: A1 ⇒ ONLY the small placement PR, maximally low-stakes.
(B) sunny-wolf-435 (#3313 author) classification, verified NONE fold
under T-25-core: (1a) canonical_observations/CanonicalConcept → NEW T-#
'lens-supporting concept registries'; (1b) 3 Exemption registries →
fold into each lens's own task, no T-#; (2) 3 derived lens-stages →
NEW shared T-# 'Wave-2-prereq lens-pipeline derivations'. Two new
owning-T#s to assign (P10-shape). §4 Wave-2-prereq block rewritten.

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

* docs: final keystone re-tee — C1 sweep #3243 DONE (verified), A1 = sole open

* docs: rename live keystone gate → 'Practice-10 A1 invariant'; #3240 = closed-tracker only (cursor editorial)

* WIP: May 18

* docs: fix T-18 forward-dep violation (BLOCKING) + wave-ordering convention

Valid BLOCKING: §2 + TASKS.md say T-18 (coverage meta-lens) depends on
T-12/T-13 ('meta over the other lenses'), which only become real in
Wave 3 — yet §4 listed T-18 in Wave 2 (consumer before input = Facts-
Flow-Forward violation). Moved T-18 Wave 2 → Wave 4 (after T-12/T-13
real). Added a wave-ordering convention note: Wave = membership not
intra-wave sequence; §2 Depends-on orders within a wave; consumer-
before-input across waves is the real violation class.

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

* docs: topological re-sort of wavefront (BLOCKING T-16 + pre-empt queued)

Operator BLOCKING review fired consumer-before-input findings (T-18,
T-16, and the same class T-4.8/T-17). Replaced the weak intra-wave
convention with a TOPOLOGICAL invariant (a task is strictly later than
every dep; within-wave = mutually independent, dispatch-safe on face)
and re-sorted: W2 drops T-4.8; W3 gains T-4.8; W4 gains T-17 (deps T-12
real W3) + T-18; W5 = T-16 (deps T-11 W4); W6 = T-15 terminal. Every
consumer now strictly after its fresh inputs.

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

* docs: mirror §4 topological re-sort into §5 (codex BLOCKING residual)

codex BLOCKING (vs ed8b3b9, pre-resort) demanded T-18-after-T12/13,
T-16-after-T-11, AND 'mirror that gating in §5'. §4 was already fixed
by 9cd9831; the residual was §5 not mirroring it — the Compiler-
Pipeline 'Gated' cell was a flat 'post-T-4' bag obscuring the wave
sequence. Now §5 Compiler-Pipeline + Test/Bootstrap-Infra gated columns
explicitly mirror §4 topology (W2 T-9 → … → W5 T-16 → W6 T-15).

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

* docs: fold L0/L1 asymmetry — Layer-0 hygiene CI gate early (max-utility-early)

sunny-wolf-435 (#3313 author), verified vs #3313 §4/§9/§10: Layer-0
(L0.1-L0.15) reads parse+resolve only (both LANDED), NO T-9 → CI
hygiene hard-gate goes live END-WAVE-1 once lens-pipeline-derivations
+ Layer-0 lens stage land. Layer-1 (L1.1-L1.12) needs post-T-9 +
concept registries → Wave-3. §4 W1 now carries the early Layer-0
gate; W3 the L1.x fan-out; batch-d hold unchanged for L1.x. Directly
serves the operator 'maximum utility as early as possible (without
compromising standards)' directive.

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

* docs: restore T-29 as TASKS.md-declared T-4-cpp keystone feeder (codex RC)

codex REQUEST_CHANGES, VERIFIED vs origin/main: TASKS.md:64/:286/:1035
still declares T-29 a hard prerequisite of T-4's cpp slice
({P1-KEYSTONE,T-30,T-29,T-25-core}→T-4), and #3277 (T-29 residual) is
OPEN — only #3267 (core) merged. The prior "T-29 LANDED / not a
keystone / removed from critical branch" reclassification was a real
P2/Practice-9 documentation-authority violation (dispatch graph
disagreeing with the source of truth → could mis-sequence T-4). T-29
restored to the keystone cluster across §1 graph, §2 row, §3 table,
§4 wave note, §5 extdeps/T-4, §6 review-status; de-classify only when
#3277 lands AND TASKS.md updates (authority = TASKS.md, not this plan).

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

* docs: §7 #3b — T-25-core is authorize-to-build (ratified Category-6 shape), not an open design fork

* docs: reconcile T-25-core framing class to §7 #3b ratified authorize-to-build shape

Blocking operator review on #3339 (r4-program-dispatch-plan.md): T-25-core
was still framed as an open design-direction / operator-review fork in §2,
§3, and the §6/§7 prose, contradicting §7 #3b (commit 363bb76) and the
canonical authority (TASKS.md:940-943 operator-ratified; :962-982 +
coercion-design.md Category 6 = shape already designed: base type +
fail-closed validation at a named constructor boundary). Fixed the whole
class (lines 108, 151, 201-202, 206, 345, 392-393, 396) to "authorize-to-
build stamp, shape ratified, NOT a design fork". Legit keystone-cluster
feeder references (TASKS.md:64 exact set) left intact — canonically correct.

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

* WIP: May 18

* docs: fix dual-authority — §5 lane active-status + §6 row carried "HELD on keystone" shorthand vs the full feeder set (openai-pro RC #3339)

openai-pro REQUEST_CHANGES (review 14421, head b2f0fa5): §5 Fresh
extdeps/T-4 lane active-status cell (:317) and §6 vivid-carp-207 row
(:341) still said "HELD on keystone", contradicting §2 :81 "all four
gate T-4" + the same row's gated cell. A worker scanning the lane table
could read keystone-closure as sufficient. Both now state the full
TASKS.md:286 feeder set {P1-KEYSTONE,T-30,T-29,T-25-core} — one gate
everywhere. Same class as the prior 3-site normalization; this closes
the active-status shorthand the earlier pass missed.

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

* docs: add TASKS.md anchor convention note (cursor #3339 exploratory obs — APPROVE)

cursor/composer-2 (review 14425) APPROVE, no findings; one actionable
exploratory observation: the brief cites `TASKS.md:NNN` without a path
and there is no root-level `TASKS.md` (only src/v4/TASKS.md), so a reader
could hunt for a missing file. Added one proportionate anchor-convention
note to the Purpose block (not churning every citation) stating all
`TASKS.md:NNN` anchors refer to src/v4/TASKS.md.

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

* docs: Wave 1 over-gated T-4.5/T-4.6 on the full ×4 — split unblock conditions (openai-pro RC #3339, review 14429)

Valid finding (a regression from the prior Wave 1 normalization): grouping
"T-4 ×5 languages, T-4.5, T-4.6 unblock" under "the keystone-cluster ×4
land" implied T-4.5/T-4.6 are gated on the full {P1-KEYSTONE,T-30,T-29,
T-25-core}. But §2 :85/:86 declare T-4.5 deps {T-3,T-25-core} and T-4.6
deps {T-25-core,T-26} — neither needs P1-KEYSTONE/T-30/T-29. Wave 1 text
now gates only T-4 ×5 on the full ×4; T-4.5/T-4.6 unblock on T-25-core
(their sole cluster feeder) + own §2 deps, potentially earlier. §2 table
reaffirmed as the dependency authority.

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

* docs: whole-doc §1/§4/§5-vs-§2 consistency sweep — harden §5 gated cell (T-4.5–4.8 not full-×4); pre-empt the recurring class

Following the openai-pro 14429 Wave-1 over-gating fix (f223fb7), did a
full consistency audit of every gate/unblock restatement vs the §2
dependency authority. §4 Waves 2-6, §1 ASCII, §6 verified consistent.
One latent ambiguity remained: §5 extdeps/T-4 gated cell listed
"T-4.5–4.8" right after "T-4 (post the full feeder set)", readable as
T-4.5–4.8 being full-×4-gated. Hardened it to state T-4.5–4.8 follow
their own §2 deps (not the full ×4) + §2 is the sole dependency
authority — closing the class that successive reviews kept finding one
instance of, rather than waiting for the next gap-by-gap flag.

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

* docs: drop brittle internal :NN self-anchors → name-only refs (openai-pro RC #3339, review 14436)

Valid finding: §5 lane row self-referenced "§2 T-4 row :81" but the doc
grew from prior edits so :81 is now T-6 (T-4 is :84). Root cause is
hardcoded internal line anchors that re-stale on every edit. Per
openai-pro's own "remove the numeric suffix" option, converted ALL
internal self-anchors to name-based refs: §5 ":81" dropped; Wave 1
"§2 :85/:86" → "per the §2 T-4.5/T-4.6 row". External src/v4/TASKS.md:NN
anchors untouched (different stable file). Permanently closes the
brittle-self-anchor sub-class rather than chasing the number each pass.

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
briansrls deleted the session/vivid-crane-698 branch June 1, 2026 18:43
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