Skip to content

D-GSO-AFF-0: recipe eligibility as a measurement over CausalEdge64 - #1370

Merged
AdaWorldAPI merged 2 commits into
mainfrom
claude/awesome-volta-xderaa
Oct 6, 2026
Merged

AdaWorldAPI merged 2 commits into
mainfrom
claude/awesome-volta-xderaa

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Probe only. It adds no library code, persists nothing, moves no CE64 bits, and adds no scheduler, task, capability object or recipe list.

Claim

CausalEdge64 × RecipeLaw[0..63] → EligibleRecipes: u64 comes out of the existing substrate as two const-table lookups and one AND. The u64 is measured fresh each time and never written back.

  • EpistemicState5: bits 59..63 are read as one 5-bit code, spare() << 2 | truth_raw(), through the shipped accessors.
    • Ten codes are declared, and their order says nothing about strength. "Or higher" is written into each code's facts.
    • The other 22 codes refuse.
  • Pearl3: bits 40..42 keep their shipped reading. Only COUNTERFACTUAL_PROBE reads them.
  • Recipes: 7 recipes declare requires / forbids facts and Pearl planes. These compile at build time into [u64; 32] (per code) and [u64; 8] (per Pearl projection).
  • Preference: applied as eligible & preference, so it can only clear bits.

Falsifiers (8 tests, 7 disable runs red)

  • F1/F8: the same bits under the same law generation give the same population. V2 differs from V1, so the generation is part of the reading.
  • F2: a relevant factor flips its bit. Unknown → Known intermediate swaps HYDRATE_INTERMEDIATE for MECHANISM_FOLD; SO → SPO moves only COUNTERFACTUAL_PROBE.
  • F3: S/P/O bytes, F/C, bits 43..45, the mantissa, plasticity and the witness slot are each swept over their full range with no bit change.
  • F4/F5: the compiled tables match an independent re-derivation from the rules on every code × projection × recipe. Every refusal names its failed obligation.
  • F6/F7: preference never sets an illegal bit.
  • F9: the measurement makes 0 allocations.
  • Half-field writes: writing only bits 59..60 with the shipped with_topology turns code 17 into code 18, which refuses.

Inventory findings

  • Bits 43..45 (direction): no crate outside causal-edge reads them. Inside it, the pathology helpers, concern_level, CausalNetwork::detect_simpsons_paradox, compose and the V3 lift read them as the per-plane pathology triad.
  • Witness: MailboxSoA::apply_edges drops any edge whose w_slot differs from the mailbox's. Reading the slot as an evidence class would drop edges there. Width 6 is assumed in four places.
  • Bits 59..63: the shipped readers split them into 59..60 and 61..63, and band_reading declares the two halves separately. A joint 5-bit reading needs its own declaration.
  • S/P/O: "palette" only by name. compose uses the same left * 256 + right pair orientation as PairAddress.
  • StepMask(u64): already exists, but for template step positions, a different index space from recipe ordinals. So the probe uses a plain u64.

