KB-1DE4

IU Core Process-Brick Readiness and Gap Survey (document-only, 2026-05-28)

29 min read Revision 1
iureadiness-surveyprocess-brick4mothersdocument-onlygap-analysistests-b-farchitecture

IU Core Process-Brick Readiness and Gap Survey

  • Macro: IU_CORE_PROCESS_BRICK_READINESS_AND_GAP_SURVEY_DOCUMENT_ONLY_3000X
  • Date: 2026-05-28
  • Mode: DOCUMENT-ONLY READINESS SURVEY. No production mutation occurred.
  • Database surveyed (read-only): directus (schemas public = 334 tables, iu_core = 4 tables), via read-only AST-validated SELECT role.
  • Authority: Continuing under GPT Council direction; Master Design Rev5 approved as document-only baseline.

1. Final status

SURVEY VERDICT: PASS.

The survey is complete: every test b–f has a readiness status and an exact gap list; every IU process-brick field is mapped to live / adaptable / paper / gap; the event/queue/governance minimum is mapped; DOT automation gaps are explicit; the next upgrade order is given; and no implementation or mutation occurred.

IU SUBSTRATE PRODUCTION-READINESS (the thing surveyed): PARTIAL — and substantially MORE READY than the Rev2–Rev5 design baseline assumed.

Headline finding. The design docs 00/03/04 were authored treating most IU process tables as paper-only. Live introspection contradicts this. The bulk of the substrate for tests b–f — axis envelopes, tree paths, structure-operation functions, split/merge functions, SQL-link tables/functions, route delivery, the full event bus + job queue — exists live with data and DOT commands. The dominant blocker for b–f is not missing tables; it is dot_config runtime gates that are switched OFF, plus the review_decision wiring for mutating ops and the absence of an automated end-to-end test harness. The genuinely-absent (paper) items are the process-brick binding layer (iu_process_binding, iu_assembly_slot_registry, iu_role_in_process) and the generic queue-hardening registries (executor_class_registry, state_machine_registry, idempotency_registry, retry_policy_registry, dlq_replay_request) — these matter for the 4 Mothers, but are largely orthogonal to passing IU tests b–f.


2. Source list read

Design docs (read in full, 206,303 chars, via subagent slicing):

  1. knowledge/dev/design/v0.6-iu-4mothers-event-foundation-rev2/00-master-design-rev2.md (Rev5)
  2. knowledge/dev/design/v0.6-iu-4mothers-event-foundation-rev2/04-iu-centered-4mothers-binding-design.md (Rev5)
  3. knowledge/dev/design/v0.6-iu-4mothers-event-foundation-rev2/03-event-5layer-realtime-dlq-design.md (Rev5)
  4. knowledge/dev/design/v0.6-iu-4mothers-event-foundation-rev2/10-industrial-birth-cross-law-addendum.md (Rev5)

GPT review reports (read in full): 5. knowledge/dev/reports/architecture/4mothers-industrial-birth-rev5-gpt-final-review-2026-05-28.md — verdict REV5_ACCEPT_AS_DOCUMENT_ONLY_BASELINE_WITH_EXPLICIT_MP_D26_CARRY_FORWARD 6. knowledge/dev/reports/architecture/iu-roadmap-review-after-master-design-rev4-gpt-2026-05-28.md — verdict ROADMAP_ACCEPTED_WITH_PARALLEL_INFRA_GATES (this report enumerates tests a–f verbatim) 7. knowledge/dev/reports/architecture/iu-4mothers-master-design-rev4-gpt-review-iu-centered-roadmap-2026-05-28.md — verdict MASTER_DESIGN_REV4_ACCEPT_AS_DESIGN_BASELINE_WITH_IU_SUBSTRATE_READINESS_GATE (defines Gates A–E)

