KB-72FE

Phase 3B — Regression Proof Results

5 min read Revision 1
dieu45phase-3bregressionvocab-proofdieu37-readbackheartbeat-proof2026-05-26

Phase 3B — Regression Proof Results

Five regression families executed and verified. All PASS.

1) Synthetic vocab proof — fn_iu_create accepts all 17 governed values

BEGIN/ROLLBACK loop over tac_section_type_vocab (lifecycle_status='active'). For each v_code:

fn_iu_create(
  p_canonical_address := 'DIEU45-PHASE3B-VOCAB-PROBE#'||v_code||'-'||md5(random()::text),
  p_title := 'phase3b vocab probe '||v_code,
  p_body := 'probe body '||v_code,
  p_actor := 'dieu45_phase3b_vocab_probe',
  p_unit_kind := 'law_unit',
  p_section_type := v_code
)

Assertion: status='created' AND section_type=v_code.

Result: total=17 pass=17 fail=0. ROLLBACK restores information_unit count to 192.

P-pub1/P-pub2 birth-gate warnings observed (known §0-G non-blocking; consistent with Phase 3 pilot 60 warnings).

Negative test (p_section_type:='definitely_not_valid_zzz'): expected exception raised section_type: Not in vocab. Available: appendix, article, ..., section, technical_spec (full 18-value vocab listed in error).

Orphan test (p_section_type:='section'): status=created section_type=section (preserved, no behavior change — section remains in dot_config as documented orphan).

2) Điều 37 queue pilot read-back (durable, no replay)

SELECT fn_iu_op_verify_cut(
  p_run_id := 'a64340fe-96ea-428a-a860-32e8b471b496'::uuid,
  p_actor := 'phase3b_regression');

Result:

{"alias":"fn_iu_op_verify_cut","run_id":"a64340fe-96ea-428a-a860-32e8b471b496",
 "verdict":"verified",
 "inner_result":{"ok":true,"verdict":"verified","problems":[],
                 "axis_a_ok":true,"axis_b_ok":true,"axis_c_ok":true,
                 "no_vector_ok":true,"pieces_count":17}}

Reconstruct:

SELECT count(*) FROM fn_iu_reconstruct_source(
  p_doc_code := 'knowledge/dev/laws/dieu37-governance-organization-law.md');

17 pieces.

(Note: fn_iu_reconstruct_source arg name is p_doc_code, not p_source_ref. cut populates information_unit.doc_code from p_source_ref verbatim per [[feedback-cut-doc-code-from-source-ref-not-canonical-address]].)

IU + version_anchor integrity:

Metric Value
IU count for Điều 37 17
with version_anchor_ref 17
with content_anchor_ref 17

3) Bounded MARK/CUT fixture — not separately re-run

Mission allows skipping the MARK/CUT fixture if Phase 3 read-back proves replay viability. (2) above shows the Phase 3 Điều 37 run reconstructs cleanly, and D31-I9 ([[05-queue-d31-integrity-pack]]) re-runs the MARK→CUT-without-approval path on synthetic input in BEGIN/ROLLBACK and gets the expected refusal_code=not_approved shape.

Combined coverage = end-to-end MARK→VERIFY-CUT path verified + cut-without-approval refusal path verified. No durable fixture needed.

4) Heartbeat caller proof (Option A)

Per [[03-heartbeat-caller-hardening]]:

  • 6/6 refusal proofs pass (iu_outbound_default protection, kind-vocab, status-vocab, name-required, payload denylist, gate-off).
  • Positive synthetic tick passes (phase3b_synthetic_external ticks=1, metadata pinned with ping_actor/ping_origin/ping_at/ping_function), then ROLLBACK leaves queue_heartbeat count at 2 unchanged.
  • fn_queue_stale_check() still reports iu_outbound_default stale (age 360,812s) — silent gap visibly surfaced; no false-heal.

5) D30 + D31 suites

  • D30: 10/10 PASS — see [[04-queue-d30-regression-pack]].
  • D31: 9/9 PASS — see [[05-queue-d31-integrity-pack]].

Aggregate

Family Probes Pass Fail
Synthetic vocab (17 governed + invalid + orphan) 19 19 0
Điều 37 read-back (verify_cut + reconstruct + IU integrity) 3 3 0
Heartbeat caller (refusals + positive) 7 7 0
D30 regression 10 10 0
D31 integrity 9 9 0
Total 48 48 0

Durable side effects of regression (none)

Post all probes:

  • information_unit count: 192 (unchanged from 192 baseline)
  • event_outbox count: 134,803 (unchanged)
  • iu_vector_sync_point count: 152 (unchanged)
  • job_queue count: 6 (unchanged — Phase 3 pilot jobs in succeeded state)
  • job_dead_letter count: 0 (unchanged)
  • queue_heartbeat count: 2 (unchanged)
  • All gates at safe defaults
  • iu_outbound_default row identical to baseline

The only Phase 3B durable mutations are those documented in [[02-fn-iu-create-vocab-gap-fix]] and [[03-heartbeat-caller-hardening]] (5 dot_config rows, 1 view, 2 functions). No durable regression-probe pollution.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-dieu45-phase-3b-queue-cutter-hardening/06-regression-proof-results.md