KB-20BC

IU CUT Operational Pipeline — 05 Điều 38 CUT + VERIFY_CUT + COMPLETE

5 min read Revision 1
iu-cut-pipelinedieu38cutverify-cutcompletecleanup-scheduled3-axis-verified2026-05-26

05 — Điều 38 CUT + VERIFY_CUT + COMPLETE result

Gate flips around CUT

fn_iu_op_cut requires iu_core.composer_enabled=true. Per Phase 3 pilot pattern, flip-execute-restore:

pre-CUT  : iu_core.composer_enabled = false → true  (flip)
CUT runs
post-CUT : iu_core.composer_enabled = true  → false (restored, see Phase F report)

queue.job_substrate.enabled=true was already set at start of Phase D (for signal jobs) and was restored to false at end of mission.

CUT call (Step 5; second attempt after content_text patch)

SELECT public.fn_cut_apply(
  p_cut_request_id := '777b1297-...',
  p_apply          := true,
  p_actor          := 'claude_opus_4_7'
);
→ {
  "status":         "cut_done",
  "cut_run_id":     "bb4d7cbf-3f48-4906-b147-17d098d423e4",
  "alias_result.applied":              "true",
  "alias_result.composer_pre":         true,
  "alias_result.pieces_created_count": "8",
  "alias_result.source_hash_resolved": "fdacc492e62c40f1364392943a310769",
  "alias_result.inner_result.ok":      true,
  "alias_result.inner_result.applied": true,
  "alias_result.inner_result.pieces_created": [
    "a6c6de03-42fb-48f1-b672-2e281adbed63",
    "9763137e-1e46-4305-8886-0c2cb86a35b5",
    "7048eb53-e2bd-4c06-a0ad-bbf652e40ec2",
    "42a5f11c-373d-4ced-bd97-d92bd3c246bd",
    "a3c0584b-0e07-43f0-911e-e43d4f15389d",
    "8d84d89e-1d60-4ebe-8b61-790e6ae67d27",
    "54ba2e05-f89d-42b4-9311-5c39e9759a72",
    "62185fc6-e2d4-4126-9866-911abf6769af"
  ]
}

Non-blocking warnings (16 lines): Birth gate L1 PILOT-ONLY: P-pub1 missing — production sẽ BLOCK and P-pub2 missing — same pattern as Phase 3 pilot (per memory: "Điều 0-G P-pub1/P-pub2 60 non-blocking WARNs"). Not fatal in pilot mode.

State transitions: mark_verified → cut_in_progress → cut_done. Signal job 2901808d-f0b9-45cb-a633-4487126099fc queued (cut.cut).

VERIFY_CUT call (Step 6)

SELECT public.fn_cut_verify_cut('777b1297-...'::uuid, 'claude_opus_4_7');
→ {
  "status":         "cut_verified",
  "verdict":        "verified",
  "alias_result.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": 8
  }
}

State transition: cut_done → cut_verified. Signal job ada44b63-b789-4409-8a01-9e32c8d2432e queued (cut.verify_cut).

COMPLETE_CUT call (Step 7)

SELECT public.fn_cut_complete('777b1297-...'::uuid, 'claude_opus_4_7');
→ {
  "status":               "cleanup_scheduled",
  "completed_at":         "2026-05-26T16:41:34.629456+00",
  "cleanup_ttl_days":     15,
  "cleanup_scheduled_at": "2026-06-10T16:41:34.629456+00"
}

fn_cut_complete performs two transitions in one transaction: cut_verified → completed then completed → cleanup_scheduled. Signal job 31623bd0-3b24-4d18-a5f3-a67d589ed2ad queued (cut.complete).

Cleanup TTL = 15 days, matching fn_iu_op_cleanup_dry_run's default. No worker is wired to execute cleanup yet — cleanup_scheduled is a marker; actual cleaned transition requires a future executor (see 08-next-batch-plan.md).

8 IUs created (durable)

canonical_address       | section_type | section_code | sort_order | lifecycle_status
DIEU-38-v3.0#title      | heading      | title        |          1 | draft
DIEU-38-v3.0#PHAN-1     | heading      | phan_1       |          2 | draft
DIEU-38-v3.0#MT1        | section      | mt1          |          3 | draft
DIEU-38-v3.0#MT2        | section      | mt2          |          4 | draft
DIEU-38-v3.0#MT3        | section      | mt3          |          5 | draft
DIEU-38-v3.0#PHAN-2     | section      | phan_2       |          6 | draft
DIEU-38-v3.0#PHAN-3-5   | section      | phan_3_5     |          7 | draft
DIEU-38-v3.0#footer     | paragraph    | footer       |          8 | draft

IU UUIDs:

  • a6c6de03-42fb-48f1-b672-2e281adbed63
  • 9763137e-1e46-4305-8886-0c2cb86a35b5
  • 7048eb53-e2bd-4c06-a0ad-bbf652e40ec2
  • 42a5f11c-373d-4ced-bd97-d92bd3c246bd
  • a3c0584b-0e07-43f0-911e-e43d4f15389d
  • 8d84d89e-1d60-4ebe-8b61-790e6ae67d27
  • 54ba2e05-f89d-42b4-9311-5c39e9759a72
  • 62185fc6-e2d4-4126-9866-911abf6769af

All 8 have lifecycle_status='draft' (Điều 38 is itself DRAFT v3.0). When Điều 38 is enacted, these draft IUs will need lifecycle promotion or supersession.

End-of-Phase-E state

Field Value
status cleanup_scheduled
mark_verdict approved
cut_verdict verified
cut_run_id bb4d7cbf-3f48-4906-b147-17d098d423e4
completed_at 2026-05-26 16:41:34
cleanup_scheduled_at 2026-06-10 16:41:34
pieces (durable IUs) 8

Three-axis verification PASS on both VERIFY_MARK and VERIFY_CUT; no_vector_ok=true; zero problems.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-cut-operational-pipeline-copy-mark-verify-cut/05-dieu38-cut-verify-result.md