Skip to content

docs(od-ontology): W3.3 behavioral-arm scope — the arm is UNGATED (already in ogar-vocab)#7

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/odoo-w3-behavioral-scope
Jun 22, 2026
Merged

docs(od-ontology): W3.3 behavioral-arm scope — the arm is UNGATED (already in ogar-vocab)#7
AdaWorldAPI merged 1 commit into
mainfrom
claude/odoo-w3-behavioral-scope

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

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:

Type ogar-vocab/src/lib.rs
ActionDef (kausal/on_enter/guard_failure_policy/state_timeout_millis/body_source) :373
KausalSpecStateGuard·LifecycleTrigger·Depends·ContextDepends·External :584
EnterEffect — the Rubicon field := value crossing :430
ActionInvocation + ActionState (Pending/Committed/Failed) :474

No new dependency, no gate. And the vocabulary was designed against ERP
lifecycle
(its own worked example is sale.order), so it maps onto Odoo with
striking precision:

_compute_* + @api.depends('a.b')  → ActionDef{ kausal: Depends{paths} }
_check_*    (@api.constrains)      → ActionDef{ kausal: LifecycleTrigger/StateGuard, … }
action_post (state crossing)       → ActionDef{ on_enter: EnterEffect::transition }

Q1–Q5 verdict: GREEN

producer (Odoo corpus) → 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.

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, consuming ogar_vocab (no fork) — is the
next step, now unblocked. The doc lists the honest open checks (export
features, ogar-emitter vs ogar-class-view emit target, corpus action_*
coverage) to clear first.

Doc-only. Follows merged #6 (the spellbook cast).

… 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>
@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.

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