KB-6363

Handoff S183 → S184

6 min read Revision 1
handoffs183s184dieu38

Handoff S183 → S184

Phiên: S183 | Ngày: 2026-04-27 Tóm tắt: S183 hoàn thành 6 milestones production cho P9 Entry Gate — tạo wrapper function, 3 facets, 19 DOTs, verification 4/4 PASS. P9 Gate tiến từ 4/12 lên 9/12. Còn 3 gate: G6 migration dry-run → G8 Directus roles → G11 User approval.


1. Thành tựu S183

Bước Kết quả Production artifact
E-R3 ✅ PASS public.fn_tac_log_checker_issue(TEXT,TEXT,TEXT,TEXT,TEXT,JSONB) — owner=workflow_admin, SECURITY DEFINER, search_path=public,pg_catalog
E-E3 ✅ PASS P8 v0.4 — §5 expanded: facet alias mapping + entity_code D38-local contract + checker adapter reference
E4 ✅ APPROVED 3/3 APR decision: FAC-07/08/09 approved, no modify/reject
E5 ✅ PASS taxonomy_facets: FAC-07 (id=8), FAC-08 (id=9), FAC-09 (id=10) — all active
E7 ✅ PASS (v0.2) dot_tools: 19 DOT-TAC-* (ids 971–989) — 7B + 12A, all active. v0.1 failed (domain FK "tac.*" invalid), remapped to existing vocabulary.
E6 ✅ PASS 4/4 A1 facets ✅, A2 entity_code ✅, A3 adapter ✅, A4 DOTs ✅

2. P9 Gate Status: 9/12 PASS

Gate Status Resolved by
G1 P8 OFFICIAL P8 v0.4
G2 Đ24 facets E5 FAC-07/08/09
G3 entity_code E-E3 P8 §5.2
G4 DOTs registered E7 19 DOTs
G5 register adapter E7 v0.2
G7 system_issues E-R3 wrapper
G9 Backup P8 §8.3
G10 TRIGGER-GUARD P8 §8.4
G12 BOM defer P8 §7
G6 Migration dry-run S184 — Tier 3
G8 Directus roles After G6 PASS
G11 User approval Last gate, after G6+G8

3. S184 Mục tiêu: G6 Migration Dry-run

3.1 Đọc trước khi làm (theo thứ tự)

  1. Handoff này (đang đọc)
  2. knowledge/dev/laws/dieu38-trien-khai/P9-tier3-readiness-package.md — §2 G6 readiness design
  3. knowledge/dev/laws/dieu38-trien-khai/P8-implementation-design-plan-v0-1.md — §1 (tables), §8 (migration), §10 (gate criteria)
  4. knowledge/dev/laws/dieu38-trien-khai/P5-tac-schema-draft-v0-2.md — source of DDL (8 core tables, 15 invariants, constraints)
  5. knowledge/dev/laws/dieu38-trien-khai/P5b-component-bom-schema-draft-v0-2.md — deferred tables (KHÔNG include trong G6 core, P8 §7 defer)
  6. knowledge/dev/laws/dieu38-trien-khai/P7-pilot-migration-plan-v0-2.md — sandbox reference

3.2 G6 scope

  • Generate DDL cho 14 production tables (P8 §1.4): 5 vocab + 1 config + 4 core + 2 change-set + section_type_vocab + publication_type_vocab
  • Dry-run on isolated non-production schema (VD: p9_g6_dryrun hoặc reuse sandbox_tac)
  • Verify: DDL compile, 14 tables, FK/constraints, functions/triggers, seed plan, rollback clean
  • Report: PASS/FAIL + evidence

3.3 G6 ràng buộc

  • KHÔNG ghi production public.tac_*
  • KHÔNG tạo/sửa Directus roles (G8 riêng)
  • KHÔNG activate cron
  • KHÔNG taxonomy_labels/entity_labels
  • KHÔNG system_issues writes
  • KHÔNG cleanup _dot_origin

3.4 G6 PASS criteria

Check Expect
DDL compile without error 14 tables created
FK/constraint match P5 design All invariants satisfied
Functions compile (fn_tac_uv_compute_derived, birth gate trigger) No error
Vocab/config seed plan documented SHA-256 + KB source
Rollback: DROP schema → 0 residue Clean

3.5 Sau G6 PASS

→ G8 Directus roles (tac-agent, tac-admin) → G11 User approval → P9 production migration.

4. Quyết định kỹ thuật S183

Decision Detail
E-R3 DDL fn_log_issue param #9 = p_run_id (not "resolution"), wrapper passes NULL
E-R3 evidence_snapshot Type = json (not jsonb), DDL uses p_details::json
E-R3 prompt v0.4 qua 3 rounds GPT (14 patches): schema-qualify, runtime user assert, FK domain validate
E5 facets Via Directus MCP API, not SQL — Đ33 compliant
E7 domains v0.1 FAIL (tac.* not in FK vocab) → v0.2 mapped: infrastructure.schema, collection, infrastructure.deploy, data_quality, kb, governance.approval, infrastructure.sync, classification.label
E7 _dot_origin Stored as `SUSPECT:dot-dot-register
P8 §3.2 header "8B + 11A" editorial mismatch — actual table = 7B + 12A = 19

5. Sai lầm + Bài học S183

# Sai lầm Bài học
1 E-R3 v0.1 hardcode -U directus Dùng .env + $DB_USER — §0-AU
2 E-R3 v0.1 thiếu schema-qualify public.fn_name mọi nơi
3 E7 v0.1 domain FK "tac.*" invalid Dry-run PHẢI verify FK vocabulary constraints
4 E4 v0.1 scope lệch (facets + labels gộp) APR scope phải khớp exact mutation
5 Opus hỏi User "gate mở chưa?" quá nhiều GPT SUPERVISION PASS = đủ authority

6. Dữ liệu có con số

Metric Value
Production function 1 (fn_tac_log_checker_issue)
taxonomy_facets 3 (FAC-07/08/09, ids 8/9/10)
dot_tools 19 (DOT-TAC-*, ids 971–989)
P9 gates 9/12 PASS
GPT review rounds (E-R3) 3 rounds, 14 patches
Index revision 39

7. KB Paths cho S184

Doc Path
Index knowledge/dev/laws/dieu38-trien-khai/index.md
P8 v0.4 knowledge/dev/laws/dieu38-trien-khai/P8-implementation-design-plan-v0-1.md
P5 Schema knowledge/dev/laws/dieu38-trien-khai/P5-tac-schema-draft-v0-2.md
Tier 3 Readiness knowledge/dev/laws/dieu38-trien-khai/P9-tier3-readiness-package.md
E6 Report knowledge/dev/laws/dieu38-trien-khai/reports/p9-e6-post-remediation-verification-2026-04-27.md
HOW-TO-READ knowledge/dev/laws/dieu38-trien-khai/HOW-TO-READ.md

8. Operating Model

User = mục tiêu/yes-no. Opus = điều hành + soạn thảo. GPT = giám sát + phản biện.


Handoff S183 → S184 | 2026-04-27 | Opus 4.6