Prior IU test / foundation reports (read): 8. .../dieu44-trien-khai/v0.6-dieu45-phase-3-...-write-channel/05-dieu37-cut-verify-result.md (test a proof: Điều 37 cut → 17 IUs, verdict verified) 9. .../dieu44-trien-khai/v0.6-iu-core-operational-cut-workflow-.../06-three-axis-requirements.md (Axis A/B/C definitions + T01/T02/T03 PASS) 10. .../dieu44-trien-khai/v0.6-iu-core-cutting-operator-start-here/02-current-live-status.md (function/migration snapshot 2026-05-26) 11. .../dieu44-trien-khai/v0.6-iu-pg-native-trigger-model-survey-design/... (trigger model survey, design-only) 12. .../dieu44-trien-khai/backlog/td-p1-split-merge-metadata-propagation-gap-2026-05-15.md (split/merge gap, OPEN P1) 13. .../v0.5-final-bridge-to-production-cut-command-review/...bridge-state-and-final-gap-analysis-2026-05-19.md (review_decision_id implementation gap)

Live DB evidence (read-only queries): schema enumeration; row counts; dot_config gate values; dot_iu_command_catalog; function inventory; iu_three_axis_envelope / iu_sql_link column shapes; event_type_registry contents.

Note: cutter_governance.review_decision exists but is not readable by the read-only role (InsufficientPrivilege); its existence is confirmed via pg_class, its row count is taken from prior report (3 rows) and flagged as KB_reported, not verified_live this pass.


3. IU current-state matrix

Classification legend: verified_live (table exists + has data, observed this pass) · legacy_trace (table exists, 0 rows / shaped but unexercised) · KB_reported (asserted by report/memory, not re-verified live) · paper_only (named in design, no live object) · known_gap.

3a. IU substrate (live, observed this pass)

Object Rows Status Notes
public.information_unit 216 verified_live grew 175→200→216 across sessions
public.unit_version 223 verified_live version spine
public.iu_lifecycle_log 146 verified_live governance_state derived from here
public.iu_piece_collection 45 verified_live bundle/assembly container
public.iu_piece_membership 227 verified_live ordinal/member ordering
public.iu_three_axis_envelope 216 verified_live 1 envelope per IU; columns confirm axis_a_* (doc_code/sort_order/section_code), axis_b_tags + axis_b_tags_by_source (jsonb), axis_c_parent_id/axis_c_depth/axis_c_ancestors/axis_c_ancestor_addresses
public.iu_metadata_tag 536 verified_live professional/domain axis tags
public.iu_metadata_tag_registry 36 verified_live tag vocab
public.iu_relation 60 verified_live parent-child edges
public.iu_tree_path 199 verified_live materialized ancestry (axis C)
public.iu_tree_change_log 56 verified_live tree mutation audit
public.iu_structure_operation 72 verified_live only reparent_piece (60) + deprecate_piece (12) — no split/merge/add/remove exercised
public.iu_sql_link 3 verified_live columns: link_role, object_kind, object_schema/name, collection_name, row_pk(jsonb), function_identity, trigger_name, direction, enabled, idempotency_key
public.iu_sql_event_route 1 verified_live trigger-IN route (gated)
public.iu_outbound_route 15 verified_live trigger-OUT routes
public.iu_route_attempt 68 verified_live delivery attempts logged
public.iu_vector_sync_point 152 verified_live mirror sink; sync gated off
public.cut_request 4 verified_live Điều 39 state machine
public.cut_request_transition 40 verified_live transition audit
public.dot_iu_command_catalog 42 verified_live DOT command surface (see §7)
public.dot_iu_command_run 45 verified_live command audit
iu_core.iu_staging_record / iu_staging_payload verified_live No-Vector Staging Zone

3b. IU substrate (shaped but unexercised / sinks empty)

Object Rows Status Notes
public.iu_split_set 0 legacy_trace split table exists, never used
public.iu_merge_set 0 legacy_trace merge table exists, never used
public.iu_route_dead_letter 0 legacy_trace IU route DLQ empty

