Skip to content

CLAUDE.md: the matching rule (P0) + the entry whose corrections produced it - #1238

Closed
AdaWorldAPI wants to merge 3 commits into
mainfrom
claude/matching-rule-p0-q5zbrs
Closed

AdaWorldAPI wants to merge 3 commits into
mainfrom
claude/matching-rule-p0-q5zbrs

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

Supersedes #1237 — same content, clean history. See that PR's closing note for why.

Two things, and the second is why the first exists.

1. CLAUDE.md — the matching rule (P0, operator-ruled)

Matching without reading is strictly prohibited. A shared surface feature — a width, a count, a phrase, a file path, a name — is never evidence that two things are the same thing. Before claiming A tells you about B, read B.

Five measured instances in one session:

# matched on transferred what B actually was
1 6 B == 6 rails helix residue → a Hexagon synapse surface 6 B is ONE 48-bit Signed360 sphere angle
2 48 bit == 48 bit cam_pq's ranking result → HelixResidue the measurement never ranged over HelixResidue
3 the words "multi-hop" jc's synthetic-SPD EWA bound → graph recall that pillar never traverses a graph
4 a neighbouring entry's citation le-contract.md:160-170 cited for the LUT :160-170 is CausalEdge64 residual carriers
5 the phrase "256² LUT" 128 KiB u16 → bgz-tensor's Fisher-z canon that table is Vec<i8>, k*k + 8 → 64 KiB + 8 B

Instances 2, 4 and 5 occurred inside the correction of 1, 3 and 4 — so the rule binds the retraction as hard as the claim.

Placed beside the falsifiability rule, same shape: failure mode, measured instances, consequences as prohibitions. One consequence is counterintuitive enough to state outright — prefer the precise form, because precision is what makes a claim falsifiable. Instance 4 was invisible while the citation path was partial (citation_decay reported UNVERIFIABLE and did not fail); widening it to repo-relative is what let the gate check it and go red. A vaguer citation is not safer, only unfalsifiable.

2. EPIPHANIES.md — the entry that occasioned it

adaptive_order_probe.rs measures the clustered regime's best ordering at 99.90 % of words skipped. The skip's granularity is the 64-row word, and 65,536 rows is exactly 1024 words:

1023 / 1024 = 0.9990234…  →  99.90 %

Not near the ceiling — it is the ceiling: one live word out of 1024. The probe's own ramp says it twice: [4092, 3069, 2046, 1023, 0], 4092 = 4 × 1023, every delta −1023. So there is no tuning headroom above 99.90 % on that tile, and 256×256 is the skip's unit rather than the fixture's geometry.

Three further readings, each arithmetic on a number measured elsewhere:

  • The carriers hand off at 10 bits of 16. A 16-bit tile coordinate against 64-row words splits 10/6; a prefix buys skip for exactly 10 bits and the last 6 are structurally invisible to a mask carrier.
  • Both questions have an 8-byte form; what differs is the condition. How far compacts unconditionally (FamilyGamma, 8 B of parameters — plus atanh/tanh, so compute-versus-table, not a smaller answer). Which compacts only when the set is structured: a prefix range is Cmp::MatchU32 { pattern, care }, 8 bytes. §8a's clustered conjunct is an address prefix, so the entry's own regime is where both compact forms exist.
  • 256×256 is 8 KiB, 64× inside D-GTM-0n's measured 512 KiB L2-residency bound; the tile that breaks it is exactly 2048×2048. Named as a coincidence, not as load-bearing — no tile-size sweep was run.

