@ -116,6 +116,12 @@ Bearer từ `POST api.solutions.com.vn/api/auth/login` → status matrix expecte
- **S128 (2026-07-16) adap-đợt-16-07 B ground-truth 6-việc + spec-draft [fable-real-single; return GARBLE #53 → lead ghi on-behalf sau verify-đĩa 5/5]:** ⭐ LỆCH-1: config RAG per-project nằm TRONG repo con — `AI_INFRA\claude-rag\lib\projects.py:43-56` walk-up cwd tìm `.claude/rag.json`, `cfg.setdefault` chỉ merge key THIẾU ⇒ SE `rag.json:26 true` override THẮNG default `False` khung (`projects.py:39` owner-final) ⇒ flip = in-repo edit, KHÔNG cross-repo. · Nhãn-đo sweep: CHỈ C1 `crystallized-backfill.ps1:25/:117` mang "calibrated"; `mfe-eval.ps1:166-180` CÙNG divisor /4.0-/3.0 nhưng honest-RANGE không-nhãn ⇒ cùng-số-khác-tội — nhãn là vấn-đề, không phải hằng-số. · `budget.measured` 0 automated reader (`memory-selfimprove-audit.ps1:18/:110` khai stale+ignore; archive-gate/backfill đo live) — MẠNH hơn seed verdict A "1 reader ignore". · Ghi-đĩa-TRONG-lúc-làm cứu trọn draft 6/6 việc khi return garble (bài S123 lần đầu chạy THẬT ở lane invest). Draft: `runs/2026-07-16-S127-adap-dot-16-07/sub-investigator-2-spec-draft.md`. Tag `[s128, adap-dot-16-07, lech-1-config-in-repo, ghi-dia-trong-luc-lam]`
## 2026-07-17 S138 — /fable-real invest wave adap 3 bản 17-07 (engine: fable-real single deep-pass · model `claude-fable-5` — em-main stamp @P3)
- **Task:** invest + SPEC-propose wave 3 bản AI_INFRA (đính-chính-kép `624c378d` · master-checklist `cadd24ae` · năm-quyết `123d8272`) — run `2026-07-17-S138-adap-3-ban-17-07``wf_56d248ea-f8e`, sub-MD ghi-đĩa-trong-lúc-làm TRỌN trước return (0 garble, 35 tool-use).
- **Verdict:** 3/3 FIT; cần-implement THẬT = 3 cụm (khối MASTER-CHECKLIST 2-tầng 4 cửa · detector C6 cite-2-nấc · H24-4 pending-flip); Δ2 = **SE-originated** (outbox errata-report `:20` = chính ca 13-dương-giả trong broadcast); còn lại already-compliant/text-only. Lead verify độc-lập 4/4 claim chịu-lực khớp đĩa.
- **Learned:** Delta chữ-hẹp của hub PHẢI grep **landing-site trong luật SỐNG** của mình — SE chép nguyên danh-sách 4-nhãn lỗi vào `reviewer.md:46` (adopt-verbatim = kế-thừa cả lỗi nguồn). Detector mới có matcher prose ⇒ khai `Test-Quoted` + biết-trượt ngay TRONG spec (spec tự-quy-chiếu vì mô tả token CHỜ GẬT).
- **Surprise:** (a) G-011 nấc-ladder 0 định-nghĩa canonical on-disk (import ngầm hub-convention); (b) sweep hứa-máy = 0 unbacked — SE quen cite thẳng tên script; (c) `mfe-eval.ps1` vừa đo vừa ghi `.mfe-state.json` vào vùng-họ-đo (benign — khai ngoại-lệ trong câu luật K1); (d) HANDOFF L15/L19 lineage còn CHỜ-GẬT của việc đã đóng = 2 dương-giả nếu H24-4 quét cả file → scope segment-hiện-hành.
-`session-start.md` Phase 3: + khối Tầng-2 4-nhóm vào template REPORT (work-state §2.1.5 GIỮ NGUYÊN làm nguồn — REPORT trỏ nó; nhóm chờ-anh BẮT BUỘC đánh số).
-`session-end.md` Phase 4: + **"TỔNG-HỢP CHỐT"**: arc nào ĐÓNG trong phiên + MỌI mục chưa-đóng → chỉ đích nơi đổ (carry-slug HANDOFF / WAL-line / STATUS-row); + 1 dòng luật-hoá sàn-5 tại §L.b(j)(iv): "khối chờ-anh trong HANDOFF LUÔN đánh số".
-`pause.md` bước 5: + ý-6 "in MASTER-CHECKLIST rút-gọn (Tầng-1 + đếm 4-nhóm + liệt chờ-anh đánh số) — derive từ WAL vừa ghi + HANDOFF".
-`tiep.md` §3-bis (sau "Ground-truth thắng WAL"): "in MASTER-CHECKLIST cập-nhật từ WAL đã reconcile (vừa-xong · vẫn-treo · chờ-anh đánh số)".
- Giữ mỗi khối NGẮN (khuôn ≤15 dòng/file); KHÔNG đổi cấu-trúc section hiện có; KHÔNG chạm con-số config nào.
**(C1) 2 câu đóng-băng bề-mặt-đo** — `session-end.md §L.b(c)` ĐẦU khối: "Từ lúc chạy script đo đầu-tiên của khối (c) tới verdict cuối: KHÔNG ghi vào **bề-mặt-đo** = `.claude/agent-memory/**` + `.claude/governance/{.session-counter.json, ACTIVE-MARKS.md}` + `docs/{STATUS,HANDOFF,gotchas}.md` + `docs/governance/error-ledger.md` + `docs/changelog/migration-todos.md` + `.claude/agents/*.md` + `runs/*/run.md`; việc ghi phát sinh giữa chừng → xếp hàng SAU verdict. Ngoại-lệ: `.claude/WAL.md` (ngoài vùng đọc cả 5 script đo) + state-write của chính bộ-đo (`.mfe-state.json`)." + 1 câu mirror ngắn ở `session-start.md §2.1.2`. Text-only.
- Scope: `docs/governance/*.md` top-level (EXCLUDE `adap-reports/` dir = 90 occ lineage) + `.claude/commands/*.md` + `.claude/agents/*.md`. Regex path:line trên ext `md|ps1|js|cs|tsx?`.
- 2 nấc: file KHÔNG tồn-tại (resolve repo-rel + root quen `.claude/`, `docs/`) → FLAG LOW `cite-dead-file`; tồn-tại mà line > EOF (`ReadAllLines.Length`) → FLAG LOW `cite-line-past-eof`. *(LOW không MED — suite convention: net mới chưa-triage đọc bằng phán-đoán, tránh MED-noise ngày đầu; fold TOTAL + nâng sev = quyết sau triage, owner-gated.)*
- 3 loại-trừ: (a) code-fence + inline-backtick qua **`Test-Quoted`** (matcher prose ⇒ BẮT BUỘC — luật S123); (b) lineage: dir-exclude adap-reports + dòng mang marker đóng-băng 🧊 (khai thẳng: lineage ngoài 2 proxy này chấp-nhận dương-giả đầu, tune sau first-run); (c) self-def: đăng-ký `Test-Excluded` (C4) cho chính detector + spec/sub-MD run này.
- Fault-inject cây tạm `-RepoRoot` 6 ca: cite-gãy-file → FLAG · cite đúng → IM · cite trong fence → IM · line>EOF file thật → FLAG · cite trong backtick → IM · **anti-Goodhart: 2 cite cùng dòng (1 đúng 1 gãy) → FLAG đúng 1**.
- Header khai limit: KHÔNG bắt trôi-mềm trong-EOF (class S108 ±1-2). Script ASCII-only + build token bằng code-point (gotcha #30).
**(C3) K3:** 0 code — adap-report bản-3 ghi bảng 3-hit/3-traced (`session-end.md:103`→H24-2 · `tiep.md:70`/`:73`→DUAL-ACCEPT block) + verdict candidate-list RỖNG, trình anh 1 dòng. *(Optional owner-gated: câu cửa-duyệt reviewer "diff thêm câu hứa-máy? → mã nào làm?" — chỉ liệt trong report, KHÔNG tự thêm.)*
**(C4) 1 câu relay-attribution** — nhà ĐỀ-XUẤT-MẶC-ĐỊNH = `docs/rules.md §6.6`*(em-main ghi; [owner-reviewable] — anh đổi nhà sang error-ledger được khi đọc report)*: "Thuật-lại quyết-định owner mang verb-durable (vĩnh-viễn/đóng-hẳn/bỏ-hẳn) = hợp-lệ KHI VÀ CHỈ KHI attribution tường-minh NGAY CẠNH verb (anh-chốt / anh-confirm S<nn> / mã RC-* / quote nguyên văn); verb-durable trần = tự-phán. Ranh máy-kiểm nếu mai port scanner lớp-từ: token-attribution cùng dòng + matcher PHẢI `Test-Quoted`." Kèm 1 dòng trỏ **G-011 ladder** (agreed/executed/verified-pending — "KHÔNG tự khai verified") vào `docs/governance/error-ledger.md` vì hiện 0 định-nghĩa canonical on-disk *(surprise-2 invest; [owner-reviewable])*.
- Nguồn A: `docs/HANDOFF.md`**segment HIỆN-HÀNH ONLY** (đầu file → trước match `Prev S` đầu-tiên; L15/L19 lineage = biết-trượt phải IM) + `docs/STATUS.md` §🔥 In Progress hiện-hành.
- Match: token chờ (`CHỜ GẬT|CHỜ ANH|chờ-ký` — build code-point #30) CÓ mã `RC-pqhuy1987-*` hoặc slug-mark cạnh (cùng đoạn-logic) × Nguồn B `ACTIVE-MARKS.md`: mã đó ĐÃ stamped (row Active/Active-High) hoặc `✅ RESOLVED` → FLAG LOW `pending-flip-stale`.
- Biết-trượt 5 ca (cây tạm): hàng giả CHỜ-GẬT RC-fake + mark RC-fake stamped → FLAG · mark 📦 SUPERSEDED → IM · token cạnh RC-khác chưa-stamp → IM · token trong backtick/fence (`Test-Quoted` — spec này TỰ-QUY-CHIẾU vì mô tả token chờ, khai trước) → IM · quét segment lineage → 0 flag.
- Live đầu kỳ-vọng **0 flag** (đúng thiết-kế — giá-trị ở phiên tới). Khai thẳng: class "đề-xuất-landed-in-CODE không mark" (ca S137) NGOÀI tầm máy → GIỮ H24 view-audit mắt-người theo nhịp.
**(C6) K6 — 2 mảnh:** (i) `session-end.md` §L.b(c) Item 3-bis: +2 dòng khuôn `memory-triple: do-record=<governance-detectors TOTAL=n>` + `memory-triple: do-record=<nhip-no 3-vế>` (0 script mới — vào session-log đã committed). (ii) 1 câu luật re-base — nhà ĐỀ-XUẤT-MẶC-ĐỊNH = `docs/governance/error-ledger.md` Active-Guards (generalize E-010 đang sống ở đó; *[owner-reviewable]*): "Re-base baseline = chốt số SỐNG tại lúc re-base — mọi số vào sổ đọc lại từ nguồn sống tại thời-điểm ghi (CẤM chép từ ghi-chú/phiên trước, kể cả ghi-chú của chính mình); byte = `(Get-Item).Length` (E-010)."
## ③ Checklist thi-công (vai + deliverable + acceptance ĐO ĐƯỢC)
**Owner-gated (trình anh trong report cuối, KHÔNG chờ giữa pipeline):** nhà 2 câu luật (mặc-định đã chọn ở trên — anh veto được) · optional câu cửa-duyệt hứa-máy · fold C6 vào TOTAL + nâng sev sau triage · wording luật nếu anh muốn chỉnh.
**Thi-công:** hmw 1 invocation 2 lane (L1 ⟂ L2 file-disjoint, index 0/1 — không collision sub-file per fix S134) · Opus 4.8 MAX qua worker-tier-pin frontmatter (đúng lệnh anh "hmw cho Opus 4.8 MAX") · L3 = invocation reviewer riêng sau khi L1+L2 land · EM micro-edits sau L3 GO.
> Engine: /fable-real single deep-pass (anh gán đích-danh). PROPOSE-ONLY — lead verify rồi ghi spec.
> 3 bản đọc TRỌN: đính-chính-kép `624c378d` (update) · master-checklist `cadd24ae` (new) · năm-quyết `123d8272` (new digest).
> Mọi số đếm dưới = ĐÃ chạy lệnh (lệnh ghi kèm §7). Ghi-đĩa-trong-lúc-làm (bài S123 — chống #53 garble).
---
## §1 — PROJECT-FIT per-khoản (CẢ 3 bản)
| Bản | Khoản | FIT | Nấc | 1-dòng |
|---|---|---|---|---|
| 1 đính-chính-kép | Δ1 nhãn `grounded` sót kiểm-kê | ADOPT | **cần-implement-NHỎ** | Re-grep 5-nhãn ĐÃ chạy trong invest này = 0 hằng-số `grounded` mọi bề-mặt sống; NHƯNG `.claude/agents/reviewer.md:46` câu cửa-duyệt chép đúng danh-sách 4-nhãn LỖI của hub → vá +`grounded` (1-từ) |
| 1 đính-chính-kép | Δ2 ext-filter Office | ADOPT | **already-compliant (SE-originated)** | SE CHÍNH LÀ dự-án báo 13 dương-giả (`broadcasts/outbox/ai_infra/2026-07-16-se-to-ai_infra-adap-2-errata-report.md:20`); script standing `agent-frontmatter-eol-check.ps1` KHÔNG dùng ext-filter (byte-level CR, scope .claude MD-only) → 0 chỗ sửa |
| 2 master-checklist | Sàn-1 hai tầng / 4 nhóm | ADOPT | **cần-implement** | Tầng-1 có (Plan cha/con Phase 3/4 + WAL goal); tầng-2 hiện 3-state (`🟢🟡⚪` / `[x][!][ ]`), nhóm **chờ-anh** nằm TÁCH (work-state §2.1.5-3 + HANDOFF NEXT-anh) — chưa hợp nhất 1 VIEW 4-nhóm |
| 2 master-checklist | Sàn-2 mọi cửa | ADOPT | **cần-implement (2/4 cửa)** | Mở/đóng ĐỦ; `/pause` in 5-ý (goal + `[!]` đầu — không full 2-tầng); `/tiep` in reconcile không in checklist tổng |
| 3 năm-quyết | K3 hứa-máy phải quét thật | — | **already-by-sweep** | Sweep ĐÃ chạy: 3 hit ngoài lineage, **3/3 trace được mã thật** (§3.6) → candidate-list cho anh = RỖNG |
| 3 năm-quyết | K4 ngoại-lệ relay-attribution | ADOPT | **cần-implement-NHẸ (1 câu)** + n-a phần máy | SE có 2 luật lớp-từ tương-đương (G-011 "KHÔNG tự khai verified" + measured-label gate `:46`); practice đã attribution-cạnh-verb tự nhiên; chưa có scanner lớp-từ → ranh máy = n-a, ghi nguyên-tắc |
| 3 năm-quyết | K5 pending-flip detector | ADOPT | **cần-implement (H24-4)** | Cặp SE = {HANDOFF/STATUS token chờ ⟷ ACTIVE-MARKS RC-stamps}; ca THẬT ×2 (§3.8); hiện bắt bằng H24 mắt-người theo NHỊP — đúng giai-đoạn hub trước khi máy-hoá |
- **Re-grep `grounded` (invest này — kết quả 0 hằng-số):**
-`scripts/` = **0 hit** · `hmw.js` = 0 · `.claude/agent-memory/memory-budget.json` = 0 (grep 4-pattern gồm grounded: các dòng match :72/:74/:83/:88/:90/:142 đều là measured/calibrat-prose đã xử S127-S129, KHÔNG dòng nào chứa `grounded`).
-`.claude/` = 10 occ / 9 file — TOÀN archive agent-memory + workflow-runs (lineage/mention, vd `tooling-auditor/archive/2026-07.md`, run S124/S127 sub-reviewer) — không phải hằng-số sống.
-`docs/` = 8 hit — toàn prose động-từ/lineage: "Empirical-grounded" (`docs/guides/multi-agent-setup-guide.md:5`), "recon-grounded" (`error-ledger.md:94`), "re-grounded counts" (`BROADCAST-OUT…:15`), "Ground S121 bằng đếm mã-nguồn" (`docs/STATUS.md:448` row Policies). 0 hằng-số mang nhãn.
- **🔴 LANDING-SITE THẬT (surprise):** `.claude/agents/reviewer.md:46` câu cửa-duyệt sống: `"…con-số mang nhãn đo-lường (measured/empirical/calibrated/đã-đo)?"` — **4 nhãn, THIẾU `grounded`** = SE đã CHÉP danh-sách kiểm-kê lỗi của hub vào LUẬT SỐNG. Δ1 áp thẳng: vá `:46` thêm `grounded` (1-từ). Agent `.md` no hot-reload → nấc sau vá = executed→verified-pending (mirror E3 cũ, adap-report vòng-5 `:60`).
- **Trớ-trêu đúng kiểu hub tả:** hằng-số hub sống 42 phiên tự dán "Grounded in real measurements" — SE không có hằng-số grounded, nhưng có LUẬT-4-nhãn sẽ bỏ sót đúng nhãn đó nếu mai có.
### Δ2 — ext-filter Office
- **SE-originated:** `broadcasts/outbox/ai_infra/2026-07-16-se-to-ai_infra-adap-2-errata-report.md:20` — phát-hiện-riêng #1:*"Filter mẫu lỗ #4 của erratum THIẾU docx/xlsx/pptx/dll — chạy nguyên-mẫu … trên SE cho **13 dương-giả** (12 .docx + 1 .xlsx)"*. Broadcast `:33` "một dự-án … tự bắt, tự báo, kèm số — hub xác nhận" + `:61` ghi công = chính SE.
- **Standing check KHÔNG cần sửa:** `scripts/agent-frontmatter-eol-check.ps1` scope = `.claude/{agents,commands,skills}` MD-only (`:253-257` scopeSpecs), đếm **BYTE CR 0x0D** (`:135-198 Measure-EolBytes`) — KHÔNG hề dùng ext-filter/`i/-text` → filter Office không có chỗ đứng trong script. Check lone-CR `i/-text` = one-time S129 (adap-report erratum `:12` — filter SE-tailored → 0 suspect; "giữ làm regression-guard" = nghĩa là file text mới lone-CR sẽ rơi vào `i/-text` khi CÓ AI chạy lại lệnh đó, KHÔNG phải script standing).
- **Nguyên-tắc tailor** đã ghi 2 chỗ: adap-report erratum `:12` + chính thư outbox `:20` đề-nghị hub thêm câu tailor (hub nhận → thành Δ2 tầng-2). → nấc: **already-compliant, evidence-đủ; hành-động = ghi-nhận trong adap-report mới, 0 code**.
---
## §3 — Bản 2 + 3: grounding chi-tiết
### 3.1 Bốn cửa vòng-đời — hiện in gì
| Cửa | Hiện in | Evidence |
|---|---|---|
| `/session-start` | Phase 3 REPORT: Plan cha/con/task tree 3-state (🟢🟡⚪) + agent assignment + critical signal | `session-start.md:238-260` |
- Tầng-2 bốn nhóm {xong · đang-dở+breakdown · **chờ-owner** · chưa-làm}: SE task-tree = 3-state; nhóm chờ-owner sống TÁCH ở work-state §2.1.5-3 (session-start only) + HANDOFF NEXT-anh (đọc thủ-công). `/pause`/`/tiep` KHÔNG in khối chờ-anh.
- Đóng-phiên "tổng-hợp chốt: arc nào đóng + mục chưa-đóng đi đâu": Phase 4 in plan-state nhưng không có câu bắt-buộc "mỗi mục chưa-đóng → chỉ đích carry-slug/WAL-line".
### 3.3 Sàn-3/4/5 — already, evidence
- **0 nguồn-đôi:** `find -iname "*checklist*.md"` → 2 hit: `docs/guides/security-checklist.md` (khác nghĩa) + broadcast inbox. KHÔNG có checklist trạng-thái-việc nguồn-đôi.
- **WAL.md KHÔNG nằm trong vùng đọc của cả 5** → ngoại-lệ WAL của hub áp thẳng, đúng bản-chất SE luôn.
- **Ca nội-tại đáng khai:** `mfe-eval.ps1` vừa ĐO vừa GHI `.mfe-state.json` vào agent-memory root (vùng script khác đo — nhưng dotfile root KHÔNG nằm trong tập đếm của measure/archive-gate [chỉ enumerate -Directory + MEMORY.md/archive] → benign; khai thành ngoại-lệ "bộ-đo tự ghi state" trong câu luật).
- **Race THẬT của SE:** thứ-tự §L.b = (c) ĐO trước → (d) flush agent-memory SAU → sequential single-writer nên không đè-giữa-lúc-đo; exposure = sub background return giữa closeout (hiếm). Bài S135 UNION-window cùng họ (detector closeout đo per-label window vì wal-flush dời delta).
- Helper sẵn: `Test-Quoted` (`:598` — SHARED H24-1/H24-3, enclosure use⟂mention) + `Test-Excluded` C4 (`:113`) + fence-tracking đã có tiền-lệ trong H24 matchers.
- Honest-limit khai trước: 2-nấc bắt **GÃY-CỨNG** (file mất / line>EOF); KHÔNG bắt **TRÔI-MỀM** trong-EOF (class S108 cite-drift ±1-2 vẫn lọt — hub cùng giới-hạn).
- Practice attribution-cạnh-verb ĐÃ tự nhiên: mọi verb-durable đều kèm `anh chốt "…"` / `anh-confirm S<nn>` / `RC-…` (vd ACTIVE-MARKS `:34` "✅ RESOLVED @S130 (anh confirm qua AskUserQuestion…)"; budget `_owner_override_note` quote nguyên văn lời anh S129).
- Không có scanner lớp-từ → ranh máy-kiểm = n-a phần máy; ghi NGUYÊN-TẮC 1 câu (nếu mai port scanner → Test-Quoted BẮT BUỘC vì mọi doc mô tả luật này đều chứa verb-durable).
- **Ca thật #1 (mark-carry):** ACTIVE-MARKS `:33-34` — câu treo "treo cho anh quyết: mark MỚI hay chú-thích đủ?" sống S123→S129 chỉ trong history; "✅ RESOLVED @S130 … near-miss lớp-4 'trạng-thái cũ như chân-lý' — bắt @S129 bằng grep-đĩa, đóng @S130".
- **Ca thật #2 (S137):** HANDOFF "2 đề-xuất S131 CHỜ GẬT (wire tick H24 vào /tiep + light-run owner-triggered)" trong khi CẢ HAI đã actioned (tiep.md §2.5 tick ĐÃ wire + light-run ĐÃ chạy S137) — H24 `lead-view-auditor` FLAG `view-stale-status`, FIXED cùng phiên (session-log S135-S137 `:11`; STATUS `:465`). Token cũ còn ở segment lineage `HANDOFF:15/:19` (frozen Prev — minh-hoạ dương-giả nếu detector quét cả file).
- Volume token: HANDOFF = 7 dòng mang `CHỜ GẬT|CHỜ ANH|chờ anh`, STATUS = 14 dòng (đa số lineage).
- **Honest-limit:** class ca#2 (đề-xuất → landed-in-CODE, không mark) KHÔNG máy-hoá được bằng cặp này (nguồn-resolve = nội-dung file đích tuỳ-ý) → vẫn thuộc H24 mắt-người; máy chỉ ăn class ca#1 (mark-adjacent).
### 3.9 K6 — hai kỷ-luật đo
- **6.1:** memory-triple 3 dòng COMMITTED — `docs/changelog/sessions/2026-07-17-S135-S137-adap-khung-nhip-nam-vong.md:25-28` (do=measure exit 0 · de-xuat=archive-gate DRY exit 0 · kiem=mfe GOODHART-WARN 21→23). `.mfe-state.json` = tracked (strikes persist trong git — erratum lỗ#6). Detector-TOTAL + nhịp-nợ chỉ nằm narrative/commit-msg (`7760cdf` "TOTAL 46->45") — có vết de-facto nhưng KHÔNG luật.
- **6.2:** practice đúng sẵn: sleep-baseline "baseline 17-07 ≈183KB/5 file — đo TƯƠI (Get-Item).Length CẤM Get-Content (E-010)" (`session-start.md:131` + `session-end.md:56` + HANDOFF:7 số sống 183.054B) · TOTAL 46→45 đo trước-sau cùng commit · RAG 2441 re-verify live S126 (STATUS row). E-010 sẵn ở `error-ledger.md` (`:35/:57/:72` AS-14). GAP = chưa có câu luật TỔNG-QUÁT "re-base = đọc số sống lúc ghi, kể cả từ ghi-chú của chính mình".
-`session-start.md` Phase 3: nâng template REPORT — thêm khối Tầng-2 4-nhóm (work-state §2.1.5 giữ nguyên, REPORT trỏ nó làm nguồn; nhóm chờ-anh BẮT BUỘC đánh số).
-`session-end.md` Phase 4: thêm "TỔNG-HỢP CHỐT": arc nào ĐÓNG trong phiên + MỌI mục chưa-đóng → chỉ đích nơi đổ (carry-slug HANDOFF / WAL-line / STATUS-row) — khép sàn-4 bằng câu tường-minh; +1 dòng luật-hoá sàn-5 tại §L.b(j)(iv): "khối chờ-anh trong HANDOFF LUÔN đánh số (owner trả lời bằng số)".
-`pause.md` bước 5: +ý-6 "in MASTER-CHECKLIST rút-gọn (Tầng-1 + đếm 4-nhóm + liệt chờ-anh đánh số) — derive từ WAL vừa ghi + HANDOFF, KHÔNG file mới".
-`tiep.md` §3-bis (sau ground-truth-thắng): "in MASTER-CHECKLIST cập-nhật từ WAL đã reconcile (cái vừa xong · vẫn treo · chờ-anh đánh số)".
- 🔴 CẤM tạo `checklist.md` — ghi thẳng câu cấm vào khuôn (sàn-3). FORM tự-do, giữ ngắn (WAL ≤40 dòng không đổi — khối in là OUTPUT chat, không ghi file).
**(C1) Đóng-băng bề-mặt-đo — 2 câu:** `session-end.md §L.b(c)` đầu khối: "Từ lúc chạy script đo đầu-tiên của khối (c) tới verdict cuối: KHÔNG ghi vào bề-mặt-đo (`.claude/agent-memory/**` + counter/MARKS + STATUS/HANDOFF/gotchas/error-ledger/migration-todos + `agents/*.md` + `runs/*/run.md` — union §3.4 sub-MD này); ghi phát sinh xếp hàng SAU verdict. Ngoại-lệ: `.claude/WAL.md` (ngoài bề-mặt-đo cả 5 script) + state-write của chính bộ-đo (`.mfe-state.json`)." Mirror 1 câu ngắn ở `session-start.md §2.1.2`. Text-only, 0 đổi thứ-tự khối.
- 2 nấc: (i) resolve path (repo-rel + thử vài root quen: repo-root, `.claude/`, `docs/`) → file KHÔNG tồn tại = FLAG MED `cite-dead-file`; (ii) tồn tại → đếm line (`ReadAllLines.Length`) → line > EOF = FLAG MED `cite-line-past-eof`.
- 3 loại-trừ: (a) trong code-fence (tracker ``` state) + inline-backtick (`Test-Quoted` — matcher prose ⇒ BẮT BUỘC, luật S123); (b) dòng lineage: dir-exclude adap-reports + line có marker đóng-băng (🧊) — KHAI THẲNG phần lineage ngoài 2 proxy này chấp-nhận dương-giả đầu, tune sau first-run; (c) self-def: đăng-ký C4 `Test-Excluded` cho chính detector + file spec/sub-MD run này.
- Nấc: INFORM-only exit-0 (suite convention); first-run = báo count, KHÔNG fold TOTAL baseline cho tới sau fault-inject + triage (tránh Goodhart "flag giảm").
- Fault-inject (cây tạm `-RepoRoot`): cite gãy-file-giả → FLAG · cite đúng (file+line hợp-lệ) → IM · cite trong fence → IM · cite line>EOF file thật → FLAG · cite trong backtick → IM · anti-Goodhart: 2 cite cùng dòng (1 đúng 1 gãy) → FLAG đúng 1.
- Khai giới-hạn ngay header: KHÔNG bắt trôi-mềm trong-EOF (S108 ±1-2).
**(C4) K4 — 1 câu nguyên-tắc,** đề-xuất nhà = `docs/rules.md §6.6` (cluster quyết-định khách-quan): "Thuật-lại quyết-định owner mang verb-durable (vĩnh-viễn/đóng-hẳn/bỏ-hẳn) = hợp-lệ KHI VÀ CHỈ KHI attribution tường-minh NGAY CẠNH verb (anh-chốt/anh-confirm/RC-mã/quote nguyên văn); verb-durable trần = tự-phán. Ranh máy-kiểm (khi nào port scanner): token-attribution cùng dòng, matcher PHẢI Test-Quoted." Alt-nhà: error-ledger Active-Guards — lead trình anh chọn.
- Nguồn A: `docs/HANDOFF.md`**segment HIỆN-HÀNH ONLY** (từ đầu file tới trước match `Prev S` đầu-tiên — L15/L19 lineage = biết-trượt case phải IM) + `docs/STATUS.md` §In-Progress.
- Token chờ (build code-point, gotcha #30): `CHỜ GẬT|CHỜ ANH` có **mã RC-`RC-pqhuy1987-…`** hoặc slug mark cạnh (cùng đoạn-logic).
- Nguồn B: `ACTIVE-MARKS.md` — mã RC đó ĐÃ stamped (row bảng Active/Active-High) hoặc có chú-thích `✅ RESOLVED` → dòng nguồn-A vẫn "CHỜ" = FLAG MED `pending-flip-stale`.
- Biết-trượt (cây tạm): hàng giả "CHỜ GẬT RC-fake…" + mark RC-fake stamped → FLAG · mark 📦 SUPERSEDED → IM · token cạnh mã RC-khác CHƯA stamp → IM · token trong backtick/fence (mô tả — chính spec này!) → IM (`Test-Quoted` BẮT BUỘC — file đề-xuất ĐANG mô tả token chờ = tự-quy-chiếu, khai trước per luật S123) · quét segment lineage → 0 flag (dir/segment-guard có răng).
- Live đầu: kỳ-vọng **0 flag** (segment hiện-hành không hàng treo mark-adjacent) — giá-trị ở phiên tới, mirror hub khoản 5.
- Khai thẳng: class S137 (đề-xuất-landed-in-code) NGOÀI tầm máy → GIỮ H24 view-audit mắt-người theo nhịp (không thay).
**(C6) K6 — 2 mảnh nhỏ:** (i) `session-end.md` Item 3-bis: +2 dòng khuôn `do-record: governance-detectors TOTAL=<n>` + `do-record: nhip-no=<dòng 3-vế>` vào cùng khối memory-triple (0 script mới, 0 file mới — session-log đã committed). (ii) +1 câu luật re-base, đề-xuất nhà = error-ledger Active-Guards (generalize E-010): "Re-base baseline = chốt số SỐNG tại lúc re-base: mọi số vào sổ đọc lại từ nguồn sống tại thời-điểm ghi (CẤM chép từ ghi-chú/phiên trước — kể cả ghi-chú của chính mình); byte = (Get-Item).Length (E-010)."
### ③ Checklist thi-công (vai + deliverable + acceptance ĐO ĐƯỢC)
| # | Vai | Deliverable | Acceptance (đo được) |
|---|---|---|---|
| L1 | worker lane-1 (4 file cửa: `session-start.md` + `session-end.md` + `pause.md` + `tiep.md`) | Khối MASTER-CHECKLIST 4 cửa + 2 câu đóng-băng + 2 dòng do-record + 1 dòng luật-số sàn-5 + câu cấm nguồn-đôi | grep anchor khối mới hiện đủ 4 file (4/4) · `find -iname "*checklist*.md"` delta = 0 file mới · dry-run đọc-khuôn: liệt được 4-nhóm từ WAL/HANDOFF THẬT hiện-tại (chờ-anh ≥1 mục có số) · 0 đổi số nhịp/cap (diff không chạm con-số config) |
**Owner-gated (trình anh, KHÔNG tự quyết):** nhà của 2 câu luật (rules §6.6 vs error-ledger) · optional câu cửa-duyệt hứa-máy · fold C6 vào TOTAL baseline sau triage · mọi wording luật.
**Lane-estimate hmw:** ≤3 lane (L1 commands 4-file ⟂ L2 detector 1-file ⟂ L3 review) — file-disjoint hoàn-toàn; micro-edits để em-main.
---
## §5 — Surprises (ngoài câu hỏi chính)
1.**`reviewer.md:46` = bản chép LỖI-4-NHÃN của hub vào luật sống** — Δ1 không chỉ là "re-grep xong" mà có site vá thật trong SE.
2.**G-011 không có nhà canonical trong SE** — nấc-ladder dùng ở mọi adap-report nhưng 0 định-nghĩa on-disk (hub-convention import ngầm). Đáng 1 dòng trỏ trong error-ledger (owner quyết).
3.**Sweep hứa-máy = 0 unbacked** — hiếm; SE quen cite thẳng tên script thay vì hứa "máy sẽ".
4.**`mfe-eval.ps1` vừa đo vừa ghi vào vùng-họ-đo** (`.mfe-state.json` trong agent-memory) — benign vì dotfile ngoài tập đếm, nhưng đúng hình bệnh K1 → khai thành ngoại-lệ tường-minh trong câu luật.
5.**HANDOFF L15/L19 còn "CHỜ GẬT" lineage của việc đã đóng** — nếu H24-4 quét cả file thay vì current-segment = 2 dương-giả ngay ngày đầu (đưa vào biết-trượt case).
- **n-a:** K4 phần máy (0 scanner lớp-từ) · K5 class đề-xuất-landed-in-code (ngoài tầm máy — giữ H24 mắt-người) · bản-2 n-a-clause (SE CÓ phiên/carry) · Δ2 phần sửa-lệnh (0 standing check dùng ext-filter).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.