3c. render / governance / audit

  • render_iu_body path: realized live as fn_iu_collection_render + fn_iu_render_file (DOT dot_iu_render_file, dot_iu_create_file_from_pieces); reconstruct via fn_iu_reconstruct_source (Axis A; T01 PASS 36 pieces DIEU-35; Điều 37 reconstruct = 17). verified_live.
  • IU governance/audit: iu_lifecycle_log (146), iu_tree_change_log (56), iu_structure_operation (72), dot_iu_command_run (45), cut_request_transition (40). verified_live.
  • IU usage evidence: iu_usage_evidence table = paper_only (named in design §10 as "paper"; no live object found). Indirect usage is observable via the audit tables above.

3d. Industrial-birth governance substrate (live)

Object Status Notes
public.birth_registry verified_live (exists) Điều 0-G birth law substrate present
public.collection_registry verified_live (exists) Điều 36 collection registry present
public.governance_registry verified_live (exists) Điều 37; type ∈ {collection,dot,factory}
public.governance_relations verified_live (exists) produces/owner edges
public.design_templates verified_live (exists) Điều 28 template law

4. IU process-brick gap matrix

The design's 11 brick fields (exposed via the paper iu_process_binding):

Brick field Design verdict Live reality (this pass) Survey class
iu_unit_id REUSE information_unit live (216 rows) verified_live
iu_version_id REUSE unit_version live (223 rows) verified_live
iu_role_in_process NEW (paper) no iu_role_in_process object; no iu_process_binding paper_only
assembly_slot (iu_assembly_slot_registry) NEW (paper) absent; bundle ordering done via iu_piece_membership.ordinal paper_only (adjacent reuse exists)
precondition_config (trigger-in) NEW (paper, on binding) substrate adjacent: iu_sql_event_route (1 row) + fn_iu_sql_link_inbound_capture paper_only (binding) / verified_live (adjacent route substrate)
postcondition_config (trigger-out) NEW (paper, on binding) substrate adjacent: iu_outbound_route (15) + fn_iu_route_deliver + fn_iu_outbound_route_delivery_guard paper_only (binding) / verified_live (adjacent)
io_contract_refs (MOIT/MOUT) NEW (paper), CRS-gated CRS registries absent paper_only / candidate_requires_survey
executor_class_ref NEW (paper) FK→executor_class_registry executor_class_registry absent paper_only
event_contract_ref NEW (paper) FK→event_type_registry event_type_registry live (31 types) paper_only (binding) / target registry verified_live
kg_edge_refs derived view over iu_kg_edge iu_relation (60) live; no iu_kg_edge table found paper_only (view) / verified_live (iu_relation substitute)
governance_state derived from iu_lifecycle_log live (146) verified_live (derivation source)

Process-brick conclusion: The binding container (iu_process_binding) and three NEW registries (iu_assembly_slot_registry, iu_role_in_process vocab, executor_class_registry) are genuinely paper_only. However, 8 of 11 fields already have a live backing object or a live adjacent substrate — the binding layer is mostly an assembly/denormalization job over existing live data, not net-new infrastructure. This is required for the 4 Mothers but is not on the critical path for IU tests b–f.


5. Test b–f readiness matrix

Tests a–f are enumerated verbatim in source #6. Test a (cut + reconstruct original source order) is PROVEN LIVE (Điều 37 → 17 IUs, verdict verified, axis_a/b/c_ok=true, no_vector_ok=true; DIEU-35 T01 PASS 36 pieces).

