KB-F643

12d — IU-0 Pack 2A: QT-003R Process Addendum

9 min read Revision 1
iu-0pack-2aqt-003rprocess-addendumbirth-proceduresretroactive

12d — IU-0 Pack 2A: QT-003R Process Addendum

Date: 2026-05-04 | Rev 1 Status: DRAFT — chờ GPT/User approve trước khi patch canonical birth-procedures.md Scope: Bổ sung biến thể QT-003R vào taxonomy quy trình quản lý thực thể Trigger: Pack 2A discovery — bảng PG đã tồn tại, 0 rows, thiếu governance registration Tham chiếu: gpt-analysis-need-qt003r-retroactive-collection-registration-2026-05-04.md


§1. Existing Process Taxonomy — Tóm tắt

Nguồn: knowledge/dev/architecture/birth-procedures.md v3.0 + knowledge/ops/processes/birth-process-v1.md v1.0

QT Tên Mục đích Khi nào
QT-001 Nhập khai sinh (Backfill) Entity/data rows đã tồn tại → đưa vào birth_registry 1 lần per collection, xong chuyển QT-002
QT-002 Khai trước sinh sau (Birth-first) Entity mới → birth record TRƯỚC, INSERT entity SAU Vĩnh viễn, mọi DOT tạo entity
QT-003 Khai báo collection mới Collection mới → species + birth trigger + mô tả TRƯỚC KHI dùng Khi tạo collection mới
QT-005 Thăng cấp / hạ cấp Chuyển governance_role khi business thay đổi Khi cần nâng observed→governed hoặc ngược lại
QT-006 Khai tử Entity bị xóa → cập nhật birth_registry Khi DELETE entity

§2. Gap — Pack 2A không khớp quy trình nào

Pack 2A (đăng ký information_unit + unit_version vào collection_registry) không khớp:

  • Không phải QT-001: QT-001 backfill data rows đã tồn tại. IU tables có 0 data rows, không có gì backfill.
  • Không phải QT-002: QT-002 tạo entity mới (birth → INSERT). Pack 2A không tạo entity IU nào, chỉ đăng ký bảng vào catalog.
  • Gần QT-003 nhưng không khớp hoàn toàn: QT-003 giả định collection mới tạo và chưa tồn tại trên PG. Pack 2A là case retroactive — PG tables đã tồn tại từ Pack 1 DDL, nhưng chưa được đăng ký governance.

Kết luận: cần biến thể QT-003 cho case "bảng đã lỡ tạo nhưng chưa dùng".


§3. QT-003R — Retroactive Collection Registration Before First Use

Định nghĩa

Đăng ký governance cho PG table/collection đã tồn tại nhưng chưa có data rowschưa có collection_registry entry.

Điều kiện áp dụng

  1. PG table tồn tại (CREATE TABLE đã chạy).
  2. Table có 0 data rows.
  3. Chưa có row trong collection_registry cho table này.
  4. Chưa có production use.

STOP condition

Nếu table có >0 data rowsSTOP. Reclassify sang QT-001 (backfill analysis) vì đã có entity cần khai sinh trước.

Các bước

BƯỚC 1 — PREFLIGHT (read-only)
  □ Verify PG table tồn tại.
  □ SELECT count(*) FROM <table> → phải = 0. Nếu >0 → STOP, reclassify QT-001.
  □ Verify chưa có collection_registry row cho table.
  □ Verify DOT tool sẵn sàng (dot-collection-register --help).

BƯỚC 2 — RESOLVE PARAMETERS
  □ governance_role: observed (pilot) hoặc governed (production).
  □ source_kind: native / derived / registry / policy.
  □ storage_role: primary / junction / log / system.
  □ migration_state: pilot / stable / deprecated.
  □ description: theo Đ3 §A.3 form.

BƯỚC 3 — REGISTER
  □ Chạy dot-collection-register <table> --cloud với parameters từ bước 2.
  □ Không raw SQL INSERT. Không admin fallback.

BƯỚC 4 — VERIFY
  □ External: query collection_registry → row tồn tại, parameters đúng.
  □ External: query birth_registry → auto-created row cho COL-NNN.
  □ dot-collection-health: no finding cho table.

BƯỚC 5 — TRIGGER GOVERNANCE (nếu applicable)
  □ dot-schema-trigger-registry-ensure → sync trigger metadata.
  □ Nếu tool fail → STOP, ghi TD, không workaround.

BƯỚC 6 — DECLARE FOLLOW-UP
  □ Trước khi tạo data rows: phải chốt birth path (QT-002 hoặc domain-specific).
  □ Ghi F6 blocking gate.

Khác biệt so với QT-003

QT-003 QT-003R
PG table Chưa tồn tại, tạo mới Đã tồn tại
Data rows Chưa có (vì table mới) Chưa có (bắt buộc 0)
Birth trigger setup Bước 4 QT-003 Có thể đã setup sẵn (Pack 1)
Species Bước 2 QT-003 bắt buộc Có thể SKIP nếu observed
Timing Trước use → proactive Sau DDL nhưng trước use → retroactive

