docs(od-ontology): W3.3 behavioral-arm scope — the arm is UNGATED (already in ogar-vocab)#7
Merged
Merged
Conversation
… ogar-vocab)
System-2 scope for W3.3's second lowering (Odoo lifecycle → OGAR behavioral
arm), routed through the SurrealQL-AST-trap spellbook's Q1–Q5 BEFORE any code.
The load-bearing finding REVERSES the earlier "not verified wired" caveat:
the full behavioral arm — `ActionDef` + `KausalSpec` + `EnterEffect` +
`ActionInvocation` + the Rubicon Pending/Committed/Failed lifecycle — is in
`ogar-vocab`, the crate od-ontology ALREADY pins. No new dependency, no gate.
The vocabulary was designed against ERP lifecycle (sale.order worked example),
and it maps onto Odoo's `_compute_*`/`@api.depends`/`_check_*`/`action_*` with
striking precision:
_compute_* + @api.depends('a.b') → ActionDef{ kausal: Depends{paths} }
_check_* (@api.constrains) → ActionDef{ kausal: LifecycleTrigger/StateGuard,
guard_failure_policy: Reject }
action_post (state crossing) → ActionDef{ on_enter: EnterEffect::transition }
Q1–Q5 verdict GREEN: producer→OGAR ActionDef→adapter, not producer→DDL.
recompute_dag.rs is RETAINED as the Depends-set acyclicity validator (a real,
non-DDL invariant) — only its DDL destination (Compute→DEFINE FUNCTION,
Check→DEFINE EVENT) goes away.
Per the spell: this is the routing, not the parser. The implementation
(`corpus_to_actions(&[Triple]) -> Vec<ActionDef>`, sibling to
schema_to_classes) is the next step, now unblocked. Open checks listed for the
honest gate (export features, emit target, corpus action_* coverage).
Doc-only.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This was referenced Jun 22, 2026
docs(od-ontology): thread the "classid is an address, not a carrier" consensus into the spellbook
#8
Merged
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
The System-2 scope for W3.3's second lowering — Odoo's reactive lifecycle →
OGAR's behavioral arm — routed through the SurrealQL-AST-trap spellbook's Q1–Q5
before any code (the spell I just cast in #6 demands this; this doc is me
obeying my own spell).
The load-bearing finding (reverses my earlier caveat)
I had marked this lowering "gated on OGAR's behavioral vocabulary being
consumable — NOT verified wired." The audit reverses that. The full arm is
in
ogar-vocab— the crate od-ontology already pins:ogar-vocab/src/lib.rsActionDef(kausal/on_enter/guard_failure_policy/state_timeout_millis/body_source):373KausalSpec—StateGuard·LifecycleTrigger·Depends·ContextDepends·External:584EnterEffect— the Rubiconfield := valuecrossing:430ActionInvocation+ActionState(Pending/Committed/Failed):474No new dependency, no gate. And the vocabulary was designed against ERP
lifecycle (its own worked example is
sale.order), so it maps onto Odoo withstriking precision:
Q1–Q5 verdict: GREEN
producer (Odoo corpus) → OGAR
ActionDef→ adapter — not producer → DDL.recompute_dag.rsis retained as theDepends-set acyclicity validator (areal, non-DDL invariant); only its DDL destination (
Compute → DEFINE FUNCTION,Check → DEFINE EVENT) goes away.Why a doc, not code
Per #99 / the spell: route Q1–Q5 before writing the parser. This is the
routing. The implementation —
corpus_to_actions(&[Triple]) -> Vec<ActionDef>,a sibling to
schema_to_classes, consumingogar_vocab(no fork) — is thenext step, now unblocked. The doc lists the honest open checks (export
features,
ogar-emittervsogar-class-viewemit target, corpusaction_*coverage) to clear first.
Doc-only. Follows merged #6 (the spellbook cast).