KB-42ED rev 2

Điều 39 v2.3 Silent Errata Final Report 2026-06-02

8 min read Revision 2
reportdieu39silent-erratafinal2026-06-02

Điều 39 v2.3 Silent Errata Final Report — 2026-06-02

Bước 0 — Nền tảng

  • Đọc .claude/skills/incomex-rules.md trong workspace.
  • search_knowledge("operating rules SSOT") → OR v7.58, 2026-05-01; VPS OR v1.0 cũng xuất hiện.
  • search_knowledge("hiến pháp v4.0 constitution") → KB trả Constitution hiện hành knowledge/dev/laws/constitution.md v4.6.3; không viện dẫn bản cũ.
  • search_knowledge("Điều 39 Knowledge Graph Law v2.3 trust_score kg_thresholds universal_edges DOT-KG") → target knowledge/dev/laws/dieu39-knowledge-graph-law.md, v2.3, 36 DOT (18 cặp).
  • get_document_for_rewrite target → revision 1, truncated:false, content_length:21172.

3 câu Tuyên ngôn

  • Vĩnh viễn: patch thêm rule gốc vào luật để survival gate, dirty state, OCC, output boundary, divergence guardrail trở thành yêu cầu vận hành, không fix vụ việc đơn lẻ.
  • Nhầm được không: wording gắn vào config/tables hiện có (kg_thresholds, kg_constraint_config, scaffold_dependency_map, kg_quality_log, snapshots), quarantine/freeze/retry và audit; agent không được blind-update.
  • 100% tự động: DOT/gate/cron/log/snapshot tự phát hiện và xử lý lệch; human chỉ review APR/override khi luật yêu cầu.

Bước 1-2 — Thiết kế trước code

  • Mục tiêu: silent errata/safety hardening cho Điều 39 v2.3, không đổi version/title/counters/changelog labels.
  • Phương pháp: patch trực tiếp document qua Agent Data patch_document với old_str unique.
  • Điều kiện cần: target local không tồn tại, nhưng Agent Data full rewrite đọc được truncated:false; tiếp tục trên KB document path.
  • Assembly Gate: DB/Directus/Nuxt mutation N/A; không DB, không migration, không bảng mới.

Bước 3 — Patch đã làm

  • Trust Score hard survival gate: revisions 2, 3, 4.
  • C1 dirty flag + §6 E validate clearance: revisions 5, 6.
  • C2/C4 emergency circuit breaker: revisions 7, 8.
  • C5 output contract with Điều 34 boundary: revision 9.
  • C9 entropy/divergence guardrail: revisions 10, 14, 15.
  • §6 A concurrency/OCC/idempotency: revision 11.
  • §7 pair #12 throughput warning without matrix change: revision 12.
  • Phase 1 exit gate: revision 13.

Before/After Snippets

1. Trust Score

Before: trust_score = confidence × freshness_decay × provenance_weight × source_authority. Edge trust < threshold → chỉ suggestion. After: Hard survival gate: trust_score chỉ được tính sau khi mọi thành phần bắt buộc vượt ngưỡng sinh tồn trong kg_thresholds... trust_score = 0 và edge chuyển quarantine... Phép nhân chỉ dùng cho các edge đã sống sót qua survival gate.

Before §2: Trust Score = confidence × freshness × provenance × source_authority. After §2: Trust Score = chỉ số sau survival gate: đọc ngưỡng sinh tồn từ kg_thresholds... trust_score = 0 + quarantine; chỉ edge sống sót mới tính...

Before A8: Edge PHẢI có provenance. Không provenance = quarantine. After A8: Không provenance = quarantine. Trust Score survival gate chạy trước công thức nhân... component thiếu/không hợp lệ/bằng 0 nơi bị cấm/dưới ngưỡng → trust_score = 0...

2. C1 Dirty Flag

Before: Cache/invalidate: quy định đổi → PARTIAL rebuild (chỉ subgraph article đổi, dùng scaffold_dependency_map). After: ``scaffold_dependency_map PHẢI mang trạng thái dirty/rebuild... subgraph liên quan không được xem là canonical; Compliance Gate phải trả WARNING hoặc buộc fallback về raw-source...

Before §6 E: E2 | DOT-KG-SCAFFOLD-VALIDATE | Sau E1 | Graph khung → Verified | After §6 E: Dirty flag chỉ được clear sau DOT-KG-SCAFFOLD-VALIDATE PASS... E2 ... Graph khung → Verified + clear dirty flag |

3. C2/C4 Emergency Circuit Breaker

