KB-3E9B

Handoff S153b → S151: Skill v7 DONE, Approval Design CHỐT, Nuxt Input vấn đề mở

10 min read Revision 1
handoffs153bs151approvalskill-v7active

Handoff S153b → S151

2026-03-31 | OR v7.19 | Hiến pháp v4.0.2 | Skill v7 FINAL Paste TOÀN BỘ cho Claude phiên mới. Claude đọc → tự làm → không hỏi lại.


BỐI CẢNH 1 CÂU

S153b DONE (Skill v7 FINAL 36 mục 8 bước, PR#654). Hiến pháp v4.0.2 (+Data Thông Minh 5 cấp, +Phê duyệt THÊM/XOÁ, +Giải thích Từ ngữ, +Điều 34 WF ghi chú). S151 thiết kế XONG, chốt 9 quyết định, SẴN SÀNG soạn prompt cho CLI agent. CÓ 1 vấn đề thiết kế mở cần bàn TRƯỚC khi soạn prompt.


18 QUYẾT ĐỊNH ĐÃ CHỐT

# Quyết định Phiên
1 Hiến pháp v4.0 BAN HÀNH. 20 files laws/ (incl. terminology-glossary). S148
2 9 Nguyên tắc (5 cũ + 4 mới). S148
3 7 Lớp (gồm hạ nguyên tử). 33 species. Species = meta-layer NGOÀI 6 lớp. S148
4 23 prefix (14 active, 2 pending, 7 planned). S148
5 PG 16 DUY NHẤT. Chatwoot + Lark CHỐT. i18n vi/ja/en. Multi-domain. S148
6 Pivot = trang chính. Registries cũ BỎ. S149
7 S149 DONE: 9/9 L1, L2 PIV-201→206, VIEW_MAP removed, 5 tầng PASS. S149
8 GỘP NHIỀU BƯỚC 1 PR. DOT THEO CẶP. S149
9 Skill v7 FINAL: 36 mục, 8 bước (0→7), 3 câu tuyên ngôn, Desktop checkpoint trong prompt, mẫu báo cáo gạch từng bước + evidence. PR#654 VPS verified. S153b
10 CHIẾN LƯỢC DATA THÔNG MINH 5 cấp: Đúng → Đủ → Sạch → Sống → Thông minh. Đã ghi vào Hiến pháp v4.0.2. S153b
11 SCR GỘP vào approval_requests (request_type='schema_*'). KHÔNG tạo collection riêng. 1 table, phân sau khi data lớn. S151-prep
12 THÊM → auto-approve → DOT Cấp B chạy ngay. XOÁ → pending → Desktop duyệt → DOT đao phủ thi hành. Nguyên tắc xuyên suốt cho MỌI thay đổi hệ thống. S151-prep
13 Secret dùng chung SYNC_SECRET (GSM → env var VPS). Quy mô nhỏ, chặn nhầm là đủ. Không khắt khe quá. S151-prep
14 DOT đao phủ: backup trước xoá. Không quyết định, chỉ thi hành lệnh đã duyệt. S151-prep
15 Pivot dòng phê duyệt — pending count hiện trên Tab Pivot. S151-prep
16 Tương lai: multi-AI review (2-3 ông cùng duyệt). Webhook → Chatwoot/Lark. S151-prep
17 Workflow: DOT trọn vẹn từng cái trước. Lắp ráp WF phức tạp → bàn sau. Tránh phức tạp hoá. S151-prep
18 Lớp 3 (DB sống) = thiết kế cốt lõi. Không có Lớp 3 → không lắp ráp → chuỗi Assembly sụp → Tầng 4 không thể xây. S153b

VẤN ĐỀ MỞ — BÀN TRƯỚC KHI SOẠN PROMPT S151

Bài toán: User thêm data TỪ Nuxt mà KHÔNG code Nuxt

Tình huống: User nhìn quy trình trên Nuxt → muốn thêm 1 bước, thêm 1 dòng, thêm 1 cột. Trước đây agent code từ Nuxt (form, handler, API call) = SAI LẦM kỹ thuật (AP-11, §0-BA). KHÔNG được lặp lại.

Câu hỏi cần trả lời:

  1. Cấu trúc mới giải quyết bài toán này THẾ NÀO?
  2. User click "Thêm" trên Nuxt → data vào PG bằng cách nào mà KHÔNG code Nuxt?
  3. DOT auto xử lý ra sao? Đồng bộ 5 tầng thế nào?

Gợi ý hướng đi (chưa chốt):

  • Nuxt chỉ render form từ Directus (Directus đã có form/interface built-in)
  • User submit → Directus API trực tiếp (Nuxt chỉ proxy, không xử lý)
  • Directus webhook → trigger đồng bộ
  • HOẶC: User tạo request (approval_requests) → DOT xử lý
  • Cần bàn kỹ: Assembly First → PG/Directus đã giải quyết chưa?

Huyên nhấn mạnh: "Tuyệt đối không code Nuxt. Nhưng vấn đề là cấu trúc mới sẽ giải quyết thế nào để đồng bộ? DOT auto, và không code từ Nuxt?"


THIẾT KẾ S151 ĐÃ CHỐT — TÓM TẮT

Mô hình

Agent muốn thay đổi → INSERT approval_requests (form) → 
  THÊM: auto-approve → DOT Cấp B → Directus API → 5 tầng
  XOÁ: pending → Desktop duyệt → DOT đao phủ → backup + xoá → 5 tầng

Collections

  • approval_requests (prefix APR) — trung tâm phê duyệt MỌI THỨ (Điều 32)
  • SCR gộp vào APR (request_type='schema_add', 'schema_delete', 'birth_orphan', 'reclassify'...)

DOT Tools (Phase 1: 2 cái, Phase 2: +2 cái)

  • Phase 1: dot-scr-propose (Cấp A) + dot-approval-execute (Cấp B + secret)
  • Phase 2: dot-scr-scan (Cấp A, cron) + dot-executioner (Cấp B, đao phủ xoá)

3 câu tuyên ngôn ĐÃ TRẢ LỜI

  1. Vĩnh viễn: Agent chỉ INSERT form, KHÔNG CÓ quyền ALTER TABLE. DOT = cổng duy nhất.
  2. Nhầm: THÊM auto (rủi ro thấp). XOÁ bắt buộc duyệt + backup. Nhầm duyệt = vẫn có backup.
  3. Tự động: THÊM hoàn toàn tự động. XOÁ tự động trừ bước duyệt.

5 câu thiết kế ĐÃ TRẢ LỜI

  1. Tổng thể: Agent → form (APR) → auto/manual approve → DOT execute → 5 tầng
  2. Khép kín: INSERT APR → PG trigger phân loại → approve → execute → verify. Cron scan drift.
  3. Tool: 4 DOT (propose, execute, scan, executioner). PG triggers. Directus API. Cron.
  4. Môi trường: approval_requests, meta_catalog, pivot_definitions, birth_registry
  5. Metadata > code: Thêm loại phê duyệt = INSERT request_type mới. KHÔNG sửa code.

SAI LẦM + BÀI HỌC PHIÊN NÀY

# Sai Bài học
1 Prompt S153 thiếu quy trình 2 mũ → agent dừng giữa chừng Skill PHẢI có quy trình 2 mũ đầy đủ 8 bước
2 Skill 18 CP cũ thiếu thiết kế sản phẩm → agent nhảy vào code Skill v7: 5 câu thiết kế + 3 câu tuyên ngôn BẮT BUỘC trước code
3 Báo cáo chỉ ghi "PASS" → báo cáo ảo (AP-02) Skill v7: mẫu báo cáo gạch từng bước + evidence. Thiếu = FAIL.
4 Hiến pháp thiếu giải thích từ ngữ → agent lẫn Lớp/Tầng/Layer terminology-glossary.md file riêng + HP dẫn chiếu
5 Thiếu Data Thông Minh trong HP → agent không biết chiến lược 5 cấp (Đúng→Đủ→Sạch→Sống→Thông minh) ghi ĐẦU HP

VIỆC CẦN LÀM PHIÊN MỚI

TRƯỚC KHI SOẠN PROMPT

  1. Đọc handoff này + OR v7.19 + HP v4.0.2:
search_knowledge("operating rules SSOT v7.19")
search_knowledge("hiến pháp v4.0.2 constitution data thông minh")
search_knowledge("terminology glossary lớp tầng layer")
search_knowledge("dieu32 approval law draft")
search_knowledge("handoff S153b S151 approval phê duyệt")
  1. BÀN VỚI USER vấn đề mở: User thêm data từ Nuxt mà KHÔNG code Nuxt → giải pháp kỹ thuật? Trình bày phương án → user chốt → rồi mới soạn prompt.

SAU KHI BÀN XONG

  1. Soạn prompt S151 Phase 1: collection approval_requests + dot-scr-propose + dot-approval-execute + PG triggers + Pivot dòng phê duyệt. Theo đúng Skill v7 format (Desktop Checkpoint → MỤC TIÊU → BƯỚC → VERIFY → SAU DONE).

  2. Giao CLI agent. 1 prompt = 1 việc. Quy trình 2 mũ.

ROADMAP SAU S151

  • S151 Phase 2: dot-scr-scan + dot-executioner
  • S150: Pivot Ma trận L5
  • S152: Duplicate Engine (Điều 14)

TÀI LIỆU QUAN TRỌNG

Tài liệu Path Rev
Hiến pháp v4.0.2 knowledge/dev/laws/constitution.md rev 3
OR v7.19 knowledge/dev/ssot/operating-rules.md rev 4
Skill v7 FINAL .claude/skills/incomex-rules.md (VPS) PR#654
Giải thích Từ ngữ knowledge/dev/laws/terminology-glossary.md rev 1
Điều 32 draft knowledge/dev/architecture/dieu32-approval-law-draft.md rev 1
Điều 34 WF draft knowledge/dev/architecture/dieu34-workflow-law-draft.md rev 1
Điều 9 SCR knowledge/dev/laws/law-09-schema-governance.md rev 1
S151 Design Artifact trong phiên này (copy bên dưới) Final
Anti-patterns knowledge/dev/ssot/anti-patterns.md 15 patterns
S153b Report knowledge/current-state/reports/s153b-skill-v7-report rev 1

NGUYÊN TẮC ĐIỀU HÀNH

  • Skill 36 mục, 8 bước. Desktop Checkpoint trong prompt. CLI xác nhận/phản biện.
  • 1 prompt = 1 việc. GỘP 1 PR. MERGE ≠ DONE. Verify production.
  • 3 câu tuyên ngôn TRƯỚC MỌI thiết kế: Vĩnh viễn? Nhầm được không? 100% tự động?
  • 5 câu thiết kế TRƯỚC MỌI code: Tổng thể? Khép kín? Tool? Môi trường? Metadata > code?
  • THÊM → chạy ngay. XOÁ → phê duyệt → DOT đao phủ.
  • DOT trọn vẹn từng cái. WF lắp ráp → sau.
  • Nuxt = màn hình. CẤM code Nuxt. KHÔNG LẶP LẠI sai lầm cũ.
  • search_knowledge TRỰC TIẾP. CẤM background agent.
  • Update OR + TD + handoff SAU MỖI prompt.
  • Data Thông Minh 5 cấp: Đúng → Đủ → Sạch → Sống → Thông minh.

S151 DESIGN (CHỐT) — TÓM TẮT

approval_requests schema (từ Điều 32 draft, bổ sung)

Field Kiểu Ý nghĩa
id serial PK Auto
code text UNIQUE APR-NNN
request_type text schema_add / schema_delete / birth_orphan / reclassify / retire / new_dot / rule_change / ...
entity_type text Collection liên quan
entity_code text Entity cụ thể (nullable)
title text Mô tả ngắn
current_state jsonb Trạng thái hiện tại
proposed_action jsonb Phương án đề xuất
evidence text Lý do, DOT nào phát hiện
source text DOT/AI nào đề xuất
priority text critical / high / normal / low
status text pending → approved → applied / rejected / expired
reviewed_by text User/AI nào duyệt
reviewed_at timestamp Khi nào duyệt
review_note text Ghi chú
applied_at timestamp Khi nào thực thi
date_created timestamp Auto

Lifecycle

  • pending → approved → applied (THÊM: auto-approve)
  • pending → approved → applied (XOÁ: manual approve + DOT đao phủ + backup)
  • pending → rejected (ghi lý do)
  • pending → expired (30 ngày không xử lý)

PG Triggers

  • AFTER INSERT: log + auto-approve nếu request_type='schema_add'
  • AFTER UPDATE status='approved': trigger DOT execute (THÊM) hoặc queue cho đao phủ (XOÁ)
  • CONSTRAINT: status chỉ chuyển đúng chiều

DOT Phase 1

  • dot-scr-propose (Cấp A): INSERT approval_requests
  • dot-approval-execute (Cấp B + SYNC_SECRET): thực thi THÊM đã approved qua Directus API

DOT Phase 2

  • dot-scr-scan (Cấp A, cron): scan schema drift → tạo APR tự động
  • dot-executioner (Cấp B + SYNC_SECRET): đao phủ — backup + xoá đã approved