Skip to content

vocab/exports/ skeleton + Odoo-digest framing corrections#107

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/medcare-bridge-lance-graph-wmx76z
Jun 22, 2026
Merged

vocab/exports/ skeleton + Odoo-digest framing corrections#107
AdaWorldAPI merged 1 commit into
mainfrom
claude/medcare-bridge-lance-graph-wmx76z

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

What this is

One commit (55e5475) that landed on the branch after #106 was opened
and so missed that merge. Additive, no conflicts — main already
contains everything below it.

Contents

vocab/exports/ skeleton + three corrections to the Odoo-digest
framing that #106 shipped, surfaced from operator review:

1. Producer name was wrong

The framing 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.
ogar-from-ruff already ships for Ruby; the missing piece is the
ruff_python_spo frontend. Same correction for medcare-rs:
ruff_rust_spo + ogar-from-ruff, not a fictional ogar-from-rust.

2. lance-graph-arm-discovery is not a producer

It'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/, not vocab/imports/

imports/ is a READ-ONLY mirror of upstream OGIT — its re-vendor
recipe is a destructive cp -r /upstream/. vocab/imports/ogit/ that
would silently nuke any OGAR-produced content sitting there. The fix
is a sibling tree vocab/exports/ogit/ mirroring the upstream layout
1: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 11
OGAR-produced TTLs
from a prior session (dcterms:creator = "Claude (AdaWorldAPI/lance-graph 3-hop optim)") 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
and documents the file list in vocab/exports/PROVENANCE.md § Migration note.

Files

  • vocab/exports/PROVENANCE.md — new; the split rationale + migration note
  • vocab/exports/ogit/README.md — new; layout pointer
  • docs/ODOO-DIGEST-TO-OGIT.md — pipeline diagram, §2, §5, §6, §7
    updated with the correct producer chain + storage path
  • .claude/board/EPIPHANIES.md — FINDING entry with all three
    corrections + 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

…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.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@AdaWorldAPI AdaWorldAPI merged commit 1192a7e into main Jun 22, 2026
1 check passed
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.
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