Home / Projects / Orchestrata Ultimate / Decisions / ADR index / ADR-0115
ADR-0115: E-1 ruled: the component DAG gains integration → knowledge_graph, governance, tools (27 → 30 edges)
| field | value |
|---|---|
| Status | Accepted — Accepted (ruling, Mohamed, 2026-10-20, verbatim: "Clear E-1 per the standing recommendation") |
| Date | 2026-10-20 |
| Register | factory (docs/adr, 4-digit ids) |
| Source | docs/adr/0115-e-1-ruled-the-component-dag-gains-integration-knowledge-graph-governance-tools.md — permalink at c239cdf83 (unchanged on master since that commit) |
| Wiki register entry | ADR-0115 (wiki status: Accepted) |
The record
Status: Accepted (ruling, Mohamed, 2026-10-20, verbatim: "Clear E-1 per the standing recommendation") · Date: 2026-10-20
Context
The 2026-10-16 components design session escalated E-1 (AD-33, extended by AD-35): 20
frozen-bytes outbound import rows — kg 7, governance 3, tools 10 (integration boundary
census §3, every row line-cited) — target components outside the drawn 27-edge component
DAG. Per AD-33, "Until Mohamed rules, every line that needs them carries <PENDING Mohamed E-1>; no design routes around it." 18 of the 25 INT increments carry at least
one such line and were E-1-gated, dispatching last (packages/integration/increments/README.md
§Ruling gates). D-I6 (packages/integration/design/decisions.md) restated the escalation
with fresh frozen-bytes evidence and one measured correction: AD-33 listed D-K8
(knowledge_graph.server) among the E-1-conditional moves, but its whole first-party
surface is contracts + kernel — legal without E-1; INT-10 is gated only because it packs
with kernel.pipeline_cli. The recommendation stood unchanged: +3 edges (27 → 30).
The prod orchkg DAG seed (2026-10-20, per-instance verified: 10 components, 30
DEPENDS_ON) and clean-target.md's declared-edge table ("AD-33/AD-35 + R5 (30-edge DAG)
— declared edges, not violations") already carry the 30-edge shape; the design registers
kept the rows pending because only Mohamed can clear them.
Decision (Mohamed, verbatim: "Clear E-1 per the standing recommendation")
- E-1 is cleared per the standing D-I6 recommendation. integration → knowledge_graph, integration → governance, and integration → tools are DECLARED edges of the component DAG. The DAG is 30 edges.
- The 18 E-1-gated INT increments are unblocked and dispatch in the queue's order. Their frozen-bytes consumer lines stay byte-faithful as designed — no port-invention, no kernel pass-through (the alternatives AD-33 rejected).
- Per-line
<PENDING Mohamed E-1>markers flip to a citation of this ADR at each increment's dispatch (or in a documentation pass); the design registers (decisions.mdNEEDS table, D-I6, increments README) flip in the same registration commit as this ADR. - N4 (INT-11) and N-I1 (INT-04) remain gated — they are separate rulings and this ADR does not touch them.
Alternatives rejected
- Kernel pass-through routing (integration's governance/kg/tools reaches detour through kernel) — rejected by AD-33: invents indirection the frozen bytes do not contain and falsifies the oracle.
- Port-invention (new abstractions to avoid the edges) — same rejection: the census rows are real runtime dependencies; a port that exists only to dodge an edge is a fabricated boundary.
- Continue holding E-1 — 18 of 25 INT increments idle indefinitely behind a recommendation that the frozen-bytes census already evidences, while the graph and clean-target tables carry the 30-edge shape.
Consequences
- The component DAG is 30 edges in every home: the seeded prod graph (already true),
clean-target.md(already true), and the design registers (flipped by this registration). - INT increments past wave 1 become dispatchable as the queue reaches them; E-1 stops being a dispatch-order constraint.
<PENDING Mohamed E-1>markers remaining in per-increment files are historical until each increment's dispatch flips them — a marker found after an increment dispatched is a defect.- RUL-023 pressure: the edges are declared, so the DAG-BOUNDARY checker (build order 5) reconciles import edges × boundaries.json × graph rows against the 30-edge set, not the 27.
Provenance
Mohamed's in-session ruling, 2026-10-20, on the coordinator's decision prompt (handoff
§4 item 2 — "E-1 ruling clear (unblocks 18 INT increments)?"), verbatim answer: "Clear
E-1 per the standing recommendation". Escalation of record: AD-33/AD-35 (2026-10-16
design session). Restatement + evidence: packages/integration/design/decisions.md
D-I6 and the NEEDS table E-1 row; packages/integration/design/boundary-census.md §3
(row-level frozen-bytes citations); packages/integration/design/clean-target.md E-1
row. Graph state: prod orchkg seed 2026-10-20 (10 components, 30 DEPENDS_ON,
per-instance verified; wiki projects/orchestrata-ultimate/component-dag.md). Handoff
of record: plans/handoff-2026-10-20-supervisor.md §4.
Related ADRs
No other ADR is named in this record.
Rulings cited
- RUL-023: RUL-023 — A feature request means the thing is WIRED, not that code exists
Specs cited
None (or no spec page exists for the ones named).