KB-5471 rev 2

18b — DOT-119 Repair Execution Pack (Rev 3)

6 min read Revision 2
iu-0dot-119repairexecution-packumbrellagatedrev3

18b — DOT-119 Repair Execution Pack

Date: 2026-05-05 | Rev 3 Status: PASS as umbrella/gated execution design — GPT approved rev3. Controlling: 18a rev4 FINAL (design PASS) Nature: Umbrella gated execution design. Mỗi phase = 1 Claude Code prompt riêng biệt, soạn SAU khi phase trước PASS. 18b KHÔNG phải prompt dispatch. Rev 3 patches: umbrella reframe, P0 KB report, DDL tool preflight, HC defer default, script exact-content contract, exit codes align 18a, IU dry-run only, rollback dependency check, manual provenance. Scope: DDL metadata + seed + DOT-119 script rewrite + HC. Không IU trigger (18c).


§0. Channel / Authority Matrix

Hành động Luật chủ quản Kênh/Path
ALTER TABLE collection_registry (DDL 3 cols) Đ36 — Collection Protocol (schema owner) SQL DDL trong transaction. Preflight: check DOT schema/migration tool trước.
UPDATE collection_registry (seed metadata) Đ36 — Registry metadata path SQL UPDATE trong transaction, verify distribution
DOT-119 script rewrite Đ35 — DOT Governance (tool lifecycle) VPS bash: atomic write (temp → syntax check → no-clobber → chmod → mv)
HC registration (system_health_checks) Đ43 — Context Graph / Health-check path DEFER by default. Chỉ execute nếu P3 chứng minh legal path.
HC KB query doc Đ43 — KB authorized path Agent Data upload_document
Birth strategy semantics Đ4 — Birth Process Law Đã chốt 18a rev4, không execute thêm
fn_birth_registry_auto Đ4 — KHÔNG THUỘC 18b scope Không sửa. Chỉ hash verify.

§1. Scope + Nature

18b là umbrella execution design, không phải prompt chạy một lần.

Workflow:

  1. 18b PASS → soạn P0 runtime prompt → dispatch Claude Code.
  2. P0 report PASS → soạn P1 runtime prompt → dispatch.
  3. P1 report PASS → Opus đọc v1 source + viết exact script → soạn P2 runtime prompt → dispatch.
  4. P2 report PASS → soạn P3 runtime prompt → dispatch (hoặc defer HC).

Mỗi phase prompt soạn riêng, sau khi phase trước PASS. Opus không soạn P1 prompt trước khi P0 report được duyệt.

DO: DDL 3 cols, seed birth identity metadata, rewrite DOT-119 script, register HC (nếu path hợp pháp). DO NOT: Không IU trigger (18c). Không sửa fn_birth_registry_auto. Không tạo IU rows. Không Pack 2B. Không Directus manual field insert. Agent không tự viết script từ pseudocode.


§2. Exit Code Contract (align 18a rev4)

Code Meaning
0 Success
1 Usage/help (no mode specified)
10 Unclassified — collection chưa phân loại
11 Invalid metadata — strategy/column mismatch hoặc missing
12 No-clobber — script chứa function replacement
13 Fallback missing — fn v2 synthetic fallback không detect được
14 Trigger mismatch — existing trigger không khớp expected
20 Execution failed / rollback
30 Permission / tooling error

§3. 18b-P0 — Read-only Preflight + Seed-mapping Report

Mục tiêu: Chỉ khảo sát. Không sửa gì. Output = mapping report trên KB.

P0-Step 1: Baselines

-- 0a: 3 fields chưa tồn tại
SELECT column_name FROM information_schema.columns
WHERE table_name = 'collection_registry'
  AND column_name IN ('birth_code_strategy','birth_code_column','birth_identity_source');
-- Expected: 0 rows. Nếu > 0 → STOP.

-- 0b: fn_birth_registry_auto v2 hash
SELECT md5(pg_get_functiondef('fn_birth_registry_auto'::regproc)) AS fn_hash_baseline;

-- 0c: Birth trigger count
SELECT count(*) AS current_birth_triggers FROM pg_trigger
WHERE tgname LIKE 'trg_birth_%' AND NOT tgisinternal;

-- 0d: Birth registry count
SELECT count(*) AS current_birth_records FROM birth_registry;

-- 0e: DOT-119 script metadata
-- bash: ls -la /opt/incomex/dot/bin/dot-birth-trigger-setup
-- bash: md5sum /opt/incomex/dot/bin/dot-birth-trigger-setup
-- bash: wc -l /opt/incomex/dot/bin/dot-birth-trigger-setup

P0-Step 2: Script inspection

grep -c 'CREATE OR REPLACE FUNCTION fn_birth_registry_auto' \
  /opt/incomex/dot/bin/dot-birth-trigger-setup
# Expected: > 0 (v1 stale). Nếu 0 → STOP.

P0-Step 3: Schema/migration tool preflight

SELECT code, name, status, operation, file_path
FROM dot_tools
WHERE code ILIKE '%SCHEMA%'
   OR code ILIKE '%MIGR%'
   OR code ILIKE '%ALTER%'
   OR name ILIKE '%schema%'
   OR name ILIKE '%migration%'
   OR name ILIKE '%alter%'
ORDER BY code;
-- Tool found → STOP chờ decision. No tool → raw DDL authorized per Đ36.

P0-Step 4: Seed-mapping table

SELECT
  tgrelid::regclass AS table_name,
  tgname AS trigger_name,
  tgfoid::regproc AS function_name,
  pg_get_triggerdef(oid) AS trigger_def
FROM pg_trigger
WHERE tgname LIKE 'trg_birth_%' AND NOT tgisinternal
ORDER BY table_name;

Mapping rules + manual classifications + provenance: xem 18b rev3 full content.

P0 Gate

Report path: knowledge/dev/laws/dieu44-trien-khai/reports/dot119-repair-p0-readonly-mapping-report.md

HARD STOP sau upload.


§4–§6: P1 (DDL+seed), P2 (script rewrite), P3 (HC)

Xem 18b rev3 full content. Mỗi phase soạn prompt riêng sau phase trước PASS.


§7–§11: Rollback, STOP conditions, Report requirements, Hard boundaries, Hard stop

Xem 18b rev3 full content.


18b rev 3 | 2026-05-05 | Opus 4.6 | PASS GPT review. Umbrella gated design. P0→P1→P2→P3. Chờ P0 dispatch.