docs: Path 12 — DeepNSM × CausalEdge64 bridge + Epiphany 19 - #62
Merged
Conversation
Path 12: Causal-semantic reasoning via shared palette algebra.
Pearl's 3-bit causal mask (SPO plane projection) and DeepNSM's
16 NsmCategory decomposition are the SAME operation:
Pearl: 2³ = 8 projections on causal roles
DeepNSM: 2¹⁶ projections on semantic categories (α selects useful ones)
Combined: "what CAUSED this, in the MENTAL category?"
DeepNsmCausalBridge:
- 4,096 words → 256 palette (k-means on 96D COCA)
- AttentionTable[256][256] (distributional similarity)
- ComposeTable[256][256] (multi-hop O(1))
- 16 category_tables (per-NsmCategory distance)
- 5 operations: word_to_edge, semantic_projection, cross_domain_analogy,
compose_chain, causal_semantic_query
CAM-PQ stroke alignment:
Stroke 1 = interventional (entity identity only)
Stroke 2 = observational (+ behavior)
Stroke 3 = full model (all 96 dimensions)
Base17 connection: 96D → 17D → 256 palette → 8-bit edge index
End-to-end ρ ≈ 0.957
Epiphany 19: DeepNSM, CausalEdge64, and bgz-tensor are three instances
of the same abstract machine — precomputed symmetric lookup with
plane-selective mask. The bridge makes them interoperable.
https://claude.ai/code/session_01Y69Vnw751w75iVSBRws7o7
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 19, 2026
OGAR#62 merged 2026-06-19T12:00:45Z (project_actor at CODEBOOK 0x0004). Collapses Redmine+OpenProject User/Principal/ApplicationRecord STI chain (4 source classes → one canonical), proving binary cross-curator convergence on real Rails sources. Updated SMOKE-4 entry's Cross-repo alignment paragraph to include #62 alongside #61. OGAR's project-management quartet (project, project_work_item, billable_work_entry, project_actor) is complementary to this commit's commerce/billing/erp sextet (CommercialLineItem, CommercialDocument, TaxPolicy, BillingParty, PaymentRecord, CurrencyPolicy). Different domain, same promotion mechanics. The STI-collapse pattern OGAR#62 demonstrated for ProjectActor is the same shape my BillingParty lexical detector applies on OSB::Client + Odoo::res_partner — same mechanism, different domain. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 19, 2026
…esOrderLine / FulfillmentFlow / InventoryMovement / ProductOffering); 3-curator convergence on TaxPolicy + PaymentRecord
Phase 2 of operator's "all of the above" 2026-06-19. Smoke target B
(Spree↔Odoo commerce overlap) landed with real harvested triples.
What landed:
1. Spree harvest fixture — pulled spree/spree upstream zipball
(85 MB, no AdaWorldAPI fork available; canon's forks-only rule
applies to Cargo deps, not read-only fixture harvests). Ran
ruff_ruby_spo on spree/core: 289 models, 7954 triples, 909 KB
ndjson → checked in as
crates/lance-graph-ontology/tests/fixtures/spree_ruby_spo.ndjson.
2. CanonicalConcept enum 6 → 11 variants. New (all from smoke
target B):
- SalesOrder (Spree::Order + odoo:sale_order)
- SalesOrderLine (Spree::LineItem + odoo:sale_order_line)
- FulfillmentFlow (Spree::Shipment + odoo:stock_picking)
- InventoryMovement (Spree::InventoryUnit + odoo:stock_move)
- ProductOffering (Spree::Product / Variant + odoo:product_product /
product_template)
3. CommercialDocument detector narrowed: drops the "order" ending so
sale_order / Spree::Order route to SalesOrder (a distinct
commerce-side concept), keeping CommercialDocument as the
accounting-document concept (Invoice / account_move). This is the
distinct-but-adjacent split the operator's smoke spec implied.
4. 5 new sibling detectors with the same lexical-shape pattern as the
commerce sextet, each with its concept-specific lexical hint:
- classes_matching_sales_order_shape_canonical
(ends_with "order" AND NOT contains "line")
- classes_matching_sales_order_line_shape_canonical
(ends_with "lineitem" OR ends_with "order_line"/"orderline")
- classes_matching_fulfillment_flow_shape_canonical
(ends_with "shipment" OR ends_with "picking")
- classes_matching_inventory_movement_shape_canonical
(ends_with "inventoryunit" OR ends_with "stock_move" — the stock_
qualifier discriminates from account_move which is a
CommercialDocument)
- classes_matching_product_offering_shape_canonical
(ends_with "product" OR ends_with "variant" OR ends_with
"product_template")
5. TaxPolicy detector hardened: also matches contains("taxrate") so
Spree::TaxRate surfaces (the strongest commerce-side tax-policy
signal). OSB::Tax and odoo:account_tax stay matched via the
existing ends_with("tax") arm.
6. 6 new corpus-driven tests, all green:
- spree_order_and_odoo_sale_order_overlap_as_sales_order
- spree_line_item_and_odoo_sale_order_line_overlap_as_sales_order_line
- spree_shipment_and_odoo_stock_picking_overlap_as_fulfillment_flow
- spree_inventory_unit_and_odoo_stock_move_overlap_as_inventory_movement
(also asserts account_move does NOT promote here)
- spree_product_variant_and_odoo_product_overlap_as_product_offering
- spree_third_curator_convergence_on_tax_policy_and_payment_record
(proves the existing TaxPolicy + PaymentRecord detectors
generalize to a 3rd curator — Spree::TaxRate, Spree::Payment)
Plus all 20 prior tests still green → 26/26 total.
Scope reminder per operator discipline acceptance #4-7: each promotion
is gated by ≥2-curator structural evidence on real corpora, not
pre-emptive. The SMOKE-1 to SMOKE-4 + this commit's 5 concepts now
cover smoke targets A (OSB↔Odoo accounting) and B (Spree↔Odoo
commerce). Smoke target C (Redmine/OpenProject Project::TimeEntry
materialization) is project-domain — already being shipped by the
other session into OGAR's CODEBOOK (PRs #61/#62/#63 promoted project,
project_work_item, billable_work_entry, project_actor, project_status,
project_type).
CanonicalConcept enum now 11 variants. The lance-graph-ontology
CanonicalConcept set complements OGAR's project-domain 6-entry
CODEBOOK with an 11-entry commerce/billing/erp candidate set
(CommercialLineItem, CommercialDocument, TaxPolicy, BillingParty,
PaymentRecord, CurrencyPolicy, SalesOrder, SalesOrderLine,
FulfillmentFlow, InventoryMovement, ProductOffering). Each candidate
is a future OGAR CODEBOOK row (Phase 3 of "all of the above" — the
OGAR upstream promotion PR).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 19, 2026
OGAR#62 merged 2026-06-19T12:00:45Z (project_actor at CODEBOOK 0x0004). Collapses Redmine+OpenProject User/Principal/ApplicationRecord STI chain (4 source classes → one canonical), proving binary cross-curator convergence on real Rails sources. Updated SMOKE-4 entry's Cross-repo alignment paragraph to include #62 alongside #61. OGAR's project-management quartet (project, project_work_item, billable_work_entry, project_actor) is complementary to this commit's commerce/billing/erp sextet (CommercialLineItem, CommercialDocument, TaxPolicy, BillingParty, PaymentRecord, CurrencyPolicy). Different domain, same promotion mechanics. The STI-collapse pattern OGAR#62 demonstrated for ProjectActor is the same shape my BillingParty lexical detector applies on OSB::Client + Odoo::res_partner — same mechanism, different domain. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 19, 2026
…esOrderLine / FulfillmentFlow / InventoryMovement / ProductOffering); 3-curator convergence on TaxPolicy + PaymentRecord
Phase 2 of operator's "all of the above" 2026-06-19. Smoke target B
(Spree↔Odoo commerce overlap) landed with real harvested triples.
What landed:
1. Spree harvest fixture — pulled spree/spree upstream zipball
(85 MB, no AdaWorldAPI fork available; canon's forks-only rule
applies to Cargo deps, not read-only fixture harvests). Ran
ruff_ruby_spo on spree/core: 289 models, 7954 triples, 909 KB
ndjson → checked in as
crates/lance-graph-ontology/tests/fixtures/spree_ruby_spo.ndjson.
2. CanonicalConcept enum 6 → 11 variants. New (all from smoke
target B):
- SalesOrder (Spree::Order + odoo:sale_order)
- SalesOrderLine (Spree::LineItem + odoo:sale_order_line)
- FulfillmentFlow (Spree::Shipment + odoo:stock_picking)
- InventoryMovement (Spree::InventoryUnit + odoo:stock_move)
- ProductOffering (Spree::Product / Variant + odoo:product_product /
product_template)
3. CommercialDocument detector narrowed: drops the "order" ending so
sale_order / Spree::Order route to SalesOrder (a distinct
commerce-side concept), keeping CommercialDocument as the
accounting-document concept (Invoice / account_move). This is the
distinct-but-adjacent split the operator's smoke spec implied.
4. 5 new sibling detectors with the same lexical-shape pattern as the
commerce sextet, each with its concept-specific lexical hint:
- classes_matching_sales_order_shape_canonical
(ends_with "order" AND NOT contains "line")
- classes_matching_sales_order_line_shape_canonical
(ends_with "lineitem" OR ends_with "order_line"/"orderline")
- classes_matching_fulfillment_flow_shape_canonical
(ends_with "shipment" OR ends_with "picking")
- classes_matching_inventory_movement_shape_canonical
(ends_with "inventoryunit" OR ends_with "stock_move" — the stock_
qualifier discriminates from account_move which is a
CommercialDocument)
- classes_matching_product_offering_shape_canonical
(ends_with "product" OR ends_with "variant" OR ends_with
"product_template")
5. TaxPolicy detector hardened: also matches contains("taxrate") so
Spree::TaxRate surfaces (the strongest commerce-side tax-policy
signal). OSB::Tax and odoo:account_tax stay matched via the
existing ends_with("tax") arm.
6. 6 new corpus-driven tests, all green:
- spree_order_and_odoo_sale_order_overlap_as_sales_order
- spree_line_item_and_odoo_sale_order_line_overlap_as_sales_order_line
- spree_shipment_and_odoo_stock_picking_overlap_as_fulfillment_flow
- spree_inventory_unit_and_odoo_stock_move_overlap_as_inventory_movement
(also asserts account_move does NOT promote here)
- spree_product_variant_and_odoo_product_overlap_as_product_offering
- spree_third_curator_convergence_on_tax_policy_and_payment_record
(proves the existing TaxPolicy + PaymentRecord detectors
generalize to a 3rd curator — Spree::TaxRate, Spree::Payment)
Plus all 20 prior tests still green → 26/26 total.
Scope reminder per operator discipline acceptance #4-7: each promotion
is gated by ≥2-curator structural evidence on real corpora, not
pre-emptive. The SMOKE-1 to SMOKE-4 + this commit's 5 concepts now
cover smoke targets A (OSB↔Odoo accounting) and B (Spree↔Odoo
commerce). Smoke target C (Redmine/OpenProject Project::TimeEntry
materialization) is project-domain — already being shipped by the
other session into OGAR's CODEBOOK (PRs #61/#62/#63 promoted project,
project_work_item, billable_work_entry, project_actor, project_status,
project_type).
CanonicalConcept enum now 11 variants. The lance-graph-ontology
CanonicalConcept set complements OGAR's project-domain 6-entry
CODEBOOK with an 11-entry commerce/billing/erp candidate set
(CommercialLineItem, CommercialDocument, TaxPolicy, BillingParty,
PaymentRecord, CurrencyPolicy, SalesOrder, SalesOrderLine,
FulfillmentFlow, InventoryMovement, ProductOffering). Each candidate
is a future OGAR CODEBOOK row (Phase 3 of "all of the above" — the
OGAR upstream promotion PR).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 19, 2026
OGAR#62 merged 2026-06-19T12:00:45Z (project_actor at CODEBOOK 0x0004). Collapses Redmine+OpenProject User/Principal/ApplicationRecord STI chain (4 source classes → one canonical), proving binary cross-curator convergence on real Rails sources. Updated SMOKE-4 entry's Cross-repo alignment paragraph to include #62 alongside #61. OGAR's project-management quartet (project, project_work_item, billable_work_entry, project_actor) is complementary to this commit's commerce/billing/erp sextet (CommercialLineItem, CommercialDocument, TaxPolicy, BillingParty, PaymentRecord, CurrencyPolicy). Different domain, same promotion mechanics. The STI-collapse pattern OGAR#62 demonstrated for ProjectActor is the same shape my BillingParty lexical detector applies on OSB::Client + Odoo::res_partner — same mechanism, different domain. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 19, 2026
…esOrderLine / FulfillmentFlow / InventoryMovement / ProductOffering); 3-curator convergence on TaxPolicy + PaymentRecord
Phase 2 of operator's "all of the above" 2026-06-19. Smoke target B
(Spree↔Odoo commerce overlap) landed with real harvested triples.
What landed:
1. Spree harvest fixture — pulled spree/spree upstream zipball
(85 MB, no AdaWorldAPI fork available; canon's forks-only rule
applies to Cargo deps, not read-only fixture harvests). Ran
ruff_ruby_spo on spree/core: 289 models, 7954 triples, 909 KB
ndjson → checked in as
crates/lance-graph-ontology/tests/fixtures/spree_ruby_spo.ndjson.
2. CanonicalConcept enum 6 → 11 variants. New (all from smoke
target B):
- SalesOrder (Spree::Order + odoo:sale_order)
- SalesOrderLine (Spree::LineItem + odoo:sale_order_line)
- FulfillmentFlow (Spree::Shipment + odoo:stock_picking)
- InventoryMovement (Spree::InventoryUnit + odoo:stock_move)
- ProductOffering (Spree::Product / Variant + odoo:product_product /
product_template)
3. CommercialDocument detector narrowed: drops the "order" ending so
sale_order / Spree::Order route to SalesOrder (a distinct
commerce-side concept), keeping CommercialDocument as the
accounting-document concept (Invoice / account_move). This is the
distinct-but-adjacent split the operator's smoke spec implied.
4. 5 new sibling detectors with the same lexical-shape pattern as the
commerce sextet, each with its concept-specific lexical hint:
- classes_matching_sales_order_shape_canonical
(ends_with "order" AND NOT contains "line")
- classes_matching_sales_order_line_shape_canonical
(ends_with "lineitem" OR ends_with "order_line"/"orderline")
- classes_matching_fulfillment_flow_shape_canonical
(ends_with "shipment" OR ends_with "picking")
- classes_matching_inventory_movement_shape_canonical
(ends_with "inventoryunit" OR ends_with "stock_move" — the stock_
qualifier discriminates from account_move which is a
CommercialDocument)
- classes_matching_product_offering_shape_canonical
(ends_with "product" OR ends_with "variant" OR ends_with
"product_template")
5. TaxPolicy detector hardened: also matches contains("taxrate") so
Spree::TaxRate surfaces (the strongest commerce-side tax-policy
signal). OSB::Tax and odoo:account_tax stay matched via the
existing ends_with("tax") arm.
6. 6 new corpus-driven tests, all green:
- spree_order_and_odoo_sale_order_overlap_as_sales_order
- spree_line_item_and_odoo_sale_order_line_overlap_as_sales_order_line
- spree_shipment_and_odoo_stock_picking_overlap_as_fulfillment_flow
- spree_inventory_unit_and_odoo_stock_move_overlap_as_inventory_movement
(also asserts account_move does NOT promote here)
- spree_product_variant_and_odoo_product_overlap_as_product_offering
- spree_third_curator_convergence_on_tax_policy_and_payment_record
(proves the existing TaxPolicy + PaymentRecord detectors
generalize to a 3rd curator — Spree::TaxRate, Spree::Payment)
Plus all 20 prior tests still green → 26/26 total.
Scope reminder per operator discipline acceptance #4-7: each promotion
is gated by ≥2-curator structural evidence on real corpora, not
pre-emptive. The SMOKE-1 to SMOKE-4 + this commit's 5 concepts now
cover smoke targets A (OSB↔Odoo accounting) and B (Spree↔Odoo
commerce). Smoke target C (Redmine/OpenProject Project::TimeEntry
materialization) is project-domain — already being shipped by the
other session into OGAR's CODEBOOK (PRs #61/#62/#63 promoted project,
project_work_item, billable_work_entry, project_actor, project_status,
project_type).
CanonicalConcept enum now 11 variants. The lance-graph-ontology
CanonicalConcept set complements OGAR's project-domain 6-entry
CODEBOOK with an 11-entry commerce/billing/erp candidate set
(CommercialLineItem, CommercialDocument, TaxPolicy, BillingParty,
PaymentRecord, CurrencyPolicy, SalesOrder, SalesOrderLine,
FulfillmentFlow, InventoryMovement, ProductOffering). Each candidate
is a future OGAR CODEBOOK row (Phase 3 of "all of the above" — the
OGAR upstream promotion PR).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 20, 2026
OGAR#62 merged 2026-06-19T12:00:45Z (project_actor at CODEBOOK 0x0004). Collapses Redmine+OpenProject User/Principal/ApplicationRecord STI chain (4 source classes → one canonical), proving binary cross-curator convergence on real Rails sources. Updated SMOKE-4 entry's Cross-repo alignment paragraph to include #62 alongside #61. OGAR's project-management quartet (project, project_work_item, billable_work_entry, project_actor) is complementary to this commit's commerce/billing/erp sextet (CommercialLineItem, CommercialDocument, TaxPolicy, BillingParty, PaymentRecord, CurrencyPolicy). Different domain, same promotion mechanics. The STI-collapse pattern OGAR#62 demonstrated for ProjectActor is the same shape my BillingParty lexical detector applies on OSB::Client + Odoo::res_partner — same mechanism, different domain. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 20, 2026
…esOrderLine / FulfillmentFlow / InventoryMovement / ProductOffering); 3-curator convergence on TaxPolicy + PaymentRecord
Phase 2 of operator's "all of the above" 2026-06-19. Smoke target B
(Spree↔Odoo commerce overlap) landed with real harvested triples.
What landed:
1. Spree harvest fixture — pulled spree/spree upstream zipball
(85 MB, no AdaWorldAPI fork available; canon's forks-only rule
applies to Cargo deps, not read-only fixture harvests). Ran
ruff_ruby_spo on spree/core: 289 models, 7954 triples, 909 KB
ndjson → checked in as
crates/lance-graph-ontology/tests/fixtures/spree_ruby_spo.ndjson.
2. CanonicalConcept enum 6 → 11 variants. New (all from smoke
target B):
- SalesOrder (Spree::Order + odoo:sale_order)
- SalesOrderLine (Spree::LineItem + odoo:sale_order_line)
- FulfillmentFlow (Spree::Shipment + odoo:stock_picking)
- InventoryMovement (Spree::InventoryUnit + odoo:stock_move)
- ProductOffering (Spree::Product / Variant + odoo:product_product /
product_template)
3. CommercialDocument detector narrowed: drops the "order" ending so
sale_order / Spree::Order route to SalesOrder (a distinct
commerce-side concept), keeping CommercialDocument as the
accounting-document concept (Invoice / account_move). This is the
distinct-but-adjacent split the operator's smoke spec implied.
4. 5 new sibling detectors with the same lexical-shape pattern as the
commerce sextet, each with its concept-specific lexical hint:
- classes_matching_sales_order_shape_canonical
(ends_with "order" AND NOT contains "line")
- classes_matching_sales_order_line_shape_canonical
(ends_with "lineitem" OR ends_with "order_line"/"orderline")
- classes_matching_fulfillment_flow_shape_canonical
(ends_with "shipment" OR ends_with "picking")
- classes_matching_inventory_movement_shape_canonical
(ends_with "inventoryunit" OR ends_with "stock_move" — the stock_
qualifier discriminates from account_move which is a
CommercialDocument)
- classes_matching_product_offering_shape_canonical
(ends_with "product" OR ends_with "variant" OR ends_with
"product_template")
5. TaxPolicy detector hardened: also matches contains("taxrate") so
Spree::TaxRate surfaces (the strongest commerce-side tax-policy
signal). OSB::Tax and odoo:account_tax stay matched via the
existing ends_with("tax") arm.
6. 6 new corpus-driven tests, all green:
- spree_order_and_odoo_sale_order_overlap_as_sales_order
- spree_line_item_and_odoo_sale_order_line_overlap_as_sales_order_line
- spree_shipment_and_odoo_stock_picking_overlap_as_fulfillment_flow
- spree_inventory_unit_and_odoo_stock_move_overlap_as_inventory_movement
(also asserts account_move does NOT promote here)
- spree_product_variant_and_odoo_product_overlap_as_product_offering
- spree_third_curator_convergence_on_tax_policy_and_payment_record
(proves the existing TaxPolicy + PaymentRecord detectors
generalize to a 3rd curator — Spree::TaxRate, Spree::Payment)
Plus all 20 prior tests still green → 26/26 total.
Scope reminder per operator discipline acceptance #4-7: each promotion
is gated by ≥2-curator structural evidence on real corpora, not
pre-emptive. The SMOKE-1 to SMOKE-4 + this commit's 5 concepts now
cover smoke targets A (OSB↔Odoo accounting) and B (Spree↔Odoo
commerce). Smoke target C (Redmine/OpenProject Project::TimeEntry
materialization) is project-domain — already being shipped by the
other session into OGAR's CODEBOOK (PRs #61/#62/#63 promoted project,
project_work_item, billable_work_entry, project_actor, project_status,
project_type).
CanonicalConcept enum now 11 variants. The lance-graph-ontology
CanonicalConcept set complements OGAR's project-domain 6-entry
CODEBOOK with an 11-entry commerce/billing/erp candidate set
(CommercialLineItem, CommercialDocument, TaxPolicy, BillingParty,
PaymentRecord, CurrencyPolicy, SalesOrder, SalesOrderLine,
FulfillmentFlow, InventoryMovement, ProductOffering). Each candidate
is a future OGAR CODEBOOK row (Phase 3 of "all of the above" — the
OGAR upstream promotion PR).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 20, 2026
OGAR#62 merged 2026-06-19T12:00:45Z (project_actor at CODEBOOK 0x0004). Collapses Redmine+OpenProject User/Principal/ApplicationRecord STI chain (4 source classes → one canonical), proving binary cross-curator convergence on real Rails sources. Updated SMOKE-4 entry's Cross-repo alignment paragraph to include #62 alongside #61. OGAR's project-management quartet (project, project_work_item, billable_work_entry, project_actor) is complementary to this commit's commerce/billing/erp sextet (CommercialLineItem, CommercialDocument, TaxPolicy, BillingParty, PaymentRecord, CurrencyPolicy). Different domain, same promotion mechanics. The STI-collapse pattern OGAR#62 demonstrated for ProjectActor is the same shape my BillingParty lexical detector applies on OSB::Client + Odoo::res_partner — same mechanism, different domain. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 20, 2026
…esOrderLine / FulfillmentFlow / InventoryMovement / ProductOffering); 3-curator convergence on TaxPolicy + PaymentRecord
Phase 2 of operator's "all of the above" 2026-06-19. Smoke target B
(Spree↔Odoo commerce overlap) landed with real harvested triples.
What landed:
1. Spree harvest fixture — pulled spree/spree upstream zipball
(85 MB, no AdaWorldAPI fork available; canon's forks-only rule
applies to Cargo deps, not read-only fixture harvests). Ran
ruff_ruby_spo on spree/core: 289 models, 7954 triples, 909 KB
ndjson → checked in as
crates/lance-graph-ontology/tests/fixtures/spree_ruby_spo.ndjson.
2. CanonicalConcept enum 6 → 11 variants. New (all from smoke
target B):
- SalesOrder (Spree::Order + odoo:sale_order)
- SalesOrderLine (Spree::LineItem + odoo:sale_order_line)
- FulfillmentFlow (Spree::Shipment + odoo:stock_picking)
- InventoryMovement (Spree::InventoryUnit + odoo:stock_move)
- ProductOffering (Spree::Product / Variant + odoo:product_product /
product_template)
3. CommercialDocument detector narrowed: drops the "order" ending so
sale_order / Spree::Order route to SalesOrder (a distinct
commerce-side concept), keeping CommercialDocument as the
accounting-document concept (Invoice / account_move). This is the
distinct-but-adjacent split the operator's smoke spec implied.
4. 5 new sibling detectors with the same lexical-shape pattern as the
commerce sextet, each with its concept-specific lexical hint:
- classes_matching_sales_order_shape_canonical
(ends_with "order" AND NOT contains "line")
- classes_matching_sales_order_line_shape_canonical
(ends_with "lineitem" OR ends_with "order_line"/"orderline")
- classes_matching_fulfillment_flow_shape_canonical
(ends_with "shipment" OR ends_with "picking")
- classes_matching_inventory_movement_shape_canonical
(ends_with "inventoryunit" OR ends_with "stock_move" — the stock_
qualifier discriminates from account_move which is a
CommercialDocument)
- classes_matching_product_offering_shape_canonical
(ends_with "product" OR ends_with "variant" OR ends_with
"product_template")
5. TaxPolicy detector hardened: also matches contains("taxrate") so
Spree::TaxRate surfaces (the strongest commerce-side tax-policy
signal). OSB::Tax and odoo:account_tax stay matched via the
existing ends_with("tax") arm.
6. 6 new corpus-driven tests, all green:
- spree_order_and_odoo_sale_order_overlap_as_sales_order
- spree_line_item_and_odoo_sale_order_line_overlap_as_sales_order_line
- spree_shipment_and_odoo_stock_picking_overlap_as_fulfillment_flow
- spree_inventory_unit_and_odoo_stock_move_overlap_as_inventory_movement
(also asserts account_move does NOT promote here)
- spree_product_variant_and_odoo_product_overlap_as_product_offering
- spree_third_curator_convergence_on_tax_policy_and_payment_record
(proves the existing TaxPolicy + PaymentRecord detectors
generalize to a 3rd curator — Spree::TaxRate, Spree::Payment)
Plus all 20 prior tests still green → 26/26 total.
Scope reminder per operator discipline acceptance #4-7: each promotion
is gated by ≥2-curator structural evidence on real corpora, not
pre-emptive. The SMOKE-1 to SMOKE-4 + this commit's 5 concepts now
cover smoke targets A (OSB↔Odoo accounting) and B (Spree↔Odoo
commerce). Smoke target C (Redmine/OpenProject Project::TimeEntry
materialization) is project-domain — already being shipped by the
other session into OGAR's CODEBOOK (PRs #61/#62/#63 promoted project,
project_work_item, billable_work_entry, project_actor, project_status,
project_type).
CanonicalConcept enum now 11 variants. The lance-graph-ontology
CanonicalConcept set complements OGAR's project-domain 6-entry
CODEBOOK with an 11-entry commerce/billing/erp candidate set
(CommercialLineItem, CommercialDocument, TaxPolicy, BillingParty,
PaymentRecord, CurrencyPolicy, SalesOrder, SalesOrderLine,
FulfillmentFlow, InventoryMovement, ProductOffering). Each candidate
is a future OGAR CODEBOOK row (Phase 3 of "all of the above" — the
OGAR upstream promotion PR).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 21, 2026
OGAR#62 merged 2026-06-19T12:00:45Z (project_actor at CODEBOOK 0x0004). Collapses Redmine+OpenProject User/Principal/ApplicationRecord STI chain (4 source classes → one canonical), proving binary cross-curator convergence on real Rails sources. Updated SMOKE-4 entry's Cross-repo alignment paragraph to include #62 alongside #61. OGAR's project-management quartet (project, project_work_item, billable_work_entry, project_actor) is complementary to this commit's commerce/billing/erp sextet (CommercialLineItem, CommercialDocument, TaxPolicy, BillingParty, PaymentRecord, CurrencyPolicy). Different domain, same promotion mechanics. The STI-collapse pattern OGAR#62 demonstrated for ProjectActor is the same shape my BillingParty lexical detector applies on OSB::Client + Odoo::res_partner — same mechanism, different domain. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 21, 2026
…esOrderLine / FulfillmentFlow / InventoryMovement / ProductOffering); 3-curator convergence on TaxPolicy + PaymentRecord
Phase 2 of operator's "all of the above" 2026-06-19. Smoke target B
(Spree↔Odoo commerce overlap) landed with real harvested triples.
What landed:
1. Spree harvest fixture — pulled spree/spree upstream zipball
(85 MB, no AdaWorldAPI fork available; canon's forks-only rule
applies to Cargo deps, not read-only fixture harvests). Ran
ruff_ruby_spo on spree/core: 289 models, 7954 triples, 909 KB
ndjson → checked in as
crates/lance-graph-ontology/tests/fixtures/spree_ruby_spo.ndjson.
2. CanonicalConcept enum 6 → 11 variants. New (all from smoke
target B):
- SalesOrder (Spree::Order + odoo:sale_order)
- SalesOrderLine (Spree::LineItem + odoo:sale_order_line)
- FulfillmentFlow (Spree::Shipment + odoo:stock_picking)
- InventoryMovement (Spree::InventoryUnit + odoo:stock_move)
- ProductOffering (Spree::Product / Variant + odoo:product_product /
product_template)
3. CommercialDocument detector narrowed: drops the "order" ending so
sale_order / Spree::Order route to SalesOrder (a distinct
commerce-side concept), keeping CommercialDocument as the
accounting-document concept (Invoice / account_move). This is the
distinct-but-adjacent split the operator's smoke spec implied.
4. 5 new sibling detectors with the same lexical-shape pattern as the
commerce sextet, each with its concept-specific lexical hint:
- classes_matching_sales_order_shape_canonical
(ends_with "order" AND NOT contains "line")
- classes_matching_sales_order_line_shape_canonical
(ends_with "lineitem" OR ends_with "order_line"/"orderline")
- classes_matching_fulfillment_flow_shape_canonical
(ends_with "shipment" OR ends_with "picking")
- classes_matching_inventory_movement_shape_canonical
(ends_with "inventoryunit" OR ends_with "stock_move" — the stock_
qualifier discriminates from account_move which is a
CommercialDocument)
- classes_matching_product_offering_shape_canonical
(ends_with "product" OR ends_with "variant" OR ends_with
"product_template")
5. TaxPolicy detector hardened: also matches contains("taxrate") so
Spree::TaxRate surfaces (the strongest commerce-side tax-policy
signal). OSB::Tax and odoo:account_tax stay matched via the
existing ends_with("tax") arm.
6. 6 new corpus-driven tests, all green:
- spree_order_and_odoo_sale_order_overlap_as_sales_order
- spree_line_item_and_odoo_sale_order_line_overlap_as_sales_order_line
- spree_shipment_and_odoo_stock_picking_overlap_as_fulfillment_flow
- spree_inventory_unit_and_odoo_stock_move_overlap_as_inventory_movement
(also asserts account_move does NOT promote here)
- spree_product_variant_and_odoo_product_overlap_as_product_offering
- spree_third_curator_convergence_on_tax_policy_and_payment_record
(proves the existing TaxPolicy + PaymentRecord detectors
generalize to a 3rd curator — Spree::TaxRate, Spree::Payment)
Plus all 20 prior tests still green → 26/26 total.
Scope reminder per operator discipline acceptance #4-7: each promotion
is gated by ≥2-curator structural evidence on real corpora, not
pre-emptive. The SMOKE-1 to SMOKE-4 + this commit's 5 concepts now
cover smoke targets A (OSB↔Odoo accounting) and B (Spree↔Odoo
commerce). Smoke target C (Redmine/OpenProject Project::TimeEntry
materialization) is project-domain — already being shipped by the
other session into OGAR's CODEBOOK (PRs #61/#62/#63 promoted project,
project_work_item, billable_work_entry, project_actor, project_status,
project_type).
CanonicalConcept enum now 11 variants. The lance-graph-ontology
CanonicalConcept set complements OGAR's project-domain 6-entry
CODEBOOK with an 11-entry commerce/billing/erp candidate set
(CommercialLineItem, CommercialDocument, TaxPolicy, BillingParty,
PaymentRecord, CurrencyPolicy, SalesOrder, SalesOrderLine,
FulfillmentFlow, InventoryMovement, ProductOffering). Each candidate
is a future OGAR CODEBOOK row (Phase 3 of "all of the above" — the
OGAR upstream promotion PR).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jul 29, 2026
The placement law is satisfied: the A9 witness register is now a value tenant lane [204,220) rather than an owned struct in a sibling Vec. This is the additive path Tekamolo = 13 and the triangle lanes (#717) both took; the "batched mint" gate it nominally waited on was audited first (see below) and found to be cited by neither of those merges, stale in every numeric particular, and absent from crates/ entirely. RESERVATIONS BY ORDINAL, NEVER BY OFFSET. The in-file BoardAggregates reservation had drifted THREE times — @152 (taken by FrozenStyle), @188 (taken by Tekamolo), @204 (taken here) — because it was recorded as an ABSOLUTE BYTE OFFSET, which is a derived value that goes stale whenever anything lands in front of it. Rewritten to reserve the next DISCRIMINANT after CausalWitness (= 15), offset derived via value_offset(), drift history recorded as the reason. The reservation is re-based, not cancelled. This is T5's own law. The Addendum-12a battery's fifth item is "fixed-offset-sweeper safety" — written 2026-07-02, guarding READERS against hardcoded offsets. The substrate discovered the law on day one, applied it to readers, and then recorded its own reservation as a literal offset and drifted three times. Same law, three sites, one guarded. Reader-side residue is queued (task #62): the prescribed schema.has() gate is still absent from nan_projection and symbiont::domino. ⊘ THE TWO-PLACES RULE IS "TWO TO DECIDE, THREE THE COMPILER ENFORCES." The knowledge doc written this morning claimed "everything else is derived". A const assert falsified it within hours: const _: () = assert!(Full.field_mask().count() == VALUE_TENANTS.len()) ValueSchema::Full's field_mask is a hand-maintained position list that LOOKS derived (Full = "all tenants") but is not; plus three carve-total test literals moved 172 -> 188. Read as a compliment to the substrate: the assert makes the mismatch window uncompilable, so it can never exist in a commit. Doc corrected in place. tenants.md refreshed from code-as-truth: it is a MANDATORY auditor read and had been frozen at 28f17cd (2026-07-02), stopping at tenant 9 Kanban [144,152) while the shipped carve ran past 204 — four tenants of drift serving wrong data to any reviewer who bootloaded it correctly. Now covers 0-14 with derived ranges and the cite-symbolically rule. One transient-read correction inside that refresh: the worker generated the doc mid-mint and recorded "Full lists 0-13 vs VALUE_TENANTS 15" as a live defect. That state was never committed — the const assert makes it uncompilable — it was only visible in a moving working tree. Corrected, and kept as a note, because it is this document's own lesson turned on itself: a value read from a moving surface is transient, and writing it down as standing fact is the same error class as recording a derived offset as primary. Arithmetic: 204 + 16 = 220 <= 480; 260 B slab headroom; NODE_ROW_STRIDE 512 unchanged; no ENVELOPE_LAYOUT_VERSION bump (no assert forces one). Gates: fmt clean, clippy --all-targets -D warnings zero, 1108 lib tests. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
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.
Path 12: Causal-semantic reasoning via shared palette algebra.
Pearl's 3-bit causal mask (SPO plane projection) and DeepNSM's
16 NsmCategory decomposition are the SAME operation:
Pearl: 2³ = 8 projections on causal roles
DeepNSM: 2¹⁶ projections on semantic categories (α selects useful ones)
Combined: "what CAUSED this, in the MENTAL category?"
DeepNsmCausalBridge:
- 4,096 words → 256 palette (k-means on 96D COCA)
- AttentionTable[256][256] (distributional similarity)
- ComposeTable[256][256] (multi-hop O(1))
- 16 category_tables (per-NsmCategory distance)
- 5 operations: word_to_edge, semantic_projection, cross_domain_analogy,
compose_chain, causal_semantic_query
CAM-PQ stroke alignment:
Stroke 1 = interventional (entity identity only)
Stroke 2 = observational (+ behavior)
Stroke 3 = full model (all 96 dimensions)
Base17 connection: 96D → 17D → 256 palette → 8-bit edge index
End-to-end ρ ≈ 0.957
Epiphany 19: DeepNSM, CausalEdge64, and bgz-tensor are three instances
of the same abstract machine — precomputed symmetric lookup with
plane-selective mask. The bridge makes them interoperable.
https://claude.ai/code/session_01Y69Vnw751w75iVSBRws7o7