KB-7BDD

IU Core 4000x — 06 Acceptance matrix + DOT 140/140 + no-hardcode

7 min read Revision 1
iu-core4000xacceptance-matrixdot-conformanceno-hardcodeproduct-readiness

06 — Acceptance matrix · product readiness · DOT · no-hardcode

1. Product readiness matrix (24 rows)

# Layer / capability State Evidence
1 IU Core core (migrations 001–020) DONE DOT 140/140 PASS; 1138 tests pass; backup directus-pre-iucore-4000x-…dump sha f18ae2f6…
2 Three-axis metadata (migration 014) DONE 163 envelope rows · 330 derived tags · 17 vocab
3 Composer / piece-native collection (migration 015–017) DONE 500x durable composed-from-scratch IUs + bounded text-as-code apply
4 Operator runtime + lease (migration 018–019) DONE 540x sandbox 9/9 + 1k vector-sync lease durable
5 Vector boundary + UI assembly substrate (migration 020) DONE per-IU CHECK + v_ui_iu_three_axis_envelope
6 Qdrant registry + Directus registration (migration 021) DONE 1500x runtime/310 active row
7 Three-axis envelope table promotion (migration 022) DONE 2400x runtime/320 163 upserts; Directus collection registered
8 Drift-gated refresh wrapper + status + gate (migration 023) DONE 3000x runtime/330 dry_run + skipped_in_sync rows
9 Auto-refresh statement-level trigger (migration 024 — 4000x) DONE runtime/340 durable: gate false → true → no-op UPDATE → trigger fires → refresh_log id=14 actor=iu_lifecycle_trigger skipped_in_sync → gate false; sandbox/230 7/7 BEGIN…ROLLBACK
10 EXCEPTION swallow safety (4000x) DONE sandbox/230.5 PASS: synthetic raise captured in trigger_error_log with sqlstate=P0001; caller UPDATE not aborted
11 Trigger error log surface (4000x) DONE iu_three_axis_envelope_trigger_error_log registered in runtime/110 SSOT; CHECK on tg_op IN (...)
12 DOT 140/140 (4000x) DONE runtime/110: table 22 / view 22 / function 51 / trigger 5 / config 9 / event_type 15 / route 16
13 External healthcheck — 4 surfaces (4000x) DONE dot_iu_external_healthcheck returns three_axis_cache + directus_collection + qdrant_collection + auto_refresh_trigger; live output captured
14 Trigger-only status command (4000x) DONE dot_iu_three_axis_envelope_trigger_status returns gate + fires + errors
15 Operator command registry (4000x) DONE 17 governed + 8 external = 25 commands; categories {collection, piece, lifecycle, read, health, external}
16 Directus collection read flow DONE REST count=163, filter by axis_c_depth=0 / 2 returns correct rows with full payload
17 Qdrant retrieval smoke + per-IU boundary DONE scroll returns 61 points / 60 unique IUs / 1 KT-B multi-chunk inside boundary; every chunk carries unit_id + chunk_index + axis_refs
18 Drift / cache_healthy status DONE v_iu_three_axis_envelope_refresh_status.cache_healthy=t, current_in_sync=t
19 All write gates inert DONE composer / delivery / operator_runtime / structure_ops / vector_sync / three_axis_auto_refresh = false; routes_master + worker = true with dry_run on every route
20 Vector boundary still preserved by 4000x DONE TestVectorBoundaryStillPreserved — migration 024 contains zero qdrant / embedder / vector references
21 No-hardcode regression DONE TestNoHardcodedSecretOrConnector — migration 024 + ui-package contain no secret / host / Bearer literal; all collection names env-driven
22 Five-layer sync classified DONE PG (+1 table / +1 fn / +2 triggers / +1 audit row) · Directus (none) · Nuxt (package authored, not deployed) · AgentData (+7 reports) · Qdrant (none — read-only)
23 Tests (4000x baseline) DONE 1138 PASS (1113 baseline + 25 new in tests/test_iu_core_4000x_auto_refresh_trigger_ui_runtime.py); 14 mechanical DOT-count bumps
24 Nuxt UI authoring DONE_WITH_EXTERNAL_BLOCKER ui-package/nuxt-iu-three-axis/ authored: 1 Vue page, 1 composable, 2 snippets, README; passes 5 conformance tests. Deploy = copy + image rebuild + single-container restart by frontend / DevOps

Summary: 23 DONE + 1 DONE_WITH_EXTERNAL_BLOCKER + 0 PARTIAL + 0 BLOCKED.

2. DOT conformance — runtime/110 against live prod

D9_conformance | config     | 9   | 9   | t
D9_conformance | event_type | 15  | 15  | t
D9_conformance | function   | 51  | 51  | t
D9_conformance | route      | 16  | 16  | t
D9_conformance | table      | 22  | 22  | t
D9_conformance | trigger    | 5   | 5   | t
D9_conformance | view       | 22  | 22  | t

Total: 140 / 140 PASS. D8 drift guard returned zero rows (no unregistered IU Core object).

3. No-hardcode audit

Domain Verification
collection names useRuntimeConfig().public.iuCoreDirectusCollection env-driven; SQL refers to iu_three_axis_envelope only via directus_registration.DIRECTUS_THREE_AXIS_COLLECTION constant (one place of definition).
Qdrant connection container env QDRANT__SERVICE__API_KEY discovered via docker inspect, never written into source or KB report bodies.
Directus token container env NUXT_DIRECTUS_SERVICE_TOKEN discovered at runtime; never logged.
SQL function names every dot_command target appears in runtime/110 _iu_core_expect SSOT (TestDotCommands.test_every_command_target_is_dot_visible).
event / route taxonomy unchanged from 480x (registry-backed, no string literal outside _iu_core_expect).
Nuxt deploy steps compose.snippet.yml adds one env entry; no service image / port / volume redefinition.

4. Five-layer impact (final)

layer impact
PG migration 024 (+1 table, +1 fn, +2 triggers); runtime/340 (1 audit row). All gates remain in 2400x-final state (write-gates false, master+worker true with dry_run).
Directus none. 2400x state preserved (iu_three_axis_envelope collection + Administrator READ).
Nuxt package authored under ui-package/ in iu-cutter; no env / build / restart of incomex-nuxt performed. Exact deploy residual recorded.
AgentData +7 KB reports under .../v0.6-iu-core-4000x-….
Qdrant none. Read-only retrieval / payload audit only; iu_core_iu_chunks 61 points untouched; production_documents untouched.
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-4000x-ui-runtime-acceptance-monitoring-rollout-open-goal/06-acceptance-matrix-and-dot.md