Test Capability Live substrate present? Live functions / DOT commands Gate(s) blocking Readiness Exact gap to close
b Filter by professional/domain axis (Constitution) to cut YESiu_three_axis_envelope.axis_b_tags populated for all 216 IUs; iu_metadata_tag (536) + registry (36) fn_iu_three_axis_envelope_refresh, dot_iu_rebuild_metadata_axes; read via v_iu_metadata_envelope, v_ui_iu_three_axis_envelope iu_core.three_axis_auto_refresh_enabled=false (refresh is manual) HIGH (read-only) (1) a DOT-callable filter/query command (catalog has rebuild, not a parameterized filter-select); (2) decide whether auto-refresh stays manual; (3) automated assertion harness
c Filter by parent-child-grandchild axis YESiu_tree_path (199), iu_relation (60), axis_c_parent_id/depth/ancestors populated fn_iu_subtree (T03 PASS, depth 2, 8 descendants) none (read path) HIGH (read-only) (1) DOT-callable subtree-filter command wrapper; (2) automated test harness asserting tree integrity post-cut
d Assemble doc from scratch: add/remove/reorder/merge/split PARTIAL — collection+membership live; split/merge functions exist but tables empty add: fn_iu_collection_add_piece/dot_iu_add_piece; remove: fn_iu_collection_remove_piece/dot_iu_remove_piece; reorder: fn_iu_collection_reorder_piece/dot_iu_reorder_piece; split: fn_iu_piece_split/dot_iu_split_piece; merge: fn_iu_piece_merge/dot_iu_merge_piece; fn_iu_structure_op_apply/plan/verify/rollback; compose: fn_iu_compose/dot_iu_create_file_from_pieces iu_core.structure_ops_enabled=false; iu_core.composer_enabled=false; iu_enact.allow_no_review_decision=false MEDIUM (1) flip structure_ops_enabled for a governed test run; (2) wire review_decision_id for split/merge (TD-P1 OPEN: governed REVIEW sub-pipeline + row-builder "never committed"); (3) populate/verify iu_split_set/iu_merge_set first-time; (4) state-machine rollback edge for stuck mark_verified
e Trigger-in / trigger-out per IU PARTIALiu_sql_event_route (1, IN), iu_outbound_route (15, OUT), iu_route_attempt (68) IN: fn_iu_sql_link_inbound_capture; OUT: fn_iu_route_deliver, fn_iu_route_worker_run, fn_iu_outbound_route_delivery_guard, fn_iu_emit_event/fn_iu_piece_emit_event; routes_master + route_worker ON iu_core.delivery_enabled=false (worker on, delivery off); no iu.* event types registered (31 types cover structure/collection/staging, not per-IU trigger contracts) MEDIUM (1) flip delivery_enabled for governed test; (2) register IU trigger-in/out event types in event_type_registry; (3) end-to-end IN→IU→OUT automated assertion; (4) per-IU precondition/postcondition_config (paper binding) if richer routing than route tables is needed
f SQL link between IU and current DB data PARTIAL-HIGHiu_sql_link (3 rows) with full shape (object_kind, direction, function_identity, trigger_name, idempotency_key, enabled); view v_iu_sql_link_resolved fn_iu_sql_link_validate, fn_iu_sql_link_inbound_capture inbound capture rides the same route/delivery gates MEDIUM-HIGH (1) full-automation proof (report B: "SQL link proof needs full automation"); (2) DOT-callable link create/validate command (catalog lacks an explicit dot_iu_sql_link_*); (3) MOUT aggregation depends on CRS dot_function_registry/output_table_registry (G7)

Cross-cutting for all b–f: none is blocked by a missing core table. The shared blockers are: runtime gate flags OFF, no automated end-to-end DOT test harness, and (for d/e) governed review-decision wiring + IU event-type registration.


6. Event / queue / governance readiness matrix

Capability Design "Live?" Live reality (this pass) Survey class
event_outbox 148,076 rows — heavily used verified_live
event_read 147,715 rows verified_live
event_pending 0 rows legacy_trace (drained)
event_type_registry ✓ + ext 31 types (created/updated/split/merged/structure_/collection_/staging.* …) verified_live
event_subscription (VL) 3 rows verified_live
job_queue 13 rows verified_live
job_dead_letter 0 rows verified_live (empty)
queue_heartbeat 3 rows; queue.heartbeat.enabled=true, stale_threshold_seconds=300 verified_live
executor_class_registry paper absent paper_only
state_machine_registry paper absent (note: cut_request_transition is a bespoke state machine, live) paper_only
idempotency_registry paper absent (per-row idempotency_key columns exist on iu_sql_link/routes) paper_only
retry_policy_registry paper absent paper_only
dlq_replay_request paper absent; queue.dlq.replay_enabled=false paper_only
proposal (public) paper absent paper_only
review_decision paper (public) exists in cutter_governance only (not public); not readable by RO role KB_reported
trace_id / parent_span_id / correlation_id adopt NOW not separately verified on event_outbox this pass candidate_requires_survey
W3C traceparent discipline (MP-D1) adopt NOW design-bound; verify in event substrate hardening macro paper_only
Birth/collection/governance/template registries (Điều 0-G/36/37/28) birth_registry, collection_registry, governance_registry, governance_relations, design_templates all present verified_live

