KB-188E

IU Test b–f Command Pack — 01 Live-vs-Design Drift Reconciliation

7 min read Revision 1
iudrift-reconciliationcommand-packdocument-onlypg-maximization-map2026-05-28

01 — Live-vs-Design Drift Reconciliation

Purpose: the survey found the live substrate is more ready than Master Design Rev2–Rev5 assumed (it labels much of this "paper"). This reconciles each artifact and assigns an action. Action vocabulary: no action · design reconciliation later (feeds U11, a surgical drift patch — NOT a redesign now) · implementation dependency (a test/macro depends on it) · survey again · block.

All "live finding" values are from the survey (rev1) and this pack's read-only baseline (2026-05-28).

1. Drift table (all §2.2 artifacts)

Artifact / function / DOT cmd Master Design assumption Survey / live finding Impact Action
iu_three_axis_envelope "paper" (PG Map §10) verified_live, 216 rows = 1 per IU; cols axis_a_doc_code/sort_order/section_code, axis_b_tags+axis_b_tags_by_source (jsonb), axis_c_parent_id/depth/ancestors/ancestor_addresses Tests b & c read paths are already backed; no new table design reconciliation later (U11); implementation dependency (b, c)
iu_metadata_tag "paper" verified_live, 536 rows; keys incl legal_domain:*, topic:*, sectype:*, doc:*, kind:* Domain/professional axis (test b) has real vocab to filter on design reconciliation later; implementation dependency (b)
iu_metadata_tag_registry "paper" verified_live, 36 rows (tag vocab) b filter validates tag keys against registry implementation dependency (b)
iu_tree_path (implied paper) verified_live, 199 rows (materialized ancestry) Test c subtree filter backed implementation dependency (c)
iu_relation kg_edge_refs "derived view over iu_kg_edge" (no iu_kg_edge found) verified_live, 60 rows (parent/child edges); iu_kg_edge absent c uses iu_relation+iu_tree_path, not the design's named view design reconciliation later (rename in PG Map); implementation dependency (c)
iu_structure_operation "paper" verified_live, 72 rows but only reparent_piece(60)+deprecate_piece(12) Reorder/reparent proven; add/remove/split/merge unexercised implementation dependency (d)
iu_sql_link REUSE row 5 (VL) but treated as design-only in trigger survey verified_live, 3 rows, ALL enabled=false; roles represents(table tac_publication, bidirectional), governs(fn_iu_three_axis_envelope_refresh, outbound), governs(v_iu_section_type_vocab_sync, outbound) Test f has real link rows to validate/resolve read-only; activation deferred design reconciliation later; implementation dependency (f)
iu_sql_event_route "already live, dry-run" (gated) verified_live, 1 row (trigger-IN route) e trigger-in backed; gated implementation dependency (e)
iu_outbound_route paper route verified_live, 15 rows (trigger-OUT routes) e trigger-out backed implementation dependency (e)
iu_route_attempt paper verified_live, 68 rows (delivery attempts logged) e has historical delivery evidence; route_worker_enabled=true, delivery_enabled=false implementation dependency (e)
fn_iu_piece_split split/merge "not built" (TD-P1) function exists live; iu_split_set 0 rows d split path exists in code; never run; needs review_decision + gate implementation dependency (d); block until U3
fn_iu_piece_merge split/merge "not built" function exists live; iu_merge_set 0 rows d merge path exists; never run implementation dependency (d); block until U3
fn_iu_post_cut_axis_materialize G2 "missing autowire" function exists live + DOT iu.post_cut.axis_materialize G2 reclassified: exists, not auto-wired into cut completion implementation dependency (U4); design reconciliation later
dot_iu_command_catalog dot_iu_command_catalog ✓ (~41) verified_live, 42 commands incl split/merge/add/remove/reorder/clone/create_file/rebuild_metadata_axes/render_file + iu.post_cut.axis_materialize Mutation verbs catalogued; read-only filter verbs (b/c) and sql_link verbs (f) absent implementation dependency (U7)

2. Additional live facts that change the operating view

  • Gateway is enforced: iu_create.gateway.mode=enforced, direct_insert_policy=block_after_guard, allowed_marker_values=fn_iu_create,fn_iu_apply_edit_draft,fn_iu_enact,fn_iu_structure_op. → any structure op must flow through fn_iu_structure_op markers; direct INSERT is blocked. (Action: implementation dependency for d.)
  • Enact requires review: iu_enact.allow_no_review_decision=false, iu_edit.policy.default_mode=require_review. → confirms d's review_decision dependency at the law layer, not just split/merge. (Action: implementation dependency, U3.)
  • Routing master/worker ON, delivery OFF: routes_master_enabled=true, route_worker_enabled=true, but delivery_enabled=false. → the worker runs but does not deliver; e needs a bounded delivery flip. (Action: implementation dependency, U6/U2.)
  • Event bus is hot: event_outbox=148,076 / event_read=147,715 / event_pending=0. → e's events will join a busy bus; idempotency + scoped subscription matter. event_type_registry=31 types include split, merged, structure_*, piece_*, collection_*, staging.* but no iu.* per-IU trigger contract. (Action: implementation dependency, U6.)
  • review_decision lives in cutter_governance schema only (not public); read-only role is privilege-denied. → U3 must confirm its shape with a privileged read before wiring. (Action: survey again — narrow, inside U3.)

3. Reconciliation summary

  • No artifact requires block permanently. Two need a temporary block until a dependency lands: fn_iu_piece_split/fn_iu_piece_merge (block until U3 review_decision wiring).
  • One design-doc artifact (U11) absorbs all "design reconciliation later" items as a single surgical drift patch to the PG Maximization Map (00-master-design-rev2.md §10) — re-label the verified_live artifacts above, rename iu_kg_edgeiu_relation in the kg_edge_refs derivation, and reclassify G2. This is explicitly not a redesign (prompt standard §4F/§4C).
  • No "survey again" at scale — only one narrow privileged read of cutter_governance.review_decision inside U3.

The net effect: the 4 Mothers design must not re-propose iu_three_axis_envelope, iu_metadata_tag*, iu_sql_link, iu_relation, iu_tree_path, route tables, or the split/merge functions — they exist. The design's job shrinks to the genuinely-paper binding layer (iu_process_binding, iu_assembly_slot_registry, iu_role_in_process) and the queue-hardening registries — exactly the U8/U9 backlog items.

Back to Knowledge Hub knowledge/dev/reports/architecture/iu-test-b-to-f-readiness-command-pack-2026-05-28/01-live-vs-design-drift-reconciliation.md