wal: pause

This commit is contained in:
pqhuy1987
2026-08-14 16:32:21 +07:00
parent 951959452b
commit a01147e9df
24 changed files with 381 additions and 21 deletions

View File

@ -0,0 +1,139 @@
# Disposition 52 slug `[carry:*]` — chạy @S196 (phiên-LOGIC L17)
> **Lệnh owner `YC-038` (2026-08-14):** *"disposition 52 slug -> OK"*.
> **Nguồn tập:** `docs/HANDOFF.md:44` khối RE-STAMP CARRY @S191 — **52 slug uniq** (`ring2-audit` @S196 tái dựng độc lập, khớp chính xác 52).
> 🔴 **KHAI SCOPE (bắt buộc — `ring2` @S196 §4b):** con số **52** là của **khối `:44`**. Tập slug trên ĐĨA phụ thuộc scope: `docs/` = **71** · tracked trừ `workflows/runs` = **72** · toàn tracked = **86**. Bảng này disposition **đúng 52 của khối :44**, KHÔNG phải toàn tập đĩa.
> 🔴 **Luật chấm:** mỗi slug đúng **1 nhãn** {ĐÓNG · MỞ · CHƯA ĐO ĐƯỢC} kèm bằng chứng. **CẤM làm tròn "không thấy" thành "đã đóng"** — hướng hỏng phải nghiêng về *giữ mở*, không về *đóng ẩu*.
## Vì sao lời hẹn này trôi 3 bookend
`lead-gap-auditor` @S196 F-2 đo: `grep -rn "disposition per-slug"` = **7 hit, 7/7 đều là lời NHẮC, 0 hit là kết quả**; chuỗi hoãn **S192-open → S195-close → S196-open**. Nguyên nhân cơ học: lời hẹn neo vào chữ **"bookend kế"** ⇒ **tự gia hạn mỗi lượt, không bao giờ quá hạn**. Đề xuất rẻ hơn của S192 (*đổi chữ thành mốc SỐ thật*) cũng không được lấy. Và **0 slug nào gánh việc này** — nó chỉ sống trong ngoặc đơn của chính khối nó hẹn.
## 🔴 Phát hiện chính — khối ":52 slug MỞ" đếm THỪA
**15/52 slug đã được đánh ĐÓNG tường minh NGAY TRONG chính `HANDOFF.md`**, nhưng khối RE-STAMP vẫn liệt chúng là "mở".
**Cơ chế:** nghi-thức RE-STAMP tự khai *"dựng từ nguồn = grep `[carry:*]` toàn file slug có dấu ✅ĐÓNG"*. Nhưng dấu đóng trong file này viết bằng **≥5 dạng khác nhau**:
| dạng | ví dụ |
|---|---|
| A | `**ĐÓNG @S181:** [carry:X]` — dấu TRƯỚC, có tiền tố `carry:` |
| B | `✅ carry ĐÓNG S124:` rồi liệt `` `X` `` — **không** tiền tố `carry:` |
| C | `✅ carry `X` **ĐÓNG @S130**` — slug **nằm GIỮA** hai dấu |
| D | `~~[carry:X]~~` — gạch ngang, 0 chữ "ĐÓNG" |
| E | `**carry `X` ĐÓNG**` |
⇒ một phép trừ dựa trên **một** dạng sẽ bỏ sót 4 dạng còn lại. **Đây là lý do con số 52 phình, không phải vì có 52 việc thật.**
🔸 Lead cũng dính đúng bẫy này khi đo: thước cửa-sổ-200-ký-tự đầu tiên cho **13 "đã đóng"**, trong đó **3 là dương-giả** (`binh-le-decision`/`account-trung`/`ring4-write-lane` ăn nhờ dấu ✅ của slug **khác** đứng cạnh trong cùng mega-line) và **bỏ sót** `retier-megaline` (dạng C). Phải bỏ regex, trích **toàn bộ 41 câu-đóng** rồi đọc tay mới ra đúng.
---
## Bảng disposition — 52/52
### ✅ ĐÓNG — có dấu tường minh trong HANDOFF (15)
| # | slug | đóng @ | bằng chứng |
|---|---|---|---|
| 1 | `hmw-width-vs-roster` | S181 | `**ĐÓNG @S181:**` — cap 20→30, roster ≤ 30, slot (75) khép |
| 2 | `adap-apply-2-thu` | S153 | `✅ ĐÓNG @S153:` — cả 2 thư TRỌN, inbox pending 0; **+** `~~[carry:adap-apply-2-thu]~~` lần 2 (2 thư `loi-do-luong`) |
| 3 | `memory-ops-refine-queue` | S152 | `✅ ĐÓNG @S152:` — queue TRỌN A1-A4·D1·D2·R1·B-series; A7 392/392 |
| 4 | `jump-dai-frozen` | S152 | cùng câu đóng [20]; owner (30) để-nguyên-theo-nhịp, `frozen=False` |
| 5 | `pause-autosnap` | S148 | `**ĐÓNG @S148**` — wire `pause.md §2.6(D)`, chi phí RÒNG đo được ~64ms |
| 6 | `tiep-window-crash` | S148 | cùng câu đóng [31] — `/tiep` đọc snapshot mới nhất + phòng cửa-sổ-sập |
| 7 | `dangling-head` | S143 | `**ĐÓNG @S143 (1):**` — hub APPROVE khuôn ①a, contract v2 land, 3 ca S127/S133/S139 reclassify `squash-benign` |
| 8 | `retier-megaline` | S130 | `✅ carry `retier-megaline` **ĐÓNG @S130**` (dạng C) — owner chốt B3=#2 tách-dòng |
| 9 | `restart-s124` | S126 | `✅ carry ĐÓNG S126 (2):` — restart xảy ra, frontmatter+autoMemory verified |
| 10 | `h23-fable-test-postrestart` | S126 | cùng câu đóng [36] — đo + báo hub |
| 11 | `usermem-outside-repo` | S124 | `✅ carry ĐÓNG S124:` — relocated + committed |
| 12 | `h24-2vai-chua-chay` | S124 | cùng câu [37] — RAN n=1 both-clean |
| 13 | `h23-precedence-fable` | S124 | cùng câu [37] — superseded → testable-at-Opus |
| 14 | `s119-wave` | — | `**carry `s119-wave` ĐÓNG**` — wave W0→W6 xong, 4 push, 2 mark ký |
| 15 | `mind-tran-nen-moi-cua` | S167 | `~~[carry:mind-tran-nen-moi-cua]~~` — nén MIND-2+3+4, `_mind` 48.989→41.362 B, `mind-check dat=11` |
### ✅ ĐÓNG bằng THỰC CHẤT — vật tồn tại dù không ai đánh dấu (2)
| # | slug | bằng chứng ĐO @S196 |
|---|---|---|
| 16 | `ring5-audit-gap` | `.claude/agents/ring5-audit.md` **TỒN TẠI**; `grep -c "'ring5-audit'" hmw.js` = **1** ⇒ gap đã lấp @S185 (YC-021/W-2), chỉ chưa ai gạch slug |
| 17 | `mind-neo-xuat-xu-sai-2-truong` | `ctx-audit` @S196 đo neo `_mind-s-17` khớp **từng giây** với `git log -1 e255c778` ⇒ *"class S172 **vẫn đóng**"* |
### 🔴 MỞ — đo được là CÒN SỐNG, có bằng chứng trong chính lượt này (5)
| # | slug | bằng chứng còn sống |
|---|---|---|
| 18 | `ctx-verifier-no-self-append` | `harvest-curator` @S196: `git log -S` → **8/8 commit gần nhất đều là lead**; block mang nhãn `[LEAD SEED ON-BEHALF]` ⇒ **lần 13**. 🔸 Kèm đề nghị đổi nhãn: đây là thuộc tính của **cả lớp vai propose-only** (`reviewer.md:7` cũng không có `Write`), đang bị tính thành lỗi cá nhân của một vai |
| 19 | `tools-whitelist-no-teeth` | `harvest-curator` @S196 tự làm nhân chứng: frontmatter nó **cũng không** liệt `Write`, mà runtime **vẫn cấp** `Write` trong phiên này ⇒ whitelist = tuyên-bố ý-định, **không có răng** |
| 20 | `carry-age-vacuous` | `HANDOFF:17` + `lead-gap` @S196: thước H24-2 **đảo dấu** (`uat-s117` 18 occurrence/mở từ S117 → streak 1; `adap-apply-2-thu` 6 occurrence/mở từ S152 → streak 4); 43/66 slug ra `streak=1`; mẫu số còn lẫn slug **đã đóng**. `lead-gap` đề nghị **owner phán đóng** thay vì treo tiếp |
| 21 | `hook-vs-budget-cap` | 21 occurrence trên HANDOFF, streak ≥9 (ghi ở `.session-counter.json` history); chưa có bản vá nào land |
| 22 | `session-model-adopt` | **MỞ một phần** — hạ tầng đã chạy thật (**17 thư-mục** `session-<N>` trên đĩa, `_snapshot-*` = 23 file), nhưng `session-start` BƯỚC 0.8(d) tự khai **bảng VC còn chờ owner duyệt**; 0 nghi-thức nào chuyển sang per-L |
### 🔴 MỞ — chờ CHỦ DỰ ÁN, không phải việc lead (7)
| # | slug | nội dung treo |
|---|---|---|
| 23 | `uat-s117` | UAT chờ anh nghiệm thu |
| 24 | `uat-s133-budget-freeze` | UAT freeze ngân sách phiếu DaDuyet |
| 25 | `uat-s134-luyke` | UAT lũy kế tạm-tính ⟂ chính-xác |
| 26 | `pe-phanquyen` | quyết định phân quyền PE |
| 27 | `binh-le-decision` | quyết định Bình/Lê |
| 28 | `account-trung` | account trùng |
| 29 | `bvaau` | cross-project BVAAU |
### 🔴 MỞ — nợ kỹ thuật có địa chỉ code (6)
| # | slug | địa chỉ |
|---|---|---|
| 30 | `w7b-inbox-param` | BE `/contracts/inbox` thêm `?type=` + bỏ `Take(100)`, rồi FE gỡ client-filter |
| 31 | `w5-host-ondeleted` | host `onDeleted` |
| 32 | `w3b-cam-ma-thoat` | rider-jump chưa dựng |
| 33 | `fe-contract-family-drift` | `fe-admin/src/lib/contractWorkflowFamily.ts` chép 7 mã `HD-*` — 2 nhà, cần drift-watch |
| 34 | `e7-cot-chet-khkk` | cột chết KHKK |
| 35 | `acceptance-runtime-khkk` | acceptance runtime KHKK |
### 🔴 MỞ — nợ governance/đo-lường (9)
| # | slug | ghi chú |
|---|---|---|
| 36 | `pin-max-server-memory-fleet` | pin `max server memory` cho các SQL nhỏ khác cùng hạ tầng (S189) — **việc ops, chưa chạy** |
| 37 | `sentinel-truoc-bu` | mọi lượt CHẠY-BÙ phải đặt lại `closing:` sentinel trước khi bù (RCA `ONESHOT-S188`) |
| 38 | `harvest-no-s168-s171` | harvest thiếu S168/S171 |
| 39 | `harvest-orphan-s159-tongquan` | orphan S159 tổng-quan |
| 40 | `orphan-retro-harvest-s159` | retro-harvest S159 |
| 41 | `synthesis-roll-s159-s160` | synthesis roll S159-S160 |
| 42 | `underfill-mau-so` | mẫu số underfill |
| 43 | `meld-forward-unmeasured` | meld-forward chưa đo |
| 44 | `eval-thamquyen` | thẩm quyền eval |
### 🟡 CHƯA ĐO ĐƯỢC — có tín hiệu nhưng chưa đủ để phán (8)
| # | slug | đã đo gì · thiếu gì |
|---|---|---|
| 45 | `tiep-3ter-seed-unwired` | `tiep.md` **CÓ** `§3-ter` (2 hit) ⇒ vế "wire" thoả; nhưng slug nói **"seed unwired"** — chưa xác minh vế *seed diary*. Cần đo `agent-memory/ctx-verifier/` xem `/tiep` có seed không |
| 46 | `hmw-subfile-index-collision` | `hmw.js` có **1 hit** vùng liên quan; chưa xác minh hit đó là bản vá hay là chính chỗ va chạm |
| 47 | `bookend-5-5` | `session-end.md` có **3 hit** cụm 5-vòng; chưa xác minh 5/5 chạy đủ ở một phiên cụ thể |
| 48 | `ctx-t9-dogfood` | `HANDOFF` ghi **🔻 THU HẸP @S185 (KHÔNG gỡ trắng)** ⇒ trạng thái *thu hẹp*, không phải mở-toàn-phần cũng không phải đóng. **Cần owner phán nhãn** |
| 49 | `ring4-write-lane` | listed dạng *"→ slot (34)"* ⇒ đã được chuyển thành slot có số; chưa xác minh slot (34) đã đóng chưa |
| 50 | `g011-token-fork` | 6 occurrence, 0 câu đóng; chưa đo được nội dung còn đúng không |
| 51 | `tham-sau-6-ca` | 6 occurrence, 0 câu đóng |
| 52 | `reset-doi-het` | 2 occurrence HANDOFF + 4 run-folder; sinh muộn, chưa có lượt nào chấm |
---
## Tổng kết
| nhãn | số | tỉ lệ |
|---|---|---|
| ✅ **ĐÓNG** (15 có dấu + 2 thực chất) | **17** | 32,7% |
| 🔴 **MỞ** (5 đo được sống + 7 chờ owner + 6 code + 9 governance) | **27** | 51,9% |
| 🟡 **CHƯA ĐO ĐƯỢC** | **8** | 15,4% |
| **tổng** | **52** | 100% |
🔴 **Con số "52 slug mở" SAI — thật là ≤ 35 (27 mở + 8 chưa rõ).** Và trong 27 mở thì **13 là việc của chủ dự án hoặc ops**, không phải nợ lead.
🔴 **CHỐT-DỪNG cho lời hẹn (thay chữ "bookend kế" bằng mốc SỐ):** disposition này chạy @**S196**. Lần disposition kế = @**S206** (10 nhãn phiên), **hoặc** ngay khi khối RE-STAMP vượt **60 slug** — tuỳ cái nào tới trước. Neo vào SỐ thì quá hạn được; neo vào chữ "bookend kế" thì không.
## Việc đẻ ra từ lượt disposition này
1. **Sửa nghi-thức RE-STAMP**: phép trừ phải nhận **cả 5 dạng dấu đóng** (bảng trên), không chỉ dạng A. Không sửa thì con số lại phình mỗi kỳ.
2. **Chuẩn hoá dạng dấu đóng về MỘT** cho slug mới: `~~[carry:X]~~ — ĐÓNG @S<nn>: <bằng chứng>`. 5 dạng là gốc của cả dương-giả lẫn âm-giả.
3. 17 slug ĐÓNG cần **gạch khỏi khối `:44`** ở lần re-stamp kế.
4. `carry-age-vacuous` (#20) và `ctx-t9-dogfood` (#48) **cần owner phán nhãn** — lead không tự quyết.

View File

@ -66,6 +66,8 @@ Dữ-liệu cũ (WAL · HANDOFF · auto-memory · migration-todos) **KHÔNG** đ
| `YC-034` | "à có nhé, file này" *(kèm ảnh thư mục FORM khoanh đỏ `SOL-CCM-FO-002.04.v01 Dieu kien chung hop dong tron goi.docx` 189 KB)* ⏎ → "nhưng vậy cho nó phần cuối là đc" | 2026-08-14 · S194 | **đóng** *(đáp nốt câu `(97)` — bộ 5 câu `YC-032` nay 5/5 CÓ ĐÁP)* | 1 | `spec-…§⑤.g` + `②.3` *(thi-công → WAL)* | Đáp `(97)`: PHẦN 2 "Điều kiện chung" **= chính file `002.04`** anh khoanh, và **đặt ở PHẦN CUỐI** của document-view. ⇒ **CHẶN GỠ**, nhưng gỡ bằng **thu hẹp phạm vi**, KHÔNG phải bằng tìm ra 12 điều: đo lại bằng thước ĐÃ VÁ (control-dương 3/3 CO sau khi sửa lỗi nối-mảnh-chữ bằng dấu cách) ⇒ `002.04` vẫn **5 điều / 40 đoạn / 6.929 chữ**; 12 tên điều (Đơn giá · Tiện ích · Phát sinh · Nghiệm thu · **Tạm ứng** · Nghĩa vụ · Phạt · Chấm dứt · **Bảo hành** · Bất khả kháng · Thông báo · Hối lộ) **0 hit**. ⇒ Đội hiểu: document-view = **PHẦN 1** (ruột riêng, lấy từ `002.02`/`002.03`) **+ PHẦN 2 gắn ở cuối** (dùng chung, lấy từ `002.04`, **5 điều**). 🔴 **Hệ quả phải khai, không được im:** bảng tóm tắt cuối PHẦN 1 có ô trỏ *"xem ĐIỀU 8 / ĐIỀU 12"* của PHẦN 2 — 2 điều đó **không tồn tại trong `002.04`** ⇒ con trỏ chết vẫn còn, chỉ là **owner chấp nhận đi tiếp**, không phải đã hết. Ghi thành nợ đã-biết cùng hạng với VAT `(100)`. | |
| `YC-035` | "OK làm tiếp đi nhé" | 2026-08-14 · S194 | **đóng** *(lệnh đi-tiếp, thi-hành ngay trong lượt)* | — | WAL chain G1 *(thi-công → WAL)* | Duyệt cho lead HOÀN NỐT 7 site backend còn lại của G1 bằng tay (sau khi lead khai wave land nửa chừng: BE 1/8 site, 2 nhánh câm đang nuốt 2 loại mới). KHÔNG phải yêu-cầu mới — là tái xác nhận `YC-032` vế "cho Opus 5 MAX xử lý", nên KHÔNG tính là mục nhắc-lại mới. | **`YC-032`** |
| `YC-036` | "OK xong hết hoàn toàn đi rồi tao sẽ test" | 2026-08-14 · S194 | **mở** | — | WAL chain G1-G5 *(thi-công → WAL)* | Lệnh làm TRỌN `YC-032` — hết 4 vế, không dừng giữa chừng để hỏi, rồi anh tự kiểm trên prod. Đội hiểu: chạy nốt G1 (office + verify FE) → G2 khung document-view → G3 pre-fill → G4 in + khoá bản cứng → G5 review + deploy, và **deploy lên prod** vì "tao sẽ test" hàm ý anh test trên máy thật. 🔴 Ràng buộc GIỮ NGUYÊN, không được lấy chữ "xong hết" để bỏ qua: 4 nợ đã-biết ở spec `§⑥.c` (VAT · con-trỏ chết ĐIỀU 8/12 · authz đính kèm · 12 điều PHẦN 2) là owner CỐ Ý hoãn — vẫn phải KHAI khi báo cáo, cấm im lặng cho tròn. | **`YC-032`** |
| `YC-037` | *(chốt bằng chọn-đáp-án ở AskUserQuestion, không phải free-text)* — câu 1 **"Chuẩn thuận + vá cửa git (Đề xuất)"** · câu 2 việc-kế **"Vá 3 lỗ hạ-tầng vừa bắt"** | 2026-08-14 · S196 | **mở** | 1 | `.claude/commands/tiep.md` §0 khối ⑤(a) *(vá đã land)* + `runs/2026-08-14-S196-bookend-open/` | Hai lệnh tách bạch. **(1)** Chuẩn thuận việc lead đi tiếp sau khi Sàn-3 ⑤ kêu — chẩn đoán dương-giả ĐÚNG, nhưng lead **vượt quyền** khi tự thi hành (`ctx-audit` C-1: trụ bằng chứng là phép trích RỖNG; ⑤ là phép HỢP, lead đổi thành "đĩa thắng git"). Chuẩn thuận = tha ca này, **KHÔNG** nới luật — anh cố ý chọn nhánh vá MÁY thay vì nhánh "cho lead tự phán". **(2)** Việc kế = 3 lỗ hạ-tầng: `agents/README.md:264` thiếu 3 vai (`ring5-audit`·`score-counter`·`score-count-auditor`) ⇒ vai gọi trong workflow sẽ THROW · 4 ô canonical stale `STATUS:6/9/11/484` · self-compact `harvest-curator` (L1 **bị cắt thật** khi spawn phiên này, 27.360 B > hook read-limit ~24,4 KB). 🔴 Lead khai ràng buộc: 3 lỗ này nằm trong **bề-mặt-đo bị đóng băng** (Mirror C1) nên phải chờ `ring1`/`ring2` trả verdict mới sửa — không phải hoãn, là thứ-tự bắt buộc. | |
| `YC-038` | "disposition 52 slug -> OK" | 2026-08-14 · S196 | **mở** | 1 | `docs/governance/carry-disposition-S196.md` *(sinh trong lượt)* + `docs/HANDOFF.md` khối RE-STAMP | Lệnh CHẠY disposition per-slug cho 52 slug `[carry:*]``HANDOFF:44`, thay vì hoãn tiếp. Nền: `lead-gap` F-2 @S196 chứng lời hẹn *"disposition per-slug = việc bookend kế"* đã hoãn **3 bookend liên tiếp** (S192-open → S195-close → S196-open) vì neo vào chữ **"bookend kế"** ⇒ **tự gia hạn vô hạn, không bao giờ quá hạn**; `grep -rn "disposition per-slug"` = 7 hit, **7/7 đều là lời NHẮC, 0 hit là kết quả**. Đội hiểu: mỗi slug phải ra đúng 1 trong 3 nhãn {ĐÓNG · MỞ · CHƯA ĐO ĐƯỢC} kèm bằng chứng đo, **CẤM làm tròn "không thấy" thành "đã đóng"**; rồi **đổi chữ "bookend kế" thành mốc SỐ thật** để hết trôi. 🔴 Caveat mang theo (`ring2` @S196): con số 52 đúng theo `HANDOFF:44`, nhưng tập slug trên đĩa **phụ thuộc SCOPE** (docs/ = 71 · tracked trừ run-folder = 72 · toàn tracked = 86) ⇒ phải khai scope, đừng trình 2 thước như một phép trừ. | |
| `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 | **đóng** *(cấu hình land 4 site @S185 + chạy thật trọn 1 mạch bookend @close cùng đêm — nghiệm bằng vận hành; 🔴 nhắc lần 2 @S188 = PN-001: lead bỏ 3 vai @close với lý do "ngân sách" — owner bác, chạy nốt ngay trong lượt)* | **2** | 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.**