dot_config gate snapshot (verified this pass):

Gate Value
iu_core.composer_enabled false
iu_core.structure_ops_enabled false
iu_core.delivery_enabled false
iu_core.auto_instantiate_enabled false
iu_core.three_axis_auto_refresh_enabled false
iu_core.operator_runtime_enabled false
iu_core.vector_sync_enabled false
iu_core.retention_enabled false
iu_core.routes_master_enabled true
iu_core.route_worker_enabled true
queue.heartbeat.enabled true
queue.job_substrate.enabled false
queue.dlq.replay_enabled false
iu_enact.allow_no_review_decision false
iu_edit.policy.default_mode require_review

Minimum event/queue/governance required for IU tests b–f: already live except (i) per-IU iu.* event types (test e), (ii) the governed review_decision path made callable for split/merge (test d). The paper hardening registries (idempotency_registry, retry_policy_registry, dlq_replay_request, state_machine_registry, executor_class_registry) are NOT required to pass b–f; they are required to productionize IU and to build the 4 Mothers safely.


7. DOT automation readiness matrix

dot_iu_command_catalog = 42 commands (verified_live). Coverage vs tests:

Test DOT commands present DOT gap
a (cut/reconstruct) dot_iu_mark_article, dot_iu_verify_mark_manifest, dot_iu_cut_from_manifest, dot_iu_verify_cut_result, operator_* variants none (operational)
b (domain axis) dot_iu_rebuild_metadata_axes, dot_iu_update_piece_metadata no parameterized axis-B filter/select command
c (tree axis) (subtree via fn_iu_subtree) no dot_iu_subtree/tree-filter command wrapper
d (assemble) dot_iu_add_piece, dot_iu_remove_piece, dot_iu_reorder_piece, dot_iu_clone_piece, dot_iu_split_piece, dot_iu_merge_piece, dot_iu_supersede_piece, dot_iu_retire_piece, dot_iu_delete_piece_soft, dot_iu_restore_piece, dot_iu_create_file_from_pieces, dot_iu_create_workflow_from_steps, dot_iu_create_collection commands exist but gated (structure_ops_enabled=false); split/merge unproven end-to-end
e (trigger in/out) iu.post_cut.axis_materialize, dot_iu_auto_instantiate_from_event, dot_iu_auto_instantiate_rollback_by_actor no explicit trigger-in/out test command; delivery gated
f (SQL link) (functions only) no dot_iu_sql_link_create/validate catalog command

Post-CUT autowire: the design called fn_iu_post_cut_axis_materialize a gap (G2). It exists live as a function AND as DOT command iu.post_cut.axis_materialize. The remaining gap is automatic invocation inside cut completion + idempotency wiring, not the function itself. → reclassify G2 from "missing" to "exists, not auto-wired."

Overall DOT gap: the mutation/assembly verbs (add/remove/reorder/split/merge/compose/cut) are catalogued; the read-only filter verbs (b, c) and the sql-link verbs (f) lack dedicated catalog commands, and no end-to-end automated DOT test harness exists to run b–f and assert results without a human operator.


8. Exact upgrade backlog before IU production

