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. |