KB-5E9D

91000x · 05 — Regression matrix (Phase E PASS)

6 min read Revision 1
iu-core91000xregressiond9ssot2026-05-26

91000x · 05 — Regression matrix

Phase: E
Status: PASS
Date: 2026-05-26

Live counts (post-apply, captured 2026-05-26 01:23 UTC)

Surface Pre-apply Post-apply Delta Notes
dot_iu_command_catalog rows 30 34 +4 cleanup, unregister, mark_article, verify_mark_manifest
public schema functions 470 474 +4 fn_iu_staging_cleanup, fn_iu_staging_unregister, fn_iu_mark_create_manifest, fn_iu_verify_mark
iu_core_retention_policy rows 6 6 0 D36 Macro A had pre-inserted; ON CONFLICT preserved
iu_core.iu_staging_record rows 3 3 0 proof was BEGIN/ROLLBACK
iu_core.iu_staging_payload rows 4 4 0 proof was BEGIN/ROLLBACK
iu_vector_sync_point rows 152 152 0 no MARK/VERIFY-MARK path to VSP
public.information_unit rows 175 175 0 no IU creation (no CUT applied)
dot_iu_command_run rows 18 18 0 proof audit writes rolled back

CHECK constraints (iu_core.iu_staging_record)

Constraint Before 037 After 037 Status
iu_staging_record_lifecycle_chk 6 vocab (no pending_review) 7 vocab incl. pending_review swapped ✅
iu_staging_record_consumed_consistency_chk required {consumed_at, consumed_by_run_id} required {consumed_at, consumed_by_run_id, approved_at, approval_doc_id} tightened ✅
iu_staging_record_expiry_ceiling_chk absent expires_at <= created_at + 30 days added ✅
iu_staging_record_vector_excluded_chk vector_excluded=true vector_excluded=true preserved ✅
iu_staging_record_kind_chk 8 staging_kinds 8 staging_kinds preserved ✅
iu_staging_record_source_kind_chk {agent,user,system,import} {agent,user,system,import} preserved ✅
iu_staging_record_approved_consistency_chk unchanged unchanged preserved ✅
iu_staging_record_expiry_chk expires_at > created_at expires_at > created_at preserved ✅

DIEU axis invariants (must be preserved)

doc_code | count
---------+------
DIEU-28  |    27
DIEU-32  |    23
DIEU-35  |    36

✅ All match 70000x baseline (27/23/36).

D9 conformance

90000x report 09 expected D9 to bump fn 67 → 73 (+6) and DOT 30 → 36 (+6) after full apply. Since 040/041 not applied, the actual deltas are:

  • fn delta: +4 (target was +6) — gap = fn_iu_cut_from_manifest + fn_iu_verify_cut
  • DOT delta: +4 (target was +6) — gap = dot_iu_cut_from_manifest + dot_iu_verify_cut_result

SSOT (cutter_agent/iu_core/dot_commands.py _REGISTRY) intentionally NOT bumped this run per [[feedback-pinning-tests-bump-per-macro]]:

the rule is bump SSOT in the same commit as full apply, not at authoring time.

Since this macro only applied 4 of 6 planned objects, bumping _REGISTRY by +4 leaves a permanent half-state in the repo. Either:

  1. Bump SSOT by +4 now AND commit, then bump again by +2 when 040/041 ship in 100000x macro (two-step ladder).
  2. Defer ALL SSOT bumps to 100000x macro, bumping +6 in one commit.

Operator preference recommended in 07-carry-forward.md.

Pinning tests

Pinning test Site Old New (target) This run
test_dot_command_catalog_size tests/pinning/test_dot_command_catalog.py 30 36 (after 040/041) NOT BUMPED
test_retention_policy_count tests/pinning/test_retention.py 4 (memory) / 6 (live) 6 (unchanged) MEMORY DRIFT flagged
test_staging_lifecycle_vocab NEW — tests/pinning/test_staging_lifecycle.py n/a 7-vocab incl. pending_review NEW TEST NEEDED (carry-forward)
test_no_vector_excluded_invariant tests/pinning/test_no_vector.py 3-layer 4-layer (add structural-absence Layer 4) EXTENSION NEEDED (carry-forward)
test_d9_expected_fn_count D9 conformance suite 67 (memory) → unknown (live) 73 after 040/041 NOT BUMPED
test_d9_expected_dot_count D9 conformance suite 30 (memory) 36 after 040/041 NOT BUMPED

Pre/post pg_dump

  • pre: /tmp/pre-91000x-20260526T010854Z.dump — 82,096,758 bytes
  • post: /tmp/post-91000x-20260526T012335Z.dump — 82,111,840 bytes
  • delta: +15,082 bytes (consistent with 4 new functions + 4 DOT row INSERTs + 3 CHECK swaps)

What is UNCHANGED

Object Pre Post Verification
public.information_unit 175 175 live SELECT
iu_vector_sync_point 152 152 live SELECT
Qdrant iu_core_iu_chunks 149 (not touched — no write surface) structural
entity_species SPE-NVS id=51 id=51 live SELECT
collection_registry COL-IUS-001/002 190/191 190/191 live SELECT
birth_registry SPE-NVS / COL-IUS-001 / COL-IUS-002 3 rows status=born unchanged not queried this run — no birth-tier touch
DIEU-28/32/35 27/23/36 27/23/36 live SELECT
production_documents (any DB) absent absent structural
Nuxt deployment up up (untouched) container status
PR #669 untouched no repo write
1305+ pinning tests unchanged no code change

Gate posture

All 11 IU Core write gates remained inert throughout. No global retention enable. iu_core.composer_enabled NOT toggled this macro (relevant only for CUT path, which was deferred).

Phase E verdict: PASS.

No drift in protected surfaces; the +4 fn / +4 DOT delta matches the safe subset applied; deferred SSOT bumps documented for 100000x decision.

  • [[feedback-pinning-tests-bump-per-macro]] — preserved at live D9 surface.
  • [[feedback-honest-channel-block-beats-partial-trigger]] — preserved (no half-state).
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-91000x-apply-mark-to-cut-pipeline-and-proof/05-regression-matrix.md