Ordered, each item document-only until its own approved macro:

  1. U1 — IU test harness (b–f) macro. Author an automated, DOT-callable, config-driven test plan that runs b–f end-to-end and asserts results (reconstruct hash, axis-B filter cardinality, subtree integrity, assemble/split/merge round-trip, trigger IN→OUT, sql-link resolve). No new tables needed for b/c.
  2. U2 — Governed gate-flip protocol. Define how structure_ops_enabled, delivery_enabled, three_axis_auto_refresh_enabled, composer_enabled are opened for a bounded test run and closed after (mirrors the proven composer open→CUT→close pattern), with dot_iu_command_run audit.
  3. U3 — Close G1 (split/merge review_decision_id). Commit the governed REVIEW sub-pipeline + rich row-builder so fn_iu_piece_split/fn_iu_piece_merge can run with a non-null review_decision_id; first-time populate iu_split_set/iu_merge_set. (TD-P1 OPEN.)
  4. U4 — Close G2 (post-CUT autowire). Wire fn_iu_post_cut_axis_materialize into cut completion with an idempotency key; today it is manual.
  5. U5 — State-machine rollback edge. Add mark_verified → mark_rejected rollback (Điều 39 cut_request can get stuck at mark_verified with cut_run_id=NULL). (IU_CUT_STATE_MACHINE_ROLLBACK_AFTER_APPROVAL_POLICY.)
  6. U6 — IU event-type registration. Register per-IU trigger-in/out iu.* event contracts in event_type_registry for test e.
  7. U7 — DOT filter + sql-link commands. Add catalogued read commands for axis-B/axis-C filter and dot_iu_sql_link_*.
  8. U8 — Process-brick binding layer (for 4 Mothers, not b–f). iu_process_binding + iu_assembly_slot_registry + iu_role_in_process vocab — assembly over existing live data.
  9. U9 — Generic queue-hardening registries (productionization). executor_class_registry, state_machine_registry, idempotency_registry, retry_policy_registry, dlq_replay_request — paper → survey → implement.
  10. U10 — CRS registries (Candidate Registry Survey). field_registry, input_form_registry, output_table_registry, dot_function_registry — required for MOIT/MOUT (io_contract_refs), blocked behind MP-D7 no-literal-name rule.

9. Proposed order of next macros

