KB-49EE rev 3

IU-0 Pack 2 Option A — Governance Cleanup Execution Pack (rev3)

7 min read Revision 3
iu-0pack-2option-agovernance-cleanupexecution-packdesignrev3

IU-0 Pack 2 Option A — Governance Cleanup Execution Pack

Date: 2026-05-04 Status: DESIGN rev3 — chờ GPT/User approve dispatch Scope: Governance cleanup only — trigger registration + collection registry Ranh giới: Không DDL. Không IU production rows. Không CRUD/outbox/Qdrant/Directus exposure. Rev 2: Patch theo GPT review — pg_get_functiondef, transaction wrap, rollback marker, duplicate SKIP logic, Directus exposure verify, pre-write SQL review gate. Rev 3: Thêm Điều 20 vào §2 Inputs + §3 Legal basis.


§1. Objective / Non-goals

Objective: Đóng governance debt từ Pack 1 — đăng ký 3 triggers mới với TRIGGER-GUARD + đăng ký 2 bảng mới vào collection_registry. Nền sạch trước bước tiếp.

Non-goals:

  • Không tạo IU production rows
  • Không CRUD pilot
  • Không outbox/worker
  • Không Qdrant/vector
  • Không Directus managed collection exposure
  • Không legacy vector mutation
  • Không DDL (CREATE/ALTER/DROP TABLE/TRIGGER/FUNCTION)
  • Không mở Pack 2B/2C execution

§2. Inputs — đọc trước khi execute

  1. knowledge/dev/laws/dieu44-trien-khai/design/10-iu0-pack2-readiness-and-scope-decision-pack.md
  2. knowledge/dev/laws/dieu44-trien-khai/reports/iu0-pack1-execution-report.md
  3. knowledge/dev/laws/dieu44-trien-khai/design/09a-iu0-pack1-vocab-schema-ddl-design.md rev4
  4. knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-review-opus-pack2-readiness-report-and-next-directive-2026-05-04.md
  5. knowledge/dev/laws/dieu44-trien-khai/reviews/gpt-review-iu0-pack2a-execution-pack-2026-05-04.md
  6. knowledge/dev/laws/dieu20-thiet-ke-truoc-trien-khai.md

Luật Áp dụng
HP NT1 SSOT Registry phải khớp runtime. Trigger tồn tại nhưng chưa đăng ký = drift
HP NT9 Không chắc = sai Discovery trước, write sau. Không giả định cơ chế TRIGGER-GUARD
HP NT13 PG First Inspect PG runtime trước mọi write
Đ4 Birth Không tạo IU rows → không đụng birth production
Đ7 Assembly First PG metadata insert, không app code
Đ8 Dependency Inspect dependency trước registration
Đ10–13 Operations Collection registry = Live Catalog requirement
Đ14 No Duplicate Check duplicate trước mọi insert metadata
Đ20 Thiết kế trước triển khai Discovery + design trước write. Execution pack này là sản phẩm Đ20
Đ44 Giữ đúng hướng IU, chưa CRUD/vector

§4. Execution — Giai đoạn Discovery (READ-ONLY)

Claude Code chạy tất cả discovery trước. Không write gì trong giai đoạn này.

D1. Inspect TRIGGER-GUARD event trigger + function body

docker exec postgres psql -U directus -d directus -c "
  SELECT e.evtname,
         e.evtevent,
         e.evtfoid::regproc AS function_name,
         pg_get_functiondef(e.evtfoid) AS function_def
  FROM pg_event_trigger e;
"

D2. Inspect cơ chế whitelist/registry

Từ function def D1, xác định:

  • TRIGGER-GUARD kiểm tra whitelist bảng nào?
  • Cơ chế đăng ký trigger hợp lệ là gì?
  • Nếu chỉ log WARNING mà không có registry → ghi nhận "no registration mechanism".
