From b1e5f1dee1596bb8c9065ad298782ebe2b4f7242 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 6 Sep 2026 11:58:18 +0000 Subject: [PATCH 1/2] =?UTF-8?q?board:=20record=20#1201's=20merge=20?= =?UTF-8?q?=E2=80=94=20and=20that=20it=20merged=20mixed,=20not=20hygiene-o?= =?UTF-8?q?nly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1201 was opened as hygiene-only and its body says "the chain stops here". A second commit — the council SPEC v1 — was then pushed to the same open PR, so that sentence was true when written and false at merge. Under the hygiene rule's own terms a mixed PR gets an entry, which is why this one exists. The narrow lesson is worth more than the entry: a claim about a PR's SCOPE expires the moment another commit is pushed to it, and I never updated the body. Anyone reading #1201's description will be reading a description of a different PR than the one that merged. The entry also banks what the council's five savants returned, because it is the part a future session would otherwise re-derive: three of them independently rejected the audit's own premise (NodeGuid::new is the wrong unit — the exposure is the accessors and mint_for's undifferentiated V2/V3 arm), the G4 blocking set is exactly one site (witness_row.rs:200), and V3 has no mint arm of its own, so at the mint layer "everything is V3" is everything is V2 wearing V3's name. Two spec falsifications are recorded rather than quietly fixed: NodeGuid::new is reachable from weather-poc, a crate the inventory never named; and "Nobody walks anything" does not hold in code — GET /views/graph/wave.abi reaches inherited_part_of through four hops. The second is a VIOLATES against a FROZEN decision, so per the council harness it is escalated to the operator and the council is HELD at Phase 2. Nothing was implemented and no verdict reached. Amendment owed to draft v2, found post-merge in #1202: the operator's dating rule ("July or older is automatically deprecated") was not in SPEC v1's frozen set, and it demotes the prior-art leg — ISS-V1-TAIL-RESIDUE and E-V1-TAIL-FORBIDDEN-V3-IS-CONTENT-BLIND-1 are both 2026-07-04. The quad ratification (August) and the DN entry (September) survive it. Supersession index regenerated after the board writes; byte-identical. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01EfrUJH3UNnv5NpDH4jDGHq --- .claude/board/LATEST_STATE.md | 14 ++++++++ .claude/board/PR_ARC_INVENTORY.md | 58 +++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/.claude/board/LATEST_STATE.md b/.claude/board/LATEST_STATE.md index b970c9a4d..7df45263b 100644 --- a/.claude/board/LATEST_STATE.md +++ b/.claude/board/LATEST_STATE.md @@ -1,3 +1,17 @@ +## 2026-09-06 — #1201 MERGED (54285a42): #1199's records + the council SPEC v1 + +| PR | merge | content | +|---|---|---| +| **#1201** | `54285a42` | #1199 post-merge records; `.claude/plans/nodeguid-new-repurpose-audit-v1.md` (5+3 council SPEC v1, READ-ONLY audit); `INTEGRATION_PLANS` + `STATUS_BOARD` D-NGN-AUDIT. | + +**Contract inventory net delta: none.** No type, no API, no layout. The PR +merged MIXED despite its body saying hygiene-only — the spec commit was pushed +after that sentence was written; see the arc entry. The council is HELD at +Phase 2 on a VIOLATES against a frozen decision (`GET /views/graph/wave.abi` +reaches `inherited_part_of`, contradicting *"Nobody walks anything"*), which is +the operator's to rule on. Draft v2 additionally owes F9, the dating rule from +#1202: July-or-older sources are automatically deprecated. + ## 2026-09-06 — #1199 MERGED (ef724878): the mask guard that was compiled out of release | PR | merge | content | diff --git a/.claude/board/PR_ARC_INVENTORY.md b/.claude/board/PR_ARC_INVENTORY.md index 35b660cbf..c1d5b5ee1 100644 --- a/.claude/board/PR_ARC_INVENTORY.md +++ b/.claude/board/PR_ARC_INVENTORY.md @@ -1,3 +1,61 @@ +## 2026-09-06 — lance-graph PR #1201 (merged `54285a42`, branch `claude/great-curie-d2ufyl`) — #1199's records, and the SPEC v1 that made it mixed + +- **Added:** #1199's post-merge records (`PR_ARC_INVENTORY` entry + the + `LATEST_STATE` merged-PR table), then — in a second commit pushed to the same + open PR — `.claude/plans/nodeguid-new-repurpose-audit-v1.md` (SPEC v1 of the + 5+3 council convened to AUDIT a `NodeGuid::new` repurpose), with its + `INTEGRATION_PLANS` prepend and `STATUS_BOARD` `D-NGN-AUDIT` row. +- **Corrected, about this PR's own body:** it was opened as hygiene-only and its + description says *"This PR is hygiene-only … the chain stops here."* That was + true when written and **FALSE at merge** — the SPEC v1 commit landed in it + afterwards, making it MIXED. Under the hygiene rule's own terms a mixed PR + gets an entry (*"the non-hygiene half is what the entry is for"*), which is + why this entry exists. The lesson is narrow and mechanical: **a claim about a + PR's scope expires the moment another commit is pushed to it**, and the body + was never updated. Do not read #1201's description as describing what merged. +- **The council, cast READ-ONLY** (operator: *"It's already in production, if you + touch it it would change something you half understand"* / *"Run /5plus3 ask 8 + agents without changing anything yet"*). Phase 1's five savants returned, and + three INDEPENDENTLY rejected the audit's own premise: `NodeGuid::new` is the + wrong unit of change. `ISS-V1-TAIL-RESIDUE` resolved the analogous case by + ROUTING THROUGH `mint_for` rather than rewriting `new` (S1); the real + same-name-different-semantics exposure is the ACCESSORS + (`family()`/`identity()`/`local_key()` read fixed byte ranges unconditionally, + `canonical_node.rs:245,250,305`) plus `mint_for`'s undifferentiated V2/V3 arm + (S2, `canonical_node.rs:381`); the unit is that dispatch table (S5). +- **Measured, gate G4 — the blocking set is ONE site:** + `medcare-first-thought/src/witness_row.rs:200` (`sequence: k.identity()`). + S4 classified all 66 MedCare `identity()` readers and found no other true + SEQUENCE use, and specifically did NOT mis-bucket `gotham_view.rs:560`, whose + own comment establishes sibling-adjacency rather than temporal order. +- **Two spec falsifications, both from S3 (code truth):** (a) `NodeGuid::new` IS + reachable from a production path the inventory never named — + `crates/weather-poc/src/canonical.rs:108` → `assemble_row:137`, minting V1 + unconditionally, never through `mint_for`; (b) **F5's "Nobody walks anything" + does NOT hold in code** — `GET /views/graph/wave.abi` (`views/mod.rs:661`) → + `wave_abi` → `ontology_graph_with_mereology_from` → `mereology_targets` → + `inherited_part_of`/`ZIPPER_ISA_DEPTH`. A VIOLATES against a FROZEN decision + is escalated to the operator, never resolved by the orchestrator; the council + is HELD at Phase 2 pending that ruling. +- **Also found by the savants, and it is the entry's most useful half:** V3 has + NO mint arm of its own — `TailVariant::V2 | V3` share one arm with a + `<= 0xFFFF` assert, so at the mint layer "everything is V3" is currently + everything is V2 wearing V3's name. And F5 was already canon before the + operator restated it: `E-IDENTITY-QUAD-4X24-RATIFIED-PERMANENT-1` + (2026-08-17, `lance_graph_contract::identity_quad`) plus the DN/OU epiphany + (2026-09-01). `CascadeShape::G4D3` already has real consumers + (`tekamolo_facet.rs:114,280`). +- **Amendment owed to draft v2, discovered post-merge from #1202 + (`aba36726`):** the operator's dating rule — *"First determine the age of your + source. July or older is automatically deprecated"* — was NOT in SPEC v1's + frozen set. It demotes S1's central prior-art finding, since + `ISS-V1-TAIL-RESIDUE` and `E-V1-TAIL-FORBIDDEN-V3-IS-CONTENT-BLIND-1` are both + 2026-07-04. `E-IDENTITY-QUAD-4X24-…` (August) and the DN entry (September) + survive it. v2 must carry this as F9. +- **Confidence:** High on every file:line (S3 verified the entire §2 inventory + CODED, no row wrong). The audit itself reaches NO verdict yet — Phase 2 is + held, and nothing was implemented. + ## 2026-09-06 — lance-graph PR #1199 (merged `ef724878`, branch `claude/great-curie-d2ufyl`) — the `AlphaMask::zip` guard that was compiled out of release - **Added:** `assert_eq!` (was `debug_assert_eq!`) on `AlphaMask::zip`'s operand lengths, plus two `#[cfg(test)]` falsifiers in `crates/lance-graph-contract/src/alpha.rs`. Also #1198's post-merge board records (that PR's own arc entry + `LATEST_STATE` table), `STATUS_BOARD` `D-ALPHA-1b`, and Stage 1b marked DONE in `.claude/temporal/09-plan.md`. No API change, no layout change, no new type. From 9ace35de7a6f9fa4247e912647965a4b175ae6f9 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 6 Sep 2026 12:00:22 +0000 Subject: [PATCH 2/2] board: re-anchor the weather-poc citation to symbols, and fix an inherited line number MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit citation-decay went red on #1203 with exactly one NEW decay, and it was mine: PR_ARC_INVENTORY.md:33 -> crates/weather-poc/src/canonical.rs:108 anchor=symbol:"assemble_row:137" (anchor absent within +-3 lines) I wrote the chain as "canonical.rs:108 -> assemble_row:137", which the checker correctly read as a symbol anchor expected AT line 108. It is not there. Two things were wrong, and the second is the one worth recording. The savant reported `assemble_row` at 137; it is at 127. I copied the number without checking it — the same class of error this whole session has been about, and the gate caught it where five agents and I did not. The fix is the one the gate's own error text demands: not a corrected number, but a STABLE ANCHOR. The citation now names `key_as_node_guid` (which makes the `NodeGuid::new` call) and the public `assemble_row` it is reached from, with no line number at all. Verified both symbols exist at canonical.rs:108 and :127, and that the entry reads correctly without either coordinate. Local re-run: weather-poc CLEAN, no NEW DECAY section remaining. The residual output is the pre-existing backlog the gate does not fail on. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01EfrUJH3UNnv5NpDH4jDGHq --- .claude/board/PR_ARC_INVENTORY.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.claude/board/PR_ARC_INVENTORY.md b/.claude/board/PR_ARC_INVENTORY.md index c1d5b5ee1..aa9427989 100644 --- a/.claude/board/PR_ARC_INVENTORY.md +++ b/.claude/board/PR_ARC_INVENTORY.md @@ -30,8 +30,11 @@ own comment establishes sibling-adjacency rather than temporal order. - **Two spec falsifications, both from S3 (code truth):** (a) `NodeGuid::new` IS reachable from a production path the inventory never named — - `crates/weather-poc/src/canonical.rs:108` → `assemble_row:137`, minting V1 - unconditionally, never through `mint_for`; (b) **F5's "Nobody walks anything" + `crates/weather-poc/src/canonical.rs`, where `key_as_node_guid` calls + `NodeGuid::new` and is reached from the public `assemble_row` — minting V1 + unconditionally, never through `mint_for`. (Cited by SYMBOL, not by line: the + savant reported `assemble_row` at 137, it is at 127, and the citation-decay + gate caught the inherited number. A number is a coordinate in a moving frame.); (b) **F5's "Nobody walks anything" does NOT hold in code** — `GET /views/graph/wave.abi` (`views/mod.rs:661`) → `wave_abi` → `ontology_graph_with_mereology_from` → `mereology_targets` → `inherited_part_of`/`ZIPPER_ISA_DEPTH`. A VIOLATES against a FROZEN decision