Council Round 2 Prompt — Đ35 v5.1 DRAFT rev 2
PROMPT COUNCIL ROUND 2 — ĐIỀU 35 v5.1 DRAFT rev 2
Dành cho: Gemini 2.5 + GPT-5 (rà song song, độc lập) Ngày: 2026-04-14 S177 Fix 8 Ước tính: 20-30 phút mỗi agent Round 2 nguyên tắc: Round cuối nếu không có blocker mới. v5.1 cấp bách (272 DOT vênh, 49 DOT POST-S151 vẫn 94% NULL).
§1. ĐÃ TIẾP THU GÌ TỪ ROUND 1 (Desktop tổng hợp + sửa)
1.1 — 5 BLOCKER R1 — TẤT CẢ ĐÃ FIX TRỰC TIẾP TRÊN DRAFT
| # | Blocker R1 | Ai nêu | Fix trong rev 2 |
|---|---|---|---|
| B1 | fn_is_in_grace_period() chưa có bằng chứng tồn tại |
Cả 2 | ★ Định nghĩa đầy đủ SQL trong §4.1B. Đọc dot_config.grace_period_days so với dot_config.law_v5_1_enacted_at. SECURITY DEFINER + SET search_path = public, pg_catalog. Owner workflow_admin. Fail-safe: NULL config → trả TRUE (giả định grace) |
| B2 | fn_log_issue() chưa định nghĩa contract tối thiểu |
Gemini | ★ Định nghĩa đầy đủ SQL trong §4.1B. 5 tham số (source, severity, category, summary, entity_code). Dedupe qua issue_signature = md5(source|category|entity|severity). UPSERT ON CONFLICT WHERE status='open' (chống bão duplicate). SECDEF + search_path. Yêu cầu phụ: system_issues.issue_signature UNIQUE WHERE status='open' (thêm trong BLOCK 1 nếu chưa có) |
| B3 | _dot_origin lệch giữa §4.1 (không liệt kê) và §5/§8 (dùng) |
GPT | ★ Thêm _dot_origin thành cột chính thức trong bảng §4.1 → 11 fields (không phải 10). NOT NULL DEFAULT 'unknown'. Mục đích truy vết RC-3 (3 lớp registry). Mọi reference §5.1 + §8.3 nhất quán với §4.1 |
| B4 | UNIQUE partial wording sai kỹ thuật (45 cặp dup non-null sẽ làm CREATE INDEX FAIL) | GPT | ★ Sửa wording §4.1 chính xác: partial chỉ cho phép nhiều NULL cùng tồn, KHÔNG cho phép duplicate non-null. Ghi rõ 45 cặp PHẢI dedupe TRƯỚC khi CREATE INDEX. §9.2 BLOCK 4 viết lại thành checklist cứng 12 bước (4.1 snapshot → 4.4 verify 0 dup → 4.6 backfill → 4.8 audit 0 drift → 4.9 CREATE INDEX → 4.10 NOT NULL) |
| B5 | Dual-trigger không sống khi mode=block (flow PATCH-after-insert thất bại khi DB reject) | GPT | ★ Viết lại §5.2: 2 path mới — (a) trigger chính = pre-POST inference trong dot-dot-register (infer 11 fields TRƯỚC POST), (b) trigger phụ = cron dot-metadata-repair mỗi giờ (scan partial → infer + PATCH; fail → APR). Cả 2 sống cả khi mode=block. Flow [AUTO-ID] xuống vai trò "lưới đỡ phụ giai đoạn warn". Thêm DOT mới dot-metadata-repair (Tier B) + H13 check |
1.2 — 5 NON-BLOCKER R1 — ĐÃ FIX
| # | Đề xuất | Fix |
|---|---|---|
| 1 | Tiêu chí cứng warn → block |
§10 thêm 4 điều kiện AND (audit 0 drift 3 ngày liên tiếp + 0 dup non-null + dot-metadata-repair LIVE + H10-H13 PASS 3 ngày) |
| 2 | SECURITY DEFINER an toàn (SET search_path) |
Mọi function SECDEF v5.1 đặt SET search_path = public, pg_catalog. Owner workflow_admin |
| 3 | §11 wording cứng cho luật đã ban hành | §11.4 viết hẳn câu cứng: "Mọi luật đang có hiệu lực mà tác động bảng có data cũ NHƯNG chưa có retrofit clause đều phải mở amend bổ sung retrofit trong kỳ sửa gần nhất. TRƯỚC KHI amend xong, KHÔNG được bật constraint/block mới làm legacy kẹt cứng." Tracker: retrofit-audit-tracker.md |
| 4 | Rule APR cho auto-backfill | §11.2.1 mới: idempotent + có verify pair → auto-PATCH; mơ hồ/không idempotent → APR |
| 5 | Wording §5.1 NT11 (tránh hiểu "khai tay 11 cột") | §5.1 ghi rõ: payload 11 fields = API boundary contract, ưu tiên infer tự động, không buộc khai tay |
1.3 — KHÔNG SỬA + LÝ DO
| Đề xuất | Lý do giữ nguyên |
|---|---|
Đổi tên fn_birth_gate → fn_dot_metadata_gate (Gemini + GPT lưu ý) |
Function đã deploy thật trên VPS cho dot_tools (133 collection có trigger từ dot-birth-trigger-setup). Đổi tên = migrate trigger 133 collection = rủi ro lớn cho 1 lợi ích thuần wording. Thay bằng: §8.3 chú thích rõ "Đ35-scope: dot_tools" để phân biệt với Đ0-G generic birth gate |
| Tách §11 thành meta-law riêng (cả 2 đề xuất) | Cả 2 council đều nói "chưa nên tách lúc này". Đang chữa cấp cứu Đ35 → giữ §11 trong Đ35. Tách meta-law sau khi hệ ổn (ghi vào TD tương lai) |
| Grace 7 ngày (Gemini lo ngắn) | Giữ 7 ngày default + thêm wording §9.3 "có thể gia hạn qua config mà không sửa luật" + §10 cứng "chưa đủ 4 điều kiện = giữ warn + gia hạn grace". Vận hành an toàn |
1.4 — SỬA LỖI VIỆN DẪN PHÁT HIỆN THÊM (ngoài R1)
★ HP v4.5.1 thực tế chỉ có 11 NT (Desktop verify trực tiếp constitution.md). Draft rev 1 viện dẫn NT12 (paired_dot) + NT13 (PG First) ở §3, §8, §10 đều sai số điều. Rev 2 đã bỏ tham chiếu NT số sai — chuyển thành "quy tắc nội tại Đ35" (paired_dot rule) hoặc viện 11 NT đúng. Bài học: GPT R1 chỉ ra điểm này gián tiếp ("trong HP v4.5.1 hiện hành tôi không thấy NT13") — đáng cảm ơn.
§2. DỰ THẢO CẦN RÀ
File: knowledge/dev/laws/dieu35-dot-governance-law-v5-1-draft.md rev 2
Đọc bằng get_document_for_rewrite để có full content (search_knowledge chỉ trả tóm tắt).
§3. YÊU CẦU RÀ R2 — 5 CÂU HỎI SÂU HƠN
Trả lời tại knowledge/current-state/reports/council-review-dieu35-v5-1-<YOUR_NAME>-round2.md.
Câu 1 — VERIFY 5 BLOCKER R1 ĐÃ ĐÓNG ĐÚNG CÁCH
Với mỗi B1-B5, đánh giá:
- Fix có đúng không? Có chỗ nào còn nửa vời?
- SQL function (
fn_is_in_grace_period,fn_log_issue,fn_birth_gatev5.1) — có compile được không? Có race condition nào trong UPSERTfn_log_issue? - §4.1 thêm
_dot_origincó đụng schema migration nào (vd backfill 'unknown' cho 272 DOT cũ — cần ghi rõ ở BLOCK 2 không)? - BLOCK 4 checklist 12 bước có còn lỗ hổng nào không? (vd: bước 4.3 retire row dư — UPDATE file_path=NULL có làm mất audit trail không?)
- Dual-trigger mới (
dot-metadata-repaircron 1h) — bão APR khi engine vừa fix RC-2 + RC-4 chưa xong → cron quét → tạo APR liên tục cho cùng row → có dedupe đủ không?
Câu 2 — EDGE CASE PHÁT SINH SAU KHI SỬA
Sau khi v5.1 rev 2 deploy, có scenario nào CHƯA ĐƯỢC NGHĨ TỚI gây hỏng không?
- Migration concurrent: nếu 2 agent chạy
dot-dot-registerđồng thời cho cùng file mới → race condition trên UNIQUE partial? - Grace period logic:
law_v5_1_enacted_atUPDATE thủ công sau migration — nếu admin quên SET →fn_is_in_grace_period()trả TRUE mãi → grace mãi → block không bao giờ kích hoạt? fn_log_issueUPSERT WHERE status='open': nếu issue đã 'resolved' rồi tái phát → tạo row mới hay update row cũ? Mong muốn?dot-metadata-repaircron hỏng (last_executed > 2h) → H13 critical → tạo issue → nhưng ai fixdot-metadata-repairchính nó? Có self-paradox không?- BLOCK 4 bước 4.10 ALTER TABLE SET NOT NULL trên 6 cột đồng thời: nếu fail giữa chừng (cột 4 fail) → rollback toàn bộ hay partial? Cần
BEGIN/COMMITwrapper rõ ràng không?
Câu 3 — MIGRATION ORDER BLOCK 4 — STRESS TEST
Đánh giá thứ tự 12 bước BLOCK 4 §9.2:
- Có scenario rollback nào (vd: bước 4.6 fail giữa chừng → 100/272 DOT đã PATCH, 172 chưa) → rollback an toàn không?
- 4.5 (
DOT_BIRTH_BACKFILL) phải chạy TRƯỚC 4.6 (DOT_METADATA_FILL) hay ngược lại? Lý do? - 4.9 (
CREATE UNIQUE INDEX) có nên dùngCONCURRENTLYđể không lock bảng không? (272 row thì ngắn nhưng nguyên tắc). - Bước 4.11 (enable cron) — nếu enable trước khi 4.12 (quan sát 24h) → cron có thể tạo issue làm nhiễu observation. Thứ tự 4.11→4.12 hay 4.12→4.11?
- Có nên thêm bước 4.0 "snapshot toàn bộ dot_tools + system_issues" làm baseline rollback?
Câu 4 — AUDIT CHÉO LUẬT ĐÃ BAN HÀNH (theo §11.4 mới)
§11.4 yêu cầu mọi luật đã ban hành tác động bảng có data cũ + chưa có retrofit phải mở amend. Hãy chỉ rõ:
- Đ36 Collection Protocol — có cần retrofit không? Bảng nào? Risk gì nếu không amend?
- Đ37 Tổ chức Bộ máy —
governance_registrydata có sẵn trước Đ37 ban hành không? Cần retrofit không? - Đ38 Văn bản Quy phạm —
normative_registrycó data legacy không? - Đ39 Knowledge Graph — KG data trước S159 có cần retrofit theo schema v2.3 không?
- Đ41 VPS Operation — vừa ban hành 2026-04-14, có data cũ trong
vps_deploy_log(chưa tạo) hay layout/opt/incomex/cũ không?
Ưu tiên xếp hạng (CRITICAL → LOW) các luật cần amend retrofit GẤP nhất.
Câu 5 — KẾT LUẬN BAN HÀNH
Cuối cùng:
- v5.1 rev 2 đã đủ sạch để ban hành chưa?
- Nếu APPROVE FINAL: liệt kê TODO post-merge (vd: tạo
retrofit-audit-tracker.md, kích DOT_BIRTH_BACKFILL theo BLOCK 4, vádot-dot-registerpayload 11 fields...) - Nếu APPROVE WITH MINOR CHANGES: chỉ rõ minor fix có thể làm INLINE trong PR ban hành (không cần Round 3)
- Nếu REJECT / NEED ROUND 3: chỉ rõ blocker mới + lý do tại sao R2 chưa đủ
§4. ĐỊNH DẠNG BÁO CÁO YÊU CẦU
File: knowledge/current-state/reports/council-review-dieu35-v5-1-<gemini|gpt>-round2.md
Cấu trúc:
# Council Review — Đ35 v5.1 DRAFT rev 2 — <YOUR_NAME> Round 2
## Tóm 1 câu
[APPROVE FINAL / APPROVE WITH MINOR CHANGES / NEED ROUND 3]: lý do 1 câu
## Câu 1 — Verify 5 blocker R1 đã đóng đúng cách
[B1, B2, B3, B4, B5: đóng/nửa vời/sai cách + evidence]
## Câu 2 — Edge case phát sinh
[scenarios + risk level]
## Câu 3 — Migration order BLOCK 4 stress test
[đánh giá 12 bước + đề xuất nếu có]
## Câu 4 — Audit chéo luật đã ban hành
[Đ36/37/38/39/41: cần retrofit không, ưu tiên]
## Câu 5 — Kết luận ban hành
[APPROVE FINAL → TODO post-merge | APPROVE WITH MINOR → minor inline | NEED R3 → blocker mới]
## Điểm số 1-10 (so với rev 1)
[delta + giải thích]
§5. NGUYÊN TẮC RÀ R2
- Không sáng tác nội dung mới — chỉ verify fix R1 + tìm edge case + audit chéo
- Evidence cứng — trích §X điều khoản cụ thể của draft rev 2 + reference HP/luật khác
- Áp 4-câu-hỏi-khung Huyên (memory): (1) Có luật chưa? (2) Đủ chưa? (3) Thực tế theo chưa? (4) Xung đột luật khác?
- Nôm na khi kết luận — ví dụ đời thường để Huyên hiểu nhanh, không jargon
- Không chắc = ghi rõ "không chắc"
§6. SAU R2
Desktop tổng hợp 2 báo cáo R2 → nếu cả 2 APPROVE FINAL → ban hành v5.1 + amend song song (OR soạn luật v1.1 + AP-22 anti-patterns + Skill Handoff v7) trong cùng PR. Nếu APPROVE WITH MINOR → fix inline + ban hành. Nếu NEED R3 → fix + R3 (hạn chế tối đa).
Cấp bách reminder: 272 DOT vênh, 49 DOT POST-S151 vẫn 94% NULL. v5.1 không ban hành = bệnh tiếp tục lan. R2 mong cả 2 APPROVE FINAL.