docker exec postgres psql -U directus -d directus -c "
  SELECT table_name FROM information_schema.tables
  WHERE table_schema = 'public'
  AND (table_name LIKE '%trigger%' OR table_name LIKE '%ddl%' OR table_name LIKE '%audit%' OR table_name LIKE '%whitelist%')
  ORDER BY table_name;
"

Nếu tìm thấy bảng liên quan → \d <table_name> + SELECT * FROM <table_name> LIMIT 10;

D3. Inspect collection_registry schema + convention

docker exec postgres psql -U directus -d directus -c "\d collection_registry"
docker exec postgres psql -U directus -d directus -c "
  SELECT collection_name, governance_role, status FROM collection_registry ORDER BY collection_name LIMIT 20;
"
docker exec postgres psql -U directus -d directus -c "
  SELECT * FROM collection_registry WHERE collection_name IN ('information_unit', 'unit_version');
"

D4. Safety checks

docker exec postgres psql -U directus -d directus -c "
  SELECT 'information_unit' AS tbl, count(*) FROM information_unit
  UNION ALL SELECT 'unit_version', count(*) FROM unit_version;
"
docker exec postgres psql -U directus -d directus -c "
  SELECT collection FROM directus_collections WHERE collection IN ('information_unit', 'unit_version');
"

§5. Checkpoints — STOP conditions

# Điều kiện Hành động
S1 TRIGGER-GUARD function body không rõ cơ chế registry STOP F1. Báo cáo function def.
S2 Cơ chế đăng ký cần DDL STOP F1. Không DDL.
S3 collection_registry schema/convention không rõ STOP F3. Đề xuất decision.
S4 Duplicate xung đột STOP F3. (Đã có + đúng → SKIP)
S5 IU tables rows > 0 STOP ALL.
S6 IU trong directus_collections STOP ALL.
S7 Không derive được SQL write an toàn STOP.

§6. Pre-write SQL Review Gate

Sau discovery, TRƯỚC KHI write, Claude Code PHẢI:

  1. In ra SQL write chính xác (không template/placeholder).
  2. Xác nhận chỉ INSERT metadata, không DDL.
  3. Xác nhận rollback SQL tương ứng.
  4. Không derive được → STOP.

§7. Giai đoạn Write (CHỈ NẾU DISCOVERY OK + SQL REVIEW OK)

Mọi write trong transaction: BEGIN → duplicate check → write → verify → COMMIT. Verify fail → ROLLBACK.

W1. Trigger registration (nếu có cơ chế)

Transaction wrap, marker _dot_origin = 'iu0_pack2a_20260504' hoặc description marker. TRIGGER-GUARD chỉ log WARNING → W1 = SKIP.

W2. Collection registry

Transaction wrap, INSERT theo convention D3, marker cho rollback. Duplicate đúng → SKIP.


§8. Cấm

Không DDL. Không INSERT vào information_unit/unit_version. Không CRUD/outbox/Qdrant/Directus API/legacy vector. Không Pack 2B/2C.


§9. Rollback

Marker iu0_pack2a_20260504 hoặc PK. Không rollback an toàn → STOP trước write.

W2 rollback: DELETE FROM collection_registry WHERE collection_name IN ('information_unit', 'unit_version');


§10. Verify

V1 trigger registration, V2 collection registry (2 rows), V3 IU count = 0+0, V4 directus_collections = 0, V5 no new tables.


§11. Report format

Upload: knowledge/dev/laws/dieu44-trien-khai/reports/iu0-pack2a-governance-cleanup-report.md

Discovery → STOP conditions → Pre-write SQL → Write actions → Verify → Overall PASS/PARTIAL/STOP.

DỪNG sau report. Không Pack 2B/2C.


CHANGELOG

Rev Ngày Thay đổi
1 2026-05-04 Draft
2 2026-05-04 GPT review: pg_get_functiondef, transaction, rollback marker, duplicate SKIP, Directus check, SQL review gate, wording
3 2026-05-04 Thêm Điều 20 vào §2 Inputs (item 6) + §3 Legal basis.
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/design/11-iu0-pack2-option-a-governance-cleanup-execution-pack.md