vocab/exports/ skeleton + Odoo-digest framing corrections#107
Merged
Conversation
…t framing Operator surfaced three issues with the Odoo digest framing landed in 7d68042 (ODOO-DIGEST-TO-OGIT.md): 1. Producer name was wrong. The doc named a fictional "ogar-from-python" crate. The correct pipeline is the existing ruff_python_spo (Python AST frontend, sibling of ruff_ruby_spo in the ruff/ workspace) producing ruff_spo_triplet::Model, then the existing ogar-from-ruff crate mechanically projecting that IR into ogar_vocab::Class. Same correction for medcare-rs: ruff_rust_spo + ogar-from-ruff (not "ogar-from-rust"). 2. lance-graph-arm-discovery is not a producer. It's a streaming Association Rule Mining engine (Aerial+ transcode) for DISCOVERING new SPO rules from tabular data — orthogonal to schema digestion. 3. Digests belong in vocab/exports/, not vocab/imports/. The imports/ re-vendor recipe is a destructive cp -r that would silently nuke OGAR-produced content. The fix is a sibling tree vocab/exports/ogit/ mirroring the upstream layout 1:1. Latent bug surfaced: vocab/imports/ogit/NTO/Accounting/ currently carries 11 OGAR-produced TTLs from a prior Claude session sitting alongside Viktor Voss's 23 upstream originals. Those 11 are at re-vendor-overwrite risk today. Migration to vocab/exports/ogit/NTO/Accounting/ is queued as a separate PR; this commit only scaffolds the destination. Adds: * vocab/exports/PROVENANCE.md — the split rationale (re-vendor safety, license/governance, upstream-contribution path) + the 11-file migration note. * vocab/exports/ogit/README.md — layout pointer. * docs/ODOO-DIGEST-TO-OGIT.md — updated: - the pipeline diagram now shows the correct producer chain (ruff_python_spo → ruff_spo_triplet::Model → ogar-from-ruff → Class → ttl_emit → exports/ogit/NTO/); - §2 "Why store in OGIT NTO" replaced with §2 "Why digests live in vocab/exports/, not vocab/imports/" + the migration note; - §5 drift detector uses vocab/exports/; - §6 blocker table updated (producer naming, exports skeleton status, 11-file migration queued); - §7 Foundry-parity table updated (storage row points at exports/). * .claude/board/EPIPHANIES.md — FINDING entry with all three corrections + the latent-bug note + lesson for the next architecture-doc draft (NAME THE CRATE THAT EXISTS). No code changes; tests still 16/16 default, 20/20 with --features xsd.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
AdaWorldAPI
pushed a commit
that referenced
this pull request
Jun 22, 2026
…/ is a staging tier Verifying the queued "migrate 11 Accounting files" task caught that its founding premise was factually wrong. The PR #107 claim: 11 OGAR-produced TTLs in vocab/imports/ogit/NTO/Accounting/ are "at re-vendor-overwrite risk" and should migrate to exports/. What verification found: those 11 files are COMMITTED TO THE AdaWorldAPI/OGIT FORK — commit c5dc1b8 "shrink 3-hop Odoo lookups — promoted attrs + shortcut verbs + FiscalJurisdiction codebook", on the fork's master, pushed. imports/ faithfully mirrors the fork; the re-vendor recipe copies FROM the fork, so it PRESERVES them. There was never a data-loss risk. No migration. Operator resolved the genuine question (what is exports/ FOR) to the STAGING-TIER model: producer → exports/ (review, CI) → promote to OGIT fork → re-vendor → imports/ → consumers read imports/ - exports/ = produced-but-not-yet-promoted; transient workbench. - AdaWorldAPI/OGIT fork = enriched canonical store (upstream + promoted). - imports/ = faithful mirror of the enriched fork. - consumers read ONLY imports/. The 11 Accounting files are a COMPLETED promotion (the worked example of the model run to its end), correctly mirrored — not stranded. Changes: * vocab/exports/PROVENANCE.md — rewritten STAGING TIER v1: the model diagram, why-stage-not-commit-direct, and a correction block replacing the false "migration note". * vocab/exports/ogit/README.md — staging-tier framing. * docs/ODOO-DIGEST-TO-OGIT.md — pipeline diagram shows exports → promote → imports; §2 rewritten to the staging-tier model with the c5dc1b8 correction; the two stale correction-note + blocker rows fixed. * docs/OGIT-DOMAIN-LIFT-CATALOGUE.md — Accounting row notes the 11 are promoted-to-fork (completed), not stranded; upstream author count corrected to 25 (Viktor Voss / Gibson Xavier / Moritz Vannahme). * .claude/board/EPIPHANIES.md — new FINDING (the false premise + the staging-tier resolution + two lessons: verify-the-target-before- claiming-a-bug, and a-correction-can-itself-need-correcting); prior "Three corrections" entry regraded PARTIALLY SUPERSEDED (corrections 1 & 2 stand; correction 3's bug-claim superseded). No code changes; tests still 16/16 default, 20/20 with --features xsd.
This was referenced Jun 22, 2026
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.
What this is
One commit (
55e5475) that landed on the branch after #106 was openedand so missed that merge. Additive, no conflicts —
mainalreadycontains everything below it.
Contents
vocab/exports/skeleton + three corrections to the Odoo-digestframing that #106 shipped, surfaced from operator review:
1. Producer name was wrong
The framing named a fictional
ogar-from-pythoncrate. The correctpipeline is the existing
ruff_python_spo(Python AST frontend,sibling of
ruff_ruby_spoin theruff/workspace) producingruff_spo_triplet::Model, then the existingogar-from-ruffcrate mechanically projecting that IR into
ogar_vocab::Class.ogar-from-ruffalready ships for Ruby; the missing piece is theruff_python_spofrontend. Same correction for medcare-rs:ruff_rust_spo + ogar-from-ruff, not a fictionalogar-from-rust.2.
lance-graph-arm-discoveryis not a producerIt's a streaming Association Rule Mining engine (Aerial+ paper
transcode) for discovering new SPO rules from tabular data via
NARS revision — orthogonal to schema digestion. The lance-graph-side
OGAR bridge is
lance-graph-ogar(re-export + activation,consumer-side). Neither digests source code or schemas.
3. Digests belong in
vocab/exports/, notvocab/imports/imports/is a READ-ONLY mirror of upstream OGIT — its re-vendorrecipe is a destructive
cp -r /upstream/. vocab/imports/ogit/thatwould silently nuke any OGAR-produced content sitting there. The fix
is a sibling tree
vocab/exports/ogit/mirroring the upstream layout1:1. Three reasons: re-vendor safety (structural, not a discipline
fix), license/governance (
imports/is MIT from arago/almato;exports/is OGAR's license), and the upstream-contribution path.Latent bug surfaced (not fixed here)
vocab/imports/ogit/NTO/Accounting/currently carries 11OGAR-produced TTLs from a prior session (
dcterms:creator = "Claude (AdaWorldAPI/lance-graph 3-hop optim)") sitting alongside ViktorVoss's 23 upstream originals. Those 11 are at re-vendor-overwrite
risk today. Migration to
vocab/exports/ogit/NTO/Accounting/isqueued as a separate PR; this commit only scaffolds the destination
and documents the file list in
vocab/exports/PROVENANCE.md § Migration note.Files
vocab/exports/PROVENANCE.md— new; the split rationale + migration notevocab/exports/ogit/README.md— new; layout pointerdocs/ODOO-DIGEST-TO-OGIT.md— pipeline diagram, §2, §5, §6, §7updated with the correct producer chain + storage path
.claude/board/EPIPHANIES.md— FINDING entry with all threecorrections + the lesson for the next architecture-doc draft
(name the crate that exists)
Tests
No code changes.
cargo test -p ogar-from-schema: 16/16 default,20/20 with
--features xsd.Generated by Claude Code