Skip to content

PROBE-REVISION-KANBAN-HINGE-1 — the vertical arrow, and the narrow two-key window it measured - #1000

Merged
AdaWorldAPI merged 7 commits into
mainfrom
claude/probe-revision-kanban-hinge-1
Aug 23, 2026
Merged

PROBE-REVISION-KANBAN-HINGE-1 — the vertical arrow, and the narrow two-key window it measured#1000
AdaWorldAPI merged 7 commits into
mainfrom
claude/probe-revision-kanban-hinge-1

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

Closes the vertical arrow #998 deliberately left open, and measures something the design did not anticipate.

Triangle = change HOW I think            (#998, closed)
Kanban   = change HOW MUCH / HOW DEEP    (this PR)

The hinge, through shipped machinery only

receipt → membrane → InnerCouncil::from_signals → CollapseHint → mul::GateDecision → KanbanColumn::advance_on_gate → try_advance_phase, plus the rung arm via RungElevator::apply_delta — its first caller anywhere (the same first-arrow shape as #998's promote_family). The only novel logic is signals_from(&CycleEvidence): pure measured ratios, no tuned constants. Everything downstream is shipped.

The headline: the two keys barely overlap

Per the operator-pinned two-key rule — RungElevate is qualitative intent, rung_delta decides whether the shift is earned, elevation needs both — measure_two_key_window sweeps the axis and finds they agree in only a ~0.125-wide band:

task-unresolved council hint rung_delta
< 0.316 Balanced / Flow
0.316 … 0.600 Catalyst / RungElevate 0
0.600 … 0.725 Catalyst / RungElevate +1 ← the only window
> 0.725 Guardian / Fanout +1

Both negative controls are real derived fixtures on opposite sides — and the second one the run found rather than the design anticipating it:

  • G16 (mid stall, task-u 0.564): intent key open, earned key closed → held. RungElevate is not a magic elevator button.
  • G18 (deep stall, task-u 0.768): earned key open (+1), intent key closed (Fanout) → held. The council refuses to deepen from overwhelming ignorance — it asks for evidence instead.

G19 is the honest null: this corpus's reachable exhaustion depths straddle the window (0.564 < [0.600, 0.725] < 0.768), so the earned-elevation arm (F4/F6) is driven by a clearly-labelled synthetic evidence state at the window midpoint; everything downstream of CycleEvidence is the same shipped path either way. Whether a 0.125-wide window is intended design or an accident of two independently-authored rules is an open question this probe raises and does not answer — measured, not judged.

A corrected premise (the self-falsifier fired, as designed)

The first draft used {naked-only, naked+hidden-ALL-units} and asserted a deep both-policy stall. derive_both_stall panicked. A sweep showed why: naked+hidden-over-all-units solves every uniqueness-preserving reduction of the #997 puzzle (hidden_stall reachable set = [0]; only 7 clues are removable before uniqueness breaks) — so with that pair "the admitted family is exhausted" is unreachable and the whole escalation arm has no receipt. The family is now {naked-only, naked+hidden-ROWS-only}: a real, sound, oracle-checked technique with a narrower scan scope, under which exhaustion is reachable at task-u ∈ {0.564, 0.754, 0.768}.

F14's actuator is shipped, not invented

No kernel gate() reads ctx.rung (verified negative). The real rung-capability gate is Recipe::admissible_at / RungLevel::admissible_recipes (monotone, test-pinned, consumed by the live StyleStrategy::recipes_for_at): elevating Contextual → Analogical takes admissible recipes 11 → 24, and all 13 newly-admitted Control-bucket kernels (RTE HTD MCP CR LSI PSO CDI CWS SSR ETD IDR SPP DTMF) actually fire on the stalled context — work refused at the prior rung. Second arm: Cas's shipped hdr_level grid re-quantizes the same field [0,0,1,1][0.25,0.5,0.5,0.75] across the same boundary.

Other measured results

  • CE64 non-interference proven actively, strengthening PROBE-METACOGNITIVE-TRIANGLE-1 — close the triangle's missing control arrow through the shipped Revision/counterfactual surface #998's absence-of-import: a live edge carrying IndirectUnknownIntermediates + ReasoningBand::Causal is lens-verified pre-flight, passed through the entire loop, and asserted byte-identical after (F7/F8, raw 0x7000000000000000). F9 goes further — Direct vs IndirectUnknownIntermediates yield identical verdicts: epistemic topology does not secretly act as a scheduling trigger.
  • F5's thin-vs-saturated split is visible in the log: at identical unresolved count, coverage 14/31 → Fanout, 19/31 → RungElevate. The distinction is measured, not hand-picked. Fanout terminates honestly when coverage saturates ("cannot gather more" is a no-op, not a loop).
  • Two-GateDecision trap recorded: mul::GateDecision (Flow/Hold/Block, String reasons) feeds advance_on_gate; the unrelated collapse_gate::GateDecision (byte struct) feeds RungElevator::on_gate. Same name, same crate, no conversion exists. Navigated, not tripped.
  • The membrane is task-normalized — what the policy explained of its own task, never of the board. It yields smaller coherence than the board reading: the stricter choice, not the flattering one.

Results — 19/19 gates green

F1 Flow-on-progress · F2/F15 triangle success → elevation never requested · F3 unwarranted TCF singleton is no lever · F5 Fanout = breadth only, phase held · G16/G18 the two negative controls · G19 the straddle · F4/F6 earned elevation, rung only, triangle bytes identical · F14 the capability delta · F7/F8/F9 CE64 untouched and not a trigger · F10 owner-locality · F11 read-only witnesses · F13 observer-insufficiency → gather, never escalate · F12 full-run determinism · G17 membrane monotonicity + regime discrimination.

Clippy clean, fmt clean. Board entry E-TWO-KEY-ELEVATION-WINDOW-IS-NARROW-AND-THE-CORPUS-STRADDLES-IT-1 in the same commit.

Next slice (named, not hidden)

Repeated-elevation dynamics, Evaluation→Commit calcify, and the long-run fate of a held-with-two-key-disagreement owner — currently it stays held at full coverage indefinitely.

Run: cargo run -p cognitive-shader-driver --example probe_revision_kanban_hinge


Generated by Claude Code

…rrow two-key window it measured

#998 closed the triangle (change HOW I think). This closes the other axis
(change HOW MUCH / HOW DEEP I may think) and, in doing so, measures
something the design did not anticipate.

## The hinge, wired through shipped machinery only

receipt -> membrane -> InnerCouncil::from_signals -> CollapseHint ->
mul::GateDecision -> KanbanColumn::advance_on_gate -> try_advance_phase,
plus the rung arm via RungElevator::apply_delta -- its FIRST caller
anywhere (the same first-arrow shape as #998's promote_family). The only
novel logic is signals_from(&CycleEvidence): pure measured ratios, no
tuned constants. Everything downstream is shipped.

## The headline: the two keys barely overlap

Operator-pinned two-key rule -- RungElevate is qualitative INTENT,
rung_delta decides whether the shift is EARNED, and elevation needs both.
measure_two_key_window sweeps the axis and finds they agree only for
task-unresolved in [0.600, 0.725]:

  <0.316        Balanced/Flow
  0.316..0.600  Catalyst/RungElevate, delta  0
  0.600..0.725  Catalyst/RungElevate, delta +1   <- the ONLY window
  0.725..       Guardian/Fanout,      delta +1

Both negative controls are REAL fixtures on opposite sides, and the
second one the run found rather than the design anticipating it:
- G16 (task-u 0.564): intent OPEN, earned CLOSED -> held.
- G18 (task-u 0.768): earned OPEN (+1), intent CLOSED (Fanout) -> held.
  The council refuses to deepen from overwhelming ignorance; it asks for
  evidence instead.

G19 is the honest null: this corpus's reachable exhaustion depths
STRADDLE the window, so the earned-elevation arm is driven by a clearly
labelled synthetic evidence state at the window midpoint. Whether a
0.125-wide window is intended design or an accident of two
independently-authored rules is an OPEN QUESTION this probe raises and
does not answer.

## A corrected premise (the self-falsifier fired, as designed)

The first draft asserted a deep {naked, naked+hidden-ALL} stall;
derive_both_stall panicked. A sweep showed naked+hidden-over-all-units
solves EVERY uniqueness-preserving reduction of the #997 puzzle
(hidden_stall reachable set = [0]) -- so with that pair, exhaustion is
UNREACHABLE and the escalation arm has no receipt. The family is now
{naked-only, naked+hidden-ROWS-only}: a real, sound, oracle-checked
technique with a narrower scan scope, under which exhaustion is reachable.

## F14's actuator is shipped, not invented

No kernel gate() reads ctx.rung (verified negative). The real gate is
Recipe::admissible_at / RungLevel::admissible_recipes: Contextual ->
Analogical takes admissible recipes 11 -> 24, and all 13 newly-admitted
Control-bucket kernels actually FIRE on the stalled context. Second arm:
Cas's shipped hdr_level grid re-quantizes the same field across the same
boundary.

## Other measured results

- CE64 non-interference proven ACTIVELY (strengthening #998's
  absence-of-import): a live edge carrying IndirectUnknownIntermediates +
  ReasoningBand::Causal passes through the whole loop byte-identical
  (F7/F8), and Direct vs IndirectUnknownIntermediates yield IDENTICAL
  verdicts (F9) -- epistemic topology is not a scheduling trigger.
- F5's thin-vs-saturated split is visible in the log: at IDENTICAL
  unresolved count, coverage 14/31 -> Fanout, 19/31 -> RungElevate.
- Two-GateDecision trap recorded: mul::GateDecision feeds advance_on_gate;
  the unrelated collapse_gate::GateDecision feeds RungElevator::on_gate.
  Same name, same crate, no conversion. Navigated, not tripped.
- The membrane is task-normalized (what the policy explained of its OWN
  task, not of the board) -- the stricter reading, not the flattering one.

19/19 gates green; clippy clean; fmt clean.

Board: EPIPHANIES E-TWO-KEY-ELEVATION-WINDOW-IS-NARROW-AND-THE-CORPUS-STRADDLES-IT-1
(same commit).
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9b838e43-432f-4e6f-90ec-cf5d3474f741


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Aug 23, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_adbac655-20f3-449f-bb7e-5048ac991e87)

…ed, measurements untouched

Text-only recut after an operator architectural correction. No source logic,
no threshold tuning, no new wiring. 19/19 gates rerun green with every
measured value byte-identical to the pre-recut run (window [0.600, 0.725];
fixtures 0.564 / 0.663 / 0.768; F14 11->24, +13, 13 fired; CAS grid
[0,0,1,1]->[0.25,0.5,0.5,0.75]; CE64 raw 0x7000000000000000 unchanged).

What changed, all of it interpretation:

- Retitled PROBE-REVISION-KANBAN-HINGE-1 -> PROBE-REVISION-RUNG-ACTUATOR-1.
  Top-level conclusion is now the narrow one: this establishes ONE concrete
  RungElevator actuator path and measures the overlap of two existing
  heuristics around it; it does NOT establish a canonical metacognitive
  controller.
- Struck the "Triangle = HOW I think / Kanban = HOW MUCH / HOW DEEP" equation.
  It appears in no shipped source and was an in-session invention.
- One terse anti-conflation note (both subsystems spell it "rung"): the
  probe's RungLevel/RungElevator vocabulary has no conversion or call path to
  temporal's QueryReference/EpistemicMode. The refuted mapping itself is NOT
  memorialized here -- it never existed in code or docs.
- NOT OBSERVED / OUT OF SCOPE replaces any "insufficient" framing for
  problem-texture, resonance, MUL grounding, and Frozen/Learned/Explore
  superposition: the probe has no observer surface containing them. That
  bounds the probe; it is not a result about the architecture.
- F14 now states the measurement: Contextual->Analogical changes the shipped
  rung-dependent recipe set from 11 to 24 and the 13 added Control-bucket
  kernels fire on the fixture. No epistemic translation.
- Interpretation-bearing nouns rewritten to mechanical statements ("admitted
  rung" -> "RungElevator level", "capability delta" -> "recipe-set delta",
  "work UNAVAILABLE at the prior rung" -> the measured selector change).
  "admitted" is kept only where it names the Sudoku policy family, which the
  fixture defines exactly.
- FOLLOW-UP OBSERVATION recorded, not fixed: the live driver materializes
  RungLevel into ThoughtCtx.rung numerically (driver.rs:569-577 -> :978);
  ThoughtCtx documents 1..=9 while RungLevel contains Surface=0, so Surface
  can flow through as 0. No semantic failure demonstrated; falsify later.
- promote_family / apply_delta wording corrected to "first caller outside the
  type's own unit tests" (an examples/ caller). Never a production-path call;
  the exhaustive census shows zero src/ callers for either.
- Behavioral learning stated plainly: no production path exists
  (ScaffoldCompiler::synthesize returns NotImplemented; the four template
  crates are workspace-excluded). ForesightSample is a correctly-shaped
  test-only primitive, not a live receipt.
- Temporal placement kept narrow: temporal.rs = query-level admission of
  historical knowledge, tested, no production caller; witness_fabric = the
  separate, load-bearing shipped grounding mechanism (outcome unreachable
  from the call signature); temporal -> Revision = BLOCKED/absent. temporal.rs
  does not currently participate in the cognitive loop.

Board hygiene in the same commit: EPIPHANIES entry recut to match, AGENT_LOG
entry for the two Sonnet grounding lanes.

The example filename (probe_revision_kanban_hinge.rs) is deliberately NOT
renamed -- a rename is a structural change and this recut is text-only. Run
it with --example probe_revision_kanban_hinge.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KCGhDYoQBXs3poaR7sFuqp
@cursor

cursor Bot commented Aug 23, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_276e1a7a-2480-4ee5-b58e-ab53249bb84a)

claude added 4 commits August 23, 2026 12:47
Doc-comment only. 19/19 gates rerun green, clippy clean, no measurement or
logic touched.

The previous recut was too aggressive in the other direction: making the
claims truthful cost the reason the probe was opened. Both extremes are
wrong -- "RungElevator = metacognition" and "this is merely an unrelated
rung experiment". The header now carries two layers instead of one.

ARCHITECTURAL TARGET (restored): can Revision, during Kanban Evaluation,
redirect the next cognitive pass before Rubicon commitment? Evaluation is
the last deliberative phase before collapse. Kanban supplies the phase
boundary and does not say how to think; the Frozen/Learned/Explore field
supplies the kinds of structure available; Revision is the hinge that reads
the receipts and can conclude the focus was wrong, the observer was wrong,
the evidence is insufficient, the reasoning family should change, or the
result is fine. The interesting output of that hinge is what the next pass
ATTENDS TO -- same problem/different focus, same focus/different style, a
new evidence target, a counterfactual branch, a different perspective, a
different recipe family, hold-and-gather, re-plan. A rung change is one
muscle Revision can recruit, not the hinge.

MEASURED FACT (unchanged, just relocated one level down): one
Revision-derived path reaches RungElevator::apply_delta, and changing
RungLevel measurably changes the recipe repertoire the shipped selector
returns (F14, 11->24). The two rules gating that actuator agree on only a
~0.125-wide band.

The honest boundary, now stated from measurement rather than argument: the
probe REACHES the Evaluation boundary and stops. F1 asserts
phase_after == KanbanColumn::Evaluation (:1110); grep for
Evaluation|Commit|Prune|Rubicon across the whole probe returns that
assertion plus two scope-fence lines. It never runs Revision DURING
Evaluation and never exercises Evaluation -> Commit | Plan | Prune. The
hinge is where this probe ends, not what it closed.

Deliberately NOT included yet: the STILL OPEN section (canonical
focus-of-attention representation, how Revision expresses a focus change,
how the concurrent thinking-style fields participate, how a re-run is
represented without a central scheduler, what evidence warrants Commit vs
another pass). Writing that before auditing what already exists is how the
hinge gets invented instead of found. Two read-only audits are in flight --
an attention/focus representation census and an Evaluation->Commit|Plan|Prune
boundary map -- and STILL OPEN lands as a follow-up naming only surfaces
that exist.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KCGhDYoQBXs3poaR7sFuqp
…dited not invented

Doc-comment and board only. 19/19 gates green, clippy clean, no logic or
measurement touched.

Two read-only audit lanes ran before a word of this was written, per the
instruction not to invent the hinge. Every open question is annotated with
what is ALREADY SHIPPED so a later session extends it instead of building a
parallel mechanism.

THE SHARPEST FINDING -- the Evaluation fork exists in the type system and
nothing can drive it:

  Evaluation -> [Commit, Plan, Prune]   is real, discriminant-pinned
  Plan -> Planning                      is documented as the "act
                                        differently next time" exit

So the re-run is ALREADY represented without a central scheduler -- as a DAG
edge (kanban.rs:56-58,101-109). But advance_on_gate (kanban.rs:146-153), the
only shipped lowering, is degenerate at Evaluation: Flow takes the first
non-Prune => always Commit; Block => Prune; Hold => stay. Plan is
structurally unreachable through the gate; it appears as a transition target
only in #[cfg(test)] and two examples, never production src/. The three-way
deliberative fork collapses to commit-or-veto.

And nothing reaches Evaluation anyway: cognitive_pass filters
`phase() != CognitiveWork` (cycle_driver.rs:719), and shade_owner -- the only
production caller of advance_on_gate -- is reachable only from that loop. The
Evaluation -> {Commit, Plan, Prune} decision has NO shipped production caller.

A FOCUS REPRESENTATION EXISTS and must not be re-invented:
contract::attention_facet::{AttentionFocusFacet, RowFocusMask, FocusAxis},
with contract::rubicon_witness as its read-only instrument. Zero callers
outside its own crate. Its constraint is already written down and answers
half of the "without a central scheduler" question directly: "It READS. It
never moves anything... An overlay that DRIVES a transition from a focus
reading has rebuilt the scheduler this substrate removed." Its falsifier
D-ACR-8 is two-sided and QUEUED, NOT RUN.

Unresolved placement question, raised not answered: rubicon_witness measures
the Heckhausen crossing at Planning -> CognitiveWork, while the target
architecture places the pre-collapse deliberative surface at Evaluation ->
Commit. Two Rubicons, or one mis-placed label.

Also established: Commit is DECLARED not implemented (calcify is a todo!(),
D-ATOM-5), so the Rubicon's irreversibility today is the DAG legality table
rather than calcification; RubiconPhase (cognitive-compiler) is a SEPARATE
scaffold enum with zero cross-references to KanbanColumn; no src/ file
mentions both a Revision symbol and KanbanColumn.

Audit hygiene, recorded because it would otherwise look like corroboration:
one lane cited this probe's own header as independent evidence for the
absence of a focus mechanism. That is circular -- the header is this
session's own text -- and the citation was struck. The absence claims rest on
call censuses. A second lane returned Revision's position as UNVERIFIED; the
orchestrator closed that directly rather than let it pass as answered.

Board hygiene same commit: EPIPHANIES entry extended, AGENT_LOG entry for
both lanes including the two corrections applied to their output.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KCGhDYoQBXs3poaR7sFuqp
…rungs at once

New example, production types only (BeliefArena / CStmt / Copula / Stamp /
TruthValue / observe / revise_at / close_transitive). No new scheduler, no
layer stack, no attention type, no mask ABI. 7/7 gates green, clippy clean.

MEASURED: one BeliefArena -- one problem, one context -- holds

    rung 0: 4 beliefs   (observed)
    rung 1: 3 beliefs   (derived, max(premise rungs)+1)
    rung 2: 3 beliefs   (derived)

simultaneously and readably, from a 4-link observed chain 1->2->3->4->5.

Deliberately NOT the driver-locality shortcut. Two ShaderDriver instances with
two RungElevator.level values would only prove a scalar field is per-instance,
which says nothing about whether ONE problem can hold several rungs. The
fixture is therefore the dominant shipped representation -- the per-item rung
tag Belief::rung (nars/belief.rs:98), Tarski-shaped, "fixed at creation --
revision does NOT change it (S2 / rung-inflation fix)".

Gates:
- G1 >=3 distinct rungs coexist                       [0, 1, 2]
- G2 anti-vacuity: spread >= 2, not an adjacent pair  min 0 max 2
- G3 every band non-empty (meaningful, not a label)   4 / 3 / 3
- G4 every rung-0 belief survives BYTE-IDENTICAL after closure -- the
     no-delete/no-overwrite/no-demote requirement, asserted on a sorted
     (stmt, rung, truth) snapshot rather than on counts
- G5 revising a rung-0 belief leaves its rung at 0 (S2 exercised, not quoted)
- G6 that revision does not collapse the high-rung bands
- G7 CAN-IT-STAY-SILENT control: a single observation yields exactly ONE rung,
     so G1 is not vacuously true of any arena

SCOPE, stated in the probe's own output so it cannot be cited past its
evidence: representation permits coexistence -- PROVEN. Concurrent EXECUTION
(threads, wall-clock) -- NOT measured and NOT claimed; close_transitive is a
sequential fixpoint on one thread. The result is semantic parallelism: one
cognitive state contains meaningful work at several rungs at once.

Measured detail recorded rather than smoothed over: the chain admits a rung-3
derivation of 1->5 via 1->4, but the closure reaches 1->5 first through the
two rung-1 halves (1->3 + 3->5), so it is admitted at rung 2 and S2 uniqueness
keeps it there. The observed ceiling is 2, not the 3 the first draft of the
doc comment predicted; the comment was corrected to match the run.

No falsifying owner found: no type or write path forces one-hot occupancy or
replacement. Nothing merged, no source logic changed elsewhere.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KCGhDYoQBXs3poaR7sFuqp
…is not an architectural relation

Operator-caught. Documentation only; no code, no test, no behaviour.

I audited "does lance-graph-java import ghidra/r2sleigh?", found no, and wrote
"Settled with evidence, so nobody builds a bridge to it later." That sentence
is retracted. The dependency-level negative was true; the architecture-level
conclusion drawn from it was false, and stating it pre-emptively told future
sessions not to look.

What was already in THIS repo, unread, in docs/architecture/ARC-B-OWNERSHIP-
AND-ADDRESSING-REASSESSMENT.md section 7 -- titled "THE GHIDRA / JAVA ABI
STANDARD", dated 2026-08-19:

  "The external path is the reference discipline: binary -> Ghidra/SLEIGH/
   P-code -> r2sleigh -> V4 R2IL, with the domain oracle keeping semantic
   authority and the ABI exposing address + mask + view."

That one section ties together Ghidra, the Java ABI, and address+mask+view --
the three subjects I was auditing as if they were unrelated.

The entry splits the finding into the four claims that must not collapse into
one verdict: direct lance-graph-java -> r2sleigh dependency ABSENT (verified);
cross-repo architectural lineage PRESENT (ARC-B section 7, ruff #94/#103/#104,
all merged); reusable mask implementation inside r2sleigh ABSENT (its masks are
bit-width/taint masking in the SSA lifter); reusable substrate pattern PRESENT
and load-bearing.

It also records a dependency edge I missed by testing the wrong pair: ruff #94
ships crates/ruff_r2il, which path-deps the r2sleigh sibling checkout and whose
vocab.rs feeds lance-graph's ogar_codebook read-only, with a 16-byte V3-shaped
VarnodeFacet. PR #94 names its own origin as a three-repo Phase Zero audit of
ruff, r2sleigh, and the lance-graph V3 ABI.

Both transferable laws are recorded at their honest tier, including the caveat
PR #103 carries itself: its "zero mismatches across 35,946 matched op sites"
is under the oracle's permissive_convention and proves the reconstruction
MECHANISM; the shipped minimal_pass_one measures matched = 0 and round-trips
through accounting, not matching. A production behavioural-BPE learner joining
masking to behavioural IR remains NOT YET PROVEN.

Generalised lesson: "no reusable primitive" and "no architectural connection"
are different findings needing different evidence, and a grep for imports can
only settle the first. Before writing an absence verdict about a relation,
search this repo's own docs/architecture/ and board for the relation by name.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KCGhDYoQBXs3poaR7sFuqp
…on does not

New example against the #1001 charter. 8/8 gates green, clippy clean. No
production type changed; no CommonMask; no NOT/XOR; no scheduler.

MEASURED. One BeliefArena at rungs [0,1,2] plus 16 stationary NodeRows (8 KiB).
Three selector families with no common representation -- BoundAt(Locus)
(signed nibble in a 12-byte witness register via WitnessLens), RungBand{lo,hi}
(u32 arena field), GapSubject(u16) (scan-derived Vec<ReasoningGap>) -- compose
into one narrowing view:

  A [BoundAt]                       -> 8 rows
  B [BoundAt, RungBand]             -> 4 rows
  C [BoundAt, RungBand, GapSubject] -> 3 rows

- Provenance survives composition: 3 admitted, 4 blamed by exactly one
  selector, 9 by two or more. Non-uniform blame, so the channel discriminates.
  The plan stays a stack of typed descriptors; only the lowered artifact is
  opaque.
- Zero population copy: digest and base pointer byte-identical across all
  three lowerings. 36 B of descriptors against 16 x 512 B never touched --
  reported separately, since the invariant is zero POPULATION copy, not zero
  allocation.
- Typed edit reconstructs exactly: BEFORE + EDIT == AFTER on both the
  descriptor stack and the lowered visible set; the inverse RemoveAt restores
  BEFORE.
- Non-destructive: rung bands and population bytes unchanged after every view
  change. Only visibility moved.
- Controls: empty plan admits all 16, contradictory plan admits 0 -- the
  composition can both speak and stay silent.

A measured surprise kept visible rather than tidied away: the first fixture
used rcr_abduce and the gate FAILED with gap=0. Cause, measured: on a fully
closed transitive chain rcr_abduce returns 20 candidates and ZERO gaps -- its
gap channel fires on a different condition. tr_diverge on a siblingless focus
emits the real ReasoningGap{NoSibling, subject: Some(1)}. The fix was to use
the call that produces the signal; the assertion was never weakened, and the
probe still prints rcr_abduce's empty channel so the distinction is visible.

NOT established, per the charter's "nothing stronger": no behavioral BPE (this
is the receipt substrate only); no wall-clock/thread parallelism (occupancy is
semantic, close_transitive is a sequential fixpoint); no Rubicon persistence
(KanbanMove carries no attention provenance, calcify is todo!()); and no
production Revision surface -- F-REVISION-FOCUS-1 is ABSENT and ViewEdit is an
explicitly probe-local adapter. RungElevator does not appear in this probe.

Existing-container audit ran first per the charter's probe law: ViewRegistry::
union_of(&[ViewId]) -> WideFieldMask is the shipped precedent with the right
two-layer shape, not reused only because it composes a single family over one
representation and heterogeneity is the question. CycleFrame records a cycle;
SupportReceipt records support; neither is a view. The probe-local ViewPlan
follows ViewRegistry's shape rather than inventing one.

Board hygiene same commit: EPIPHANIES entry.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KCGhDYoQBXs3poaR7sFuqp
@AdaWorldAPI
AdaWorldAPI merged commit be6407e into main Aug 23, 2026
6 checks passed
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.

2 participants