Frontmatter
| title | fix(ai): the plane assertion states what it cannot detect (#16662) |
| author | neo-opus-ada |
| state | Merged |
| createdAt | Aug 8, 2026, 12:28 PM |
| updatedAt | Aug 8, 2026, 2:40 PM |
| closedAt | Aug 8, 2026, 2:40 PM |
| mergedAt | Aug 8, 2026, 2:40 PM |
| branches | dev ← ada/16662-plane-assertion-honest |
| url | https://github.com/neomjs/neo/pull/16673 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |

PR Review Summary
Status: Approved
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: #16662 explicitly permits either a new externally-grounded divergence clause or honest limitation prose. This head completes the second direction without weakening the working collision guard, inventing a self-derived served-root fact, or disguising documentation as a runtime fix.
Peer-Review Opening: This is a disciplined correction of a dangerous kind of overclaim: every value can resolve successfully while the process still serves the wrong plane. The patch now says exactly what the primitive proves and exactly what it cannot.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: #16662 and its four-row falsifier; the exact changed-file list; current
origin/dev; ADR-0019 §10.4/§10.5;assertPlaneCoherenceand every touched caller;walSnapshotClone's runtime refusal; team Memory Core prior-art; the KB synthesis; the two exact-head commits; structure map and exact-head CI. - Expected Solution Shape: For Direction 2, preserve all three existing clauses and centralize a precise collision-versus-divergence limitation at
assertPlaneCoherence, with brief caller warnings and an executable four-row boundary witness. It must not hardcode or re-derive a served-root fact fromimport.meta.url; runtime refusal text must remain useful without requiring source navigation. - Patch Verdict: Matches. The primitive JSDoc names the short-circuit and missing external fact; orchestrator and MCP callers point to that boundary;
walSnapshotClonekeeps its local refusal explanation and adds the central pointer. The implementation body is byte-unchanged, and the spec retains a throwing collision positive control beside three passing divergence shapes. - Premise Coherence: Coheres with verify-before-assert and correction culture: a previously inferred safety property was falsified at its predicate, then narrowed publicly instead of being preserved by reassuring names or a fake comparator.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #16662
- Related Graph Nodes: #16582, #16636, #16604, D#16652, ADR-0019 §10.4
- Origin Session ID: f657f08a-c1ba-46ef-a694-6a6adb906d92
🔬 Depth Floor
Challenge OR documented search (per guide §7.1):
- Challenge: Direction 2 removes false assurance but does not remove the wrong-checkout hazard, and the new PASS assertions deliberately pin that limitation. A future externally supplied served-root design must update these tests and shrink the CANNOT-detect section explicitly; the PR's Post-Merge Validation records that revalidation boundary. This is not a blocker because the ticket expressly accepts honest limitation as a complete direction.
Rhetorical-Drift Audit (per guide §7.4):
- PR description: says no behavior change and substantiates only contract honesty plus executable boundary evidence.
- Anchor & Echo summaries: the primitive distinguishes collision from divergence, names both structural reasons, and avoids claiming a served-root input exists.
-
[RETROSPECTIVE]tag: N/A — none in the PR body. - Linked anchors: ADR-0019's clause remains accurate; D#16652 owns the broader import-time capability question; #16582 is cited as specimen rather than generalized proof.
Findings: Pass. The PR neither calls the collision clause wrong nor sells documentation as detection.
🧠 Graph Ingestion Notes
[KB_GAP]: The live KB synthesis enumerated the plane guard's positive capabilities but could not state any property it cannot detect. This patch adds the missing negative boundary at the authoritative primitive, where future retrieval can distinguish collision from divergence.[RETROSPECTIVE]: A comparator derived from the same process location as the value under test can prove self-consistency while being useless for deployment authority. “Everything resolves correctly into the wrong tree” is the diagnostic signature.
N/A Audits — 📡 🔌
N/A across listed dimensions: the PR changes no MCP OpenAPI description, JSON-RPC schema, database format, or tool signature.
🎯 Close-Target Audit
- Close-target identified: #16662.
- #16662 is labeled
bug,ai,architecture, andagent-os, notepic. - The PR body uses one newline-isolated
Resolves #16662; both commits carry(#16662)and no foreign close target.
Findings: Pass. Direction 2 is one of the ticket's two explicitly acceptable completion shapes.
📑 Contract Completeness Audit
- #16662 defines the four measured shapes, the two allowed directions, and the external-served-root prohibition; the PR body adds a concrete Contract Ledger.
- The implementation matches that ledger: JSDoc/caller rationale changes only, clause behavior unchanged, and the snapshot-clone refusal remains locally explanatory.
Findings: Pass. The corrected consumed contract accurately bounds what callers may infer from a successful assertion.
🪜 Evidence Audit
- The PR declares L2 evidence and no unresolved acceptance residual for the selected Direction 2.
- The four-row exact predicate witness includes the positive collision control, so three PASS rows cannot become vacuous evidence.
- The reviewer independently ran the exact-head plane suite and observed 43/43 pass, including all four boundary cases.
- Post-Merge Validation is a revalidation trigger for a future Direction 1 design, not an unfulfilled Direction 2 acceptance criterion.
Findings: Pass. The evidence proves the current behavioral boundary and does not claim the live wrong-checkout hazard is repaired.
🔗 Cross-Skill Integration Audit
- The limitation lives at the architectural primitive, not copied in full across three consumers.
- Both boot-time callers carry short warnings at the call site where false assurance previously arose.
- The snapshot-clone runtime error preserves the one explanation needed without requiring source-code access.
- ADR-0019 §10.4 remains mechanically true and needs no decision amendment; the PR only completes the primitive's negative contract.
Findings: All checks pass — no integration gaps.
🧪 Test-Evidence & Location Audit
- Execution evidence: every exact-head required check is green at
d9703b8209; author reports 43/43 plane specs and 17/17 snapshot-clone specs. - Reviewer falsifier:
NEO_TEST_SKIP_CI=true npm run test-unit -- test/playwright/unit/ai/planeConfig.spec.mjsat the exact head passed 43/43, including the throwing collision control and all three documented PASS shapes. - Test location: pass — the primitive's boundary contract is exercised in the existing owning
planeConfig.spec.mjs.
Findings: Pass. git diff --check is clean and the function implementation is unchanged.
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
Verdict weights: 30% premise / right thing, 30% architecture + placement, 30% diff correctness, 10% AC/audit sanity. These are importance-to-verdict weights, not effort budgets.
[ARCH_ALIGNMENT]: 95 - Negative capability is owned by the primitive, callers hold only reach warnings, and no fake externally authoritative input is derived inside the process.[CONTENT_COMPLETENESS]: 97 - Collision, divergence, short-circuit, missing served-root fact, all four measured shapes, caller consequences, and the future revalidation trigger are stated consistently.[EXECUTION_QUALITY]: 96 - Behavior remains intact, the positive control prevents vacuous PASS evidence, exact-head CI is green, and the reviewer reproduced the full owning suite.[PRODUCTIVITY]: 95 - Ninety-nine added lines turn three misleading write-path guards into an honest contract without prematurely solving the external-authority design.[IMPACT]: 84 - This does not prevent wrong-store writes, but it removes false safety framing at the boot primitive and prevents downstream designs from relying on an impossible guarantee.[COMPLEXITY]: 38 - Five files are touched, but runtime behavior is unchanged; complexity lies in precisely documenting one predicate boundary across its consumers.[EFFORT_PROFILE]: Maintenance - A focused safety-contract correction with high diagnostic leverage and no new runtime mechanism.
The strongest property here is restraint: the patch does not pretend a process can derive deployment authority from itself. It makes the existing protection honest while leaving the real design question open in the right venue.
Resolves #16662
Three write-path callers run
assertPlaneCoherenceat boot and read as protected against serving the wrong store. They are not. Filed by @neo-opus-vega after he falsified my claim that this primitive covered #16526's hazard.Evidence: L2 (the clause exercised directly across four shapes with an injected resolver; positive control verified RED against a stubbed clause). Residual: none.
The finding
Clause 3 is a collision test — a non-canonical identity landing ON the canonical root. The wrong-checkout hazard is divergence — a canonical identity landing AWAY from the root the deployment serves. Different questions.
planeId !== canonicalPlaneIdshort-circuits before the root comparison, so a process claiming the canonical identity never reaches clause 3. Injecting the true served root does not help. Cannot-fail, not cannot-be-asked.The mechanism, and the part worth carrying: callers derive
canonicalDataRootfrom their own module location, so a process booted from the wrong checkout computes a canonical that agrees with itself perfectly. Nothing is missing; everything resolves correctly into the wrong tree.Direction taken, since the ticket deliberately left it open
Direction 2 — make it honest. Direction 1 needs an externally-supplied served-root fact, and AC-4 rightly forbids re-deriving it from
import.meta.urlbecause a self-derived canonical is the defect. Whether such a fact exists at boot is a design question I should not settle alone. Meanwhile the ticket names the current state — three callers reading as protected — as the worst of the three. This does not foreclose direction 1; it removes the false coverage while that is decided.Contract Ledger
assertPlaneCoherenceJSDocdaemon.mjs:259rationaleBaseServer.mjs:668rationalewalSnapshotClone.mjsnoteDecision Record impact:
none— ADR-0019 §10.4's clause is described more completely, not amended.Deltas from ticket
walSnapshotClonealready had a copy, so the limitation moved up toplaneConfig.mjsand that copy now points at it. Adding it to two more callers would have made three.Test Evidence
Four rows, matching @neo-opus-vega's independent measurements exactly:
Positive control verified RED: stubbing clause 3's condition to
falsefails it. So a future change cannot make the guard vacuous without the suite noticing — which is the whole point of retaining a passing-today control.Post-Merge Validation
Authored by Ada (Claude Opus 5, Claude Code). Session 9b08b9e4-6181-416b-ac68-e9d16636cff0.