KB-713E

P10B-1A-HASH — Đ32 Hash/Vocab Evidence Report (2026-04-29)

9 min read Revision 1
p10bdieu32dieu38hashsha256vocabevidenceread-only2026-04-29

P10B-1A-HASH — D32 Evidence Report

Captured: 2026-04-29T00:00:00Z (UTC)
Mode: READ-ONLY (no INSERT/UPDATE/DELETE/DDL)
Verdict: PASS


1. Source metadata

  • Path: knowledge/dev/laws/dieu32-approval-law.md
  • Title: Điều 32: Luật Phê duyệt — v1.1 BAN HÀNH
  • Revision: 2
  • Char count (utf-8): 5601
  • Byte count (utf-8): 6189
  • SHA256 (full source): a42622496fff8c725932a5d310d1e4050e63e41828ba01c1eec4974c045e17f7
  • Captured at: 2026-04-29T00:00:00Z

2. Per-unit table (23 units)

# canonical_address parent section_type sort words chars body_sha256 body_excerpt
1 D38-DIEU32-ROOT heading 0 0 0 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 (heading-only / container)
2 D38-DIEU32-S0 ROOT paragraph 1 55 329 c4c48fb46977d0457db7da8eeafb28c010da20cb3a99ee8be8b78fc2963efea8 > v1.1 BAN HÀNH | 2026-04-18 | Amend bởi S178 Fix 15 — DOT Repair Governance v4 FINAL ⏎ > *Base:
3 D38-DIEU32-S1 ROOT paragraph 2 41 196 6b36dcc86ed52001f51cd3960342f14a7ccaa8f335c13984fee43b110c5e6ae8 Mọi thay đổi có tác động tới hệ thống phải qua cơ chế phê duyệt chuẩn hoá. Phê duyệt = PG collection
4 D38-DIEU32-S2 ROOT heading 3 0 0 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 (heading-only / container)
5 D38-DIEU32-S2-P1 S2 principle 1 17 93 62f0f5ecfc71566db0818885106754a7f483ccb311c750164ac00923cbaf5bcb Mọi approval request phải được tạo qua DOT hợp pháp; không insert SQL tay, không curl bypass.
6 D38-DIEU32-S2-P2 S2 principle 2 29 144 b7a86e04993b6ebb09036bbca9553d4808370a778106ec87cde8fe98dd7a619e Mỗi APR phải đủ evidence, phương án đề xuất, phương án thay thế, và dữ liệu cần thiết để người/AI qu
7 D38-DIEU32-S2-P3 S2 principle 3 15 130 ccc04f06b3b974c412c805f2ef4e3f066c613c779520912f0d4ed8edc6f179f5 approval_requests, apr_action_types, apr_request_types, apr_approvals và các trigger liên qu
8 D38-DIEU32-S2-P4 S2 paragraph 4 21 117 374aaed69f76b16e088093f38cb9653aae7df0e41fe548caf194ed5d1cce5055 Áp dụng cho birth, reclassify, retire, new collection, new/fix DOT, amend luật, và mọi thay đổi có t
9 D38-DIEU32-S3 ROOT heading 4 0 0 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 (heading-only / container)
10 D38-DIEU32-S3-P1 S3 technical_spec 1 76 546 3cabe154ded7e94ce8fa328479e589dcd82da93ab3061ae737d7a822e864c426 approval_requests phải có 2 cột code riêng: ⏎ - request_type_code TEXT ⏎ - `proposed_action_code TEX
11 D38-DIEU32-S3-P2 S3 technical_spec 2 49 453 9ec712af3b7ba7ecced386d267751d9c0d02d9188ddf7040f0de1622f8362f1b #### apr_action_types ⏎ - action_code PK ⏎ - description ⏎ - handler_ref ⏎ - risk_level in (low,
12 D38-DIEU32-S3-P3 S3 technical_spec 3 59 410 64f7b674b5c8abd72d2ce71f1d61b4a12dab138ab888ad4cd8653210d4c009ec Action seed tối thiểu: ⏎ - create_item (low) ⏎ - update_item (low) ⏎ - add_field (medium) ⏎ - `patch_o
13 D38-DIEU32-S3-P4 S3 governance_process 4 15 143 146a9e19949efc921b775f098cd98d3dca0a1d3cd20d971b2fb15f9a12aab84c apr_action_types, apr_request_types, apr_approvals phải được đăng ký trong `collection_registr
14 D38-DIEU32-S3-P5 S3 process 5 86 600 8ce9353aef92a4965200956fd7bf161ca6eb48cb4e360ca6c73cb193eb5aa8d4 1. Tạo apr_action_types, apr_request_types + seed. ⏎ 2. Register theo Đ36. ⏎ 3. Amend `approval_requ
15 D38-DIEU32-S4 ROOT heading 5 0 0 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 (heading-only / container)
16 D38-DIEU32-S4-P1 S4 technical_spec 1 30 225 fd48e2f1787e40b12672b54da3bd98ad69852f1ce5cc6ba01b237f52d51f7d97 Mỗi quyết định duyệt phải được ghi thành row riêng: ⏎ - apr_id ⏎ - approver ⏎ - approver_type in (`h
17 D38-DIEU32-S4-P2 S4 technical_spec 2 35 220 525f4fa44101a7a77f19ce57e4633e5d98abe3f0a860df626ff2c62bb8ce0e71 BEFORE UPDATE OF status ON approval_requests: ⏎ - high: cần ≥1 president approve + ≥2 `ai_coun
18 D38-DIEU32-S4-P3 S4 checklist 3 37 217 8090aabbaa511f8e55ad06fb90e444149f396515df90bd365304a5c7fcad9da1 1. Cấm self-approve cho high-risk request của chính người/agent tạo request. ⏎ 2. Có reject mở thì khô
19 D38-DIEU32-S5 ROOT paragraph 6 21 206 44a384ab0f289a70cae46e96e80775b723223110c3e1460674f82db3b6143163 - dot-apr-types-register ⏎ - dot-apr-type-integrity-audit (A-tier) ⏎ - `dot-apr-type-integrity-propo
20 D38-DIEU32-S6 ROOT process 7 28 171 29cf305e5a204b3b754ba4c76f70d6ce646d2909eeb8256a6285ce2e7526b903 pending → approved → applied ⏎ hoặc pending → rejected ⏎ hoặc pending → expired ⏎ ⏎ approved không
21 D38-DIEU32-S7 ROOT governance_process 8 24 145 0ba20922874e36be4c68c9fe8420d3ece02e6599801471eef86bc2ad29a39a16 Mọi action có handler_ref='unimplemented'không được thực thi. Cơ chế chặn phải tồn tại ở *
22 D38-DIEU32-S8 ROOT checklist 9 33 167 da47d3f1fc22a3ea4021f20bf3f94d71ac4615998a1604bce9c1c5645deb0d22 1. Thời gian pending trung bình. ⏎ 2. Tỷ lệ request đủ evidence ngay từ lần đầu. ⏎ 3. Tỷ lệ reject do th
23 D38-DIEU32-S9 ROOT changelog 10 51 327 71a3e42dcc3c0cf4f6a8e3571c502b3ce8bea64bf4bda3b594d410d19dde1e47 | Version | Nội dung | ⏎ |---|---| ⏎ | v1.0 | Draft ban đầu về approval_requests, scanner, lifecycle c

Note: ROOT, S2, S3, S4 are container/heading-only units (body empty → SHA256 of empty string e3b0c442...). All 19 leaf units have non-empty body.


3. Body coverage summary

  • Total source lines: 171
  • Leaf-unit-assigned lines: 126
  • Intentionally excluded structural lines: 32 (root title, container headings ##§2/§3/§4, all 9 --- HRs, 18 leaf heading lines, outro italic)
  • Unexpected gaps: 0
  • Unexpected overlaps: 0

Coverage rule: union of leaf unit bodies = ALL substantive body text. Excluded only: root title, ##/### heading marker lines (already represented as unit titles), --- HR separators, container heading-only units (S2/S3/S4), outro signature line, blank boundary lines. Gap=0 / overlap=0 → segmentation valid.


4. Vocab production query

Schema introspection: tac_section_type_vocab exposes lifecycle_status column (active / deprecated / retired). Query adapted to require lifecycle_status='active' is implicit; all 8 expected codes returned with lifecycle_status=active.

Query:

SELECT code, name, lifecycle_status, body_required, description_required
FROM tac_section_type_vocab
WHERE code IN ('heading','paragraph','principle','technical_spec',
                'governance_process','process','checklist','changelog')
ORDER BY code;

Result (8 rows):

code name lifecycle_status body_required description_required
changelog Lịch sử thay đổi active t f
checklist Danh sách kiểm active t f
governance_process Quy trình quản trị active t t
heading Tiêu đề active f f
paragraph Đoạn active t t
principle Nguyên tắc active t t
process Quy trình active t t
technical_spec Đặc tả kỹ thuật active t t

8 codes active in production. ✅


5. PASS criteria evaluation

# Criterion Status
1 SHA256 toàn văn Đ32 computed + ghi report ✅ PASS
2 23 units: body_sha256 + body_excerpt + word_count ✅ PASS
3 Body coverage: 0 content gap, 0 unexpected overlap ✅ PASS (gaps=0 overlaps=0)
4 Vocab query: 8 codes active in production ✅ PASS (8/8 active)
5 Report uploaded KB ✅ PASS
6 STOP after upload + Đ41 hygiene ✅ PASS

6. Verdict

PASS — Điều 32 23-unit segmentation hashed, vocabulary verified, no mutations performed. Ready to feed downstream P10B-1B planning.