KB-2D5B

90000x · 09 — Regression Matrix (live counts + expected post-apply deltas)

6 min read Revision 1
iu-core90000xregression-matrixd9-conformancessot-bumpspinning-tests2026-05-25

90000x · 09 — Regression Matrix

Phase: I (regression component) Status: baseline captured; SSOT bumps and pinning-test updates DEFERRED until operator applies 037–041.

Live counts (2026-05-25, captured this run)

Surface Pre-apply (live) Authored delta Post-apply (expected) SSOT site to bump
dot_iu_command_catalog rows 30 +6 36 cutter_agent/iu_core/dot_commands.py::_REGISTRY
iu_core_retention_policy rows 4 +2 6 pinning test in 540x suite
iu_core.iu_staging_record rows 3 0 3 (until proof step 1 inserts) n/a
iu_core.iu_staging_payload rows 4 0 4 (until proof step 1 inserts 3) n/a
CHECK constraints on iu_core.iu_staging_record 7 +1 swap, +1 swap, +1 new 8 (lifecycle swap, consumed swap, expiry-ceiling new) n/a
Functions in public schema (sample) fn_iu_compose, fn_iu_reconstruct_source, fn_iu_subtree, fn_iu_collection_add_piece, fn_iu_composer_enabled, fn_iu_core_retention_cleanup, fn_iu_staging_healthcheck +6 +6 D9 expected_fn 67 → 73 (assumed 67 baseline; verify pre-apply)
DOT-tier objects in D9 (TBD via D9 healthcheck) +6 +6 D9 expected_dot

Note: this macro intentionally did NOT bump SSOT (_REGISTRY) or pinning tests, per [[feedback-honest-channel-block-beats-partial-trigger]] and [[feedback-pinning-tests-bump-per-macro]] — the rule is "bump SSOT in the same commit as apply, not at authoring time".

DIEU axis invariants (must be preserved post-apply)

Axis Expected count Source
DIEU-28 27 70000x memory baseline
DIEU-32 23 70000x memory baseline
DIEU-35 36 70000x memory baseline

fn_iu_verify_cut does NOT check these directly (it's per-run), so an operator-side post-proof query is part of the regression block:

SELECT dieu_code, count(*) FROM iu.information_unit
WHERE dieu_code IN ('DIEU-28','DIEU-32','DIEU-35') GROUP BY dieu_code ORDER BY dieu_code;

If counts change after 037-041 apply (no proof yet), STOP — apply caused unintended axis drift.

D9 conformance expected state

Pre-apply baseline (from 70000x memory + 50000x adjustment): 181 object D9 surface, 7/7 PASS. Each new fn/DOT bumps expected_* counters by 1. After 037-041 + SSOT bumps:

  • 6 new fns → fn count bump
  • 6 new DOTs → DOT count bump
  • 2 new retention rows → retention count bump
  • 3 CHECK constraint changes → not D9-counted (CHECKs are not catalog-tier)

Operator commit message should read:

apply migrations 037-041 + 90000x mark→cut pipeline; SSOT bumps 30→36 DOT, 67→73 fn, 4→6 retention; D9 expected 181→[new].

Pinning-test bumps required (post-apply)

Pinning test Site Old New
test_dot_command_catalog_size tests/pinning/test_dot_command_catalog.py 30 36
test_retention_policy_count tests/pinning/test_retention.py 4 6
test_staging_lifecycle_vocab NEW — tests/pinning/test_staging_lifecycle.py n/a check {pending,pending_review,approved,consumed,rejected,expired,cleaned}
test_no_vector_excluded_invariant tests/pinning/test_no_vector.py exists extend to assert 4 covering surfaces (CHECK + sidecar 190/191 + view + iu_vector_sync_point shape)
test_d9_expected_fn_count D9 conformance suite 67 (per memory) 73
test_d9_expected_dot_count D9 conformance suite (TBD) +6

What stays UNCHANGED (must verify post-apply)

Object Pre-count Post-expected Verification SQL
iu.information_unit total (per 70000x: 175) unchanged (unless proof step 4 ran live, then +2 from fixture) SELECT count(*) FROM iu.information_unit;
directus.production_documents (per 25000x: 9456+drift) unchanged SELECT count(*) FROM production_documents;
iu_vector_sync_point 152 (live) unchanged SELECT count(*) FROM iu_vector_sync_point;
Qdrant iu_core_iu_chunks 149 (per memory) unchanged external (Qdrant API)
entity_species SPE-NVS id=51 present present SELECT id FROM entity_species WHERE entity_code='SPE-NVS';
collection_registry COL-IUS-001/002 ids 190/191 unchanged live id select
birth_registry SPE-NVS/COL-IUS-001/002 3 rows, all status=born unchanged live select

Tests not yet runnable

The macro is intended to bump tests 1305 → 1305+ and D9 7/7 → 7/7 [new total]. Since 037-041 are authored-only, tests stay at their current passing level. The operator must:

  1. apply 037-041,
  2. update _REGISTRY and pinning literals,
  3. run pytest tests/ (expecting 1305 + new test count),
  4. run D9 healthcheck (SELECT fn_iu_healthcheck_d9() or equivalent),
  5. then commit.

Healthcheck

The existing fn_iu_staging_healthcheck should be called post-apply:

SELECT * FROM fn_iu_staging_healthcheck();

If this fn schema is unknown, a Carry-Forward task is to author its expected output for 90000x post-state.

  • [[feedback-pinning-tests-bump-per-macro]] — bump rule.
  • [[feedback-honest-channel-block-beats-partial-trigger]] — why SSOT stays pinned at live D9 surface.
  • 70000x reports — D9 conformance baseline.
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-90000x-mark-to-cut-automated-pipeline-hardening/09-regression-matrix.md