Files
solution-erp/.claude/governance/ACTIVE-MARKS.md
pqhuy1987 936d1aed6c [CLAUDE] Docs: thi hanh 4 cau anh chot — gui hub + ghep dieu-kien-3 + chot P3/VK-5
Anh tra "1,2,3,4 -> OK".

🔴 KHAI CACH DOC (cau 3 va 4 KHONG phai yes/no, chung la cau chon A-hay-B):
- (1)(2) dang yes/no  => doc thang la CO.
- (3) P3 forward-only HAY hoi-to  => lay nhanh lead DA NEU la dang doc
  (forward-only) va la nhanh KHONG PHA HUY. Hoi-to se pha bat-bien
  counts ≡ enum + pha acceptance W3 => can lenh TUONG MINH, khong suy tu "OK".
- (4) VK-5 nhap khoi chinh HAY giu phu luc => lay nhanh AN TOAN lead da chon
  theo bac-2: giu phu luc. Nhap bang HANDOFF:10-17 vao khoi chinh se lam ban
  dung cot "loi nguyen van" ma luat chong-bay-A1 dung ra de giu sach.
Ca hai deu la bac-2 (nhanh an toan + khai). Anh muon nhanh kia thi 1 chu la doi.

Thi hanh:
1. Bao-cao-cuoi lat sang DA DUYET + DA GUI. Thu di:
   broadcasts/outbox/ai_infra/2026-08-07-se-to-ai_infra-upgrade-pack-phased-bao-cao-cuoi.md
   stamp_verify: OK (canonical match). Da them dong OUTBOUND vao _index.
   🔴 Thu KHONG tu phong nac "da duoc kiem chung" — chi hub cap.
   Thu mang phan bien nguoc: bien the "DA DUNG NHUNG KHONG AI GOI" (2 may
   governance 0 cua goi), de nghi hub them canh "da chay nhung khong ghi lai".
   Muc 5 tu khai 3 loi cua SE, ca 3 do phep do DOC LAP bat.
2. Dieu-kien-3 cua thu hub ghep vao BAC-2 §LT3: khong phan biet duoc
   doi-co-chu-y voi roi-im-lang => khai "khong du du lieu", CAM mac dinh ve
   nhan mien toi. Nay la luat dang hieu luc, khong con la con-tro.
3. P3 = FORWARD-ONLY chot. Khong truc xuat 12 class khoi enum da niem phong.
4. VK-5 = GIU PHU LUC chot.

🔸 Ghi lai 1 loi thao tac: lead tu cai lai phep bam sha256 (split moi dau '---'
   nen an ca duong ke ngang) => MISMATCH. Header script ghi ro "hash via
   script-file ONLY". Da dung gia tri canonical cua script.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 23:37:36 +07:00