Fences the entry carries: not a claim that the skip is good in general (§8a's permissive and moderate rows stay 0.00 %); not a claim about the 12-byte facet, which expresses six points and never a set; not an identification of a facet rail with a cascade tier (both two bytes — shape identity, not object identity); and not a measurement.

Relation to #1235

Complementary, prior-art checked before writing. E-FUSING-FORFEITS-THE-SKIP-…-1 (landed there) establishes under what conditions the lever exists; this entry establishes what its ceiling is and why. That entry's ⊘ correcting my over-general "survivor-independence is structural" framing is accepted — gt_i32_to_mask_under exists at simd_masking_ops.rs:1614, verified.

Gates

  • append_only_gate.py: 9 protected files, none shrank (EPIPHANIES.md 30463 → 30604).
  • citation_decay.py --since origin/main: 0 new decay, 145 pre-existing backlog.
  • supersession_index.py: regenerated after the board write, byte-identical.

No code touched, so no cargo gate applies.

🤖 Generated with Claude Code

https://claude.ai/code/session_011JRoXmYPrE8KubXVrDB71L


Generated by Claude Code

…ip's unit

§8a measures the clustered regime's best ordering at 99.90% of words skipped.
That is not a high-water mark: the skip's granularity is the 64-row word
(`MaskOp::Pred`'s own doc), 65,536 rows is exactly 1024 words, and
1023/1024 = 0.9990234. One live word out of 1024 -- the least a non-empty mask
can occupy. The probe's `skipped_words` ramp says it twice: [4092, 3069, 2046,
1023, 0], where 4092 = 4 x 1023 and every delta is -1023.

So there is no tuning headroom above 99.90% on that tile, and 256x256 is the
skip's UNIT rather than the fixture's geometry -- the tile and the word ladder
are one object counted twice.

Three further readings, each arithmetic on a number measured elsewhere:

  - The carriers hand off at 10 bits of 16. A 16-bit tile coordinate against
    64-row words splits 10/6: the top 10 select the word, the bottom 6 select a
    bit inside it, so a prefix buys skip for exactly 10 bits and the last 6 are
    structurally invisible to a mask carrier however precisely named.

  - "How far" spans 8 B to 128 KiB; "which" has no analytic form. le-contract's
    ANALYTIC section is explicit that a materialized k x k table is "a CACHE of
    the formula, never the canon" (Fisher-z, 8-byte per-family affine). A metric
    over a tile is a function of two coordinates and compresses to a formula; an
    arbitrary subset of 65,536 cells does not. That asymmetry is why the two
    carriers cannot substitute for each other.

  - 256x256 is 8 KiB, 64x inside D-GTM-0n's measured 512 KiB L2-residency bound
    where chained ternlog stops paying. The tile that breaks it is exactly
    2048x2048. Named as a coincidence, not as load-bearing: no tile-size sweep
    was run and D-GTM-0n's fixture is not §8a's.

Fences in the entry: not a claim that the skip is good in general (§8a's
permissive and moderate rows stay 0.00%); not a claim about the 12-byte facet,
which expresses six points and never a set; not an identification of a facet
RAIL with a cascade TIER (both two bytes -- shape identity, not object
identity); and not a measurement -- every number is re-stated with its source or
is one line of arithmetic on such a number.

Two citations were corrected while writing it. `le-contract.md:160-170` was
carried forward from another entry without checking: :160-170 is CausalEdge64
residual carriers, the LUT section starts at :169, and reading it is what
produced the analytic/materialized row above. And an earlier framing of mine --
"survivor-independence is structural because gt_i32_to_mask takes no gate" --
was over-general and is corrected on main already by
E-FUSING-FORFEITS-THE-SKIP-AND-ADAPTIVEFILTER-FAILS-IN-TWO-PLACES-NOT-ONE-1:
an UNGATED sweep is structurally survivor-independent, a GATED one is not, and
gt_i32_to_mask_under exists. Verified at simd_masking_ops.rs:1614.

Gates: append-only 9 files, none shrank (EPIPHANIES +124). citation-decay
--since origin/main: 0 new decay. Supersession index regenerated after the board
write, byte-identical (the entry cites E-/ISS- names, no D-ids).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011JRoXmYPrE8KubXVrDB71L
…k DOES have an analytic form

Two errors in the section as first committed, both caught by the operator asking
why the Fisher-z figure was 8 BYTES when palette256 is 8 BITS. It is a fair
question and the answer exposed that I had not read the types.

1. WRONG TABLE. I gave the materialized LUT as 128 KiB and attributed it to the
   contract's Fisher-z canon. Verified in source: `FisherZTable { entries:
   Vec<i8>, k, gamma }` with `byte_size() = k*k + 8`, so at k=256 it is
   **64 KiB + 8 B** -- entries at ONE byte each, because the codec's output grade
   is the normalized i8. The 128 KiB u16 figure belongs to
   E-X265-PROBE-GPU-LUT-1's GPU table, a different object. I matched on "256²
   LUT" and carried a figure across two tables.

2. THE MASK HAS AN ANALYTIC FORM, for the case this entry is about. I wrote that
   "how far" compacts and "which" does not. True of an arbitrary subset; false of
   a prefix range, which is `Cmp::MatchU32 { pattern, care }` -- 8 bytes, the
   same order as the gamma -- and which matrix row R5 independently describes as
   DuckDB's SequenceVector compressing a contiguous range to 3 scalars. §8a's
   clustered conjunct IS an address prefix, so the entry's own regime is exactly
   the one where the mask's compact form exists.

   The corrected asymmetry is about the CONDITION, not the possibility: "how far"
   compacts unconditionally (a metric is a function of two coordinates, so a
   formula always exists); "which" compacts only when the set is structured.

Also stated now rather than elided: the 8 B is PARAMETERS, not answers.
`FamilyGamma { z_min: f32, z_range: f32 }` costs an atanh/tanh and the affine to
yield a distance, so the 8 B vs 64 KiB pair is compute-versus-table, not a
smaller answer. The earlier "16,384x range" phrasing elided that and is gone.

The palette index is 8 BITS; the family's affine is 8 BYTES. The table in the
entry now keeps them apart explicitly.

Recorded as a in-entry ⊘ rather than a silent edit, and as a second commit rather
than an amend, so the error is in the history where it belongs.

Gates: append-only 9 files, none shrank (EPIPHANIES 30463 -> 30604). citation
-decay --since origin/main: 0 new decay.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011JRoXmYPrE8KubXVrDB71L
…is prohibited

Operator ruling, 2026-09-15: "Matching without reading is strictly prohibited."

It names the mechanism behind five errors in one session, three of which
occurred INSIDE the correction of the other two. A shared surface feature -- a
width, a count, a phrase, a file path, a name -- is never evidence that two
things are the same thing. Before claiming A tells you about B, read B.

The five, with what B actually was:

  1. 6 B == 6 rails         helix residue -> a Hexagon synapse surface
                            (6 B is ONE 48-bit Signed360 sphere angle)
  2. 48 bit == 48 bit       cam_pq's ranking result -> HelixResidue
                            (the measurement never ranged over HelixResidue)
  3. the words "multi-hop"  jc's synthetic-SPD EWA bound -> graph recall
                            (that pillar never traverses a graph)
  4. a neighbouring entry   le-contract.md:160-170 cited for the LUT
                            (:160-170 is CausalEdge64 residual carriers)
  5. the phrase "256² LUT"  128 KiB u16 -> bgz-tensor's Fisher-z canon
                            (that table is Vec<i8>, k*k + 8 = 64 KiB + 8 B)

Placed beside the falsifiability rule because it is the same shape: a recurring
failure mode, its measured instances, and consequences stated as prohibitions.
Instances 1-3 live with their censuses in
E-I-GRAFTED-HELIX-ONTO-HEXAGON-AND-THEN-DEPRECATED-THE-OPERATORS-TENANTS-ON-MY-OWN-AUTHORITY-1;
4 and 5 are in this PR's entry as ⊘.

One consequence is counterintuitive enough to state explicitly: PREFER THE
PRECISE FORM, because precision is what makes a claim falsifiable. Instance 4
was invisible while the citation path was partial -- citation_decay reported it
UNVERIFIABLE and did not fail. Widening it to repo-relative is what let the gate
check it and go red. A vaguer citation is not safer, only unfalsifiable.

The rule's own citation was verified rather than copied forward, which is the
test it demands: canonical_node.rs:868-871 reads "signed full-sphere Signed360,
48-bit = 6 B" with HelixResidue = 4 at :871.

Gates: citation-decay --since origin/main 0 new decay; append-only 9 files none
shrank; supersession index regenerated after the board write, byte-identical.

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

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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

@cursor

cursor Bot commented Sep 15, 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_45ec21c6-0583-42f4-88e0-81239a1cbe6b)

Copy link
Copy Markdown
Owner Author

Closing. The entry's organizing frame is a graft.

adaptive_order_probe.rs runs over 65,536 rows and says nothing about a tile. "256×256" comes from D-GTM-0m's fixture — a different probe, different repo, different fixture — and I fused the two on the shared count of 64k. Any 65,536-row mask is 1024 words of 64, square or not.

What that takes with it: the "256×256 is the skip's unit" claim, the 10-bits-of-16 carrier handoff (it needs a 16-bit tile coordinate this probe does not have), the 8 KiB-vs-LUT comparison, and the D-GTM-0n tile-size pairing. That is the frame, not a detail.

What survived was one arithmetic identity — 1023/1024 = 99.90 % on a 1024-word mask — which I also never traced to the probe's own denominator.

It is the third instance in this PR of the same move the PR's own P0 rule prohibits. Not worth re-cutting.


Generated by Claude Code

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