KB-2273

G1-2A Render Seed — READY_FOR_AUDIT

7 min read Revision 1
sua-reg1-2aseedready-for-auditlaws-newpa3

G1-2A Render Seed — READY_FOR_AUDIT

Ngày: 2026-07-07. Nhiệm vụ: SỬA RẺ G1-2A — render seed-map vàng + SQL vàng cho "LẬP sổ khái niệm UI" (pilot master-list-quy-trinh-v1 / scan_0). CHƯA APPLY: 0 append manifest, 0 chạy dot-pg-atomic-apply, 0 ghi PG.

1. Verdict

READY_FOR_AUDIT

2. Seed sources (đọc thật, byte-exact)

  • concept-ledger: /opt/incomex/docs/mcp-writes/ui-preview/concept-ledger.js — sha256 ad89043ab288a3b0ee0af586ef803f3d5a46495d76a5f7e57fbdfa2740b24920 (22306 B), window.CONCEPTS.items = 13 thẻ, version v0.5.
  • ui-contracts: /opt/incomex/docs/mcp-writes/ui-preview/ui-contracts.js — sha256 d18f59de4426701bce5d07b86ca9ce43b05c892f571ef9d23197bb1d076265e3 (20132 B), surfaces[0].surface_id = 'master-list-quy-trinh-v1' = 30 điểm dùng, version v0.1-chot2.
  • Cách đọc: ssh cat về máy render, sha256 đối chiếu khớp sha256sum trên VPS (0 chép tay, 0 bịa).

3. Golden seed-map

  • path: /opt/incomex/docs/mcp-writes/sua-re/golden/import-seed-master-list.seed-map.golden.json
  • sha256: 4cce468a139f3bc589e40e01feaa4b23c39ea5c9bbfb16ffd2f5a00332e1aa77 (38879 B)
  • concepts count: 13 (13 concept_key distinct)
  • usages count: 30
  • slot_key distinct: 30 · item_key distinct: 30 · location_anchor distinct: 30
  • anchor split: 14 config_key / 2 code_marker / 14 text_marker = 30
  • matched/candidate/review theo seed: 27 / 2 / 1 (candidate = 2× candidate.lien_ket_me; review = 1× review.co_tu_dong)
  • Cấu trúc: {ui_id:'master-list-quy-trinh-v1', scan_id:'scan_0', concepts[13], usages[30]}; map đúng đặc tả G1-2A (concept: id→concept_key, name→ten, type→concept_kind, description→mo_ta, boundary→ranh_gioi, aliases||[], match_policy||'auto', status='active', first_seen_/contract_ref/promoted_at=null; usage: location_anchor=kind:':'||COALESCE(key,marker), slot_key=ui_id||'::'||anchor, item_key=slot_key||'::'||scan_0, anchor_quality strong/strong/weak, dedupe_key=duplicate_group, concept_key_ref chỉ khi matched, near_concepts||[], owner_/decision_*=null). Không nạp examples/non_examples/locations.

4. Golden SQL

  • golden_sql_path: /opt/incomex/docs/mcp-writes/sua-re/golden/import-seed-master-list.golden.sql
  • apply_sql_path: /opt/incomex/dot/sql/sua-re/import-seed-master-list.sql (copy bằng cp từ golden, không viết riêng)
  • sha256 (cả golden VÀ apply, trùng nhau): e17cae62240a8d73a28bcccf79718dbe714d54ebf9209894a94b7199ba730d5c (47958 B, 1172 dòng)
  • diff result: diff -u golden apply = RỖNG (byte-identical, sha256 khớp cả bản render local)
  • Nội dung: chỉ 43 INSERT (13 concept trước → 30 usage sau), ON CONFLICT (concept_key|item_key) DO NOTHING; concept_id = subquery (SELECT id FROM public.sua_re_khai_niem_nhap WHERE concept_key = …) cho 27 matched, NULL cho 3 không matched; không có cột match_status (GENERATED); text/jsonb seed-derived đều dollar-quoting ($sr_text$…$sr_text$, $sr_json$…$sr_json$::jsonb, tag tự đổi nếu collision); nháy đơn chỉ cho 3 hằng kỹ thuật 'master-list-quy-trinh-v1', 'scan_0', 'active'; bỏ qua id/date_created/scan_at (IDENTITY / DEFAULT now() — đã verify information_schema).

5. Self-check seed-map (20/20 PASS)

