KB-6BA2
IU b–f Execution Readiness Refactor — 05 IU Production-Readiness Board
6 min read Revision 1
iutests-b-freadiness-boardblockercritical-path4-mothers-blockeddocument-only2026-05-28
IU b–f Execution Readiness Refactor — 05 IU Production-Readiness Board (Outcome F)
One board per test b–f: current readiness, exact blocker, next macro, expected evidence, risk-if-skipped, and whether it blocks the 4 Mothers. Grounded in the survey (the real blocker is gates OFF + no harness, not missing tables).
1. Board
| Test | What it proves | Current readiness | Exact blocker | Next macro (this pack) | Expected evidence | Risk if skipped | Blocks 4 Mothers? |
|---|---|---|---|---|---|---|---|
| b — domain/professional axis filter | IUs filterable by axis-B Constitution tags (legal_domain/topic/sectype/doc/kind) to cut/select docs | HIGH — live data present (iu_three_axis_envelope 216 axis cols, iu_metadata_tag 536) |
None blocking the read proof. Blocker for operator ergonomics only: no dot_iu_filter_axis_b wrapper (absent from 42-cmd catalog) |
M-A (C1 proof) → then M-C (C2 wrapper) | SELECT scripts; ≥3 domain filters with counts + sample JSON; zero-delta incl. dot_iu_command_run |
Low — read works; only repeatable harness missing | No (read-only) |
| c — parent/child/grandchild tree axis | IUs filterable by axis-C hierarchy | HIGH — iu_relation 60, iu_tree_path 199, fn_iu_subtree live |
None blocking the read proof. Wrapper dot_iu_subtree absent |
M-A (C1 proof) → M-C (C2 wrapper) | subtree SELECT for ≥2 roots depth ≥3; zero-delta | Low | No |
| f — SQL link IU↔current DB | IU can validate + resolve against live DB rows | MEDIUM-HIGH — iu_sql_link 3 rows (all enabled=false), fn_iu_sql_link_validate + v_iu_sql_link_resolved live |
None blocking the read proof (enabled=false suppresses delivery/capture only, not validate/resolve). Blocker for the enable/capture half: Điều 32 + bounded gate | M-B (C1 read proof) → later C3 (_register/_capture_probe, deferred) |
per-link validate verdict (3) + resolved JSON; validator proven STABLE by inspection; zero-delta | Medium — read works; live capture/enable deferred & gated | No (read half); enable half is gated |
| d — compose / add / remove / reorder / split / merge | A document can be assembled from IUs and restructured | MEDIUM — fn_iu_piece_split/merge live; 9 d-commands live; BUT iu_split_set/iu_merge_set EMPTY, review_decision row-builder "never committed" (TD-P1 OPEN), allow_no_review_decision=false |
U3 review_decision wiring + U2 bounded gate protocol (+ U5 state-machine rollback for the failure path) | M-D (gate protocol, C4) → M-E (C3) | d1–d7 on test IUs; real review_decision_id; committed split/merge sets; rollback; gates closed |
High — without gate protocol + review wiring, a split/merge could run ungoverned or wedge the cut state machine (R-C) | No — but its governance machinery (review_decision) is reused by 4 Mothers later |
| e — trigger-in / trigger-out per IU | Each IU can receive a trigger-in and emit a trigger-out, with delivery + DLQ | MEDIUM — event_outbox 148076 / event_read 147715 / pending 0; route worker/heartbeat ON; route infra live (iu_outbound_route 15, fn_iu_route_deliver, iu_route_dead_letter 0) BUT no iu.* event types in the 31 registered, delivery_enabled=false |
U6 iu.* event-type registration + U2 bounded delivery gate |
M-D (gate, C4) → M-F (C2 register + C3 delivery) | 4 iu.* types registered; trigger-in capture + trigger-out outbox/route attempt; forced DLQ; delivery gate closed; 15 real routes untouched |
Medium-high — emitting unregistered events or a non-route-scoped delivery flip could hit one of 15 real routes (R-B) | No — but the event contract underpins 4 Mothers triggers |
2. Readiness summary
- b, c, f-read are PASS-able now (Wave 1, C1) with zero gate, zero mutation. They are the lowest-risk, highest-value first execution.
- f-enable, d, e are gated behind the bounded gate protocol (M-D) and, for d, review_decision wiring (M-E). They must not run before M-D is implemented and approved.
- The real blocker across the board is operational, not structural: the tables and functions exist live; what is missing is (1) read-only proof + harness, (2) a safe gate-open/close protocol, (3) the review_decision row-builder, and (4)
iu.*event-type registration. None of these is "create the IU substrate from scratch."
3. The 4 Mothers no-go (unchanged)
4 Mothers remains BLOCKED until:
- IU tests b–f are demonstrable (end of Wave 4), and
- IU substrate readiness (Wave 5: design drift patch U11, queue/registry hardening U9, candidate registry survey / Gate B U10) is closed or explicitly accepted with known gaps by the Council.
Risk of starting 4 Mothers early (survey R1–R6): duplicate fields, industrial "đẻ rơi" (orphan/phantom/wrong-pen objects at scale), ungoverned mutation. The board above does not advance the no-go; every macro M-A…M-F is upstream of it.
4. Critical-path read
Wave 1 (now): M-A (b,c) ∥ M-B (f-read) -> b, c, f-read PASS-able
Wave 2: M-C (b/c/f wrappers + harness) -> repeatable operator harness
Wave 3: M-D (gate protocol) -> the hinge; unlocks Wave 4
Wave 4: M-E (d) + M-F (e) -> b–f demonstrable
Wave 5: M-G (U11) + M-H (U9) + M-I (U10) -> IU substrate readiness
-> THEN 4 Mothers gate (still Council-approved)
The board's single most important message to the next Agent: start with M-A and M-B (pure read-only, no risk), publish their PASS evidence, and only then proceed. Everything mutating waits behind M-D.