KB-4906

Branch A — IU Design-vs-Live Gap Matrix (2026-05-29)

8 min read Revision 1
iudesign-vs-livegap-matrixbranch-a2026-05-29

Branch A — IU Design-vs-Live Gap Matrix

Doc 01 (2026-05-29)

Design sources: iu-mow-mot-event-foundation-design.md, iu-mow-mot-event-foundation-requirements.md, v0.6-iu-4mothers-event-foundation-rev2/ (00/03/04/10). Live evidence: iu-a-to-f-automated-evidence-and-demo-pack-2026-05-29/, d/e/f governed suite, production-hardening, day1 rehearsal, plus this session's live introspection (context_pack_readonly).

Reading: LIVE = design requirement met & proven live. PARTIAL = met with a stated limit. GAP = required behaviour missing. BUG = built but mis-wired. DEFERRED = intentionally out of pilot scope. DOC-STALE = live ahead of design text.

# Capability Design requirement (source) Live function / table / DOT Evidence Status Risk Required fix Prio
A1 Cut Cut mechanics owned by Đ38/39; cut pipeline emits cut.* events (REV2-03 §1, §3.2) fn_iu_cut_from_manifest (G1–G7 guards) + fn_cut_* pipeline (10 fns); DOTs dot_iu_cut_from_manifest, dot_iu_operator_cut_staging, dot_iu_mark_article A-pack 01 PARTIAL Med Add raw-text→auto-segment→manifest path (today manual/upstream) P2
A2 Reconstruct Design names only fn_iu_post_cut_axis_materialize (post-CUT rebuild); a discrete source-reconstruct op is not in design text fn_iu_reconstruct_source(doc_code) STABLE; no DOT wrapper A-pack 01: DIEU-37 17 pieces digest 33e5a1a3…, DIEU-35 36 pieces b079d615…, 0 gaps LIVE / DOC-STALE Low Document in design; add dot_iu_reconstruct_source P2
A3 Post-cut axis materialize (G2) "fn_iu_post_cut_axis_materialize KEEP + AUTOWIRE into fn_cut_complete or subscriber — Phase-0 gap" (DESIGN §12; REV2-00 G2) Function exists; DOT iu.post_cut.axis_materialize exists (mutating). Live check: fn_cut_complete exists but cut_fns_calling_materialize=0 This session live introspection BUG / GAP (OPEN) High Wire materialize into fn_cut_complete (or an event subscriber on cut.completed); add Tier-A verify P0
A4 Domain axis (B) Source A / Domain B / Tree C reused, never redefined (REQ §8; Đ38/39) fn_iu_filter_axis_b; DOT dot_iu_filter_axis_b A-pack 02: legal_domain:knowledge_systems→16, consistent=true LIVE Low
A5 Tree axis (C) parent→child→grandchild, reuse fn_iu_subtree fn_iu_filter_axis_c_subtreefn_iu_subtree; DOT dot_iu_subtree A-pack 03: root→8 nodes, 0 orphan, 0 cycle LIVE Low
A6 Compose reuse; never re-implement (DESIGN §3) fn_iu_compose; DOT dot_iu_create_file_from_pieces / dot_iu_create_workflow_from_steps A-pack 04 D3 (4 attached, 3 minted) LIVE Low
A7 Add / Remove / Reorder reuse compose ops (REQ §8) fn_iu_collection_add/remove/reorder_piece; DOTs present A-pack 04 D4–D6 LIVE Low
A8 Split / Merge "PARTIAL_WITH_EXACT_GAP — needs review_decision_id" (REQ §1, G1) fn_iu_piece_split / fn_iu_piece_merge (additive, require review_decision_id); DOTs dot_iu_split_piece / dot_iu_merge_piece A-pack 04 D7/D8; d/e/f §5 rd_bound=true LIVE / DOC-STALE (G1 closed live) Low Update design to mark G1 closed P3
A9 Render every body render emits iu.rendered (REV2-04 §2.3) fn_iu_collection_render; DOT dot_iu_render_file A-pack 04 D9 LIVE Low Confirm iu.rendered emission wired (delivery gate off in pilot) P3
A10 Trigger OUT (emit) precondition/postcondition DSL; referenced events must exist in event_type_registry (REV2-04 §3.3) fn_iu_emit_event / fn_iu_piece_emit_event (gate piece_event_runtime.emit_enabled) / fn_iu_route_worker_run; no DOT A-pack 05 E3–E5 (refs-only, dry_run) LIVE (DOT gap) Med Add dot_iu_emit + Tier-A P1
A11 Trigger IN (capture) trigger-in config in registry, not hardcoded (REQ §5.3) trg_iu_sql_in_iu_sql_linkfn_iu_sql_link_inbound_capture; no DOT d/e/f F.3b live capture LIVE (DOT gap) Low Add dot_iu_capture_* health view P2
A12 DLQ / Replay dlq_replay_request ledger; replay never bypasses Đ32; emits dlq_replay.* (REV2-03 §6.2) fn_iu_route_dead_letter_replay (gated by master routes gate); no DOT A-pack 05 E6; prod-hardening 5B (durable) LIVE (DOT gap) Med Add dot_iu_dlq_replay + Tier-A; honor queue.dlq.replay_enabled P1
A13 SQL link bind IU↔SQL view/function, reuse iu_sql_link fn_iu_sql_link_resolve_all / _validate; DOTs dot_iu_sql_link_resolve / _validate A-pack 06: 3 links, view==direct LIVE Low
A14 KG / IU relation provenance-or-quarantine (Đ39 A8); KG proposes only, never auto-mutates registry iu_relation(60, 60/60 provenance) + universal_edges(2199) → v_kg_edges_all(2259); read DOT dot_iu_kg_edge_audit; edge-write has no DOT day1 §5; this session count=2259 LIVE (write-DOT gap) Med Add dot_iu_relation_assert (ABox) honoring kg_auto_approve_rules P1
A15 Audit every transition logged; trace_id mandatory (Đ31; REV2-03 §5) dot_iu_command_run(55), iu_lifecycle_log, fn_dot_iu_command_log (fail-closed) bcf §3/§6 LIVE Low
A16 Rollback / reversibility reversible by default; soft-delete only (Đ30/36) BEGIN..ROLLBACK method; fn_iu_retire/supersede (soft); DOTs present prod-hardening 5A (3 retired) LIVE Low
A17 Gate protocol dot_config gates respected; design assumes vector off (REV2-00 §141) fn_iu_gate_open/close/verify_closed/watchdog (fail-closed) Gate0 all_safe=true LIVE Low
A18 Vector boundary 1 IU = ≥1 Qdrant point, no mix; reindex via DOT command (DESIGN §14; REQ §4 #12) iu_vector_sync_point/iu_qdrant_collection_registry; fn_iu_vector_sync_record_v2 (CHECK-backed per-IU); reindex via CLI, no DOT Doc 02 PARTIAL Med DOT-ify reindex; PG↔Qdrant reconcile; see Doc 02 P1
A19 Pilot ↔ full-production boundary Phase 0..7 + G1..G7 + 3 surveys + IU-substrate Gate A (REV2-10 §10.3) Live verdict = LIMITED-PRODUCTION-PILOT READY prod-hardening 8 LIVE (aligned) Low Carry forward P-pub block + prod review_decision authoring P2
A20 Đ35 DOT registry integration NT3: everything via registered DOT; dot_tools is single SSOT; Tier-A paired_dot (Đ35 §3) 53 IU DOTs in dot_iu_command_catalog; dot_tools has 309 rows, only 2 IU; no paired Tier-A this session GAP Med Register IU DOTs in dot_tools (or formally ratify the IU catalog as a recognised sub-registry) + add Tier-A checks P1

Summary

  • Live machinery is ahead of the design documents on most IU capabilities (reconstruct, split/merge gate, DOT catalog). The design docs (DRAFT 2026-05-27) lag the 2026-05-28/29 live state.
  • One genuine open bug: A3 — post-cut axis materialize is not auto-wired (P0). This is the single clearest design-vs-live defect.
  • Doc-stale items (A2 reconstruct naming, A8 G1 closed) should be reconciled into the design text so the design stops under-claiming live capability.
  • DOT-coverage and Đ35-integration gaps (A10–A14, A20) are the systematic theme handled in Doc 03.
Back to Knowledge Hub knowledge/dev/reports/architecture/iu-design-live-gap-dot-ops-workflow-design-registry-audit-2026-05-29/01-iu-design-vs-live-gap-matrix.md