docs(classview-bitmask + §1.5): class-conditioned shape, simple rules#140
Merged
Conversation
Extend the Redmine-ERB ClassView bitmask doc (PR #139) with the operator's 2026-06-29 refinements, now tested in ruff: - 'Wide classes — the quadruplet and bucket chaining': the u64 mask is ONE bucket (64 fields); a wide class (Odoo account.move ~109 fields) chains up to 4 buckets = the [u64; 4] quadruplet = 256, and the selected() loop is bucket-agnostic (idx/64, idx%64). Clean separation overflow automation; > 256 is a god object that splits into a second ClassView, never a wider mask. Pinned + tested in ruff_spo_address::soc (FIELD_MASK_CAP = 256, field_mask_buckets, 109-field -> Duplication). lance-graph FieldMask is the eventual matching expansion. - 'Simple rules': if it's a template it's probably a ClassView; deduplicate routes (N field-subset routes = one templated render with N masks); < 256 is clean, >= 256 is the god-object SoC split signal. - Cross-refs to ruff_spo_address::soc and canonical_node::GUIDS_PER_NODE (the node-level twin of the same clean/SoC-over-packed doctrine). Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 848c7359af
ℹ️ 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".
Operator small veto (2026-06-29): the ClassView shape is mapped from the class's inherited format and selected by classid — don't restate or LOCK it. 'Quadruplet' was a misread of the 3×4 GUID shape; the shapes are per-class: Rails 6×2, other frameworks 4×3, GUID 3×4. So 4×3 is legitimate per-class, not a 'worst case'. - CLASSVIEW-FIELDVIEW-ASKAMA-BITMASK.md: 'Wide classes' recast from '[u64;4] quadruplet, locked 256' to class-conditioned shape (CascadeShape::from_levels, classid-selected); the only fixed bound is the byte-cardinality god-object signal (< 256 clean, >= 256 split). Simple-rules + summary + cross-refs updated off the removed field_mask_buckets/FIELD_MASK_MAX_BUCKETS API. - OGAR-TRANSPILE-SUBSTRATE.md §1.5a + status: shapes table reframed Rails 6×2 / other frameworks 4×3 / GUID 3×4; 4×3 legitimate (its divide is a per-class cost, not a prohibition); is_byte_aligned/shift/ALIGNED = shift-vs-divide distinction, not a reject gate. Mirrors lance-graph #621 + ruff #36. Co-Authored-By: Claude <noreply@anthropic.com>
…ng lane
Operator scoping (2026-06-29): helix + CAM-PQ are a separate G2×48bit lane (the
two 48-bit chains / CAM-PQ 6×256 path code) for location (helix; q2/helix) and
centroid (CAM-PQ; lance-graph/DeepNSM) — NOT required by transpile, never dragged
into ClassView shape selection. The DeepNSM COCA 4096-word English-vocabulary CAM
index codebook is a likely future G2×48bit consumer ('earn its keep'), not a
transpile dependency. §1.5a note added. Doc-only.
Co-Authored-By: Claude <noreply@anthropic.com>
…nherited expansion Operator doctrines (2026-06-29), neither a blocker: - Clean => expansion is classid-inherited (no global change; class-conditioned CascadeShape). Expansion is never a transpile blocker. - Bulk raw data → a separate Lance table, not the 480-byte SoA value: a payload that won't fit even compressed (~3.2 Gbp genome; FMA/BodyParts3D anatomy mesh 4M vertices/6M triangles) is referenced by key/classid, out-of-line. The mesh baked cleanly as a SoA release. Transpile mints the structured class; the bulk payload is a table reference, not a transpile dependency. Doc-only. Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Extends the Redmine-ERB ClassView bitmask doc (PR #139) and the transpile §1.5 doc with the operator's 2026-06-29 refinements — tested in ruff #36 / lance-graph #621.
What
CLASSVIEW-FIELDVIEW-ASKAMA-BITMASK.md— "Wide classes": theu64mask is one bucket; a wide class (Odooaccount.move~109 fields) widens, and theselected()loop stays bucket-agnostic (idx/64,idx%64). The width is class-conditioned, not a locked[u64;4]"quadruplet" (that was a misread of the3×4GUID shape): the shape is mapped from the class's inherited format and selected byclassid— one ofCascadeShape6×2(Rails)/4×3(other frameworks)/3×4(GUID), viafrom_levels(d). The only fixed bound is the byte-cardinality god-object signal (< 256clean,≥ 256split).< 256clean,≥ 256god-object split signal — never widen/lock a mask, never restate the shape (it's inherited, classid-selected).OGAR-TRANSPILE-SUBSTRATE.md§1.5a + status: shapes table reframed to Rails6×2/ other frameworks4×3/ GUID3×4;4×3is legitimate per-class (itsgroup_ofdivide is a per-class cost, not a prohibition);is_byte_aligned/shift/ALIGNED= shift-vs-divide distinction, not a reject gate.field_mask_buckets/FIELD_MASK_MAX_BUCKETSAPI →CascadeShape::from_levels+ the byte-cardinality cap.Doc-only. Mirrors lance-graph #621 + ruff #36.
🤖 Generated with Claude Code
https://claude.ai/code