Converging with all three GPT reviews (sources #5/#6/#7), which unanimously say: approve the design baseline document-only, do NOT start 4 Mothers, run IU readiness first:

  1. (this macro — DONE) IU_CORE_PROCESS_BRICK_READINESS_AND_GAP_SURVEY_DOCUMENT_ONLY_3000X.
  2. IU_TEST_B_TO_F_AUTOMATION_PLAN_DOCUMENT_ONLY_*X (U1 + U2 + U6 + U7) — the test harness + governed gate-flip design.
  3. IU_4MOTHERS_CANDIDATE_REGISTRY_SURVEY_DOCUMENT_ONLY_*X (Gate B / U10).
  4. IU_EVENT_QUEUE_SUBSTRATE_READINESS_FOR_IU_PRODUCTION_DOCUMENT_ONLY_*X (Gate C / U9 + trace-id discipline).
  5. IU_CUT_STATE_MACHINE_ROLLBACK_AFTER_APPROVAL_POLICY (U5) and split/merge review_decision macro (U3) — these are the first implementation macros and must each carry their own write-channel + forbidden gates.
  6. IU_4MOTHERS_TIER_REGISTRY_SURVEY then IU_4MOTHERS_GOVERNANCE_OPS_SURVEY (Gates D/E).
  7. Only then decide IU substrate upgrades vs Phase-0 IU gaps vs 4 Mothers substrate extensions.

Run b/c first (read-only, lowest risk, already HIGH-ready), then f, then d and e (need governed gate-flip + review wiring).


10. Risks if we implement 4 Mothers before IU readiness

  • R1 — Duplicate body fields (the exact failure GPT warned of). "If IU is too narrow, later implementation will drift into duplicate workflow body fields, task instruction copies, ad-hoc event payloads, or Nuxt logic" (source #6). Building MOW/MOT/MOIT/MOUT on the paper iu_process_binding before it is real forces each Mother to re-invent body/ordering storage → violates Điều 38/39 single-body ownership.
  • R2 — Industrial-scale "đẻ rơi". The 4 Mothers are object factories (doc 10). A factory built on an unproven IU brick mass-produces orphan/phantom/mis-classified objects (Điều 0-G/36 violations) — the precise hazard MP-D24/D29 exist to prevent.
  • R3 — Mutating ops without governance. Tests d/e remain gated and split/merge lack review_decision_id. Wiring 4 Mothers to mutate IUs now would bypass Điều 32 approval and the iu_enact.allow_no_review_decision=false invariant.
  • R4 — Hardening registries missing. Without idempotency_registry/retry_policy_registry/state_machine_registry/dlq_replay_request, factory-scale event/queue traffic (already 148k outbox rows) has no generic poison/retry/replay governance → silent duplication or loss.
  • R5 — CRS contract drift. MOIT/MOUT io_contract_refs depend on un-surveyed CRS registries (MP-D7 forbids literal-name reference until verified_live) — premature build hard-codes names that may never exist.
  • R6 — MP-D26 human-role gap. No law defines staff/dept-lead/super-admin visibility; 4 Mothers UI would invent ad-hoc permissions outside any owner law.

Net: IU is close enough that finishing b–f (mostly gate-flips + a harness + the review wiring) is far cheaper than absorbing R1–R6 later. Finish IU first.


11. Law / no-double-ownership review

No-double-ownership holds in the live substrate — each concern maps to exactly one owner law, with no observed overlap:

Concern Owner law Live evidence
IU body + KG + split/merge/sql-link Điều 38/39 information_unit, unit_version, iu_relation, iu_sql_link, fn_iu_piece_split/merge
Approval Điều 32 review_decision (cutter_governance), iu_enact.allow_no_review_decision=false
DOT mutation + audit Điều 35 dot_iu_command_catalog (42), dot_iu_command_run (45, mutating flag)
Queue/event/heartbeat/state-machine Điều 45 event_outbox, job_queue, queue_heartbeat, cut_request_transition
Nuxt render shell + templates Điều 28 design_templates, v_ui_iu_* views
3-layer DB boundary Điều 33 gateway: iu_create.gateway.mode=enforced, direct_insert_policy=block_after_guard
Birth Điều 0-G birth_registry
Collection Điều 36 collection_registry (DRAFT 30% — keep paper)
Governance org / factory Điều 37 governance_registry (type factory), governance_relations

Only NEW concern = the 4 Mothers application layer → future Điều XX. A second future-law candidate is flagged (MP-D26, carried forward in source #5): a human-org-role/permission law, since Điều 37 defines no human staff/dept-lead/super-admin roles (divergence D-1). No new Council decision is required to finish IU tests b–f.


12. Forbidden compliance statement

This macro performed survey only. Verified compliance with every forbidden:

  • No PG mutation — all 12 PG calls were read-only SELECT via the AST-validated read-only role (one attempted read of cutter_governance.review_decision was denied by privilege, confirming the role cannot write).
  • No Directus mutation — none performed.
  • No Qdrant / vector write — none; iu_core.vector_sync_enabled=false observed, untouched.
  • No migration — none authored or applied.
  • No DOT command rundot_iu_command_catalog was read; no command executed (dot_iu_command_run count 45, unchanged).
  • No law enactment — none.
  • No implementation — none.
  • No schema / table / template / collection creation — none.
  • No final OSS tool selection — none.
  • No gate changedot_config was read; all 15 surveyed gate values reported as-found, none modified.

The single artifact produced is this document, uploaded to knowledge/dev/reports/architecture/.


Appendix — corrections to the design baseline (for Council awareness)

The Rev2–Rev5 design docs (00/03/04) under-state live readiness. Items the design labels "paper" that are in fact verified_live this pass: iu_three_axis_envelope, iu_metadata_tag(_registry), iu_sql_link, iu_sql_event_route, iu_outbound_route, iu_route_attempt, iu_tree_path, iu_relation, iu_structure_operation, plus live functions fn_iu_piece_split, fn_iu_piece_merge, fn_iu_structure_op_apply/plan/verify/rollback, fn_iu_collection_add_piece/remove_piece/reorder_piece, fn_iu_post_cut_axis_materialize, fn_iu_sql_link_validate/inbound_capture, fn_iu_route_deliver. Recommend the next design revision reconcile its PG Maximization Map against this live inventory so the 4 Mothers design does not re-propose substrate that already exists.

Back to Knowledge Hub knowledge/dev/reports/architecture/iu-core-process-brick-readiness-and-gap-survey-2026-05-28.md