# Mục Kết quả
1 concepts.length = 13 PASS (13)
2 usages.length = 30 PASS (30)
3 13 concept_key distinct PASS (13)
4 30 slot_key distinct PASS (30)
5 30 item_key distinct PASS (30)
6 không slot_key chứa raw_label PASS
7 không slot_key chứa scan_id PASS
8 không slot_key dùng chỉ số mảng [n] PASS (chỉ có items[] rỗng)
9 concept_kind ⊆ {workflow,step,task,field,role,org,relation} PASS (dùng 6/7, không có relation)
10 mọi mo_ta ≥ 15 ký tự (btrim) PASS
11 mọi purpose ≥ 15 ký tự (btrim) PASS
12 mọi location.kind ⊆ {config_key,code_marker,text_marker} PASS
13 mọi matched ref ∈ 13 concept_key PASS (12 key được dùng)
14 đúng 27 usage matched theo seed PASS (27, khớp 27 concept_key_ref non-null)
15 đúng 2 candidate theo dedupe_key candidate.* PASS (2)
16 đúng 1 review theo dedupe_key review.* PASS (1)
17 anchor split 14/2/14, tổng 30 PASS
18 30 location_anchor distinct PASS (30)
19 mọi aliases là array, không NULL PASS (13/13)
20 mọi near_concepts là array, không NULL PASS (30/30; matched → [])

6. Self-check SQL (20/20 PASS)

# Mục Kết quả
1 đúng 13 INSERT concept PASS
2 đúng 30 INSERT usage PASS
3 không cột match_status trong INSERT (soi 43 column-list + toàn khung statement) PASS
4 không hardcode số cho concept_id (0 chữ số ngoài dollar-quote/hằng kỹ thuật/comment) PASS
5 concept_id chỉ là subquery theo concept_key (27) hoặc NULL (3) PASS
6 không DROP/DELETE/TRUNCATE/ALTER/UPDATE/CREATE TABLE-VIEW-FUNCTION-TRIGGER dạng statement PASS
7 chỉ đụng 2 bảng public.sua_re_khai_niem_nhap + public.sua_re_ui_khai_niem_nhap PASS
8 SQL concept nằm trước SQL usage PASS
9 13/13 concept có ON CONFLICT (concept_key) DO NOTHING PASS
10 30/30 usage có ON CONFLICT (item_key) DO NOTHING PASS
11 mọi seed-derived text/jsonb dollar-quoting PASS (86 seg text + 43 seg json)
12 không seed text/jsonb bằng nháy đơn thô (nháy đơn chỉ {ui_id, scan_0, active}) PASS
13 JSONB literal có cast ::jsonb (43 = 13 aliases + 30 near_concepts) PASS
14 tag dollar-quote không xuất hiện trong nội dung (dq/dj tự kiểm collision, tự đổi tag) PASS
15 aliases không bao giờ NULL PASS (13/13 jsonb)
16 near_concepts không bao giờ NULL PASS (30/30 jsonb)
17 aliases luôn jsonb array PASS
18 near_concepts luôn jsonb array PASS
19 43/43 JSONB parse lại hợp lệ, đều là array — 0 rủi ro escape PASS
20 golden vs apply byte-identical (diff rỗng + sha256 trùng) PASS

7. DB pre-check (read-only, ngay trước audit)

  • to_regclass: cả 2 bảng tồn tại — public.sua_re_khai_niem_nhap, public.sua_re_ui_khai_niem_nhap (DB directus).
  • Cả 2 bảng đang RỖNG: concept_rows = 0, usage_rows = 0 (kiểm 2 lần: trước render và ngay trước báo cáo).
  • Kiểm thêm phục vụ render (read-only information_schema): match_status is_generated=ALWAYS (không INSERT); date_created/scan_at DEFAULT now() (an toàn khi bỏ qua trong INSERT).

8. Next gate

Chỉ được chạy G1-2B (append manifest approved-sql-manifest.tsv dòng e17cae62240a8d73a28bcccf79718dbe714d54ebf9209894a94b7199ba730d5c<TAB>sua-re/import-seed-master-list.sql + dot-pg-atomic-apply) sau khi Owner nói GO_APPLY_G1_2. G1-2A này KHÔNG append manifest, KHÔNG chạy atomic-apply, KHÔNG ghi PG.

Ghi chú kênh ghi file: golden ghi qua scp (root) + chown 10001:10001 + chmod 664 để khớp quy ước cây mcp-writes (tránh gotcha quyền của G1-1); byte-exact đã chứng minh bằng sha256 trùng bản render local. cp/diff/sha256sum chạy qua SSH contabo (root) — đúng đường G1-1.

Back to Knowledge Hub knowledge/dev/laws-new/kestra/sua-re/nhap-ui/g1-2a-render-seed-ready-for-audit-2026-07-07.md