You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(epiphany): fold E-AR-DO-WIRING into the arc — the consumer-landing frame the click epiphanies reference
E-AR-DO-WIRING (ruff static + ARM dynamic meet at SPO; AR Class splits along
DOLCE into THINK+DO; consumers land off the harvest) was stranded on a stale
branch (claude/ar-do-wiring-epiphany) cut from a pre-#538 main — its diff
against current main showed #538's files as deletions. The only real content
was this single docs-only epiphany (+53 on EPIPHANIES.md), which the
particle/wave click epiphanies in this PR cross-reference 5 times.
Placed after E-OGAR-ROUTER-ENCODER (chronological: it is the prior-art frame
the router/encoder + Excel + chess + perturbation entries build on). Makes
this PR's arc self-contained — no dangling refs to an abandoned branch. The
stale branch can be deleted.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
• inheritance → classid → ClassView (one mechanism, both arms; child overrides parent by key)
132
+
• relations → EdgeBlock (12 in-family + 4 out)
133
+
▼
134
+
consumer generates `const ClassMethods` (THINK) + `const ClassActions` (DO) from ITS harvest,
135
+
binds classid OGAR-side, writes THIN classid-keyed adapters that ASSUME the Core,
136
+
commits through the gate: def-match → RBAC (ActorContext) → state-guard → MUL (GateDecision)
137
+
→ ExecTarget::SurrealQl (the AR-shaped API surface; NOT a per-crate endpoint).
138
+
```
139
+
140
+
**The three claims that let a consumer land NOW (no waiting):**
141
+
1. **The harvest IS the manifest.** Don't hand-author the object model — generate the `const` tables. `has_function`→`ActionDef.predicate`; `inherits_from`→`overrides` (filled at codegen by `mro::resolve_overrides`); `reads_field`→`ValueSchema`/`FieldMask`. (odoo-rs: `mro` gains a downstream consumer, no change.)
142
+
2. **Static + dynamic are one SPO.** ruff = the static skeleton; ARM = dynamic enrichment; both emit `{s,p,o,f,c}`. A consumer with only a static harvest lands the full THINK+DO shape today; ARM refines `(f,c)` later.
143
+
3. **DOLCE draws the THINK/DO line, not the consumer.** Perdurant (methods/events) = DO; Endurant/Quality (fields/state) = THINK. `aerial/ontology.rs` already emits the `dolce_id`.
144
+
145
+
**Per-consumer entry points (from the 3 blast-radius surveys):**
146
+
- **odoo-rs:** `od-posting::_post` IS an `ActionInvocation` (ExecTarget::SurrealQl) — the runtime DO consumer. `od-ontology` stays zero-dep (NO `RegistryClassView` dep without a council). `mro::resolve_overrides` = the `overrides` source at codegen.
147
+
- **openproject-nexgen-rs:** `op-surreal-ast` imports only `codegen_spine::Triple` (unchanged). Two net-new lifts: `ogar-from-ruff` `Model::functions → ClassActions/ActionDef` (DO producer); a registration hop `Class → register_class_path` + classid bind (THINK next-hop).
148
+
- **tesseract-rs:** the cheapest existence proof — its pipeline is already byte-parity green; generate one class's `ClassActions` from `has_function`.
149
+
150
+
**Convergence flagged (3 instances now → unify):** override-resolution appears as `effective_actions` (DO, per-class) + `mro::resolve_overrides` (whole-manifest) + `ClassView` inherit — same child-overrides-parent-by-key relation. Crosses the abstraction threshold → an `Overridable`/keyed-merge primitive (council-gated).
151
+
152
+
**Guards (every consumer holds):** ENVELOPE_LAYOUT_VERSION=2 / NODE_ROW_STRIDE=512 must not move; `from_guid_prefix` high-classid-u16→None refusal + 16M-per-basin ceiling are now addressing-load-bearing; `ClassView::{compute_dag, constraints}` (computed-field recompute/validation) grows the EXISTING ClassView, never a new layer.
153
+
154
+
---
155
+
117
156
## 2026-06-18 — E-SOA-CYCLE-OWNERSHIP — cycle is per-mailbox + per-cycle, LE-contract-enforced; multi-mailbox interlaces; non-fitting consumers get OGAR classid→schema
118
157
119
158
**Status:** FINDING (operator-ratified architecture sync; the wiring itself is 5+3-gated before code). Repo brought in sync via the `bindspace-singleton-to-mailbox-soa-v1` ERRATA ADDENDUM 2026-06-18c.
0 commit comments