Board: D-GSO-AFF-0 status row and entry 2026-10-06-affordance-measurement.md; D-GSO-7a marked Shipped (#1369).

🤖 Generated with Claude Code

https://claude.ai/code/session_01T8w7Ucm7NhitfTduFKmhYx


Generated by Claude Code

Summary by CodeRabbit

  • New Features

    • Added an example tool that measures which recipes are eligible based on declared edge states and projections. It supports two recipe-law generations, explains individual recipe results, applies preference-based filtering, and selects an eligible recipe.
    • The tool rejects undeclared states and untrusted provenance, and reports the law generation used.
  • Documentation

    • Added guidance on measurement results, supported inputs, and current limitations.

CausalEdge64 x RecipeLaw[0..63] -> EligibleRecipes: u64, as two
const-table lookups and one AND. No scheduler, task, capability object,
recipe list or allocation; the u64 is transient and never written back.

Bits 59..63 are read as one EpistemicState5 code through the shipped
accessors (spare() << 2 | truth_raw()): ten declared codes, ordered without
regard to strength; undeclared codes refuse. Bits 40..42 keep their Pearl
reading. Seven recipes declare requires/forbids facts and Pearl planes;
the rules compile at build time into [u64; 32] and [u64; 8].

Falsifiers: same bits + same law generation give the same population and
the generation matters (F1/F8); a relevant factor flips its bit (F2);
S/P/O, F/C, bits 43..45, mantissa, plasticity and witness are swept over
their full ranges with no change (F3); the tables match an independent
re-derivation that names every refusal (F4/F5); preference only clears
bits (F6/F7); zero allocations (F9). A half-field write to bits 59..60
turns code 17 into an undeclared 18, which refuses.

8 tests, 7 disable runs red. Board: D-GSO-AFF-0 row and inventory entry;
D-GSO-7a marked Shipped (#1369).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T8w7Ucm7NhitfTduFKmhYx
@coderabbitai

coderabbitai Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: cc403f41-cf48-4e2f-8fa6-c53203c5d4f3
📥 Commits

Reviewing files that changed from the base of the PR and between 0285dd3 and e91bea0.

📒 Files selected for processing (6)
  • .claude/board/STATUS_BOARD.md
  • .claude/board/entries/2026-10-06-affordance-measurement.md
  • .claude/board/entries/README.md
  • crates/cognitive-shader-driver/Cargo.toml
  • crates/cognitive-shader-driver/examples/README.md
  • crates/cognitive-shader-driver/examples/affordance_measurement_probe.rs

Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.


📝 Walkthrough

Walkthrough

The change adds a probe that maps declared epistemic-state codes and Pearl projections to eligible recipes. It adds two recipe-law generations, measurement diagnostics, preference filtering, selection, tests, example documentation, and a measurement report.

Changes

Affordance Measurement

Layer / File(s) Summary
Recipe rules and lookup tables
crates/cognitive-shader-driver/examples/affordance_measurement_probe.rs
Defines ten epistemic fact bits, maps declared state codes to facts, and compiles eligibility tables for seven active recipes under V1 and V2 laws.
Measurement and probe integration
crates/cognitive-shader-driver/examples/affordance_measurement_probe.rs, crates/cognitive-shader-driver/Cargo.toml, crates/cognitive-shader-driver/examples/README.md
Measures eligible recipes from edge readings, refuses unsupported provenance or undeclared codes, and provides diagnostics, preference filtering, selection, and a command-line report. Registers the example to run as a test and documents its behavior.
Behavior tests and measurement record
crates/cognitive-shader-driver/examples/affordance_measurement_probe.rs, .claude/board/entries/2026-10-06-affordance-measurement.md, .claude/board/entries/README.md, .claude/board/STATUS_BOARD.md
Tests generation differences, recipe obligations, field relevance, refusal cases, preference behavior, and zero allocations across 80 valid readings. Adds the measurement report and index entry, and updates the status board.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  participant Caller
  participant Measure as measure
  participant Edge as CausalEdge64
  participant Tables as eligibility tables
  Caller->>Measure: provide edge and law generation
  Measure->>Edge: read provenance, state code, and Pearl projection
  Edge-->>Measure: return encoded readings
  Measure->>Tables: look up state and Pearl masks
  Tables-->>Measure: return eligibility masks
  Measure-->>Caller: return intersected eligibility or refusal
Loading

Suggested reviewers: claude

Merge Risk: ⚪ Minimal · up to e91be

No actionable merge-blocking risk is established; the PR is mergeable after normal checks.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 64.52% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 31 functions across 1 files. (5 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the recipe-eligibility measurement over CausalEdge64, which is the pull request’s main change.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 64.52% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 31 functions across 1 files. (5 skipped: 5 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.


A rabbit taps the recipe bits,
Ten codes hop through the table rows.
Pearl planes join the eligibility,
Two law generations trade their notes.
The tests count paths with no new allocations,
Then the rabbit curls up, pleased.

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

@cursor

cursor Bot commented Oct 6, 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: da77e3c0-a1d5-4c7a-9e71-539afa6c4f56)

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review October 6, 2026 18:44
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-06T18:47:13.422051Z 078fa2d Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@cursor

cursor Bot commented Oct 6, 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: 6b3cc0bb-2193-442a-b7e8-73eceef20619)

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 078fa2d2b8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Codex review: measure read bits 59..63 from any edge. On a v1 row those
are old temporal bits; temporal = 128 sets bit 59 and reads as code 1
(Causes), making COUNTERFACTUAL_PROBE eligible. measure and explain now
take band_reading::EdgeProvenance and refuse V1Legacy and Unknown, the
same rule band_reading applies to these bits.

New test v1_and_unknown_provenance_refuse; dropping the gate turns it red.
9 tests, 8 disable runs red.

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

cursor Bot commented Oct 6, 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: 742220ab-8734-44b2-8023-05bb061b41a5)

@AdaWorldAPI
AdaWorldAPI merged commit 6f0c739 into main Oct 6, 2026
11 checks passed
AdaWorldAPI pushed a commit that referenced this pull request Oct 6, 2026
A SPOG coordinate read from (classid, CausalEdge64) with no stored column:
S/P/O are the resident bytes, G is graph_of(classid) (the existing "g via
classid" rule), and the Witness slot is a sub-context inside G for classes
that declare that reading. Slot 0 reads as no anchor. Undeclared classes,
another reading of the slot, and v1/unknown provenance refuse.

Compared with the real MailboxSoA::apply_edges routing: within one graph
it accepts exactly the edges in the same SPOG context on all 64 x 64 slot
pairs; across graphs it diverges, because routing reads no classid.
Recorded as ISS-MAILBOX-ROUTES-WITNESS-WITHOUT-GRAPH; not fixed here.

7 tests, 6 disable runs red, 0 allocations. Board: D-SPOG-W-0 row and
entry, ISSUES row; D-GSO-AFF-0 marked Shipped (#1370).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T8w7Ucm7NhitfTduFKmhYx
AdaWorldAPI pushed a commit that referenced this pull request Oct 6, 2026
ce64_cycle_survival_probe: one MailboxSoA edges row (cycle-gated write_row +
tick) is the only cross-cycle state. Each cycle folds observations with the
shipped CausalEdge64::learn (NARS revision of F/C), counts distinct sources in
a per-cycle SupportLedger (dropped at cycle end), settles the EpistemicState5
code and writes the register back. The next cycle measures eligibility with
the #1370 law, moved unchanged to examples/shared/affordance_law.rs.

Eligibility over cycles 0..3: OBS, OBS, OBS|STRATIFY, OBS: accumulation
without certification, certification read by the next cycle, contradiction
read by the next cycle. F1-F7 tests; 1000 folds from one source never
certify; sources split across cycles never combine (missing state, pinned).
9 tests, 7 disable runs red.

The EpistemicState5 step (code 3 <-> 7) is probe-declared: learn() never
writes bits 59..63 and no production writer from evidence exists. Recorded as
ISS-NO-EVIDENCE-WRITER-FOR-EPISTEMIC-STATE.

Board: D-ALPHA-G-0 and D-WA-0 Shipped (#1372); D-CE64-TIME-0 row; ISSUES
entry; inventory entry; entries index.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T8w7Ucm7NhitfTduFKmhYx
AdaWorldAPI pushed a commit that referenced this pull request Oct 6, 2026
… mailbox

D-CE64-NEXTSTATE-0 (ce64_nextstate_probe, 6 tests, 7 disable runs red):
EpistemicState5 is a sparse 5-bit next-state mutation; the shipped
with_spare + with_truth already compile to bzhi/shl/or, so no new writer.
Adds CausalEdge64::to_le_bytes / from_le_bytes (mirroring EpisodicEdges64)
and the register contract on the type.

D-ANCESTRY-K1-0: from .claude/v3 first, then code (history is shallow at
#1327). The v3 ladder StreamDto -> PerturbationDto -> BusDto was meant to
close a loop: EmitMode::Persist names the row, persist_cycle writes
emitted_edges[0], the mailbox-thoughtspace shim reads it next dispatch.
It was never closed: the driver owned its mailbox read-only and run() is
&self. Path B.

D-STREAMDTO-0 (streamdto_circuit_probe, 6 tests, 6 disable runs red):
adds ShaderDriver::mailbox_mut, the smallest completion. A real StreamDto
goes through ingest, dispatch k, write-back via write_row, tick, and
dispatch k+1, which reads the edge and changes. Measured limits: the edge
steers k+1 only through s_idx / 4; the shader writes code 0, so #1370
eligibility is unchanged by the circuit; timestamp is not the cycle.
Ingress into the mailbox has no production arm (new ISSUES entry).

CI: adds a feature-gated step; w2_differential and the new probe were
never run by the default-feature job.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T8w7Ucm7NhitfTduFKmhYx
AdaWorldAPI pushed a commit that referenced this pull request Oct 7, 2026
…tate5

Addresses ISS-NO-EVIDENCE-WRITER-FOR-EPISTEMIC-STATE with one declared,
versioned candidate; the production decision stays open. One MailboxSoA
CE64 row tracks "pixel P is a material boundary". Each cycle reads the
start-of-cycle copy through MailboxSoaView, presents its encounters to
GadamerRevision, and settles the code by transition V1 (3 -> 7 on >= 2
admitted Differs roots, 7 -> 3 on ContradictionPreserved); the code is
written in cycle k and read in k+1. Bits 59..63 are written as one joint
code (the #1370 reading); every write is a code EPI_LAW declares.

Rendered witnesses propose the claim but carry no root, so the revision
never admits them and they never move the code. One source repeated is
one root; cross-cycle corroboration is pinned as missing state. 11 tests,
7 disable runs red.

Board: D-CTX-5 and D-CTX-6 -> Shipped (#1367); D-CTX-7 row and entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5ZJLtEBxeLPKX1pLRkHhc
AdaWorldAPI pushed a commit that referenced this pull request Oct 7, 2026
…esian V1)

Replaces the hand-assigned ten-code #1370 codebook with the dense product
the two old fields already formed: raw5 = topology | certification << 2,
CausalTopology ordinals x P7a certification codes, 24 meaningful states,
8 reserved (certification 6/7). Validity is only certification < 6;
IndirectUnknown x Causes and Unknown x Causes are meaningful (procedure is
the affordance law's job). OBSERVED is dropped: observation is evidence,
not a coordinate.

- contract: Topology2, Certification3, per-factor facts, derived
  COMPILED_FACTS_V1, factor updates (with_topology/with_certification);
  the legacy translation table is gone (P7a + topology is identity packing).
- causal-edge: with_topology is the canonical topology-factor writer (no
  longer deprecated); the TrustTexture / historical-band / untyped writers
  stay deprecated for bypassing the declared reading.
- affordance law compiles per factor; state = topology & certification.
- probes remapped: #1379/cycle/nextstate 3/7 -> 0/4 (Direct x Open /
  Direct x Associated), affordance fixtures 25/5/17 -> 10/9/21, streamdto
  7 -> 4; P7a stamps every contract; entropy_topology migrated to the
  canonical projection.
- #1378 probe: canonical == topology lens + P7a decode over all 32 codes
  (24 agree / 0 disagree / 8 reserved), derived table == rules, frontier
  cases 22/23, legacy-reading class refuses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0177nSSyQaXqbNuGR1vMXXN6
AdaWorldAPI pushed a commit that referenced this pull request Oct 7, 2026
streamdto's main table printed retired #1370 sample codes (25 and 30 are now
reserved); it now prints the 24 meaningful states by coordinate. S4 pins the
reread's topology and certification as well as its raw code. The inventory
entry records the storage / raw5-semantics / name-collision census: MUL's
TrustTexture types have no bridge to the CE64 lens.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0177nSSyQaXqbNuGR1vMXXN6
AdaWorldAPI pushed a commit that referenced this pull request Oct 7, 2026
The two resolved ISSUES Status lines still described the ten-code #1370
codebook, the 11/0/13 census and a test that no longer exists; they now state
the Cartesian V1 contract and its 24/0/8 conformance. The D-EPI-CONFLICT-0
row is marked Superseded, its old pins labelled historical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0177nSSyQaXqbNuGR1vMXXN6
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