77 lines
35 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ACTIVE-MARKS — User-Mark ledger (Harness-12/13 · canonical §P) — SOLUTION_ERP
> **Chữ-ký quyết-định cấp GOVERNANCE** (rule/policy/architecture/harness — KHÔNG work-flow/task). Single-writer em-main (B3 VERIFY→APPEND). Cơ-chế đầy-đủ (§P P1-P10) → [`docs/governance/harness-11-engine.md §E`](../../docs/governance/harness-11-engine.md). Lệnh: `/user-mark-active-high` · `/user-mark-active` · `/user-mark-medium` · `/user-mark-disable`.
> 🔴 **SHOW @/session-start (§2.1.4) + @/session-end (§L.b(h))** status-filtered: 🔴 Active-High + 🟢 Active **HIỆN rõ** · 🟡 Medium **tóm-tắt** · 📦 Disable/superseded **ẨN** — anh đọc-lại 1 lần/đầu+cuối session ("vì quan-trọng").
> **Binding (P3):** có stamp = **LỆNH** · không stamp = đang **BÀN**. **No-retrofit:** từ 2026-06-20 forward (KHÔNG truy-ngược quyết-định pre-S79).
> **Adopt S79 (2026-06-20)** — AI_INFRA broadcast User-Mark H-12/13 (`2026-06-19-Governance-harness-all-update` + `…rc-signature`) + canonical §P, áp `/user-mark-active-high` (anh-confirm). adap-report → `adap-reports/2026-06-19-Governance-harness-all-update.md`.
## Schema (1 mark)
`{ id: RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss · cấp · §-target SE (≙ AI_INFRA) · what · objective-criteria(37, rules §6.6) · supersedes? · status }`
## 🔴 ACTIVE-HIGH (bắt-buộc phải làm; vi-phạm → error-ledger §L.a RCA — HIỆN @session)
| ID (RC-signature) | §-target SE (≙ AI_INFRA) | What | objective-criteria (pain · volume · quality) | supersedes | Status |
|---|---|---|---|---|---|
| `RC-pqhuy1987-20-06-2026-10-29-09` | `rules.md §6.6` + `engine §E.4` (≙ §F4.2) | Quyết-định kiến-trúc/chức-năng = tiêu-chí KHÁCH-QUAN (điểm-đau · khối-lượng · chất-lượng) **KHÔNG quy-mô-đội**; "overkill/quá-mức-solo-dev/cảm-tính" = **BÁC**; thẩm-quyền cần-vs-thừa = AI_INFRA cross-project; AI = neo lý-tính | **pain:** lập-luận "quá mức solo-dev" đã khiến 1 dự-án từ-chối chức-năng chống-lách-engine (sự-cố thật) — SE = solo-dev, đúng đối-tượng · **volume:** 6 dự-án federated + SE 11-agent cần neo nhất-quán · **quality:** quyết-định-cảm-tính trôi chất-lượng âm-thầm; neo-lý-tính giữ rigor | null | 🔖 **Active-High** (anh-confirm S79 · P4 DACI report-before-stamp) |
| `RC-pqhuy1987-20-06-2026-10-29-10` | `engine §E` (≙ §P) | Codify **User-Mark + chữ-ký RC** (Harness-12/13) — chữ-ký quyết-định governance + 4 cấp + no-cảm-tính deterministic + report-before-stamp | **pain:** quyết-định governance bị quên / giảm-bằng-cảm-tính (không chữ-ký+tier) · **volume:** SE tích-lũy Harness 1-14 cần audit-trail nhất-quán · **quality:** RC-sig = minh-oan + tranh-luận-bằng-bằng-chứng + trách-nhiệm-2-chiều | null | 🔖 **Active-High** (anh-confirm S79 · P4 dogfood: invest-wf→review-wf→báo-cáo→confirm→stamp) |
| `RC-pqhuy1987-20-06-2026-10-29-11` | `rules.md §6.6 DM-time/age` (≙ §F4.2-ext / H-14) | **Mở-rộng mark-1** — time/age/recency-decay = **false-proxy** (cùng-họ team-size); kiến-trúc KHÔNG dựa cũ / lâu-chưa-dùng / auto-decay; trần budget=(dung-lượng÷tốc-độ-thay-mới) KHÔNG núm-decay-tuổi, drift=đường-nền-cuộn KHÔNG cửa-sổ-tuổi; **additive** (mark-1 GIỮ) | **pain:** cap∝chunk_count = Goodhart-vanity + age-window drift = alarm-spam (sự-cố thật H-14); SE memory-budget từng dễ mắc "giảm-theo-độ-cũ" · **volume:** 6 dự-án áp budget/drift/eval + SE L1/L2/L3 + archive-gate · **quality:** age-decay cắt memory-tốt = false-economy (DM-004 Goodhart §6.6) | null (additive) | 🔖 **Active-High** (anh-confirm S79 via `/user-mark-active-high` · P4 DACI · supersedes:null) |
| `RC-pqhuy1987-20-06-2026-23-07-37` | `harness-11-engine.md §G` + `memory-budget.json` + `rules.md §6.6` (≙ AI_INFRA H-15) | **H-15 memory-budget per-agent (token-based):** token-governor (**v3 §G.5 S83:** Tầng-1 hot-feed per-role **lead 380K (v4 §G.5 S94 owner-override, SE-specific để chứa full read-set ~368K — lead KHÔNG còn AI_INFRA-parity)/mem-sub 60K/wf-sub 50K** (subs giữ parity) + **spawn-fill-to-budget** (sub Tầng-1 = MEMORY.md byte-cap + spawn-prompt giàu, `spawn_fill_directive`); **v2 §G.4 S82:** L2/L3 **bỏ-trần** on-demand + báo-% 2-đầu-phiên; con-số = **quyền CHỦ-DỰ-ÁN/anh** + AI thực-thi-đúng-số + báo-%) + **value-gated archival** (giữ recurring-bug/anti-pattern/gotcha bất-kể tuổi) + fill-L1-full (budget = sàn-tận-dụng KHÔNG trần-tiết-kiệm) + work-state-block @session-start + %-print 2-đầu-phiên + 2-governor (byte⟂token) | **pain:** tiết-kiệm-token → quên-việc/rơi-trạng-thái giữa phiên (sự-cố thật — Tầng-1 mỏng = lead quên việc nhiều phiên, bằng-chứng v2); SE keep-floor age-based có thể archive gotcha cũ ra khỏi L1 — value-gate FLAG đã bắt thật (test-specialist gotcha#/guard) · **volume:** 11-agent × (SÀN 30K + Tầng-1 hot-feed per-role lead 220K/mem-sub 60K/wf-sub 50K, v3 §G.5 full-parity) always-load/spawn + L2 archive ~240KB (cicd 194KB) cần value-protect · **quality:** quên-việc → làm-lại → tốn-hơn (Goodhart); giữ hard-won lessons | null (additive — mark `…11` GIỮ; H-15 mở-rộng value-axis xuống tầng-bộ-nhớ) | 🔖 **Active-High** (anh-confirm S81 · **v2-delta anh-confirm S82** `RC-pqhuy1987-21-06-2026-01-58-01` — hot-feed-lớn/bỏ-trần/anh-authority · **v3-delta anh-directed S83** `RC-pqhuy1987-22-06-2026-16-35-37` — full-parity 220/60/50 + spawn-fill-to-budget · **v4-delta anh-directed S94** `RC-pqhuy1987-29-06-2026-23-25-50` — lead 220K→**380K** SE-override để chứa full read-set ~368K (⚠️ ~97% fill = context-rot trade-off owner-accepted; trần budget ⟂ harness Read-25K/call → mega-line STATUS/HANDOFF VẪN cần re-tier mới Read-trọn), P4 DACI report-before-stamp ✓) |
| `RC-pqhuy1987-11-07-2026-20-42-01` | `harness-11-engine.md §K.E` + `.claude/commands/fable-{real,clone}.md` + `session-start BƯỚC 0.5b/0.6` (≙ AI_INFRA H-21 + model-tier-v3) | **H-21 engine-đắt PER-INVOCATION + spec-file kết-tinh + MTv3 lead owner-choice** (supersede-partial H19). **Sàn:** (1) engine-đắt CHỈ chạy trong lượt anh gõ `/fable-real\|/fable-clone <vai> <đề-bài>` — vai anh gán đích-danh ∈ roster 12, thiếu/sai → hỏi anh, lead KHÔNG tự ý (kể cả HMW-ON) · (2) mỗi run sinh **spec-file 3-mục** (engine propose → lead verify → LEAD ghi → worker hạng-hai thực thi theo spec, kể cả run chấm/verify) · (3) lead = **frontier-class do anh chọn per-session** {Fable 5 \| Opus 4.8 — 1M MAX}, CẤM Sonnet/Haiku-class ghế lead; owner-chọn-hạng-hai ≠ outage (0 caveat/0 revert-nghĩa-vụ), outage đóng → hỏi anh ĐÚNG 1 dòng · (4) 4 ghi-chú trung-thực a-d giữ nguyên nấc (owner-gated + kỷ-luật, KHÔNG code-enforced). K.C 3 GAP-guard + định-nghĩa 2 engine GIỮ từ H19 | **pain:** "quyết-theo-từng-tác-vụ dễ quên hạ-tầng" (kế thừa H19) + cách-làm bay hơi trong prompt → spec-file kết tinh git-tracked (sự-cố thật hub) + flip-chain dán nhãn outage khi thật ra owner-choice · **volume:** mọi lượt engine-đắt × 12 vai × 2 lệnh + BƯỚC 0.6 mỗi phiên + worker-pipeline theo spec · **quality:** audit-trail spec qua git + owner-gated chống auto-elevate + reviewer-Fable dogfood run-1 bắt 5 Major thật (M1 worker-đổi-fact · M2 boundary-gap → VALID_ROLES 12) | `RC-pqhuy1987-03-07-2026-17-46-35` (partial — floor-point 1/2 + marker-toggle; K.C + 2-engine GIỮ) | 🔖 **Active-High** (anh-confirm S110 via AskUserQuestion "Stamp mark MỚI thay mark cũ" · P4 report-before-stamp: `/check-email`→invest-Fable→spec→WF `wf_0c3b307f-a64`→reviewer-Fable PASS_WITH_FIXES→fix→present→confirm→stamp) |
| `RC-pqhuy1987-12-07-2026-11-43-45` | `engine PHẦN N` + `.claude/hooks/wal-flush.ps1` + `.claude/settings.json hooks` + `session-start BƯỚC 0.7` / `session-end §5.0+§6.4` + `commands/pause·tiep` + `workflows/README FLIP-policy` (≙ AI_INFRA H-22 CANONICAL §I4 + §H1) | **H-22 WAL session-continuity.** **Sàn:** (1) sổ `.claude/WAL.md` ≤40 dòng ghi-đè-không-append (chain-bằng-chứng + next + verify-trước-next, ground-truth thắng, cấm secret; detector C5 bắt >40) · (2) hai tầng ghi: lead single-writer nội-dung ⟂ Stop-hook `wal-flush.ps1` persist-only (per-path+CAND+exit-0; ĐƯỢC add+commit **4-path** `wal:` [🧊 *stamp S111 ghi 3-path; nới +`.claude/sessions/` @S146 — floor N.2 + Sàn-3 ⑤ cập-nhật CÙNG lần*] / KHÔNG content·push·block·path-ngoài) · (3) MỘT đường recovery `/tiep` (+`/pause` chốt dừng; CẤM transcript; wf: = relaunch-cắt-gọt + pack-re-derive; resume-run-id = same-session-only) · (4) delta mở/đóng: BƯỚC 0.7 WAL-check (ngoại-lệ CHỜ duy-nhất) + §5.0 squash `wal:`-trailing chưa-push (KHÔNG rewrite đã-push) + §6.4 reset cuối · (5) run ≥3-task HOẶC >5' = BẮT BUỘC RUN-TRACE per-agent-file + taskList-snapshot + dòng `wf:` 5-trường. Commit `wal:` = ngoại-lệ DUY-NHẤT format `[CLAUDE]` (rules §5.2) | **pain:** phiên chết giữa mạch = mất trí-nhớ chưa-ghi + đốt-lại token (sự-cố thật SE: WF2 S101 MẤT theo CLI-restart phải re-run · diary transcript-lost ×2 S110 · W3 return-truncate NGAY run adopt này — per-agent-file cứu) · **volume:** MỌI phiên (BƯỚC 0.7 + §5.0/§6.4) × mọi workflow ≥3-task × **4-path** memory/run/sessions trên đĩa · **quality:** hook-FIRE VERIFIED-RUNTIME ×2 (`12071c5`/`67be443` — reviewer refute 3-hướng forensics NTFS×git đều GÃY) + fault-inject 2-ca PASS + persist deterministic thay kỷ-luật-nhớ-tay (vá đúng root-cause sổ-tay-chết); ENV-DEPENDENT hot-reload khai đúng nấc, STAGED-until-verified giữ làm nguyên-tắc hook tương-lai | null (additive) | 🔖 **Active-High** (anh-confirm S111 via AskUserQuestion "Stamp Active-High" · P4 report-before-stamp: `/check-email`→invest-Fable READY_WITH_NUANCES 14N→spec lead-3-chỉnh→WF `wf_5ba3daf6-fe0` 3-Opus RUN-TRACE→reviewer-Fable PASS_WITH_FIXES 0C·1M·7m→fix 8/8→present→confirm→stamp; D10 paths-ignore anh-directed cùng lượt) |
| `RC-pqhuy1987-15-07-2026-15-32-20` | `.claude/commands/tiep.md §0` + `session-start §0.6b/§0.7` + `session-end §5.0/§5.2/§L.b(f)` + `.claude/workflows/README.md:19-20` + `hmw.js` Sàn-1 (≙ AI_INFRA **H-22 wal-defect-fix** + **EOL/CRLF notice**) | **Sàn-3 canonical + TRI-ACCEPT orphan + push-guard-1-LƯỢT.** **Sàn:** (1) Sàn-3 = **định-nghĩa DUY-NHẤT** @`tiep.md §0`, `session-start §0.7` **chỉ TRỎ** (B1) — 🔴 *"sổ trống ⇒ sạch"* = **BUG**, 4 tín-hiệu bậc-MẠNH dựng từ thứ hook **KHÔNG chạm tới** · (2) **orphan = TRI-ACCEPT** (dạng-1 phẳng · dạng-2 C8 `harvest/` · dạng-3 `## synthesis` trong `run.md`), 🔴 **NHẬN ≠ CHO PHÉP** — run **MỚI BẮT BUỘC dạng-1** (khuôn C8: tha di-sản, cấm viết mới kiểu cũ); **dạng-4 = kẽ CÒN LẠI, khai thẳng chưa xử** · (3) `§5.2` **squash→count→push CHỈ 1 LƯỢT** (cấm turn-boundary chen giữa), đếm **TRAILING** trong `origin/main..HEAD`, **CẤM exit-code** (`grep -c` 0→exit 1), **CẤM đếm toàn-lịch-sử** (=57 ⇒ chặn vĩnh-viễn); `n>0` sau 1 re-squash ⇒ **STOP báo owner, CẤM lặp** · (4) `wal:` kẹp dưới commit-thường = **noise CHẤP-NHẬN** (đổi lấy không-rewrite-lịch-sử-đã-đẩy) · (5) EOL-check = **INFORM, `exit 0` always, CẤM chặn push** (W0.6 đã BÁC CRLF-fatal) | **pain:***"orphan"* đo **TÊN FILE** không đo **NỘI DUNG****8 dương-giả / 25 run = 32%**, folder **ghi-chép-đầy-đủ-nhất** (cicd PASS + bundle-hash + smoke 200 + *"PIPELINE COMPLETE"*) **vẫn** bị xếp orphan — sự-cố THẬT, 0/7 là việc mất · ② push-guard **tự-deadlock**: hook fire mọi turn-boundary ⇒ tách squash = tự sinh lại thứ vừa dọn ⇒ **cổng tự xoá chính nó** · ③ *"sổ trống ⇒ sạch"* = **bug lead MẮC THẬT** (`tiep.md:15` + `session-start.md:51` cũ) | **volume:** **MỌI phiên** (`§0.7` + `§5.0/§5.2`) × **mọi workflow ≥3-task** × **25 run-folder** × toàn roster | **quality:** **4 bộ fault-inject CÓ RĂNG** — Sàn-1 **2 chiều** (thiếu cờ→THROW 14ms agent=0 · dưới ngưỡng→IM) · Sàn-3 **9/9** (2 ca anti-Goodhart: 0-byte→FLAG · "synthesis" giữa-câu-văn→FLAG) · push-guard **10/10 cây git THẬT** (ca(2) `base+wal+[CLAUDE]`→K=0→**push được, KHÔNG deadlock**) · wal-recovery **4/4 ca 30 assert** + counterfactual tái-hiện deadlock · **2 bẫy TÁI-HIỆN ĐƯỢC** (`grep -c` exit-1 · đếm-tổng chặn-push) · **push THẬT ×2** (`4727d16..c39ba9d`, `c39ba9d..6dcd457`, K=0, `wal:`/20 **11→7 không tăng**) | null (additive) | 🔖 **Active-High** (anh-confirm **S122** via AskUserQuestion *"tách 2 mark"* · **P4 report-before-stamp**: 3 tiêu-chí khách-quan present → anh chọn tách vì **2 trục có NẤC BẰNG-CHỨNG KHÁC NHAU**, gộp = làm-phẳng mức-độ-chắc) |
| `RC-pqhuy1987-15-07-2026-15-32-23` | `.claude/agents/lead-{view,omission}-auditor.md` + `hmw.js` VALID_ROLES + `memory-budget.json` (`h24_cadence`/`lead_self_audit`) + `.claude/governance/.session-counter.json` + `session-start §2.1.8` + `session-end §L.b(j)` + `docs/STATUS.md` (≙ AI_INFRA **H-24 lead-self-audit + H17 cadence**) | **H24 roster→14 + cadence + enum-ĐÓNG + counter + RE-STAMP.** **Sàn:** (1) **2 vai monitor MỚI** soi chính LEAD — `lead-view-auditor` (cái CÓ-nhưng-LỆCH) · `lead-omission-auditor` (cái BỊ THIẾU); **trục RIÊNG, CẤM gộp** H1 tooling-freshness / H2 harvest-integrity · (2) class-flag ∈ **enum ĐÓNG** `lead_self_audit.flag_classes` — vai **KHÔNG tự chế class**; không phân-loại được ⇒ báo **verbatim + escalate anh** · (3) nhịp ĐỌC từ `h24_cadence`, **CẤM hardcode** ở doc dẫn-xuất (detector **fail-loud** nếu key thiếu — **KHÔNG** giả-định default) · (4) counter **content-addressed neo HEAD-sha**, **CẤM blind-increment** (hook auto-commit mọi turn-boundary ⇒ `++` mù = nhịp vô-nghĩa); counter **LÙI****báo anh, CẤM silent-reset** · (5) 🔴 **roster đổi = 2 BỀ-MẶT ĐỘC-LẬP** (`agents/*.md`→registry ⟂ `VALID_ROLES``agentType`); vai MỚI cần **RESTART + spawn-probe THẬT**`ls`+grep = **CẦN, KHÔNG ĐỦ** · (6) **nghi-thức RE-STAMP carry mỗi phiên** (không re-stamp ⇒ streak≡1 ⇒ **0 fire vĩnh-viễn**) · (7) số roster/nhịp = **canonical-only** (`docs/STATUS.md`), doc dẫn-xuất **CẤM chép số** | **pain:** ① lead **ĐO tốt nhưng ĐẾM-VỀ-MÌNH thì sai** — wave này lead sai **6 lần**, 4 lần đúng trục đó (SHA bịa ghi TRƯỚC commit = **tái phạm bài-học 1 ngày trước**; "8 hit" thật 14; "tái-hiện chính xác dự-báo" trong khi đo **sai hướng**) · ② `gap-workstate-drop` bị bản-spec-trung-gian **BỎ** để làm tròn enum về 10 rồi tuyên *"khớp 5+5"* — mất đúng class bắt ca THẬT của SE (S118: 7-spawn → **0 run-folder**), enum ĐÓNG ⇒ mất vĩnh-viễn · ③ carry-age **vacuous CẤU-TRÚC**: 45 segment nhưng `carry-lines=1`**0 fire** | **volume:** mọi phiên (counter-tick §2.1.8 + §L.b(j)) × toàn roster × mọi carry trong HANDOFF | **quality:** **spawn-probe 14/14 RUNTIME** (0 error 0 garble; 2 vai mới lean nhất 26K < cap 60K) · **positive-control W4 khép, số cộng KHỚP** (5 FLAG0, TOTAL **50→45** tụt đúng 5, **0 flag mới**, đo bằng `comm`) · **TOTAL 50 khớp CHÍNH XÁC dự-báo W2** · acceptance `ls=14` **BỊ BÁC vì sai số-học** (glob bắt `README.md` ép xoá README = catastrophic-Goodhart) đổi sang bất-biến-trên-roster **14/14/14** · counter seed **UNTICKED trung-thực** | null (additive) | 🔖 **Active-High** (anh-confirm **S122** cùng lượt · **P4 report-before-stamp**) · 🔴 **CAVEAT BINDING — nấc bằng-chứng THẤP HƠN mark `…15-32-20`:** **2 vai CHƯA CHẠY lần nào** (spawn-probe chứng **spawn được**, KHÔNG chứng **soi được**) · **counter=0 CHƯA tick** · **nhịp 6/15/3 = điểm khởi-đầu owner cố-ý chọn, KHÔNG phải "đã chứng-minh hiệu-quả"** (hub: n=1 = mocc-0; **chỉnh lại sau chu-kỳ-2**) · probe phủ **Agent-tool registry** THÔI, đường `hmw.js→agentType` **CHƯA phủ** **mark này = LỆNH về CÁCH LÀM, chưa phải bằng-chứng về HIỆU-QUẢ** |
| `RC-pqhuy1987-15-07-2026-17-23-10` | `.claude/commands/tiep.md §0` + `.claude/workflows/README.md` + `session-end §L.b(f)` + `scripts/governance-detectors.ps1` (`Test-Quoted` · H24-1 · **H24-3 mới**) + `session-start §0.7` (≙ AI_INFRA **H-24 / H-22 wal-defect-fix** nâng-cấp NGƯỢC, SE-originated) | **DUAL-ACCEPT + luật-retire-legacy + guard bẫy-tự-quy-chiếu + detector H24-3.** **Sàn:** (1) **orphan = DUAL-ACCEPT** (dạng-1 phẳng · dạng-2 C8) **dạng-3 RETIRED** · (2) 🔴 **LUẬT RETIRE LEGACY (mới, tổng-quát):** *gỡ nhánh legacy khi **tập di-sản RỖNG**; giữ khi **CÒN người thụ-hưởng**. Miễn-trừ C8 hết hiệu-lực đúng lúc hết di-sản để tha, không sớm hơn* · (3) **bẫy tự-quy-chiếu = CLASS, không phải ca lẻ** doc định-nghĩa anti-pattern **tất-yếu** chứa mẫu anti-pattern mọi matcher khớp-mẫu bắt chính ; discriminator = **enclosure (use ⟂ mention)**, KHÔNG phải hình-dạng (H24-2 dùng charset `<` được key thật không bao giờ ; H24-1/H24-3 **không thể** ví-dụ **byte-identical** với claim) helper **DUY-NHẤT** `Test-Quoted`, mọi matcher prose PHẢI gọi · (4) **H24-3 session-label lag** (MED): trong CÙNG file, `(S<N>` `**Last updated**` không được lùi sau MAX `(S<M>` heading **âm-giả CHỨNG-MINH-ĐƯỢC** của H24-1 ( so NGÀY, ngày `2026-07-15` = mới nhất 0 flag trong khi nhãn lùi **3 phiên**) · (5) 🔴 **CẤM "resolve" flag title-stale bằng đổi HÌNH-DẠNG anchor** đó **rời tập-đo**, không phải sửa | **pain:** **dạng-3 = cửa mở cạnh biển cấm** doc CẤM viết mới máy VẪN NHẬN cấm-bằng-**trí-nhớ**; đo: tập di-sản = **0** (6/6 folder từng dựa nay đều flat sau `22ea8c5`) · **bẫy tự-quy-chiếu LÂY QUA TRÍCH-DẪN, 3 đời THẬT trong 1 wave**: `permission-matrix:16` (defect thật) `lead-view-auditor:45` (trích làm ví-dụ) `adap-report…h24…:78` (trích **khi đang GIẢI-THÍCH chính FP đó**) · **âm-giả `STATUS:6` tái-phát LẦN 4** (S116/S117/S118/S123) 3 lần trước bằng **bump số** quay lại · 🔴 **Goodhart đo được (ngoài diff):** W4/S122 "" `permission-matrix:16` bằng **đổi FORMAT anchor** khớp **0 pattern** **H24-1 mất chính positive-control nó được dựng quanh**, flag-count **GIẢM** trông y hệt thành công *"5 FLAG→0"* của W4 phần đạt nhờ **một file thoát khỏi thước** | **volume:** MỌI phiên (`§0.7` + close-gate) × **26 run-folder** × mọi matcher prose trong `governance-detectors.ps1` (3 detector cùng lớp, **chỉ 1 có guard** trước S123) | **quality:** **fault-inject 4 bộ, 24/24** backtick-guard **5/5** (2 anti-Goodhart: quoted-rồi-bare **cùng dòng**FLAG anchor thật · backtick **CHẴN**FLAG) · H24-3 **6/6** (anti-Goodhart: **MAX không đứng đầu/cuối**lấy đúng MAX; 2 bản cài sai "lấy đầu"/"lấy cuối" đều PASS trên repo thật đó MAX tình cờ đứng đầu) · DUAL-ACCEPT **7/7** (ca chốt `## Synthesis`-no-flat: **S122 IM → S123 FLAG** = hiệu-lực retire) · **2 trục reviewer chỉ ra CHƯA HỀ THỬ, thử lại 6/6** (quoted-labelIM · 2-số-cùng-dòngMAX cả 2 chiều · heading trích `` `(S999)` ``→bỏ qua) · **`comm` before/after: 46→45 = 2 dương-giả +1 dương-THẬT**, 0 flag ngoài dự-kiến · repo thật **0 orphan/26** sau retire · **reviewer bác 3 lập-luận của lead và bác ĐÚNG** (xem caveat) | `RC-pqhuy1987-15-07-2026-15-32-20` (**partial** — điều-khoản (2) TRI-ACCEPT→DUAL-ACCEPT; **4 điều-khoản còn lại GIỮ NGUYÊN SỐNG**: Sàn-3 canonical @`tiep.md §0` · nhận≠cho-phép · push-guard 1-LƯỢT · EOL-inform) | 🔖 **Active-High** (anh-confirm **S123** · **P4 report-before-stamp**: reviewer `PASS_WITH_FIXES` → lead vá 6 finding → present → anh chốt *"đồng ý"* → stamp) · 🔴 **CAVEAT — 3 lập-luận của lead ĐÃ BỊ BÁC, ghi để không tái-sinh:** (a) *"retire HOÀN-THÀNH mark cũ"* = **NGUỴ-BIỆN** (điều-khoản (2) **cố ý tách** lưới-rộng ⟂ luật-hẹp; retire **thu lưới bằng luật** = biến nhận **=** cho-phép = **NGƯỢC** điều-khoản) — retire vẫn đúng, **nhưng vì hết di-sản**, không phải vì "hoàn-thành" · (b) *"H24-3 MED vì 0 proxy"* = **SAI** (`$labelN` = hit-regex-ĐẦU = **proxy** cho "label của CHÍNH file", vỡ đúng lúc file trích; MED đứng nhờ `Test-Quoted` **loại** failure-mode đó, KHÔNG phải nhờ proxy chưa từng có) · (c) *"5/5 separation"* = **4/4** (lead **chép số của sub** không kiểm ca-5 trên đĩa) |
| `RC-pqhuy1987-07-08-2026-20-57-48` | **`ACTIVE-MARKS.md §LT3`** (nhà NGUỒN, cuối tệp này) + `ritual-labels.md §6` khoản (vi) + `ST-002` của sổ W4 — **2 nơi sau TRỎ, cấm chép** | **Luật tự-trị 3 bậc** (P5 gói adap 7-GĐ): **rõ → tự vá** · **mơ hồ → chọn nhánh an toàn + khai** · **mơ hồ + phá huỷ → DỪNG, hỏi anh**. Ranh bậc-2 ⟂ bậc-3 = **tính PHÁ HUỶ** (đảo ngược được hay không), **KHÔNG** phải độ khó | **pain:** `ST-002` của W4 định TRỎ về `ACTIVE-MARKS` cho luật 3 bậc, nhưng lane C đo **0 hit** — trỏ vào chỗ rỗng; và AI không có ranh thành văn giữa *tự vá* ⟂ *phải hỏi* ⇒ hoặc hỏi thừa, hoặc tự quyết thứ phá huỷ · **volume:** mọi lượt AI ra quyết-định trong kho × các wave còn lại của gói 7-GĐ + `ST-002` sổ W4 · **quality:** tiêu-chí khách-quan soi được (đảo-ngược-được?) thay cho cảm-tính "việc này khó hay dễ" | null (additive) | 🔖 **Active-High** (anh-confirm **S181** *"P5 → nguyên văn"* · P4 report-before-stamp: lead trình đủ 6 câu kèm nguồn → anh chốt từng số → stamp) |
| `RC-pqhuy1987-07-08-2026-21-42-10` | `docs/governance/adap-reports/upgrade-pack-phased-bang-goc.md` (bảng gốc 12 TC) + `-bao-cao-cuoi.md` | **Niêm phong W6 gói adap 7-GĐ** — anh nguyên văn: ***"đồng ý stamp - ký tên"***. 🔴 **PHẠM VI KÝ = phần ĐÃ THI CÔNG tính đến S181.** 🔴 **NGOÀI phạm vi, khai rõ: (1) `W3b` cắm mã thoát (chờ soak) · (2) `W5b` vế (ii) — cả hai KHÔNG được đọc là đã niêm phong.** 🔴 Dấu này **KHÔNG** phong nấc *đã được kiểm chứng* (chỉ hub cấp) | **pain:** bảng gốc 12 TC + báo cáo cuối là vật gửi ra ngoài; không có dấu thì không phân biệt được *bản nháp* với *bản chủ dự án đã đọc và chấp thuận* · **volume:** 12 TC × 20 khoản danh mục kiểm × 10 wave, gửi hub · **quality:** 4 ô GIỮ CHỮ hub không bị điền số · 0 tự phong nấc trong bảng · mutation-test E-9 ĐẠT (0 → 2 đỏ mới → 0) · cổng đồng-bộ 4/4 tầng khớp, 1 lệch ĐÃ KHAI | null (additive) | 🔖 **Active-High** (anh-confirm **S181** · P4 report-before-stamp: lead trình cổng đồng-bộ + bảng gốc → anh chốt *"đồng ý stamp - ký tên"* → stamp) |
> 🔄 **CHÚ-THÍCH S149 (2026-07-24) cho mark `RC-pqhuy1987-15-07-2026-15-32-23` — BẢN KÝ GIỮ NGUYÊN, KHÔNG SỬA MỘT CHỮ (P4/P8).**
> §-target của mark ghi `.claude/agents/lead-{view,omission}-auditor.md`. **@S149 anh ratify rename 5 vai đồng-bộ sister** ("OK đồng ý"): `lead-view-auditor`→`lead-stale-auditor` · `lead-omission-auditor`→`lead-gap-auditor` · `h24-audit`→`ring2-audit` · `tooling-harvest-audit`→`ring1-audit` · `sleep-audit`→`ring4-audit`. **Cùng vai, cùng contract, chỉ đổi TÊN** — mọi điều-khoản mark áp nguyên sang tên mới (đúng khuôn chú-thích S122 "∈ roster hiện-hành": mark trỏ VAI, không trỏ chuỗi tên). Enum class `view-*`/`gap-*` GIỮ NGUYÊN lượt này (không map 1:1 với hub 12-class; tally đang arm JUMP dải 3-4 — đổi key giữa chuỗi = gãy tally; số phận theo spec hội-tụ bookend).
> 🔄 **CHÚ-THÍCH S123 (2026-07-15) cho mark `RC-pqhuy1987-15-07-2026-15-32-20` — BẢN KÝ GIỮ NGUYÊN, KHÔNG SỬA MỘT CHỮ (P4/P8).**
> 🔺 **Delta này nay đã có mark RIÊNG `RC-pqhuy1987-15-07-2026-17-23-10`** (anh chốt S123 *"đồng ý"* — vì đây là **quyết-định MỚI**, không phải delta-trong-mark-cũ; đúng ranh-giới mà tiền-lệ **H-15 v2 @S82** loại trừ: S82 = *"delta TRONG mark cũ"* · S122 = *"làm-rõ Ý-ĐỊNH"* · **S123 = đổi THỰC-CHẤT cái sàn mark mô-tả**). Chú-thích dưới GIỮ làm con-trỏ + audit-trail.
> **Điều-khoản (2) của thân mark ghi:** *"orphan = **TRI-ACCEPT** (dạng-1 phẳng · dạng-2 C8 `harvest/` · dạng-3 `## synthesis` trong `run.md`)"*.
> **Anh CHỐT @S123: RETIRE dạng-3** ⇒ sàn nay là **DUAL-ACCEPT** (dạng-1 + dạng-2). Thân mark **giữ nguyên**; chú-thích này là chỗ ghi delta.
> 🔴 **LUẬT retire (căn-cứ THẬT):** *gỡ một nhánh legacy khi **tập di-sản RỖNG**; giữ khi **CÒN người thụ-hưởng**.* **Đo 2 phép ĐỘC-LẬP, khớp (harvest-curator + lead):** dạng-3 → **0 folder** (cả **6 folder** từng dựa — `S112`×4 · `S113` · `S114` — **nay đều có flat** sau retro-harvest `22ea8c5`) ⇒ **gỡ**. dạng-2 → **5 folder S71** ⇒ **GIỮ**. Miễn-trừ C8 (*tha di-sản*) hết hiệu-lực **đúng lúc hết di-sản để tha**, không sớm hơn.
> ⚠️ **RÚT LẠI một lập-luận của lead (reviewer S123 bác, và bác ĐÚNG):** bản đầu chú-thích này viết *"retire KHÔNG mâu-thuẫn mark mà **HOÀN-THÀNH** nó"* — **đó là NGUỴ-BIỆN**. Điều-khoản (2) dựng **"NHẬN ≠ CHO PHÉP"** thành **nguyên-tắc**, **CỐ Ý tách** lưới-rộng (nhận) ⟂ luật-hẹp (cho phép). Retire **thu lưới bằng luật** ⇒ biến **nhận = cho-phép** ⇒ **NGƯỢC** điều-khoản, không phải hoàn-thành nó. *(Retire vẫn ĐÚNG — nhưng vì lý-do ở trên: hết di-sản. Không được mượn chính điều-khoản để biện-minh cho việc làm ngược nó.)*
> 🔴 **ĐÂY LÀ QUYẾT-ĐỊNH MỚI, KHÔNG PHẢI DELTA — cần ANH chốt có mark MỚI hay không.** Tiền-lệ phân đôi rõ: **H-15 v2 @S82** (`adap-reports/2026-06-21:37`) lead sửa What-cell, biện-minh *"delta TRONG mark cũ, **không phải quyết-định-governance MỚI**"* · **S122 mark `20-42-01`** anh chốt chú-thích, thân nguyên = **làm-rõ Ý-ĐỊNH** (roster 12 = ảnh chụp). **S123 thì khác cả hai:** anh **CHỐT RETIRE** = đổi **thực-chất** cái sàn mark mô-tả (TRI→DUAL) ⇒ **đúng ca mà tiền-lệ H-15 loại trừ**. Form chú-thích **hợp-lệ** (P4/P8 không bị vi-phạm — lead **KHÔNG tự đóng dấu**), nhưng **lead KHÔNG được chốt bằng lập-luận "hoàn-thành"** ⇒ **treo cho anh quyết: mark MỚI, hay chú-thích này là đủ?**
> ✅ **RESOLVED @S130 (2026-07-16, anh confirm qua AskUserQuestion "Gỡ carry"):** câu treo trên đã có lời đáp bằng CHÍNH mark `RC-pqhuy1987-15-07-2026-17-23-10` (thân đầy-đủ + stamped Active-High ở bảng trên; 🔺 chú-thích đầu khối đã trỏ) — tức nhánh "mark MỚI" là nhánh đã xảy-ra, anh chốt S123 *"đồng ý"*. Carry mark-S123 gỡ khỏi sổ theo-dõi; dòng treo giữ nguyên làm audit-trail (near-miss lớp-4 "trạng-thái cũ như chân-lý" — bắt @S129 bằng grep-đĩa, đóng @S130).
> **Fault-inject RE-VERIFY @S123 sau khi gỡ: 7/7 PASS** — FLAG: orphan-thật · flat 0-byte · C8 0-byte · 🔴 `run.md` có `## Synthesis` mà **không có flat** (ca này **S122 IM → S123 FLAG** = hiệu-lực của retire) · IM: dạng-1 · dạng-2 · folder không `run.md`.
> 🧊 **2 ca fault-inject S122 nay hết nghĩa** (`dạng-3 IM` · `"synthesis" giữa câu văn FLAG`) — cả hai đo nhánh đã gỡ; giữ làm **chứng lịch-sử**, KHÔNG phải test đang chạy. Con số **9/9 của S122 vẫn đúng với bản S122**; **7/7 là của bản S123**.
> 🔸 **Điều-khoản (2) còn ghi:** *"dạng-4 = **kẽ CÒN LẠI**, khai thẳng chưa xử"* — **VẪN ĐÚNG, KHÔNG đổi**. Nhưng **ví-dụ minh-hoạ (`pe-negative-quote`) đã chết**: `22ea8c5`@14:28 thêm `implement-synthesis.md` 8.249B ⇒ nay là dạng-1, trong khi câu văn viết @`dfa3dae`@14:48 = **SAU 20 phút** ⇒ **stale-at-birth**. Đã đính-chính tại [`tiep.md §0`](../commands/tiep.md); **lập-luận giữ, literal gỡ** (class `acceptance literal tự-lão-hoá`, S121).
> **Sweep `view-residual-asym` cùng lượt (chống sửa-một-phía):** `tiep.md` (frontmatter + `:31` + `§0`) · `workflows/README.md:21-31` · `session-end.md` ×5 · `session-start.md:79`. **Đóng băng CÓ CHỦ-ĐÍCH** (lịch-sử, đúng tại thời-điểm ghi): `runs/**` · session-log S122 · adap-report/request · broadcast đã gửi hub · narrative `STATUS`/`HANDOFF`.
> 🔄 **CHÚ-THÍCH S122 (2026-07-15) cho mark `RC-pqhuy1987-11-07-2026-20-42-01` — BẢN KÝ GIỮ NGUYÊN, KHÔNG SỬA MỘT CHỮ (P4/P8).**
> **Vấn-đề:** thân mark ghi *"vai anh gán đích-danh **∈ roster 12**"*. Đó là **con-số của thời-điểm ký (2026-07-11)** — một **ảnh chụp**, KHÔNG phải giới-hạn. Roster đã đổi (S121 W2 +2 monitor H24) ⇒ đọc mark theo **nghĩa đen** thì `/fable-real lead-view-auditor ` **nằm ngoài phạm-vi luật** = **hậu-quả THẬT**, không phải lỗi chính-tả.
> **Anh CHỐT @S122** (AskUserQuestion): **ý-định điều-khoản = "∈ roster"** — bất-kỳ vai nào trong **roster HIỆN-HÀNH** (số vai canonical → [`docs/STATUS.md`](../../docs/STATUS.md) §Sub-agents, B1) ⇒ **2 lệnh engine-đắt hợp-lệ với TOÀN roster**.
> **Vì sao chú-thích thay vì sửa:** mark = **bản đã ký**; lead **KHÔNG tự sửa** (P4/P8). Chú-thích **cộng thêm** giữ được **cả hai**: chữ-ký toàn-vẹn **và** luật đọc ra đúng hiện-tại. *(3 lựa-chọn đã cân: giữ-ký+chú-thích **[anh chọn]** · sửa-thân-thành-B1-trỏ · coi-là-history-frozen-không-đụng — cái cuối bị loại vì P7 hiển-thị mark MỖI phiên **như luật hiện-hành**, không phải như sử-liệu.)*
> 🔸 **Nấc chung rút ra:** thân mark **KHÔNG nên chép con-số dẫn-xuất** (roster/count) — đó chính là class `view-stale-count`/`view-stale-role-desc` mà **2 vai H24 vừa được ký trong chính wave này** sinh ra để soi. Mark tương-lai: **trỏ canonical**, đừng chép số.
## 🟢 ACTIVE (follow + nhắc-lại xuyên-suốt — HIỆN @session)
_(trống)_
## 🟡 MEDIUM (neo chưa-rõ; follow nhưng skippable — tóm-tắt @session)
_(trống)_
## §LT3 — LUẬT TỰ-TRỊ 3 BẬC (🔴 NHÀ NGUỒN canonical — P5, anh gật "nguyên văn" @S181 2026-08-07)
> 🔴 **ĐÂY LÀ NGUỒN DUY-NHẤT của luật 3 bậc.** Mọi nơi khác (`ST-002` của sổ W4, `ritual-labels.md §6` khoản (vi), doc dẫn-xuất) **TRỎ về đây, CẤM chép nội dung** — chống nguồn-đôi `C3-07` ⟂ `ST-002` (lane C §F.2 lỗ-1).
> 🧊 Trước @S181, `ACTIVE-MARKS` là **uỷ-quyền-per-quyết-định**, KHÔNG phải luật 3 bậc (lane C §F.1 đo **0 hit**, control dương 19). Khối này đóng đúng lỗ đó.
| Bậc | Tình huống | AI làm gì |
|---|---|---|
| **1 — RÕ** | Đặc tả/luật nói rõ, không có chỗ đọc hai nghĩa | **TỰ VÁ**, không hỏi. Khai ở báo-cáo lượt |
| **2 — MƠ HỒ** | Đọc được ≥2 nghĩa, nhưng hành-động **không phá huỷ** | **CHỌN NHÁNH AN TOÀN**, đi tiếp, **KHAI RÕ đã chọn nhánh nào và vì sao**. 🔴 **+ Điều-kiện-3 (ghép @S181, anh gật):** khi **không phân biệt được** *dời-có-chủ-ý* với *rơi-im-lặng* ⇒ khai đúng chữ **"không đủ dữ liệu"**; **CẤM mặc định về nhãn miễn tội.** Một nhãn miễn tội không có rào sẽ thành **cửa thoát vạn năng** cho mọi lần rơi |
| **3 — MƠ HỒ + PHÁ HUỶ** | Vừa đọc được ≥2 nghĩa, vừa có thể mất dữ-liệu / đổi luật đã ratify / tác-động ra ngoài | 🔴 **DỪNG, HỎI ANH.** Cấm tự chọn |
**Ranh bậc-2 ⟂ bậc-3 = tính PHÁ HUỶ, không phải độ khó.** Việc khó mà đảo ngược được ⇒ bậc-2. Việc dễ mà mất dữ-liệu ⇒ bậc-3.
✅ **ĐÃ GHÉP VÀO BẬC-2 @S181 (anh gật câu 2).** *(Ghi lại nguồn để truy: đề-xuất này lead nêu @S181 — xem `owner-decisions-07-08-2026-dot-2.md` ghi-chú (d)): thư hub `2026-08-07-Governance-nghi-thuc-hai-dau-nhip-thua-va-luu-nguyen-van.md` đề nghị một câu cụ-thể cho **bậc-2** — *không phân biệt được **dời-có-chủ-ý** với **rơi-im-lặng** thì khai **"không đủ dữ liệu"**, **CẤM mặc định về nhãn miễn tội***. Nguồn: thư hub `2026-08-07-Governance-nghi-thuc-hai-dau-nhip-thua-va-luu-nguyen-van.md`. Hub tự khai đây là **điều kiện đắt nhất** trong 3 điều kiện của họ, và giao cho một vai soi **chiều ngược** (bắt *nhãn nhẹ gán bừa*, không chỉ *nhãn nặng gán oan*).)*
## 📦 SUPERSEDED / DISABLED (ẨN khỏi session display — giữ audit-trail, KHÔNG xóa)
| ID (RC-signature) | §-target SE (≙ AI_INFRA) | What | objective-criteria (pain · volume · quality) | supersedes | Status |
|---|---|---|---|---|---|
| `RC-pqhuy1987-03-07-2026-17-46-35` | `harness-11-engine.md §K` + `.claude/commands/fable-{real,clone}.md` + marker `.claude/fable-real-mode.on` (≙ AI_INFRA H-19) | **H-19 "model ảo" ensemble + thật/ảo depth-toggle cho 2 vị-trí phán-quyết** (reviewer=cổng-cuối · investigator-codebase=ground-truth). **3 floor-point:** (1) lead LUÔN top-model KHÔNG đụng · (2) CHỈ 2 vị-trí phán-quyết chạm top-model, CHỈ chế-độ THẬT do anh gõ lệnh (KHÔNG auto/số-dư) · (3) mọi vai khác giữ model mặc-định. ⚠️ VACUOUSLY-MET-SE-today lúc stamp; first-real-run S108 đóng nấc | **pain:** "quyết-theo-từng-tác-vụ dễ quên hạ-tầng" (sự-cố thật fleet đã RCA) · **volume:** 2 vị-trí × 2 mode × N-lane ensemble cần scope-guard · **quality:** anti-consensus-catch (dogfood S101 `f229b07`) | null (additive) | 📦 **SUPERSEDED-partial S110** bởi `RC-pqhuy1987-11-07-2026-20-42-01` (H21+MTv3 per-invocation — floor-point 1/2 + marker-toggle thay; K.C 3 GAP-guard + định-nghĩa 2 engine GIỮ SỐNG trong mark mới). Stamp gốc: anh-confirm S101 · P4 dogfood WF1 `wf_5f308fd8-744` + WF2 `wf_ed5b972f-a4d` |