[CLAUDE] Docs: bookend @close S185 ONE-SHOT (YC-018) — trio+H24deep+ring1/2+ctx 9-vai mot-mach, harvest 698KB->11 so, 16-FLAG patched, Tests canonical 668

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-08-10 02:35:20 +07:00
parent 42f5f3b316
commit f69af273cf
34 changed files with 2004 additions and 72 deletions

View File

@ -2,13 +2,27 @@
> **Tiering rule (S40):** giữ **2-3 session gần nhất**. Cũ hơn → `docs/changelog/sessions/`. Full brief history pre-S40 → `docs/_archive/HANDOFF-preS40-fullhistory.md`.
**🆕 Last updated:** 2026-08-07 (**S180→S181** — phiên-LOGIC **L12** windows 1-2). **Gói adap 7 GĐ ĐÓNG 10/10 wave.** Anh chốt 8 câu P1-P8 + ký 2 RC-mark. Roster 26→28 vai, cap 20→30 (slot 75 đóng). 3 máy governance mới + 4 máy vá. Push `55894a04..5ae60e41`.
> 🔢 **CHỜ ANH (trả lời bằng SỐ):** **(1)** duyệt `adap-reports/upgrade-pack-phased-bao-cao-cuoi.md` → gửi hub? · **(2)** ghép điều-kiện-3 của thư hub 08-07 vào **bậc-2** luật tự-trị (`ACTIVE-MARKS §LT3`)? · **(3)** P3 = **forward-only** (lead đang đọc vậy) hay **hồi-tố** trục xuất class khỏi enum đã niêm phong? · **(4)** VK-5 — cho nhập bng `HANDOFF:10-17` vào khối chính sổ yêu-cầu, hay giữ ở phụ lục *suy ra*?
> 🔴 **NEXT-em (tự chạy, không cần anh):** cắm mã thoát W3b khi soak đủ (đã phân loại 64/64 ở `harness-11-engine PHẦN Q`) · `OVERDUE:deep` 15/15 · 3 tệp over-cap.
> 🔁 **RE-STAMP CARRY @S181** — đóng dấu lại **20 carry còn mở** (`session-end §L.b(j)(iv)`). Bản trước rơi **4 kỳ liên tiếp**, `class_repeat.gap-carry-dropped` = **12** = 4× ngưỡng JUMP ⇒ nghi-thức này **không có răng**, không phải đãng trí:
**🆕 Last updated:** 2026-08-10 (**S182→S185** — phiên-LOGIC **L13** windows 1-4; nhãn cũ "S180→S181/L12" giữ ở segment dưới). **YC-013 KHKK 8-panel SHIP+verify · YC-016 guard tay-cầm-phiếu SHIP+verify · YC-017 pipeline email/adap TRỌN (0/39 nợ per-id) · YC-018 ONE-SHOT bookend land 4 site · bookend @close MỘT MẠCH 9 vai** (trio 40Đ/4T · H24 deep 16 FLAG · ring1 30Đ/3T · ring2 16Đ/0T · ctx-audit 8 FLAG · harvest 698KB→17 khối/11 sổ). Adap-report 08-08: `docs/governance/adap-reports/2026-08-08-Governance-quy-trinh-hai-dau-phien-may-diem-danh-va-6-bai-hoc.md` (F-4 vá: trỏ bền tại đây).
> **KHỐI "CHỜ ANH @S181" — ĐÓNG 4/4 @S185, LẬT TỪNG CÂU KÈM EVIDENCE** *(đo tươi 2026-08-09, lane-4 `runs/2026-08-09-S185-email-adap-pipeline/sub-opus-lane4-report-hygiene.md §1`; 🔴 **cố ý KHÔNG lật cả cụm một nước** — 4 câu **không đồng-hạng bng-chứng**, xem 2 nhóm dưới)*:
> - 🟢 **Nền = chữ owner trực-tiếp + VẬT CHỨNG NGOÀI (chắc nhất):** **(1)** duyệt `bao-cao-cuoi.md` → gửi hub — **DUYỆT + ĐÃ GỬI @S181**: `adap-reports/upgrade-pack-phased-bao-cao-cuoi.md:3` nguyên văn ***"1,2,3,4 -> OK"*** · thư thật trên đĩa `broadcasts/outbox/ai_infra/2026-08-07-se-to-ai_infra-upgrade-pack-phased-bao-cao-cuoi.md` (**7.231 B**, mtime 08-07 23:36) · dấu `ACTIVE-MARKS.md:27` `RC-pqhuy1987-07-08-2026-21-42-10` Active-High anh-confirm S181 (PHẠM-VI-KÝ loại trừ W3b + W5b(ii) — **giữ nguyên**). · **(2)** ghép điều-kiện-3 vào **bậc-2** — **ĐÃ GHÉP @S181**: `ACTIVE-MARKS.md:65` mang nguyên khối *"+ Điều-kiện-3 (ghép @S181, anh gật)"* (`grep -n "Điều-kiện-3"` → 1 hit) + sổ `owner-decisions-07-08-2026-dot-2.md:47`.
> - 🟡 **Nền = "OK" trả cho câu do LEAD đóng khung (yếu hơn — đường đảo còn mở, ghi để không đọc quá):** **(3)** P3 — **CHỐT FORWARD-ONLY @S181** (`owner-decisions…dot-2.md:48`): **KHÔNG** trục xuất 12 class đang có; 🔴 sổ tự khai *"Muốn hồi-tố về sau thì cần một lệnh **tường minh**, không suy từ 'OK'"*. · **(4)** VK-5 — **CHỐT GIỮ PHỤ LỤC @S181** (`:49`): bảng `HANDOFF:10-17` **KHÔNG** nhập khối chính sổ yêu-cầu, ở phụ lục nhãn *"suy ra, không phải nguyên văn"* (giữ sạch cột lời-nguyên-văn, luật chống-bẫy-A1).
> 🧊 *Nguyên văn dòng cũ (giữ làm vết — bài-5):* **(1)** duyệt `bao-cao-cuoi.md` → gửi hub? · **(2)** ghép điều-kiện-3 thư hub 08-07 vào bậc-2 (`ACTIVE-MARKS §LT3`)? · **(3)** P3 = forward-only (lead đang đọc vậy) hay hồi-tố trục xuất class khỏi enum đã niêm phong? · **(4)** VK-5 — nhập bảng `HANDOFF:10-17` vào khối chính sổ yêu-cầu hay giữ phụ lục *suy ra*?
> 🔴 **Bài của lượt lật này:** giả-thiết lúc giao việc là *"(3) và (4) chắc chưa có phán quyết"* — đo đĩa thì **cả 4 đều đã có**, phán quyết nằm sẵn ở `owner-decisions-07-08-2026-dot-2.md` mục *"Còn treo sau đợt-2"* từ **08-07**, tức khối này **hỏi lại anh một việc đã xong suốt 2 ngày**. Đúng lớp *"sổ nói dối theo hướng BI QUAN"* (`:74`) — và lần này nó sống được vì **không máy nào đối chiếu `HANDOFF` ⟂ sổ quyết-định**.
> 🔴 **NEXT-em (tự chạy, không cần anh — cập nhật @S185):** W3b mã-thoát = **CHỜ rider-jump được DỰNG** (lane2 chứng soak-vế-2 chưa thoả — rider-jump 0-hit toàn scripts, "nợ-chưa-có-chủ" F-L2-2; header tien-kiem đã flip PA-2) · ~~`OVERDUE:deep`~~ ✅ **ĐÃ TRẢ @S185** (19/15 → deep_at=59, tally ghi máy) · over-cap nay = **5 vai >25.600** (4 vai >30.720; A1 impl-be + A2 lead-stale thi hành @S185, ring2 chờ quyết C-6) · vá persona ring1 `:25` "CẤM @open" (ctx-audit F-3 hệ-hỏng-3-tầng) · addendum-2 goi-chot vế 4.4.
> 🔁 **RE-STAMP CARRY @S181** — đóng dấu lại **25 slug** (đếm lại @S185 theo stale-F6: 23 dòng dưới + 2 dòng CARRY-LẠI; số "20" cũ là view-stale-count) (`session-end §L.b(j)(iv)`). Bản trước rơi **4 kỳ liên tiếp**, `class_repeat.gap-carry-dropped` = **12** = 4× ngưỡng JUMP ⇒ nghi-thức này **không có răng**, không phải đãng trí:
> `[carry:acceptance-runtime-khkk]` `[carry:account-trung]` `[carry:binh-le-decision]` `[carry:bvaau]` `[carry:ctx-t9-dogfood]` `[carry:e7-cot-chet-khkk]` `[carry:endline-sub-md]` `[carry:harvest-no-s168-s171]` `[carry:harvest-orphan-s159-tongquan]` `[carry:hmw-subfile-index-collision]` `[carry:pe-phanquyen]` `[carry:ring5-audit-gap]` `[carry:synthesis-roll-s159-s160]` `[carry:tiep-3ter-seed-unwired]` `[carry:tiep-reload-underfill]` `[carry:tools-whitelist-no-teeth]` `[carry:tra-bui-relogin]` `[carry:uat-s117]` `[carry:uat-s133-budget-freeze]` `[carry:uat-s134-luyke]` `[carry:w3b-cam-ma-thoat]` `[carry:bao-cao-cuoi-cho-duyet]` `[carry:h24-deep-overdue]`
> 🔺 **CARRY LẠI @S185 — 2 slug BỊ RỚT, nay trả về danh sách trên (ADDITIVE, không sửa dòng cũ):** `[carry:eval-thamquyen]` *(2 cột thẩm-quyền eval — slot **(22)**, nhà thật `runs/2026-07-25-S149-adap-backlog/sub-apply-L5-evalcuaeval.md:37,41,59,115`; có ở carry S150-S152, **0 hit** ở khối này trước lượt vá)* · `[carry:session-model-adopt]` *(cổng (c) duyệt bảng VC-1/2/3 — có ở carry S140-S151, **0 hit** ở khối này; wire đã xảy ra de-facto, xem addendum `adap-reports/2026-07-17-…session-model-phien-logic-manifest.md §6`)*. Lệnh chứng: `grep -c "carry:eval-thamquyen" docs/HANDOFF.md` → **1** trước vá (chỉ segment cũ `:241`), control-dương `carry:ctx-t9-dogfood` = **6**.
> 🔴 **2 ca `gap-carry-dropped` này KHÔNG nằm trong tally 4-kỳ ở trên** — chúng rơi **im lặng** và chỉ lộ ra khi có người đi tìm *nhà* của một câu hỏi (C-16), không phải khi chạy nghi-thức re-stamp. ⇒ bằng-chứng thứ hai cho chính câu *"nghi-thức này không có răng"*: nó **không tự phát hiện được slug mình đánh rơi**, vì nó chép danh-sách kỳ trước chứ không dựng lại từ nguồn.
> 🔸 **2 việc trình lead, lane-4 CỐ Ý KHÔNG tự làm:** (i) **đếm lệch** — header trên ghi *"20 carry còn mở"* nhưng danh-sách đếm được **23** slug (chưa kể 2 slug vừa carry lại) ⇒ tally là số của lead, không tự sửa. (ii) **`[carry:bao-cao-cuoi-cho-duyet]` đủ điều-kiện ĐÓNG** (câu (1) khối trên: duyệt + đã gửi hub + có dấu RC) — nhưng đóng carry thuộc nghi-thức `session-end §L.b(j)(iv)`, lane-4 chỉ **nêu ứng-viên**, không tự đóng.
> ✅ **ĐÓNG @S181:** `[carry:hmw-width-vs-roster]` — cap 20→30, roster 28 ≤ 30, slot (75) khép.
> 🔴 **`[carry:h24-deep-overdue]` MỚI** — `OVERDUE:deep` 15/15 bị lead hạ xuống hàng NEXT-em ngang việc vặt (FLAG-4 `gap-decision-sunk`). Cổng ĐÃ kêu, máy ĐÃ in, lead ĐÃ chép 2 sổ — rồi vẫn hoãn. **Cổng kêu mà không đổi hành-vi = cổng không có răng.**
> 🔻 **THU HẸP @S185 (KHÔNG gỡ trắng): `[carry:ctx-t9-dogfood]`** — carry này **ĐA VẾ** (định nghĩa gốc `:206`+`:210`, khớp PHẦN B `runs/2026-07-26-S153-ctx-adopt/sub-fable-invest-S153.md:129-134`). Đóng **TỪNG VẾ có bằng-chứng**, vế thiếu thì **giữ**, không đóng cả cụm:
> · **#18 dogfood 4-cửa THẬT — ĐÓNG:** `session-start` Phase 3.5 → 8 tệp `_mind-s-{6..13}.md` (12.482→43.663 B) · `/pause` C-bis → `_context-s-12.md:47` entry `PAUSE-1` · `/tiep` §3-ter → `owner-decisions-07-08-2026-dot-2.md:3` *"window-2 … **vào bằng `/tiep`**"* + `ctx-verifier` diary **19.205 B** · `session-end` (l) → **10** tệp `sub-ctx-audit-{open,close}-*.md` (S154→S182). Lệnh: `ls .claude/sessions/*/_mind*.md` · `ls .claude/workflows/runs/*/sub-ctx-*.md`.
> · **#20 spawn-probe CẢ 3 vai ctx — ĐÓNG:** `ctx-audit` 10 artifact đĩa · `ctx-curator` diary **12.465 B** mtime 08-08 (seed ~1,5 KB) + chính anh chốt *"Residual ctx-curator — giữ"* @S179 (`:20`) cho 2 tệp nó GHI THẬT · `ctx-verifier` diary **19.205 B** mtime 08-07 23:14 + 15 cờ @S185 (report 08-08).
> · **#22 lưới C11(b) fault-inject 2-CHIỀU — ĐÓNG:** `runs/2026-07-24-S149-hoi-tu-bookend/sub-impl-M4-c11.md:46` ca (c) — part(b) `diary-0-delta` **FLAG** ⟂ part(a) **IM** (anti-FP).
> · **wall-clock (#16) — ĐÓNG:** điều-kiện *"lệch >2× thì điền số THẬT"* đã kích hoạt và đã điền — `pause.md:66`: **+~0,12 s máy** (draft 61,3 ms + full 55,4 ms; tệp 34 KB vẫn 63,8 ms), thay ước 0,3-0,6 s (**lệch 2,2-5,4×**).
> · 🔴 **CÒN MỞ — carry thu về đúng 2 vế này:** **(i) #19 mồi-ngầm XUYÊN-CỬA-SỔ mới đóng NỬA** — vế *gieo* ĐẠT có vết (`runs/2026-08-05-S173-bookend-open/sub-ctx-audit-open-S173.md:377` *"(i)-4 gieo mồi-ngầm | **ĐẠT** — gieo tại §(v)"*), nhưng vế *"cửa-sổ SAU (/tiep) **nêu lại đúng ý**"* **chưa trưng được** trên đĩa ⇒ chưa có bằng-chứng fidelity-sau-nối-lại, đúng cái hub dặn *"đừng tin số của hub, tự đo"*. **(ii) #23 vế đối-chứng-dương TRƯỚC T5** (`role:'ctx-audit'` phải throw STOP-HARD) **n-a — không tái-lập được**, T5 đã land từ S153; vế owner-note của #23 thì đóng theo slot (75). 🔸 *Vế owner-note và #22 KHÔNG được đọc là đã phủ #19 — 3 diary `harness-{eval,audit,refine}` là **trio 07-21**, KHÁC trio ctx.*
> 🔴 **`[carry:h24-deep-overdue]`** — ✅ **ĐÓNG @S185**: deep-sweep ĐÃ CHẠY (19/15 trả, cặp H24 16 FLAG + ring2 16Đ/0T, tally máy `deep_at=59`). 🧊 lời cũ giữ làm vết: cổng kêu 4 kỳ mới có người trả — "cổng kêu mà không đổi hành-vi = cổng không có răng" vẫn là bài học đúng.
> 🔺 **KHÔI PHỤC @S185 — 12 slug VẮNG khỏi khối trên** (gap-deep F-1: khối `Carry @S152` `:232` tự khai "đủ MỌI slug" 23 cái, RE-STAMP chỉ giữ 11; ADDITIVE trả về, phân-định per-slug ở `runs/2026-08-09-S185-bookend-close/sub-lead-gap-deep.md` — 7 rớt-thật · 5 đủ-evidence-sẽ-đóng-có-verify): `[carry:bookend-5-5]` `[carry:carry-age-vacuous]` `[carry:context-stock]` `[carry:g011-token-fork]` `[carry:hook-vs-budget-cap]` *(điều-kiện CÒN SỐNG: 4 diary vượt soft-cap đo @S185)* `[carry:hub-review-wave-1807]` `[carry:meld-forward-unmeasured]` `[carry:pull-warn-threshold]` `[carry:tham-sau-6-ca]` `[carry:tiep-window-crash]` `[carry:underfill-mau-so]` *(điều-kiện CÒN SỐNG: target 210.000 > headroom 134.573 máy in @S185)* `[carry:veto-window-s149]`. ✚ ghi-nhận đóng: **V-5 vị-từ mã-hoá ĐÓNG @S185** (detector C15 rank-1/rank-2 land, `governance-detectors.ps1` — đo thật 12 file/25 hit rank-1).
---
@ -31,6 +45,12 @@
**(73) 🔴 RESTART CLI để spawn-probe 3 vai STYLE** — chốt-chặn DUY NHẤT còn lại của đội STYLE. Registry = ảnh-chụp lúc khởi phiên, **KHÔNG hot-reload**; `ls` + grep `VALID_ROLES` chỉ là điều-kiện **CẦN**. Anh đã "OK" @S179 nhưng **chưa restart** ⇒ 3 vai vẫn `file-land`, chưa chạy lần nào. Bằng-chứng còn nợ: cửa-sổ S179 có **8 file `fe-*/src/**`** đúng địa-phận FE-style mà **0 con được gọi** (đã ghi `SKIP-CO-KHAI`, không im lặng).
**(74) `ROTATE` mật-khẩu prod `vrapp`** — việc anh, treo từ S153, chưa có mốc.
**(22) 🔺 RE-SURFACE @S185 — 2 cột thẩm-quyền `{owner-SỐ · owner-LUẬT}` của bảng eval-của-eval.** 🔴 **GIỮ NGUYÊN SỐ (22), CẤM cấp số mới** — dãy slot là MỘT chuỗi liên tục (1)…(75); mint (76) cho **cùng một câu** = đẻ 2 số cho 1 việc, đúng lớp lỗi *slot-index tái-dụng*. Đây **không** phải câu mới, là câu **đã lên bề mặt @S150 rồi RƠI**.
> **Nhà THẬT (locate xong @S185 — invest báo "0 hit ở `error-ledger`" là đúng, nhà nằm chỗ khác):** [`runs/2026-07-25-S149-adap-backlog/sub-apply-L5-evalcuaeval.md`](../.claude/workflows/runs/2026-07-25-S149-adap-backlog/sub-apply-L5-evalcuaeval.md) — `:37` luật (*"🔒 2 cột thẩm-quyền ĐỂ TRỐNG — owner điền"*) · `:41` header bảng **A** (7 thước độc-lập A1-A7) · `:59` header bảng **B** (11 check trong `governance-detectors.ps1`, B1-B11) · `:115` ô owner-LUẬT cụ-thể của **B11**. Lệnh: `rg -n "owner-LUẬT" .claude/workflows/runs/2026-07-25-S149-adap-backlog/` → **3 hit**. Con-trỏ phụ: `adap-reports/2026-07-21-…eval-cua-eval.md:14` (*"verified-pending (owner) — ĐỂ TRỐNG có chủ-đích"*).
> **Vì sao AI không tự điền:** thư hub 07-21 `:24` **verbatim** — *"…phân loại thẩm quyền {AI-tự-sửa · chủ-dự-án-quyết-**SỐ** (ngưỡng, target) · chủ-dự-án-quyết-**LUẬT** (bỏ check, đổi cơ chế, thêm gate)} — **AI không tự quyết hai cột sau**."*
> **Ô cụ-thể đang chờ anh (mẫu, không phải toàn bộ 18 dòng):** 🔒 **owner-LUẬT @B11** — vá H24-2 (chuyển 3 cờ `gap-carry-aged` sang INFORM) sẽ hạ TOTAL **46 → 43**, mà đó là **RỜI TẬP-ĐO** *(trông y hệt tiến-bộ mà không sửa gì thật)* ⇒ anh chốt: **ratify baseline mới 43**, hay **giữ 46 và chỉ đổi nhãn**? · 🔒 **owner-SỐ** — các ngưỡng/target đi kèm 4 thước verdict **SỬA** (A1 · A5 · B2 · B11).
> 🔴 **Khai kèm — carry của chính slot này ĐÃ RƠI:** `[carry:eval-thamquyen]` có ở khối carry **S150-S152**, nhưng **0 hit** trong khối RE-STAMP @S181 (`:9`) lẫn `Carry @S179` (`:78`/`:80`). Lệnh: `grep -c "carry:eval-thamquyen" docs/HANDOFF.md` → **1** (chỉ segment cũ `:241`); control-dương `carry:ctx-t9-dogfood` = **6**. ⇒ thêm **1 ca `gap-carry-dropped` chưa được đếm** — đúng cái `:8` tự tuyên *"nghi-thức này không có răng"*. **Carry nay carry lại cùng lượt** (xem khối RE-STAMP). Ràng thứ-tự: slot này là **tiền-đề của W-4** (điền bảng + duyệt 2 đề-xuất ngược hub) — chưa locate thì anh không có chỗ mà điền.
**~~(75) `hmw_width.cap`~~ ✅ ĐÓNG @S181** — anh nói dứt khoát *"nâng cap"* ở câu **P4** ⇒ lead thi hành THẬT: cap **20→30** đủ **2 mirror** (`memory-budget.json` + `hmw.js WIDTH_CAP`). Roster nay **28** ≤ 30 ⇒ **hết LOUD-skip**. 🧊 **Giữ vết vì đây là bài học:** @S179 anh trả *"OK"* và lead **tự thu-hẹp** thành *"ghi-nhận, CHƯA phải lệnh đổi số"* ⇒ giữ 20 — đó chính là ca `lead-gap-auditor` FLAG-4 bắt (*"Diễn-giải của lead, không phải chữ của anh"*). Lần này không tự thu-hẹp.
### 🔵 NEXT em @S179 (em tự làm, không cần anh gật)

File diff suppressed because one or more lines are too long

View File

@ -25,3 +25,72 @@
- SELF-CHECK broadcast 4 ô: ô3 (chờ-owner đánh số, trả-lời-bằng-số xử được) = **PASS đã dùng thật** · ô4 (grep nguồn-đôi = KHÔNG) = **PASS 8=8** · ô1 (mở-phiên in 2-tầng khớp carry) + ô2 (mục cố-tình chưa xong tự xuất-hiện lại) = **PENDING** — cần 1 chu-kỳ đóng→mở phiên thật để chấm, chưa có dữ-liệu.
- Vocab-nit (L3, LOW, chờ owner): nhãn "Luật-số sàn-5 (S138)" trùng token "sàn-5" với "Sàn-5 H22 hậu-kiểm CỜ" có trước trong cùng `session-end.md` — 2 hệ-sàn khác nhau; phân-biệt được nhờ emoji/prefix/tag; đề-xuất rename bản mới hoặc đăng-ký `vocab-alias-map.md` (KHÔNG seed detector, per bài S93).
- Unpushed lúc ghi (push gộp @closeout S139).
---
# ✅ ADDENDUM @S185 (2026-08-09) — chấm SELF-CHECK ô1/ô2 + sàn-2, sau 23 ngày
> **Block MỚI, không sửa dòng cũ** (§5 caveat giữ nguyên làm vết — nó đúng lúc viết 17-07). Checklist item **C-18** của run `2026-08-09-S185-email-adap-pipeline`; ruột + lệnh: `.claude/workflows/runs/2026-08-09-S185-email-adap-pipeline/sub-opus-lane5-measure.md`.
> Lý do chấm bây giờ: caveat tự hẹn *"cần 1 chu-kỳ đóng→mở phiên thật"* — từ 17-07 tới nay đã qua **≥5 chu-kỳ** (session-13 có `_pause-1/2` · `_tiep-1/2/3` · `_snapshot-1/2`) và **29 commit** dạng closeout. Dữ-liệu ĐÃ CÓ.
## Bảng chấm 4 ô SELF-CHECK
| Ô | Nội dung | Nấc @S139 | **Nấc @S185** | Bằng-chứng |
|---|---|---|---|---|
| ô1 | mở phiên có in plan 2 tầng, tầng-1 khớp carry phiên trước? | PENDING | 🔶 **KHÔNG CHẤM ĐƯỢC — phép thử sai thiết-kế** | xem dưới |
| ô2 | mục cố-tình chưa xong có tự xuất-hiện lại? | PENDING | 🔴 **TRƯỢT — có số** | `HANDOFF` khối RE-STAMP |
| ô3 | khối chờ-owner có số, trả lời bằng số xử được? | PASS | ✅ **PASS (giữ)** | `HANDOFF` khối "CHỜ ANH — ĐÁNH SỐ" (73)(74)(75) + 4 câu P-số @S181 + `checklist-final.md` W-1…W-4 |
| ô4 | có file checklist nguồn-đôi mới không? | PASS 8=8 | ✅ **PASS về THỰC CHẤT · 🔶 phép đo cũ HẾT HẠN** | xem dưới |
### 🔴 ô2 = TRƯỢT, và trượt cả sàn-4 (vòng carry khép kín)
Ba bằng-chứng độc-lập, đều nằm sẵn trong `docs/HANDOFF.md`:
1. Khối **RE-STAMP CARRY @S181**: *"Bản trước rơi **4 kỳ liên tiếp**, `class_repeat.gap-carry-dropped` = **12** = 4× ngưỡng JUMP ⇒ nghi-thức này **không có răng**, không phải đãng trí."* — chính sổ tự kết luận.
2. Ngay dưới đó: *"**2 ca `gap-carry-dropped` này KHÔNG nằm trong tally 4-kỳ ở trên** — chúng rơi **im lặng** và chỉ lộ ra khi có người đi tìm nhà của một câu hỏi"* ⇒ con số 12 là **cận DƯỚI**.
3. Ca đích danh: `[carry:eval-thamquyen]` có mặt ở khối carry **S150-S152** nhưng **0 hit** trong khối RE-STAMP @S181**đúng kịch bản ô2**: mục chưa xong, đóng phiên, mở phiên sau **không** tự xuất hiện lại.
⇒ Đây là **ca-âm vàng** mà ô2 hỏi. Không cần dựng thí-nghiệm mới: kho đã tự chạy thí-nghiệm đó 4 lần và trượt 4 lần.
🔸 Hệ quả nấc: sàn-4 của broadcast (*"vòng carry KHÉP KÍN … task rớt giữa hai phiên bị bắt thay vì dựa trí nhớ"*) — SE đạt phần **"có máy"** (H24-2 carry-age detector đo streak) nhưng **không đạt** phần **"bị BẮT"**: máy đếm được 12 mà nghi-thức vẫn rơi thêm 4 kỳ. Đúng phân biệt của chính kho: *"cổng kêu mà không đổi hành-vi = cổng không có răng"*.
### 🔶 ô1 = phép thử neo vào thứ KHÔNG lưu lại được
Thứ ô1 đòi chấm là **hành-vi in ra màn hình** ở cửa mở phiên. Vật chứng duy nhất của hành-vi đó nằm trong **transcript**, không nằm trên **đĩa** ⇒ 23 ngày sau **không ai chấm được**, kể cả khi nghi-thức đã chạy đủ 5 chu-kỳ. Đây không phải "chưa có dữ-liệu" (lý do cũ) mà là **phép thử tự nó không đo được bằng chứng-cứ bền**.
Cái CHẤM ĐƯỢC bằng dữ-liệu sẵn (đề nghị thay thế): **hệ-quả durable của tầng-1**, tức *"artifact cửa-mở có chở trạng-thái carry của cửa-đóng trước không"*. Đo thử 1 điểm: `.claude/sessions/session-13/_context-s-13.md` **CÓ** chở (`:21` trỏ `HANDOFF` = *"brief 5 phút + bảng số chờ-anh + carry"*; `:62` chở trạng-thái thật *"Bookend @close S182 CHƯA chạy … treo-chờ-anh 5 câu ở WAL"*). ⇒ theo phép thử **thay thế** thì **ĐẠT ở điểm đo này**; theo phép thử **nguyên bản** thì **vô hiệu**.
🔴 Bài rút ra, chuyển được cho hub: **SELF-CHECK đòi chứng-cứ ở dạng bản-in sẽ hết hạn ngay khi cửa sổ đóng.** Ô nào cũng nên hỏi *"cái gì còn lại trên đĩa"*.
### 🔶 ô4 = PASS thực chất, nhưng phép đo `8 = 8` đã hết hạn
`find .claude docs -iname '*checklist*.md'` hôm nay = **16** (S139 = 8). Phân loại 16:
| Nhà | Số | Bản chất |
|---|---|---|
| `docs/governance/adap-reports/` | **12** | báo-cáo VỀ broadcast có chữ "checklist" trong tên — **không** phải nguồn work-state |
| `.claude/workflows/runs/` | **3** | vật-chứng run (`checklist-verify-synthesis` 06-18 + `checklist-final` & `sub-review-checklist` của run hôm nay) — run-scoped, ephemeral |
| `docs/guides/security-checklist.md` | **1** | checklist nghiệp-vụ bảo-mật, có từ trước |
**0 file nguồn-đôi work-state** ⇒ sàn-3 **vẫn đạt**. Nhưng phép đo mà report S139 dùng (*"8 trước = 8 sau"*) là **đếm bằng-nhau trên một corpus đang lớn** — nay mẫu số gấp đôi mà kết luận vẫn PASS, tức **con số không còn phân-biệt được gì**. Phải thay bằng **vị-từ**: *"có file nào tự nhận là nguồn trạng-thái-việc, song song với WAL/HANDOFF/STATUS không?"*
🔸 Khai thẳng ca biên: `runs/2026-08-09-…/checklist-final.md` (sinh hôm nay) là **work-ORDER** (spec giao việc), state per-item nằm ở `sub-*.md` + WAL — nên **không** tính nguồn-đôi. Ghi ra để người sau tự phán, thay vì im lặng cho qua.
## Sàn-2 "sống ở MỌI cửa" — cập nhật từ 2/4
| Cửa | Khối `MASTER-CHECKLIST` trong lệnh (grep) | Vật-chứng nghi-thức ĐÃ CHẠY | Vật-chứng BẢN IN đúng khuôn |
|---|---|---|---|
| mở (`session-start.md`) | **1** | `_context-s-13.md` | ❌ (bản in không lưu đĩa) |
| dừng (`pause.md`) | **1** | `_pause-1.md` · `_pause-2.md` | ✅ @S139 (×2 lượt) |
| nối (`tiep.md`) | **1** | `_tiep-1/2/3.md` | ✅ @S139 (×1 lượt) |
| đóng (`session-end.md`) | **2** | **29 commit** closeout kể từ 07-17 | ❌ (bản in không lưu đĩa) |
- Grep ra đúng **1/2/1/1****khớp byte con số report ghi @S139****0 drift sau 23 ngày**, khối không bị ai gỡ.
- Điều-kiện tự đặt của report (*"nếu lần đó không in đúng khuôn, nấc phải hạ lại executed-partial"*) **KHÔNG kích hoạt** — không có bằng-chứng in sai. Nhưng cũng **không thoả được** — không có bằng-chứng in đúng, vì cùng lý do ô1.
-**Giữ nấc `executed`**, đổi caveat: từ *"chờ 1 chu-kỳ nữa"* (đã qua 5 chu-kỳ, vô hạn định) sang ***"phép thử phải đổi sang chứng-cứ durable"***.
## Nấc sau addendum
**`executed` (giữ)** cho 5/5 điểm sàn về mặt CÓ MẶT + 3/4 cửa vận-hành thật, **cộng 1 TRƯỢT tường-minh ở sàn-4/ô2** (vòng carry không khép — 4 kỳ liên tiếp, ≥12 lượt rớt, 1 slug đích danh). Không nâng lên `verified`; không hạ toàn khối vì 1 sàn trượt — **ghi tách bạch từng sàn** thay vì gộp 1 nhãn.
## Việc đề-xuất (KHÔNG tự làm ở lane này — khai để nhận sau)
1. **Sàn-4 có răng:** carry rớt phải **chặn** closeout hoặc ít nhất **in tên slug rớt** ở cửa đóng, thay vì chỉ đếm streak. Cùng họ với bài *"cổng kêu mà không đổi hành-vi"*.
2. **Viết lại ô1 + ô2 của SELF-CHECK** theo chứng-cứ durable (artifact cửa-mở chở carry cửa-đóng ⇒ so được 2 file), gửi ngược hub như đề-xuất cải-tiến khuôn SELF-CHECK.
3. **Đổi acceptance ô4** từ đếm-bằng-nhau sang vị-từ nguồn-đôi.
🔸 (1) và (2) chạm nghi-thức/nhịp ⇒ **vùng owner**, chỉ khai. (3) là sửa acceptance trong report này, rẻ.

View File

@ -34,3 +34,41 @@
- **5 câu hỏi SE gửi hub vẫn treo** (`session_ctx_kb`=64? · map N↔L + folder-form · VC từng dòng · hook 4-path? · prereq unblock) — email `b9ef5ede` chưa có reply.
- 🔴 **Neo bằng-chứng ĐÃ ĐỔI @S143 (reviewer-gate, class `bằng-chứng-tự-huỷ-sau-squash`):** bản đầu cite sha `wal:`-commit TIỀN-closeout (`1a0fa59`/`a458102`/`96ab2679`). Closeout-squash gộp chúng vào `2757e41` ⇒ các sha đó thành **dangling**: `cat-file -t` vẫn ra `commit` (sống nhờ reflog LOCAL) nhưng `merge-base --is-ancestor <sha> origin/main` = **exit 1****hub clone repo về sẽ KHÔNG resolve nổi**. Nội-dung thì nguyên vẹn trong `2757e41`**chết con-trỏ, không chết việc**. Đã re-anchor toàn bộ sang `2757e41`. **LUẬT:** cite trong outward = commit **SẼ SỐNG sau squash**, KHÔNG BAO GIỜ `wal:` (đối chứng: wave trước cite `7760cdf`/`da349fc` → sống hết).
-**Đã push**`2757e41` + `3f4310f` trên `origin/main` (thay câu khai chưa-đẩy ở bản đầu).
---
## 6. ADDENDUM @S185 (2026-08-09) — "0 wire" đã hết đúng; nấc GIỮ `agreed`, và đây là lý do
> 🔴 **Block MỚI, KHÔNG sửa §2 §3 §4 bên trên.** Mục 2 (`agreed`) và mục 3 (*"0 wire — đo chứ không khai suông"*) là **ảnh chụp @S143** và giữ nguyên làm vết. Trạng-thái hôm nay đọc ở đây.
### 6.1 Wire ĐÃ XẢY RA — đo tươi từng khoản máy-kiểm-được (2026-08-09)
| # | Khoản manifest | Nấc @S143 (§3) | Đo tươi hôm nay | Lệnh tái-lập |
|---|---|---|---|---|
| 1 | thư-mục phiên không bị `.gitignore` nuốt | ✅ đạt sẵn | ✅ giữ | — |
| 2 | cặp tạm-dừng/nối-lại + WAL có TRƯỚC | ✅ đạt sẵn | ✅ giữ (`/pause`+`/tiep`+`.claude/WAL.md`) | — |
| 3 | trần `session_ctx_kb` | ❌ **treo** | 🔄 **ĐÃ CÓ = 64**, kèm khoá vết `_session_ctx_kb_owner_set` ghi *"OWNER-SET TUONG-MINH @S146 2026-07-22"* | `grep -o 'session_ctx_kb[^,]*' .claude/agent-memory/memory-budget.json``64` + khoá owner-set |
| 4 | format-pin tên thư-mục theo ID phiên-LOGIC | ⚠️ **K4 form-conflict** | 🔄 **CHỐT THEO HUB-FORM**, 13 thư-mục sống `session-1 … session-13` | `ls -d .claude/sessions/*/` → 13 dir khớp `^session-\d+$` |
Bổ sung: nhãn phiên-LOGIC đang **chạy thật xuyên nhiều cửa-sổ**`L9` (`HANDOFF:95`) → `L12` (`HANDOFF:5`) → `L13` (`runs/2026-08-09-S185-email-adap-pipeline/run.md:1`). Lệnh: `grep -c "phiên-LOGIC" docs/HANDOFF.md docs/STATUS.md`**7 · 9**.
Nguồn hợp-thức của hướng wire: hub reply **`2026-07-22-ai_infra-to-se-reply-session-model-dung-ban-da-duyet`** (`content_sha256 8378a68b…`) — *"câu trả lời **không phải một mẫu mới**, mà là bản hub **đã chốt + owner đã GO**: manifest `101e69d6`… Dựng session-model trên bản này"*, và nói rõ *"**Không phải chờ trọn**"* (chỉ NGƯỠNG van mid-phiên là delta sau).
### 6.2 🔴 Nhưng nấc **GIỮ `agreed`** — và đây là chỗ phải đọc kỹ
Điều-kiện gate của §4 là **3 vế**: (a) hub phát mẫu ✅ · (b) khuôn bộ-ba SUB ✅ · **(c) owner duyệt bảng VC-1/2/3**.
Đo hôm nay: `docs/governance/session-model-se-draft.md:64` vẫn ghi nguyên văn *"**(c) anh duyệt bảng VC-1/2/3 — ⏳ CHỜ ANH.** Đây là **điều-kiện CUỐI**, và giờ là điều-kiện duy nhất còn đứng chắn."* ⇒ **bảng VC-1/2/3 chưa từng được duyệt như một KHỐI.**
Cái đã có là **2 quyết-định owner TƯỜNG MINH per-khoản**, không phải một lượt duyệt bảng:
- **K4 form** — owner override @S144, chốt hub-form @S146 (`session-model-se-draft.md:66` mục 1);
- **`session_ctx_kb`=64** — *"OWNER CHỐT TƯỜNG-MINH @S146"* (`:69-70` mục 2 + khoá vết trong `memory-budget.json`).
⇒ Trạng-thái đúng chữ: **wire-de-facto per-khoản (2 khoản có chữ owner đích danh) + bảng VC chưa duyệt HÌNH-THỨC.** Không nâng nấc, vì nâng lên `executed` sẽ là claim rằng cổng (c) đã mở — nó chưa. Đây là **nhánh an-toàn của bậc-2** (`ACTIVE-MARKS §LT3`): đọc được 2 nghĩa (*"wire rồi ⇒ executed"* ⟂ *"cổng (c) chưa mở ⇒ agreed"*), hành-động không phá huỷ, chọn nhánh không-tự-phong-nấc và khai rõ.
### 6.3 → W-list (trình chủ dự án, lane này KHÔNG tự quyết)
**Câu cho anh:** bảng **VC-1/2/3** trong `docs/governance/session-model-se-draft.md` — (i) **phê duyệt hồi-tố** cả bảng (thì report này lên `executed``session-model-se-draft.md:64` được lật), hay (ii) **giữ per-khoản** (mỗi khoản một quyết riêng, bỏ hẳn khái niệm "duyệt bảng" — thì phải sửa §4 của report + `:64` của draft để hết câu *"điều-kiện duy nhất còn đứng chắn"* nói sai)?
🔸 Ràng: đây là **owner-LUẬT** (đổi cơ-chế cổng-duyệt), không phải việc lead tự thu-hẹp — đúng bài `HANDOFF:34` *"Diễn-giải của lead, không phải chữ của anh"*.
🔸 **Khai kèm — carry đã RƠI:** slug `[carry:session-model-adopt]` (giữ đúng cổng này) có mặt ở các khối carry S140→S151 nhưng **KHÔNG** có trong khối RE-STAMP @S181 (`HANDOFF:9`). Lệnh: `grep -n "carry:session-model-adopt" docs/HANDOFF.md` → 6 hit, hit mới nhất `:218` (segment S151), **0 hit** trong `:9`/`:78`. Đây là một ca `gap-carry-dropped` chưa được đếm.

View File

@ -38,3 +38,61 @@
- 🔴 **4.2 — vế "lane workflow có `tier:` override sống qua resume" đến nay VẪN CHƯA ĐO.** C15 kết luận cho Agent-tool, không cho lane workflow. Trạng-thái sau S144 không rõ ⇒ giữ **DEFER-đo** trung thực thay vì suy từ ca đã đo (đúng bài *tested = env đã test, không auto-generalize*, `goi-chot:23`).
- 🔸 **4.4 — mẫu-số 19 là mẫu-số của lượt đo S144**, không phải hằng số; số câu-hứa trong repo đổi theo mỗi lượt viết doc. Bất kỳ ai đọc "19" như một chỉ-tiêu cố định là đọc sai.
- 🔸 **sha thư chưa tái-đo hôm nay** (kế thừa frontmatter inbox theo brief). **Nấc dừng ở `executed`, KHÔNG `verified`** (`adap-report.md:31`).
---
# ✅ ADDENDUM @S185 (2026-08-09) — ĐÓNG vế treo 4.2 (`tier:` override qua resume)
> **Block MỚI, không sửa dòng cũ.** Dòng caveat *"4.2 — vế lane workflow … VẪN CHƯA ĐO … giữ DEFER-đo"* giữ nguyên làm vết: nó đúng lúc viết (25-07). Đây là lượt đo, checklist item **C-9** của run `2026-08-09-S185-email-adap-pipeline`. Ruột + lệnh: `.claude/workflows/runs/2026-08-09-S185-email-adap-pipeline/sub-opus-lane5-measure.md`.
## Kết: **vế cũ = VACUOUS (n-a CÓ SỐ)** — nhưng rủi ro **đã dời chỗ**, và chỗ mới đang HỞ
### (1) SE không có đường RESUME cho lane workflow ⇒ không có gì để "sống qua resume"
| Phép đo | Kết quả |
|---|---|
| `grep -cniE "resume\|continue\|reattach\|session_id\|sessionId" .claude/workflows/hmw.js` | **0** |
| **Control dương** — cùng regex, tệp có chữ resume: `.claude/commands/tiep.md` | **13** ⇒ thước sống, 0 là **vắng thật** |
| Model gắn ở đâu | **DUY NHẤT** tại call-site spawn: `hmw.js:284` `agent(prompt, {…})` + `:291` `model: resolveModel(role, raw, t && t.tier, i)` |
⇒ Mỗi lane là **một lần `agent()` mới**, model resolve ngay tại đó. **Không có resume ⇒ override không thể rớt qua resume.** Câu hỏi 4.2 ở dạng nguyên thuỷ **không áp cho SE**.
### (2) 🔴 Rủi ro thật nằm ở RELAUNCH, và ở đó `tier:` KHÔNG có ai canh
Đường phục-hồi của SE là **relaunch-đã-cắt-gọt** (`tiep.md:199-205`), không phải resume. Chính `:205` tự khai: *"Resume-theo-run-id (nếu engine có) = bonus CHỈ trong cùng phiên (SAME-SESSION-ONLY) — 🔴 CẤM claim nó chạy cross-session."*
| Phép đo | Kết quả |
|---|---|
| `grep -ci tier .claude/commands/tiep.md` | **0** (control: `grep -ci model` = **2** ⇒ grep sống) |
| Bước 4 của nhánh `wf:` | dặn re-derive memory-pack **TƯƠI**, 🔴 CẤM snapshot cũ — **không một chữ** về giữ per-task `tier:` |
| run.md **có** `## taskList snapshot` | **54 / 88** run-folder |
| run.md **có chuỗi** `tier:` | **15 / 88** |
| run.md của **chính run đang chạy** (S185) | **0 hit** `taskList` · **0 hit** `tier` |
**Chuỗi hỏng đầy đủ:** workflow chết → `/tiep` bước 1 bảo *"đọc `## taskList snapshot` trong run.md"* → với **34/88** run-folder (39%) **snapshot không tồn tại**, và run đang chạy hôm nay **nằm trong nhóm đó** → lead gõ lại taskList từ trí nhớ → thiếu `tier:``hmw.js:103-110` `resolveModel` trả `MODEL_INHERIT``:291` truyền `model: undefined` → frontmatter worker-tier `opus` cầm lái. **Không lỗi, không cảnh báo.**
🔴 **Bất đối xứng của cảnh báo (đây là chỗ đáng vá):** `hmw.js:105` CÓ nhánh `⚠️` khi `tier` mang **giá-trị lạ**, nhưng **không có** nhánh nào khi `tier` **VẮNG** ở task mà lượt trước có. Tức máy kêu khi bạn gõ SAI, im khi bạn gõ THIẾU — mà thiếu mới là chế-độ hỏng của relaunch.
### (3) Lưới bắt hiện có: chỉ HỒI-TỐ
`scripts/spawn-model-audit.ps1` (PA-2b) so resolved-vs-expected và **tự khai giới hạn** ở header `:30-32`: *"This audit is RETROSPECTIVE… does not promise the next spawn stays on the expected version."* ⇒ một lane bị tụt tier vì relaunch **sẽ bị bắt SAU KHI đã chạy xong bằng model rẻ hơn**, không bị chặn trước.
## Nấc mới cho 4.2
**`executed (có phạm vi) + đo XONG vế treo`** — thay `DEFER-đo`. Cụ thể: vế *"sống qua resume"* = **n-a có số** (0 đường resume, control dương 13); vế thay thế *"sống qua relaunch"* = **HỞ, đã định lượng** (0 hit `tier` trong `tiep.md`; 15/88 run.md chở `tier:`; run hôm nay 0/2 điều kiện).
## Việc đề-xuất (KHÔNG tự làm — ngoài phạm vi lane đo, khai để nhận sau)
1. `tiep.md` nhánh `wf:` bước 4: thêm **1 dòng***"chép lại per-task `tier:` từ `## taskList snapshot`; snapshot không có ⇒ khai `tier` đã mất, KHÔNG im lặng dùng mặc-định."* — chạm **file lệnh****ăn từ phiên sau restart** (ENV-DEP, không hot-reload).
2. Khuôn `run.md`: ép `## taskList snapshot` chở nguyên `tier:` — hiện chỉ 54/88 có snapshot. Cùng họ **C-7** (spawn-label khoản-④, cũng là "khuôn run.md thiếu trường"), nên gộp 1 lượt thay vì vá 2 lần.
3. `hmw.js`: cân nhắc log **1 dòng INFORM** khi taskList relaunch có role từng chạy `tier` mà lượt này vắng — nhưng máy không biết "lượt trước", nên rẻ hơn là để ở lớp `tiep.md` (mục 1). Ghi để không ai tưởng đã có máy canh.
🔸 **Caveat của chính phép đo này:** 15/88 đếm theo **chuỗi `tier:`** nên gồm cả nhắc-trong-văn-xuôi, tức **15 là cận TRÊN** của "run.md thật sự chở override". 54/88 và 0/0 của run hôm nay thì đếm trực tiếp, không có nhập nhằng.
---
## ADDENDUM-2 @S185 (2026-08-10) — vế 4.4 "máy-quét = DỰ-ĐỊNH" hết hiệu lực (block mới, row cũ giữ nguyên — bài-5)
- **4.4 máy-quét lời-hứa-máy ĐÃ DỰNG:** `scripts/loi-hua-may-scan.ps1` (30.223 B, lane7 run `2026-08-09-S185-email-adap-pipeline` — self-test 11/11 PASS, fault-inject 3 ca cây tạm + control dương, 759ms). Mẫu-số ĐO LẠI = **30 dòng** (không phải 19 của C6 @S144 — cùng regex chạy 08-09; đúng lời khoản "mẫu-số công bố" phải tươi), 0 dòng `violation-open`. Nợ còn: ~~cửa gọi~~ ✅ cắm @S185 vào `session-end §L.b(k-ter)` (máy thứ 3).
- **4.2 vế "tier-qua-resume CHƯA ĐO"** → ĐÃ ĐO @S185 (lane5 C-9, addendum riêng nếu có — xem `sub-opus-lane5-measure.md`).
- 4.3 vẫn chờ owner-SỐ (W-3 — đã re-surface vào khối chờ-anh @S185 sau 15 ngày rơi).

View File

@ -64,3 +64,72 @@ Nhờ đúng mục đó mà SE **bác được Lớp 8 bằng 1 lệnh** thay v
- SE **chỉ chạy phép bác cho 3/9 lớp** (7 · 8 + xác-nhận 1/3/5/6 bằng ca có sẵn trong phiên). **Lớp 2 · 4 · 9 chưa đo** — không claim fit, không claim miễn.
- Rổ A liệt ca SE **tự bắt trước khi đọc thư**; công của thư ở đây là **đặt tên và gom thành lớp**, không phải phát hiện. Ghi đúng như vậy, không thổi.
- **Phần 2 (ca riêng hub) đọc rồi, KHÔNG nhận làm sàn** — đúng chỉ-dẫn của chính thư. 3 nguyên-tắc bóc ra ở cuối Phần 1 thì có ăn: đặc-biệt *"khai sau khi chạy, không khai trước"**"bị chặn bởi quy-ước ≠ bị chặn bởi máy"* — cái sau SE đã có tiền-lệ `tools-whitelist-no-teeth` (whitelist = tuyên-bố ý-định, containment thật = git-diff commit-gate).
---
# ✅ BỔ SUNG @S185 (2026-08-09) — đóng nợ "Lớp 2 · 4 · 9 chưa đo"
> **Block MỚI, KHÔNG sửa dòng cũ.** Dòng Rổ C phía trên (*"Lớp 2 · 4 · 9 — chưa chạy phép bác, khai thẳng là chưa đo"*) **giữ nguyên làm vết** — nó đúng tại thời điểm 08-07. Đây là lần chạy thật, 2 ngày sau.
> **Ai chạy:** lane-5 của workflow `2026-08-09-S185-email-adap-pipeline`, checklist item **C-5**. Ruột đầy đủ + mọi lệnh tái-lập: `.claude/workflows/runs/2026-08-09-S185-email-adap-pipeline/sub-opus-lane5-measure.md`.
> **Engine:** KHÔNG spawn thêm — đọc thư gốc rồi tự chạy phép bác, đúng cách đợt 08-07.
## Nấc G-011 phần bổ sung: **executed — 3/3 lớp CONFIRMED, 0 lớp bác được**
| Lớp | Phép bác của thư | Kết quả SE 2026-08-09 | Nấc |
|---|---|---|---|
| **2** — chốt kiểm-chứng bị tiêu thụ | *"tìm mọi câu 'nếu X không xảy ra thì máy đã hỏng', chạy lại phép đo đó hôm nay"* | soi **5 chốt sống**: **2 HẾT HẠN**, 3 lệch hiệu-chuẩn | 🔴 **CONFIRMED** |
| **4** — nhãn không kiểm chứng được, phía người | *"10 quyết định gần nhất có lý do định lượng — bao nhiêu cái đủ 3 thành phần?"* | **4/10** đủ 3 · 5/10 được 2/3 · 1/10 được 1/3 · **+1 nhãn 0/3 đang cắt việc** | 🔴 **CONFIRMED** |
| **9** — hai nơi gọi chung một bộ trích | *"tìm hàm trích ≥2 nơi gọi, so xem có lọc giống nhau không"* | **14/30** hàm ≥2 nơi gọi; bộ trích lõi **1/3** nơi gọi giữ tín-hiệu | 🔴 **CONFIRMED** |
⇒ Gộp 2 đợt: **8/9 lớp ÁP cho SE · 1/9 (Lớp 8) BÁC ĐƯỢC có số.** Đợt này **không bác được lớp nào** — khác đợt trước, ghi đúng vậy.
## Lớp 2 — 2 chốt đã hết hạn
**(1) `scripts/naming-scan.ps1` — máy in một số rồi tự giải thích bằng số khác, trong CÙNG một màn hình.**
`:317` in `$script:Total` **sống** → hôm nay ra `mau so TONG : 256`. Nhưng `:318-321` (và `:196`) hard-code lời giải thích *"goc 231 … => 233 sau W1"*, viết 08-07 ⇒ **hở 23 tên không ai giải thích**. Chua ở chỗ khoản (3) trong chính hợp-đồng của máy đó là *"LUON IN MAU SO canh moi con so"*.
Tái lập: `powershell -NoProfile -File scripts/naming-scan.ps1 | grep -E "mau so TONG|goc 231"`
**(2) Neo số-dòng liên-tệp — 4/4 SAI.**
`naming-standard.md:107` chỉ đường sửa regex 5-họ tới `governance-detectors.ps1:1102` + `:1771` + `memory-selfimprove-audit.ps1:298`. Đo 2026-08-09 21:24: regex thật ở **`:1213`**, **`:1882`**, **`:307`** (trôi +111/+111/+9). `naming-scan.ps1:24` neo `:1109` cũng sai.
🔴 **Phát hiện phụ đắt hơn phát hiện chính:** toạ-độ trôi **ngay trong cửa-sổ đo** (`:1109` lúc ~21:1x → `:1213` lúc 21:24) vì lane khác đang sửa cùng tệp (114.797 → 122.956 B). ⇒ **neo số-dòng vào tệp có người đang sửa thì hạn dùng tính bằng PHÚT, không phải bằng phiên.** Cùng thuốc với Lớp 7 (*neo cấu trúc, đừng neo hình dạng*) và bài nhà `HEAD~n ≠ commit-trước-của-mình` (S177). Neo bền thay thế: `grep -n -- "-return)" scripts/governance-detectors.ps1`.
**3 chốt còn lại lệch hiệu-chuẩn nhưng chức năng còn sống** (control vẫn ≠ 0 ⇒ thước còn thấy được): `naming-scan.ps1:25-26` control-dương ghi **58** → đo lại **9.238 byte / 127 điểm-mã**, không tái lập ở cả 2 đơn-vị · `so-yeu-cau-chu-du-an.md:69` control ghi **5 tệp** → đo lại **70** · `naming-scan.ps1:8-11` ngưỡng *"8-12 lớp nợ"* → hôm nay `LECH 8/256` rải 4 nhóm, tức **đọc "lớp"=cờ thì 8 ∈ [8,12] ✅, đọc "lớp"=nhóm thì 4 ∉ [8,12] ❌**. Cái cuối chính là **Lớp 3 tái diễn bên trong phép bác Lớp 2**.
## Lớp 4 — 4/10, và cấu-phần rụng là "lệnh tái lập"
Mẫu: 10 quyết-định gần nhất có lý-do định-lượng, quét ngược `.claude/WAL.md` (S185) → `checklist-final.md` (lead, hôm nay) → `docs/HANDOFF.md` (S179-S181).
- **Đủ 3/3 = 4** — đều là quyết-định ship/gate: test `668/0` · DLL prod `=3` · ring2 `30.781 B` vs cap · archive-gate `strike 1/2`.
- **2/3 = 5** — có đại-lượng + có ngưỡng, **thiếu đúng cái lệnh viết cạnh số**.
- **1/3 = 1** — nợ harvest `576.255 B / 18 lượt-vai`: có số, **không ngưỡng**.
🔴 **Ca-âm nặng nhất nằm NGOÀI mẫu và ở TRONG chính lượt adopt thư này:** `checklist-final.md:43` *"### LANE-7 (CUỐI, **nếu còn ngân sách**)"* + `:8` *"nếu ngân sách không đủ thì khai, không ép"*. Nhãn *"ngân sách"* = **0/3 thành phần** (không đại-lượng, không lệnh, không ngưỡng) và **được dùng để định-đoạt phạm-vi công việc**. Đúng câu thư: *"lý do bị bác đã được dùng để cắt phạm vi công việc trước khi ai kịp kiểm."*
Nghiêm hơn ca hub một điểm: SE **đã có sàn** cho đúng nhãn đó — `.claude/commands/session-start.md:193` đòi so byte thật vs cap **kèm lệnh** `scripts/measure-agent-memory`. Luật CÓ, nhưng luật chỉ soi **máy**; câu văn của **người** đi vòng qua. Đúng nguyên nhân thư chỉ ra: *"luật thường được viết để soi máy, và người viết luật mặc nhiên đứng ngoài phạm vi."*
## Lớp 9 — bộ trích tự viết hợp đồng, 2/3 nơi gọi vứt hợp đồng đi
`scripts/session_ctx.py:285` `_split_content_region` trả `(region, line_offset, rules_end_found)`. Docstring `:290-291` tự đặt luật: *"Marker absent => scan the WHOLE file **+ raise a flag** … the safe failure direction is **LOUD, not lenient**."*
| Nơi gọi | Nhận `rules_end`? | Hệ quả |
|---|---|---|
| `:614` full-mode | ✅ `if not rules_end:` → cờ *"quet TRON tep (huong hong NGHIEM)"* | đúng hợp đồng |
| `:565` draft-mode | ❌ `region, line_offset, _ =` | **im lặng** |
| `:572` draft-mode (đọc bản canonical) | ❌ `creg, coff, _ =` | **im lặng** |
Hai nơi vứt cờ **chính là đường draft** — đường mà `:590` tự khai mục đích *"kiem NHAP truoc khi chen — loi khong bao gio vao tep"*. Một `_mind` draft thiếu `<!-- MIND-RULES-END -->` sẽ bị quét **trọn tệp** (gồm cả khối luật vốn cố ý chép nguyên các chuỗi bị cấm) mà **cổng duy nhất dựng để chặn trước khi ghi thì không kêu**. Full-mode sẽ kêu — nhưng lúc đó nội dung đã nằm trong tệp. Đúng vị chua ca hub: **lỗi nằm ngay trong đường ống của cơ chế dựng ra để chặn lỗi**; class của nó (**citation-trap / use⟂mention**) là class SE đã có bài học riêng.
Cùng họ, nhẹ hơn: `_check_pointer` nhận `closed=False` **đóng cứng** ở draft (`:584`) nhưng nhận `closed` **sống** ở full (`:628`) · `_check_numbering` + `_check_bookend_order` **chỉ chạy full-mode** ⇒ draft "sạch" không đồng nghĩa file sẽ sạch · regex 5-họ có **3 bản sao độc lập**, 0 hằng-số dùng chung (`naming-standard.md:107` đã tự khai, chưa gộp).
## 🔴 Phản-biện gửi ngược hub (bổ sung đợt này)
**4. Đề nghị hub thêm vào Lớp 2 một biến thể mà phép bác hiện tại KHÔNG bắt: chốt neo TOẠ-ĐỘ, không neo GIÁ-TRỊ.**
Phép bác của thư hướng người đọc đi tìm câu *"nếu X không xảy ra thì máy đã hỏng"* — tức chốt neo **giá trị đo được**. Ca đắt nhất SE tìm ra hôm nay lại là loại khác: chốt neo **số dòng** (`file:1102`). Nó không mang hình dạng mệnh-đề-canh nên **lọt lưới phép bác**, mà hậu quả y hệt — người đọc làm theo chỉ dẫn và sửa nhầm chỗ. Đề nghị thêm 1 câu vào mục "bác chúng tôi bằng cách nào": *"và mọi con trỏ `file:line` trong tài liệu — mở đúng dòng đó hôm nay, có còn là thứ được mô tả không?"* Rẻ, máy làm được, ở kho SE ra **4/4 sai**.
**5. Lớp 4 nên nói rõ nó áp cho cả câu văn của người PHÂN VIỆC, không chỉ của trợ lý.**
Ca hub là trợ lý viện *"gần hết bộ nhớ ngữ cảnh"*. Ca SE là **lead** viết *"nếu còn ngân sách"* ngay trong bản checklist giao việc — cùng cơ chế, khác cấp. Nếu thư nêu thẳng "kể cả người phân việc", sister sẽ soi đúng chỗ đau thay vì chỉ soi output của agent.
## Honest-caveat (phần bổ sung)
- **Mẫu Lớp 4 = 10, khung quét do lane-5 tự chọn** (3 bề mặt, ngược thời gian). Khung khác (thêm session-log 07/2026) có thể ra tỷ lệ khác. Khung được ghi **trước** khi đếm để ai muốn bác thì bác bằng khung của họ — đúng thuốc Lớp 3.
- **Lớp 9 mới quét 1 tệp** (`session_ctx.py`, 30 hàm). `governance-detectors.ps1` (122.956 B) **chưa quét hết** vì đang bị lane khác sửa trong lúc đo. Không claim đã phủ toàn kho.
- **3 việc sửa lane-5 KHÔNG tự làm, khai để lượt sau nhận:** (i) `naming-scan.ps1:196/318-321` cho lời giải thích bám số in — cùng họ máy governance, tránh đụng lane đang sửa; (ii) `session_ctx.py:565/572` nhận `rules_end` — chạm đường ống ctx, cần fault-inject riêng; (iii) nhãn *"nếu còn ngân sách"* `checklist-final.md:43`**quyền lead**, chỉ khai không sửa.
- Phần bổ sung này **không** đụng Rổ A/B/C cũ, **không** đổi nấc của Lớp 1·3·5·6·7·8 đã chốt 08-07.

View File

@ -38,3 +38,24 @@ Lý do hub nêu: ở kho họ các con audit **đã chạy đủ, đã sinh đ
Ở SE không phải *"audit chạy mà không ghi được gì"*, mà là **"máy dựng xong, chạy đúng, mà KHÔNG CỬA NÀO GỌI"** — `naming-scan.ps1` + `artifact-integrity.ps1`**0 cửa nghi-thức gọi**, chỉ sống khi người gõ tay. Phát hiện được **chỉ vì** bảng máy⟂tay của khoản A16 bắt phải có **ba nấc**; thang hai nấc (*"có máy / không có máy"*) xếp cả hai vào **CÓ**.
**Đề xuất cho hub:** cạnh câu *"đã chạy nhưng không ghi lại được"*, thêm biến thể *"đã dựng nhưng không ai gọi"*. Cùng gốc — **cổng báo xanh trên một phạm vi mà không ai đo** — nhưng lộ ra ở chỗ khác và cần phép đo khác (đếm cửa gọi, không đếm sự tồn tại của máy).
---
## 8. ADDENDUM @S185 (2026-08-09) — đính chính dòng "CHƯA GHÉP" của mục 4
> 🔴 **Block MỚI, KHÔNG sửa mục 4 và mục 5 bên trên** (bài-5 thư 08-08: giữ ảnh chụp trạng-thái lúc viết làm vết, đính chính bằng block mới). Ai đọc mục 4 phải đọc tiếp tới đây.
**Dòng đã STALE:** mục 4 hàng 2 ghi *"🔴 **CHƯA GHÉP** — chủ dự án gật P5 là gật **3 bậc**, chưa gật phần ghép này. Để **con trỏ**, không tự adopt"*; mục 5 ghi *"**Skip:** điều kiện 3 ghép vào bậc-2 — chờ chủ dự án phán riêng"*.
**Sự thật đo tươi 2026-08-09 — ĐÃ GHÉP @S181, cùng phiên báo cáo này được viết:**
| # | Bằng-chứng | Lệnh tái-lập | Kết quả |
|---|---|---|---|
| 1 | `.claude/governance/ACTIVE-MARKS.md:65` — hàng **bậc-2** của §LT3 mang nguyên khối *"🔴 **+ Đ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.**"* | `grep -n "Điều-kiện-3" .claude/governance/ACTIVE-MARKS.md` | **1 hit @:65** |
| 2 | Sổ quyết-định `.claude/workflows/runs/2026-08-07-S180-adap-upgrade-pack-phased/owner-decisions-07-08-2026-dot-2.md:47`*"✅ **P5 (d) — ĐÃ GHÉP @S181** (anh gật câu 2). Điều-kiện-3 nay là một vế **trong bậc-2** của `ACTIVE-MARKS §LT3`."* | đọc mục *"Còn treo sau đợt-2"* dòng 2 | khớp |
**Nấc của khoản này: `skip / chờ-owner` → `executed`.** Nấc TỔNG của báo cáo (mục 2) **GIỮ `executed`**, không đổi — khoản này vốn là khoản duy nhất còn hở, nay khép.
**Vì sao dòng cũ tồn tại được 2 ngày:** report viết @S181 lúc lead trình thư cho anh, và anh gật câu-2 **sau** khi report đã ghi. Không ai quay lại lật. Đây đúng lớp *"sổ nói dối theo hướng BI QUAN"* (`HANDOFF:74`) — báo còn nợ khi nợ đã trả; và lần này nó sống được vì **cửa duy nhất đóng khoản này là trí nhớ của lead**, không có máy nào đối chiếu report ⟂ `ACTIVE-MARKS`.
🔸 **Khai giới hạn:** addendum này chỉ đính chính **trạng-thái ghép**. Nó **không** phong nấc *đã được kiểm chứng* (chỉ hub cấp), và **không** đụng phần "Tailored/Skip nhãn thứ năm" ở mục 5 — quyết-định đó (P3 = B, tập tín-hiệu ĐÓNG) vẫn nguyên hiệu lực.

View File

@ -136,16 +136,25 @@ grep -c 'đã được kiểm chứng *|' docs/governance/adap-upgrade-pack-trac
### M3 — MỒ CÔI: có máy, KHÔNG cửa nào gọi (3 — sau khi wire 2 máy)
| Máy | Trạng thái @S181 |
|---|---|
| `seed-test-users-prod.ps1` | 🔴 **MỒ CÔI, mới lộ @S181** — 0 cửa gọi, và **lọt bộ-lọc loại-trừ** ở đầu §7 (`seed-*` không có trong danh sách) ⇒ theo chính luật của tệp này nó **phải** có mặt. Bản đầu bảng M3 thiếu dòng này |
| `wal-recovery-test.ps1` | 🔴 **CÒN mồ côi** — máy kiểm thử phục hồi WAL, đúng bản chất là chạy tay khi nghi ngờ. Giữ mồ côi **CÓ KHAI** |
| `session_scaffold.py` | 🔴 **CÒN mồ côi** — nghi trùng với `session-scaffold.ps1` (đang được gọi). **Chưa xác minh**, không xoá theo phỏng đoán |
| Máy | Trạng thái @S181 | Xác minh @S185 (C-10) — `wire-or-khai` |
|---|---|---|
| `seed-test-users-prod.ps1` | 🔴 **MỒ CÔI, mới lộ @S181** — 0 cửa gọi, và **lọt bộ-lọc loại-trừ** ở đầu §7 (`seed-*` không có trong danh sách) ⇒ theo chính luật của tệp này nó **phải** có mặt. Bản đầu bảng M3 thiếu dòng này | **KHAI, không wire.** 0 cửa gọi (đo lại, lệnh ở cuối mục). Bản chất = script **vận-hành sản-phẩm** (seed user test vào DB prod, chạy tay lúc triển khai — `docs/changelog/sessions/2026-05-13-2200-s22-chot-cuoi.md:147,280`), không phải máy governance. 🔴 **KHÔNG nới bộ-lọc**: thêm `seed-*` sẽ kéo **mẫu số 24→23** = đổi số đã đo và đã gửi hub ⇒ quyền lead/chủ dự án |
| `wal-recovery-test.ps1` | 🔴 **CÒN mồ côi** — máy kiểm thử phục hồi WAL, đúng bản chất là chạy tay khi nghi ngờ. Giữ mồ côi **CÓ KHAI** | **KHAI, không wire — trạng thái @S181 ĐỨNG.** 0 cửa gọi (đo lại). Bộ 4-ca/30-assert dùng để *chứng* defect-fix (`adap-reports/2026-07-13-Governance-harness-22-wal-defect-fix.md:14`), không phải nghi-thức định kỳ ⇒ wire vào bookend = trả chi phí thường-trực cho máy chỉ hữu ích khi có nghi vấn |
| `session_scaffold.py` | 🔴 **CÒN mồ côi** — nghi trùng với `session-scaffold.ps1` (đang được gọi). **Chưa xác minh**, không xoá theo phỏng đoán | 🔴 **Ô bên trái nay STALE — nghi-trùng ĐÃ XÁC MINH, bằng vật của chính wave S181.** `naming-standard.md:161` (W1): *"Fork thật duy nhất … TRÙNG KHÁI NIỆM, hai bản sinh tên đầu ra giống hệt, cả hai hard-pin, 0 nguồn chung"*; đã có mã + disposition **M-10** (`:253`) / **N-6** (`:271`*"hợp nhất là đổi mã, không phải đổi tên"*, xếp W2). Nó **không chết hẳn**: `:200` đếm `session_scaffold.py:105`**1 trong 4 site hard-pin** hình dạng `session-<N>`. Lai lịch = **port near-verbatim từ hub** (`session_scaffold.py:4`, adopt S148). ⇒ **Mồ côi CÓ CHỦ ĐÍCH** (giữ đối-chiếu hub) — **KHAI, không wire, không xoá** |
🔸 **`naming-scan.ps1` + `artifact-integrity.ps1` ĐÃ CHUYỂN SANG M2** (wire `session-end §L.b(k-ter)` cùng lượt) — giữ tên ở đây sẽ thành *"số máy TỪNG mồ côi"**"số máy ĐANG mồ côi"*, đúng lớp lỗi mà bảng ba nấc sinh ra để chặn.
🔴 **Đây là phát hiện đắt nhất của W6.** Hai máy W1/W2 vừa dựng xong, chạy đúng, fault-inject có răng — **mà không cửa nào gọi**. Chúng chỉ sống khi có người gõ tay, nên hết phiên là hết chạy. Thang 2 nấc (*"có máy / không có máy"*) sẽ xếp chúng vào **CÓ** và ta yên tâm nhầm; đúng thứ A16 dựng nấc thứ ba để bắt.
🔴 **Lệch số phải khai (phát hiện @S185, C-10):** báo cáo cuối đã gửi hub ghi *"**2 mồ côi còn lại**"* (`adap-reports/upgrade-pack-phased-bao-cao-cuoi.md:64`), bảng này ghi **3**. Bảng đúng — `seed-test-users-prod.ps1` lộ **sau** khi câu tổng-kết của báo cáo đã viết (chính dòng của nó tự khai *"Bản đầu bảng M3 thiếu dòng này"*). Câu trong **bản đã gửi** vì thế là vật STALE; erratum ra hub = quyết định của lead, **không sửa lén bản đã gửi**.
🔸 **Thước "0 cửa gọi" có răng — positive-control @S185:** cùng một lệnh chạy trên 4 máy ĐANG được gọi ra `nhip-no-probe.ps1` **7** · `memory-archive-gate.ps1` **3** · `artifact-integrity.ps1` **2** · `naming-scan.ps1` **1**, trúng đúng cửa mà M2 khai ⇒ **0-hit của 3 máy M3 là vắng-mặt THẬT**, không phải thước hỏng. Lệnh:
```bash
git grep -l -F "<tên script>" -- '.claude/commands' '.claude/agents' '.claude/hooks' \
'.claude/settings.json' '.github' 'hmw.js' | wc -l
```
### Lệnh đo lại (đừng tin bảng, chạy lại)
```bash

View File

@ -1,6 +1,6 @@
# Ctx soft-memory — SE-form DRAFT (adopt thư `0df10df4` pause-tiep-upgrade-vong-ctx)
# Ctx soft-memory — SE-form ✅ RATIFIED + ĐÃ WIRE @S153 (adopt thư `0df10df4` pause-tiep-upgrade-vong-ctx)
> **Trạng thái: ✅ RATIFIED + ĐÃ WIRE @S153 (OWNER-VETO).** Anh bác (38)(a)-1-vai-gộp, chốt trực tiếp **"Build đủ 3 vai như hub"** qua AskUser ⇒ 3 vai `ctx-curator`/`ctx-verifier`/`ctx-audit` SỐNG trong roster (23, canonical → STATUS §Sub-agents) + máy `session_ctx.py mind-check` chạy mỗi cửa + wire tại `/pause §2.6(C-bis)` · `/tiep §3-ter` · bookend 2 đầu. Các câu đã định-đoạt: **(36)** hub-form spawn mỗi cửa (vai-1 @mỗi-pause = carve-out duy nhất luật "NGỪNG spawn", mirror hub O-1(a)) · **(37)(b)** nạp NỀN RÚT-GỌN theo khoá `tiep_reload` (`tiep.md §3-ter` cite "quyết (37)(b)") · **(38)(b)** 3 vai tách — marker inline dưới. 🧊 *Header cũ "DRAFT chờ anh chốt — CẤM wire" đứng từ S153→S164 SAU khi đã wire = **wired-but-declared-unwired** (ghost-wire chiều ngược, cùng class `closed.md` S146; ring1+ring2 bắt @S163 "ô xanh thủng"). Thân doc dưới GIỮ NGUYÊN dạng draft làm lineage — đọc "đề xuất" là đề-xuất-lúc-viết, không phải trạng-thái.*
> **Trạng thái: ✅ RATIFIED + ĐÃ WIRE @S153 (OWNER-VETO).** Anh bác (38)(a)-1-vai-gộp, chốt trực tiếp **"Build đủ 3 vai như hub"** qua AskUser ⇒ 3 vai `ctx-curator`/`ctx-verifier`/`ctx-audit` SỐNG trong roster (23, canonical → STATUS §Sub-agents) + máy `session_ctx.py mind-check` chạy mỗi cửa + wire tại `/pause §2.6(C-bis)` · `/tiep §3-ter` · bookend 2 đầu. Các câu đã định-đoạt: **(36)** hub-form spawn mỗi cửa (vai-1 @mỗi-pause = carve-out duy nhất luật "NGỪNG spawn", mirror hub O-1(a)) · **(37)(b)** nạp NỀN RÚT-GỌN theo khoá `tiep_reload` (`tiep.md §3-ter` cite "quyết (37)(b)") · **(38)(b)** 3 vai tách — marker inline dưới. 🧊 *Header cũ "DRAFT chờ anh chốt — CẤM wire" đứng từ S153→S164 SAU khi đã wire = **wired-but-declared-unwired** (ghost-wire chiều ngược, cùng class `closed.md` S146; ring1+ring2 bắt @S163 "ô xanh thủng"). **Dòng `#` đầu của chính tệp này còn trễ thêm một tầng nữa: nó giữ chữ `DRAFT` tới tận S185**, SAU khi khối trạng-thái ngay dưới đây đã vá — đúng lớp *"thân đã sửa, masthead sống sót"*; đồng-bộ @S185 theo `naming-standard.md` **§12-bis** (masthead của CHÍNH tệp vừa sửa), nguồn sàn `3-khoan:19-27`. Thân doc dưới GIỮ NGUYÊN dạng draft làm lineage — đọc "đề xuất" là đề-xuất-lúc-viết, không phải trạng-thái.*
> Nguồn: broadcast `2026-07-25-Governance-pause-tiep-upgrade-vong-ctx` (sha `0df10df4` — stamp-verify OK @S153, copy `broadcasts/inbox/` root=pending). Hub tự khai: **build xong + gate xanh, dogfood CHƯA có cửa nào chạy qua** — adopt là adopt KHUÔN chưa-kiểm-chứng, lỗi phát hiện thì gửi về hub (hub-owner Q-1: "có j debug sau cũng đc").
## 1. Bài toán (đúng SE)

View File

@ -8,6 +8,7 @@
- **Kiểm kê máy nền:** `.claude/workflows/runs/2026-08-07-S180-adap-upgrade-pack-phased/sub-w1a-mayd-octen.md`**14 đoạn máy đọc tên, 11 vỡ-câm**. Phụ lục A dưới đây là bản rút gọn BẮT BUỘC tra trước mọi lần đổi tên.
- **Máy soi:** `scripts/naming-scan.ps1` — INFORM-only, mã thoát 0, quét **231 tên vật-bộ-máy**.
- **Sổ đổi tên:** `docs/governance/rename-ledger.md` — chỉ-thêm-không-xoá.
- **Bổ sung SAU ngày ký:** **§12-bis** (masthead của chính tệp vừa sửa) — thêm 2026-08-09 / phiên S185, nguồn sàn `3-khoan:19-27`. *(Dòng này chính là §12-bis tự áp lên tệp của nó: thân đổi thì masthead phải nói ra.)*
---
@ -204,6 +205,29 @@ Một chuẩn "mọi tên kebab" sẽ **cờ 5 tệp đang đúng** = dương-gi
🔸 Hai bảng sao **cùng một regex**`detectors:1102``:1771`**nợ kỹ thuật: 1 luật / 2 bản sao**. S159 đã phải vá **cả hai**; chú thích `:1769-1770` tự khai *"mirror of the C11(b) filter fix above"*. Hợp nhất thành một hằng số là việc nên làm — **không làm trong W1** (đụng máy đang sống, thuộc W2 theo `Q5`).
## §12-bis — MASTHEAD của CHÍNH tệp vừa sửa 🔴
**Nguồn sàn:** `broadcasts/inbox/ai_infra/2026-07-20-Governance-3-khoan-title-tier-posture-home-distill-params.md` **Khoản 1** (`:19-27` — vùng đóng băng L1 nên neo số dòng ở đây hợp lệ). Hub đo: **ba ca cùng một hình trong ba phiên liền**; ca nặng nhất — một doc chính sách mang tiêu đề khai một tên model **đã bị thay hai đời trước****sống sót qua hai lượt quét**.
**Vì sao luật này nằm ở tệp này, ngay sau §12:** §12 liệt "số chỗ phải sửa ĐỒNG THỜI" theo **danh mục nơi TRỎ TỚI** một cái tên. Nhưng cách một tệp **tự mô tả chính nó** — dòng `#` đầu, khối masthead, dòng trạng thái ngay dưới tiêu đề — **không nằm trong danh mục của ai cả**. Nó là chỗ duy nhất không ai trỏ tới, nên là tầng sống lâu nhất sau mỗi lượt quét. Đây là chỗ ghi nó.
**Luật (một bước, vài giây):** sửa THÂN một tệp trong một lượt quét/vá ⇒ **đọc lại dòng `#` đầu + khối masthead của CHÍNH tệp đó** trước khi tuyên lượt quét xong. Tuyên "xong" mà chưa đọc lại = **chưa xong**.
**Phạm vi:** mọi tệp có masthead **mang trạng thái** — nhãn DRAFT/RATIFIED, mã phiên, ngày, tên chế độ, con số, tên model. Masthead thuần mô tả (chỉ nói tệp này là cái gì) thì miễn; miễn thì **nói ra**, đừng im (L4).
**Phép thử (tái lập được, không cần máy):**
```bash
for f in docs/governance/*.md docs/rules.md docs/STATUS.md docs/HANDOFF.md CLAUDE.md; do
printf "%-52s | %s\n" "$f" "$(grep -m1 '^#' "$f")"; done
```
Đối chiếu từng dòng in ra với trạng thái hiện hành **trong thân chính tệp đó** — không đối chiếu với trí nhớ.
**Lượt chạy đầu (2026-08-09, phiên S185 — 21 tệp): một ca dương THẬT.** `docs/governance/ctx-soft-memory-se-draft.md` còn chữ `DRAFT` ở dòng `#` đầu trong khi khối trạng thái của **chính nó** đã tuyên `✅ RATIFIED + ĐÃ WIRE @S153 (OWNER-VETO)` — thân đã vá, masthead sống sót. Đã đồng bộ ngay trong lượt đó, giữ vết 🧊. **KHÔNG tính là ca:** `session-model-se-draft.md` — masthead ở đó **khớp** thân (`0 nghi-thức chuyển per-L`); thân có cũ hay không là câu của khoản đối chiếu thư trả lời hub 07-22, **không phải** lỗi masthead. Phân biệt hai loại này quan trọng: gộp lại sẽ đẻ ra dương giả và làm phép thử mất uy.
**CHƯA CÓ MÁY** — khai theo **L0**: luật này sống bằng kỷ luật một bước, chưa đoạn máy nào ép. Ai muốn cắm máy thì cắm ở **lớp INFORM** (`naming-scan.ps1`, họ tệp `.md` có masthead mang trạng thái) và ghi vào **Phụ lục B**; **cấm** ký hình dạng sâu hơn nấc máy ép.
## §13 — Giao thức di trú sáu bước (cho ca BUỘC phải đổi tên đã có người trỏ)
1. **Ký chuẩn** (tệp này).

View File

@ -32,7 +32,7 @@ Dữ-liệu cũ (WAL · HANDOFF · auto-memory · migration-todos) **KHÔNG** đ
| mã | lời nguyên văn | thời điểm · phiên | trạng thái | số lần đã nhắc | con trỏ | 🔴 đội hiểu thành gì | nhắc-lại-của |
|---|---|---|---|---|---|---|---|
| `YC-001` | "Nói rõ các vấn đề trên nhé" | 2026-08-07 · S181 | đóng | 1 | báo-cáo lượt S181 | Giải thích 6 câu chờ-anh bằng nguồn thật, không phỏng theo trí nhớ — kèm khuyến nghị từng câu | |
| `YC-002` | "OK cứ làm dry-run luôn" | 2026-08-07 · S181 | **mở** | **4** | `WAL` chain W5 + W4b | *(lead hiểu SAI lượt đầu: tưởng dry-run các ô acceptance W3 ⇒ anh phải đính chính **3 lần**, xem 3 dòng dưới.)* Ý thật: **thi hành trọn plan adapt** | |
| `YC-002` | "OK cứ làm dry-run luôn" | 2026-08-07 · S181 | **mở** | **4** | `docs/changelog/sessions/` log S181 + run `2026-08-07-S180-adap-upgrade-pack-phased/` *(con-trỏ cũ "WAL W5+W4b" chết theo reset — gap-F2)* | *(lead hiểu SAI lượt đầu: tưởng dry-run các ô acceptance W3 ⇒ anh phải đính chính **3 lần**, xem 3 dòng dưới.)* Ý thật: **thi hành trọn plan adapt** | |
| `YC-003` | "gõ /adap-apply (dry) -> OK chốt cái này cho W3" | 2026-08-07 · S181 | đóng | 1 | `WAL` chain "W3 acceptance 6/6 ĐÓNG" | Gõ lệnh thật để xác nhận thân lệnh nạp có BƯỚC 0, **không** áp thư nào | |
| `YC-004` | "làm tiếp đi nhé, nãy tao nói dry-run tức chạy hết cái plan adapt ở turn trước chứ ko phải dry-run cái này" | 2026-08-07 · S181 | đóng | — | `WAL` chain "THI HÀNH 5/6 khoản đợt-2" | Đính chính lần 1 | **`YC-002`** |
| `YC-005` | "làm xong thì chậy hết cái plan adapt nhé" | 2026-08-07 · S181 | đóng | — | cùng trên | Đính chính lần 2 | **`YC-002`** |
@ -41,13 +41,14 @@ Dữ-liệu cũ (WAL · HANDOFF · auto-memory · migration-todos) **KHÔNG** đ
| `YC-008` | "Làm xong hết đi nhé" *(dán kèm bảng 5 wave còn lại, trong đó 2 wave ghi rõ đang CHẶN)* | 2026-08-07 · S181 | đóng | 1 | `WAL` chain W5/W4b | Chạy hết wave chạy được; 2 wave chặn thì chuẩn bị trọn rồi để đúng phần của anh | |
| `YC-009` | "đồng ý stamp - ký tên -> Làm đi nhé" | 2026-08-07 · S181 | đóng | 1 | `ACTIVE-MARKS` mark `RC-…-21-42-10` | Cấp chữ ký niêm phong W6 **và** phán nốt P7 vế (ii) | |
| `YC-010` | "OK làm hết rồi khép trọn đi" | 2026-08-07 · S181 | đóng | **2** | `WAL` chain W5b/W3b/W6 | Khép trọn gói: W5b + W3b + phần còn lại W6 | `YC-008` |
| `YC-011` | "1,2 -> làm đi, OK sau đó /session-end" | 2026-08-07 · S181 | mở | 1 | `WAL` `next:` | (1) push 42 commit · (2) cổng đồng-bộ + báo cáo cuối · rồi đóng phiên | |
| `YC-011` | "1,2 -> làm đi, OK sau đó /session-end" | 2026-08-07 · S181 | **đóng** *(lật @S185 — stale-F8: 3/3 vế xong từ S181, treo oan 4 nhãn phiên)* | 1 | closeout S181 commit `d2918790` + `HANDOFF` segment L12 *(con-trỏ cũ "WAL next:" đã chết theo reset — gap-F2, đổi sang mốc bền)* | (1) push 42 commit · (2) cổng đồng-bộ + báo cáo cuối · rồi đóng phiên — cả 3 đã thi hành @S181 | |
| `YC-012` | "nâng cap" *(🔸 trích từ `spec-…-07-08-2026.md:64`, cửa-sổ **S180**, KHÔNG bắt trực tiếp ở cửa-sổ này — khai đúng nấc)* | 2026-08-07 · S180 | đóng | 1 | `memory-budget.json` `_cap_raised_S181` | Lệnh dứt khoát nâng `hmw_width.cap` 20→30. 🔴 @S179 lead **tự thu-hẹp** chữ "OK" thành "chưa phải lệnh đổi số" — lần này không tự thu-hẹp | |
| `YC-013` | "Hiện tạo muốn cac quy trình này giống như duyệt NCC. Có thể thêm sửa xóa edit stick tương tự như duyệt NCC. Cho 2 /fable-real invest cách làm BE và Database, 1 /fable-real invest cách cấu hình giao diện front-end đúng nhất về UI lẫn giao diện, ko lệch. -> Ra các wave xử lý chi tiết nhất. cho 2 /fable-real review và tổng hợp các wave xử lý chi tiết. Cuối cùng fan-out cho Opus 5 MAX xử lý nhé." *(kèm 4 ảnh trang `approval-workflows-v2/DuyetNcc` + dialog Sửa-tại-chỗ)* | 2026-08-08 · S182 | **mở** *(code+deploy XONG — còn acceptance-mắt-anh + bookend @close rồi lật đóng; TASK → WAL)* | **2** | `runs/2026-08-08-S182-khkk-awf-mirror-ncc/` | 8 workflow "Duyệt KHKK — Nhóm 1..8" phải có ĐỦ chức năng như trang "Duyệt NCC": xem steps/cấp/NV + per-NV quyền duyệt + Sửa-tại-chỗ + Tạo-phiên-bản-mới + Ghim/Bỏ-ghim + Xoá-version + lịch-sử-versions. UI **không lệch** khuôn DuyetNcc. Pipeline anh chỉ định: 3 `/fable-real investigator-codebase` (BE · DB · FE-UI) → wave-plan chi tiết → 2 `/fable-real reviewer` → hmw fan-out **Opus 5 MAX** execute | |
| `YC-014` | "C — Mờ ô chưa nghe (Recommended)" *(AskUser D3 @S182 — sau khi invest phát hiện 6/9 checkbox KHKK-runtime bỏ qua)* | 2026-08-08 · S182 | đóng | 1 | `spec-khkk-awf-mirror-ncc-DRAFT.md` MỤC 3 D3 | Dialog KHKK giữ layout y khuôn; ô máy-chưa-nghe **mờ + tooltip "chưa áp dụng cho KHKK"** (tiền lệ ô Duyệt-thẳng-Cấp-cuối @K3). KHÔNG port semantics đợt này (W3 hủy); port sau thì gỡ mờ dần | |
| `YC-015` | "làm nốt cho ra giao diện luôn nhé" *(qua `/tiep` @S183)* | 2026-08-08 · S183 | đóng | — | WAL chain `[x]` cicd-4-chân | Verify deploy `706134da` cho giao diện 8 panel SỐNG trên prod — 4/4 chân PASS (bundle ×2 rotate + marker + DLL 3-hit + 8-row IsActive=1 + pin-lệch 0) | **`YC-013`** |
| `YC-016` | "1 -> (c) THEO TAY CẦM PHIẾU -> OK nhé" | 2026-08-08 · S183 | **mở** | 1 | WAL chain (TASK → WAL) | **Phán quyết slot (67)** treo từ S172: upload file-khi-duyệt KHKK theo TAY CẦM PHIẾU — phiếu Nháp/Trả-lại (tay người soạn) ⇒ NGƯỜI SOẠN up được; phiếu Chờ-duyệt ⇒ CHỈ NGƯỜI DUYỆT (thuộc workflow phiếu); guard ở API-layer (#82 2-tầng), kèm test. Slot (67) ĐÓNG | |
| `YC-017` | "AI_INFRA và /adap-apply — Cho /fable-real invest và review checklist cẩn thận sau đó cho Opus 5 MAX xử lý" *(args lệnh `/check-email` @S185)* | 2026-08-09 · S185 | **mở** | 1 | WAL chain (TASK → WAL) | Kéo thư AI_INFRA CẢ 2 kênh (`outbox/se` qua check-email + `outbox/all` qua adap-apply), rồi pipeline khuôn YC-013: `/fable-real investigator-codebase` soi trạng-thái thư/adopt + dựng checklist → `/fable-real reviewer` review checklist cẩn thận → hmw fan-out **Opus 5 MAX** execute. *(Thư 08-08 đã áp trọn @S185 TRƯỚC lệnh này — pipeline chạy trên phần việc CÒN LẠI mà invest tìm ra.)* | |
| `YC-016` | "1 -> (c) THEO TAY CẦM PHIẾU -> OK nhé" | 2026-08-08 · S183 | **mở** *(code+deploy+verify-DLL XONG @S183, RE-verify @S185 — còn acceptance-mắt-anh, lật cùng đợt YC-013; chú-thích thêm @S185 cho đối-xứng — stale-F9)* | 1 | ship `72568f05` + WAL chain (TASK → WAL) | **Phán quyết slot (67)** treo từ S172: upload file-khi-duyệt KHKK theo TAY CẦM PHIẾU — phiếu Nháp/Trả-lại (tay người soạn) ⇒ NGƯỜI SOẠN up được; phiếu Chờ-duyệt ⇒ CHỈ NGƯỜI DUYỆT (thuộc workflow phiếu); guard ở API-layer (#82 2-tầng), kèm test. Slot (67) ĐÓNG | |
| `YC-017` | "AI_INFRA và /adap-apply — Cho /fable-real invest và review checklist cẩn thận sau đó cho Opus 5 MAX xử lý" *(args lệnh `/check-email` @S185)* | 2026-08-09 · S185 | **đóng** *(pipeline P1→P4 trọn @S185: 0/39 nợ per-id · 21/21 item disposition; 4 câu W phát sinh → khối CHỜ-ANH riêng, không giữ YC mở)* | 1 | `runs/2026-08-09-S185-email-adap-pipeline/implement-synthesis.md` | Kéo thư AI_INFRA CẢ 2 kênh (`outbox/se` qua check-email + `outbox/all` qua adap-apply), rồi pipeline khuôn YC-013: `/fable-real investigator-codebase` soi trạng-thái thư/adopt + dựng checklist → `/fable-real reviewer` review checklist cẩn thận → hmw fan-out **Opus 5 MAX** execute. *(Thư 08-08 đã áp trọn @S185 TRƯỚC lệnh này — pipeline chạy trên phần việc CÒN LẠI mà invest tìm ra.)* | |
| `YC-018` | "2 phần bookend và bookstart -> trong đợt adapt này AI_INFRA cũng có hướng dẫn bọn mày chạy 1 mạch hết toàn bộ ko còn pause/tiep nữa, chú ý cấu hình cái đó kỹ nhé" | 2026-08-09 · S185 | **mở** | 1 | WAL chain (TASK → WAL) | Nghi-thức 2 đầu phiên (`/session-start` bookstart + `/session-end` bookend) phải chạy **TRỌN TRONG MỘT LƯỢT** như hub kể ở thư 08-08 Phần 1b ("lượt mở phiên gần nhất chạy trọn trong một lượt duy nhất, không cần cửa tạm dừng nào chen giữa") — cấu hình luật ONE-SHOT vào 2 file lệnh, CẤM rải nghi-thức qua nhiều cửa pause/tiep, CẤM hẹn-cửa-sau. *(Đội hiểu: pause/tiep VẪN là recovery khi đứt bất-khả-kháng [limit/crash — H22 giữ nguyên]; thứ bị cấm là DÙNG chúng làm nhịp chia-chặng nghi-thức. Anh bác cách hiểu này thì em sửa.)* | |
> 🔴 **MỘT yêu-cầu, nhắc 4 lần.** Đây là dữ-liệu **TC-01** sinh ra để bắt, và nó tố-giác chính lead: hiểu sai ở `YC-002` nên anh phải nói lại 3 lần. **Ghi lại chứ không làm đẹp.**
>