§4. Pack 2A — Worked Example

Step Pack 2A thực tế
Preflight information_unit 0 rows, unit_version 0 rows, cả 2 chưa trong collection_registry
Parameters observed, native, pilot, primary. Description theo Đ3 form
Register dot-collection-register --cloud → COL-176, COL-177
Verify collection_registry 2 rows, birth_registry 2 auto-rows, dot-collection-health 0 IU-specific findings
Trigger STOP (SSH key fail) → TD F7
Follow-up F6: birth path cho IU data rows blocking trước Pack 2B

§5. Near-case Classification — Tránh process explosion

Nguyên tắc: không tạo top-level process mới nếu biến thể của QT hiện tại đủ cover. Dùng suffix (QT-003R) khi domain giống nhưng timing khác.

Tình huống Phân loại
Collection đã có >0 data rows, chưa có registry QT-001 (backfill) — data rows cần khai sinh
Collection đã có, 0 rows, chưa có registry QT-003R (retroactive registration)
Collection mới, chưa tạo PG table QT-003 (proactive declaration)
Data row mới trong collection đã registered QT-002 (birth-first)
Nâng governance_role observed → governed QT-005 (thăng cấp)
Xóa entity QT-006 (khai tử)
Collection đã registered nhưng thiếu description/provenance Description Governance (Đ3/Đ4/H11) — không phải birth process
Tool registry tồn tại nhưng scanner/sync bị lỗi TD/tooling repair — không phải birth process
Governance_role cần hạ cấp QT-005 (hạ cấp)

§6. Proposed Patch cho birth-procedures.md

Vị trí chèn

Sau QT-003, trước QT-005. Giữ nguyên số hiệu QT-003R (subtype, không top-level mới).

Wording đề xuất

## QT-003R: KHAI BÁO COLLECTION ĐÃ LỠ TẠO NHƯNG CHƯA DÙNG (Retroactive)

> Biến thể QT-003 cho case: PG table đã tồn tại từ trước nhưng chưa được
> đăng ký governance và chưa có data rows. Đăng ký trước khi tạo row đầu tiên.
> **Nếu table có >0 rows → STOP, chuyển QT-001 backfill.**

BƯỚC 1 — Verify table tồn tại + 0 rows + chưa có collection_registry row
BƯỚC 2 — Resolve parameters (governance_role, source_kind, storage_role, description)
BƯỚC 3 — dot-collection-register --cloud (không raw SQL)
BƯỚC 4 — Verify: collection_registry + birth_registry + dot-collection-health
BƯỚC 5 — Trigger governance sync (nếu applicable)
BƯỚC 6 — Declare follow-up: chốt birth path (QT-002 hoặc domain-specific) trước data rows

*Tiền lệ: Pack 2A (IU-0) — information_unit/unit_version → COL-176/COL-177.*

Cập nhật bảng tổng kết

Thêm row:

| QT-003R | Khai báo collection retroactive | PG table đã tạo, 0 rows, chưa registry | Trước first data row |

CHỜ APPROVE

Không patch canonical birth-procedures.md cho đến khi GPT/User duyệt wording 12d này.


§7. Rà soát 2 vòng

Vòng 1 — OR/CP/CQ/NT/Tuyên ngôn

Tiêu chí Kết quả
NT13 PG First QT-003R verify PG table đầu tiên
§0-AU Cấm hardcode Không hardcode tên table/tool
§0-AY Không register = vô hình QT-003R giải quyết đúng gap "vô hình"
Tuyên ngôn ① Vĩnh viễn hay tạm? QT-003R = subtype vĩnh viễn trong taxonomy
Tuyên ngôn ② Cơ hội nhầm? STOP condition >0 rows = thiết kế không thể nhầm
Tuyên ngôn ③ Lỗi = cơ hội vàng Pack 2A confusion → phát hiện gap QT taxonomy

Vòng 2 — Rà sâu

  1. QT-003R có trùng QT-003 không? Không — QT-003 giả định table chưa tồn tại (Bước 0 namespace, Bước 4 birth trigger setup). QT-003R bỏ qua tạo table/trigger vì đã có.
  2. QT-003R có risk tạo process explosion? Không — là suffix variant, cùng domain "collection declaration". Không top-level mới.
  3. Near-case table §5 có bỏ sót? Đã cover 9 tình huống thực tế. Không tìm thấy case nào ngoài taxonomy hiện tại.
  4. Wording §6 có conflict với v3.0 existing text? Không — chèn giữa QT-003 và QT-005, không sửa text hiện có.
  5. Gốc rễ: tại sao Pack 2A phải khám phá lại? TD td-iu0-text-as-code-information-unit-process-linking-gap đã ghi — chưa có IU/Text-as-Code link law↔process↔code ở cấp miếng thông tin.

12d rev 1 | 2026-05-04 | Opus 4.6 | QT-003R process addendum based on GPT analysis + Pack 2A evidence. Chờ GPT/User approve trước patch canonical doc.