Before C2: Policy Graph (Đ38) ↔ Context Graph → DOT-KG-CONSTRAINT-CHECK → PASS/FAIL(chặn)/WARNING. After C2: Emergency mode là runtime governance state trong PG config hiện có... mặc định emergency phải nghiêm hơn... mọi relaxation... phải qua C12 Override Governance + thẩm quyền Đ37 + audit log.

Before C4: Context-Dependent (khẩn cấp thăng/hạ). Confidence ranges = PG config kg_constraint_config... After C4: Contextual Circuit Breaker... mặc định stricter... CẤM hiểu emergency là bypass/ignore safety rules; relaxation chỉ hợp lệ nếu qua C12...

4. C5 Điều 34 Boundary

Before: Điều 39 CHỈ sinh Ordered Task List + Goal State TĨNH. KHÔNG sinh state transitions, execution routing, retry logic, error handling. After: OUTPUT CONTRACT: Điều 39 chỉ được output task list phẳng/tĩnh, ví dụ [{task_id, primitive_task, target_state, evidence_refs}]. KHÔNG sinh if/else, goto, retry policy, timeout policy, execution routing, state transition logic, error handling logic.

5. C9 Entropy/Divergence

Before: **C9 Self-Learning — 3 GUARDRAILS ENFORCE PG:** ... Bounded / Rollback / Champion-Challenger / Chặn TBox. After: **C9 Self-Learning — GUARDRAILS ENFORCE PG:** ... Entropy/Divergence: batch self-learning PHẢI tính aggregate weight drift/divergence... vượt ngưỡng trong kg_thresholds → freeze... APR/human review... log kg_quality_log... rollback...

6. §6 A OCC/Idempotency

Before: Dual-trigger: PG AFTER INSERT/UPDATE + cron daily 02:00. After: Vì realtime trigger và cron có thể chạm cùng entity/edge, mọi write PHẢI idempotent... deterministic event key/source key... OCC (version INT hoặc Postgres xmin)... Version mismatch → không overwrite... Agent CẤM blind-update universal_edges.

7. §7 Pair #12 Warning

Before: DOT matrix ended with row | 18 | OVERRIDE-LOG | OVERRIDE-AUDIT |, then C13 Negative Knowledge... and Cấp A IDLE.... After: added note: Runtime warning cho cặp #12: DISCOVER+PROPOSE là job nặng/periodic, còn CONSTRAINT-CHECK là realtime cross-cutting gate... giữ nguyên contract 36 DOT / 18 cặp, không tách hoặc renumber matrix...

8. Phase 1 Exit Gate

Before: Phase 1 (Cấp 2): A2-A8, config tables, 36 DOT, quality. After: Phase 1... Exit gate: Phase 1 CHƯA được coi là hoàn thành nếu TD7 quality_log + snapshots và TD9 Gold Standard chưa implemented + verified...

Bước 4-5 — Self-review / Verify

  • Final read: batch_read(full:true) target → revision 15, truncated:false, content_length:25015.
  • Exact file patched: knowledge/dev/laws/dieu39-knowledge-graph-law.md.
  • Report updated at knowledge/current-state/reports/dieu39-v23-silent-errata-progress-2026-06-02.md.
  • Title line unchanged: # ĐIỀU 39 — LUẬT KNOWLEDGE GRAPH v2.3.
  • Enacted/version line unchanged: v2.3 | S159 (2026-04-03) | Council 3 vòng... → BAN HÀNH.
  • Headline counters unchanged: 26 bài toán | 36 DOT (18 cặp) | 10 quy trình | 0 hardcode | 11/11 NT + 7/7 TKSP.
  • Final footer counters unchanged: 36 DOT (18 cặp) | 10 quy trình | 39 TD | 0 hardcode | 11/11 NT + 7/7 TKSP.
  • Changelog version labels unchanged: v2.3, v2.2, v2.1, v2.0, v1.1, v1.0.
  • DOT matrix unchanged in count/order: rows 1→18 preserved; pair #12 remains DISCOVER+PROPOSE | CONSTRAINT-CHECK.
  • No DB mutation, no migration, no ALTER TABLE, no INSERT SQL tay.
  • No new table proposal; all new wording uses existing PG config/tables or existing version INT/xmin OCC option from prompt.
  • No Nuxt/code logic change.

Bước 6 — OR/TD/Handoff

  • OR update: Không cần — mission là silent errata trong Điều 39, không thay operating process.
  • TD update: Không cần — patch bổ sung guardrail, không phát sinh nợ kỹ thuật mới.
  • Handoff: Không cần — completed in-session, evidence above.

Final Verdict

PASS