KB-46D0

IU-0 Pack 2A — DOT Governance Registration Report

7 min read Revision 1
iu-0pack-2adot-toolsgovernance-registrationreportrev4

IU-0 Pack 2A — DOT Governance Registration Report

Date: 2026-05-04 Pack: 2A rev4 (file 12) Outcome: Phase 3 OK (IU registered). Phase 5 STOP (tool runtime mismatch). Hard stop: no Pack 2B.


§1. Scope executed

Đăng ký information_unit + unit_version vào collection_registry qua dot-collection-register --cloud. Không DDL, không IU production rows, không raw SQL write, không Directus exposure.


§2. Preflight (PASS)

Check Kết quả
information_unit, unit_version chưa trong collection_registry PASS (0 rows)
SELECT count(*) FROM information_unit 0
SELECT count(*) FROM unit_version 0
PG tables tồn tại 2/2
DOT tools có sẵn (dot-collection-register, dot-schema-trigger-registry-ensure, dot-collection-health) PASS
dot-collection-register --help: source_kind whitelist gồm native PASS

STOP condition rev4 (IU rows >0) → KHÔNG kích hoạt. Pack 2A vẫn là readiness registration, không reclassify QT-001.


§3. Phase 3 — Register (write)

Commands chạy (đúng file 12 §5)

/opt/incomex/dot/bin/dot-collection-register information_unit \
  --governance_role observed --source_kind native --migration_state pilot --storage_role primary \
  --description "[observed] Chứa đơn vị thông tin có version và identity_profile. Lớp Kho. Thuộc Đ44 (IU-0 pilot). FK anchor tới unit_version." --cloud

/opt/incomex/dot/bin/dot-collection-register unit_version \
  --governance_role observed --source_kind native --migration_state pilot --storage_role primary \
  --description "[observed] Chứa lịch sử version immutable cho information_unit. Lớp Kho. Thuộc Đ44 (IU-0 pilot). FK tới information_unit." --cloud

Internal evidence (DOT tool stdout)

[OK] Registered information_unit as COL-176 (migration_state=pilot)
[OK]   Read-back verified (description: 125 chars)
[OK] Registered unit_version as COL-177 (migration_state=pilot)
[OK]   Read-back verified (description: 121 chars)

External evidence — collection_registry

  code   | collection_name  | governance_role | source_kind | storage_role | migration_state | desc_len | _dot_origin
---------+------------------+-----------------+-------------+--------------+-----------------+----------+-------------
 COL-176 | information_unit | observed        | native      | primary      | pilot           |      125 | DIRECTUS
 COL-177 | unit_version     | observed        | native      | primary      | pilot           |      121 | DIRECTUS

Tất cả parameters khớp file 12 §3 quyết định.

External evidence — birth_registry

 entity_code |   collection_name   | species_code | composition_level | dot_origin |        born_at        | governance_role | status
-------------+---------------------+--------------+-------------------+------------+-----------------------+-----------------+--------
 COL-176     | collection_registry | collection   | molecule          | DIRECTUS   | 2026-05-04 08:35:09Z  | governed        | born
 COL-177     | collection_registry | collection   | molecule          | DIRECTUS   | 2026-05-04 08:35:19Z  | governed        | born

Birth chain (gen_code → birth_gate → desc_guard → birth_registry_auto → auto_label_provenance) fire đầy đủ trên collection_registry insert.


§4. Phase 4 — dot-collection-health (verify)

Chạy --cloud cho cả information_unitunit_version:

Check information_unit unit_version
1 Tier-1 fields PASS PASS
5 Birth record PASS PASS
6 Species PASS PASS (observed → SKIP species hợp lệ)
7 Labels PASS PASS
14 FK constraints PASS PASS
17 No DELETE on locked PASS PASS
13 Compliance global 95.3% (143/150) 96.0% (144/150)

WARN còn lại (Check 3/4/8/10/11/15/16) thuộc system-wide pre-existing issues (198 field_type conflicts, 150 NULL atom_groups, 28 species gaps, 14 permission gaps auto-fixed) — KHÔNG liên quan IU. Không có IU-specific finding nào.


§5. Phase 5 — dot-schema-trigger-registry-ensure — STOP (runtime mismatch)

Lệnh chạy

/opt/incomex/dot/bin/dot-schema-trigger-registry-ensure --cloud

Output

[INFO] Creating trigger_registry table...
Warning: Identity file /root/.ssh/contabo_vps not accessible: No such file or directory.
root@38.242.240.89: Permission denied (publickey).

Quan sát

  • trigger_registry đã tồn tại (107 rows pre-existing).
  • IU triggers trên PG (trg_iu_birth_gate_layer1, trg_iu_birth_gate_layer2 x2 duplicate, trg_iu_updated_at) chưa có trong trigger_registry (0 rows cho IU tables).
  • unit_version: 0 triggers PG.
  • Tool kỳ vọng SSH key /root/.ssh/contabo_vps (self-loopback?) — không tồn tại trên VPS.

Mini postmortem

  • Symptom: tool fail tại bước "Creating trigger_registry table" với SSH publickey denied.
  • Root cause (suy đoán không xác nhận): tool có sub-step yêu cầu SSH ngoài-loopback hoặc remote PG access, nhưng identity file path hard-coded.
  • Quyết định: STOP theo controlling prompt ("tool behavior không khớp → STOP, không tự sửa"). Không can thiệp tool, không raw SQL, không workaround.
  • Hậu quả: trigger_registry không reflect IU triggers. Birth/governance lifecycle của IU collection_registry rows KHÔNG bị ảnh hưởng (đã chạy xong qua trigger chain trên collection_registry).
  • Theo dõi: cần follow-up riêng cho dot-schema-trigger-registry-ensure (SSH key dependency) — đề xuất ticket DOT-tooling.

§6. Cấm — đã tuân thủ

  • ✅ Không raw SQL write/delete vào registry
  • ✅ Không DDL
  • ✅ Không tạo IU production rows (count vẫn 0)
  • ✅ Không CRUD ngoài 2 lệnh dot-collection-register
  • ✅ Không Directus exposure
  • ✅ Không vector/outbox/Qdrant
  • ✅ Không Pack 2B/2C
  • ✅ Không admin fallback

§7. Follow-ups (per file 12 §10 + bổ sung từ session)

# Follow-up Blocking?
F1 Nâng governance_role observed → governed Trước production
F2 Species registration Trước governed
F3 Provenance PROV-AI TD riêng
F4 Duplicate birth triggers cleanup Non-blocking
F5 Tool whitelist gaps Non-blocking
F6 Birth path cho IU data rows (QT-002 hoặc Đ44-specific) BLOCKING trước Pack 2B
F7 NEW dot-schema-trigger-registry-ensure SSH key dependency Non-blocking, nhưng cản trigger_registry sync
F8 NEW Duplicate trigger trg_iu_birth_gate_layer2 trên information_unit Non-blocking, cleanup khi sửa F7
F9 NEW unit_version chưa có birth_gate triggers Phụ thuộc QT-002/Đ44 birth design (F6)

§8. Hard stop

KHÔNG tiếp tục Pack 2B. Phiên kết thúc tại đây. F6 (birth path IU rows) phải xong trước khi mở Pack 2B.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/reports/iu0-pack2a-dot-governance-registration-report.md