wal: flush 20260807T1535
This commit is contained in:
@ -97,3 +97,11 @@ Adversarial pre-commit reviewer SOLUTION_ERP. Read-only verify + live curl prod
|
||||
- **Trục xếp wave đắt nhất = tách CHỮA ⟂ NGHIỆM-THU** (lane E §4.4): TC-02/03/07 chỉ thiếu THƯỚC — mở wave "chữa" là làm thừa; TC-10 thiếu THUỐC — có nhãn GĐ-3 vẫn là lỗ. Trộn 2 trục ⇒ 2 sai ngược chiều cùng lúc.
|
||||
- **Ghi-đĩa-4-nhát qua Edit-append anchor-đuôi** (header → W0-2 → W3-4b → W5-6+chốt): chết giữa chừng vẫn giữ trọn wave đã chốt. Phiên 13 vai dính #53 — 4 nhát land sạch, 0 mục-lục-rỗng.
|
||||
- Tag `[s180, n4-wave-plan, od-2, tc-contract-hole, ma-vs-cau-van, p-vs-q-prefix, chua-vs-nghiem-thu, edit-append-anchor]`
|
||||
|
||||
## S180 (08-07) — W0 lane a/2: dựng `docs/governance/adap-upgrade-pack-{fitmap,tracking}.md` (11.697 + 17.890 B)
|
||||
|
||||
- 🔴 **ACCEPTANCE ĐO HÌNH-DẠNG-DÒNG, KHÔNG ĐO GIÁ-TRỊ-Ô** — `grep -c '^| GĐ-[0-6]'` vẫn ra **7** dù ô Quyết định điền sai từ-vựng. Lệnh lead bảo điền `chưa làm` (từ-vựng **Phần C** chấm-từng-khoản) vào ô **Phần A** (chỉ nhận `áp dụng`/`không áp dụng`/`hoãn`) ⇒ đẻ **giá-trị-thứ-tư**, đúng lỗi F-03 mà file sinh ra để đóng, mà **nghiệm thu vẫn xanh**. Vá: giữ `áp dụng` + đẩy "hiện trạng chưa làm" sang ô lý do; **thêm phép đo GIÁ-TRỊ** (`awk` đếm ô hợp lệ = 7/7). Cùng lớp: GĐ-6 "chưa ĐÁNH GIÁ ĐƯỢC" là kết luận về **điều-kiện-vào**, không phải giá trị ô ⇒ ô = `hoãn`.
|
||||
- **2 tệp anh em cùng có bảng 7 dòng = bẫy DƯƠNG-GIẢ thật:** chạy nhầm lệnh bản-đồ trên tệp theo-dõi sẽ ra đúng 7 và "đạt". Vá bằng đổi cột đầu sang `0..6`, rồi **chạy chéo 2 chiều** (0 và 0) + control-dương (`GĐ-` vẫn xuất hiện 16 lần ⇒ 0 là do không-bắt-đầu-bằng, không phải thước hỏng).
|
||||
- 🔴 **`grep -c` exit 1 khi 0-hit ⇒ CẮT ĐỨT chuỗi `&&`** — lượt đo A0-3 chết ngay sau số 0, **control-dương không kịp chạy**, suýt nộp 0-hit không chứng-nhân. Tách lệnh hoặc `|| true`.
|
||||
- **1 phép đo, 3 nguồn, 3 số:** lane B liệt-từng-ô cộng ra **2,0**/6 nhưng dòng tổng của chính nó ghi **1,5/6 (25%)**; wave-plan ghi 2/6; lead ghi "4/6 TRƯỢT" (= phần bù của 2/6). ⇒ chép **PHẦN LIỆT KÊ** vào tệp sống-lâu, đừng chép số tổng.
|
||||
- Tag `[s180, w0-lane-a, fitmap, shape-vs-value-acceptance, sibling-table-false-pass, grep-exit1-chain-cut, vocab-phanA-vs-phanC]`
|
||||
|
||||
@ -61,3 +61,27 @@ Cùng một phép đo "GĐ-2 đạt bao nhiêu trên 6 ô nghiệm thu", ba ngu
|
||||
|
||||
- `[đã xong]` Đọc trọn 10 nguồn ở §0.
|
||||
- `[đã xong]` Chốt 2 chỗ làm-khác (§1) + 1 con số va nhau (§2) + 1 lệch đường dẫn (§3).
|
||||
- `[đã xong]` Deliverable 1 land: `docs/governance/adap-upgrade-pack-fitmap.md`, **11.697 B**.
|
||||
- `[đã xong]` Return dính #53 giữa chừng (vai thứ 15 của phiên). Lead bắt lại, không phải đo lại từ đầu vì đã ghi đĩa.
|
||||
- `[đã xong]` Deliverable 2 land: `docs/governance/adap-upgrade-pack-tracking.md`, **17.890 B**.
|
||||
|
||||
## §5 — PHÉP ĐO SAU KHI LAND (chạy thật, kèm control)
|
||||
|
||||
| Phép đo | Lệnh | Kết quả | Control |
|
||||
|---|---|---|---|
|
||||
| Bản đồ đủ bảy dòng | `grep -c '^\| GĐ-[0-6]' …fitmap.md` | **7** | Chạy cùng lệnh trên tệp khuôn hub ra **14** — đúng bẫy mẫu-số hub cảnh báo, thước sống |
|
||||
| Bảy ô Quyết định đúng 1-trong-3 | `awk -F'\|' '/^\| GĐ-[0-6] /{…}'` | **7/7 hợp lệ**, 0 ô trống, 0 ô trộn | Liệt từng ô: 6 ô `áp dụng` + 1 ô `hoãn` |
|
||||
| Tệp theo dõi đủ khoản | `grep -c '^\| A' …tracking.md` | **20** | Liệt từng mã ra đúng `A0-1 A0-2 A0-3 A0-4 A1…A10 A11…A16`, 0 trùng 0 hụt |
|
||||
| Nấc khai theo từng GĐ (A15) | `awk -F'\|' '/^\| [0-6] \|/'` | **7 dòng**, mỗi GĐ một nấc | 6 GĐ ở `đã đồng ý` · GĐ-6 ở `đã nhận` |
|
||||
| Không ai tự khai nấc cuối | `grep -c 'đã được kiểm chứng *\|' …tracking.md` | **0** | — |
|
||||
| Hai lệnh nghiệm thu có phân biệt được tệp không | chạy chéo hai chiều | **0 và 0** — không dương-giả chiều nào | Control dương: chuỗi `GĐ-` xuất hiện **16 lần** trong tracking, nên số 0 là do dòng không BẮT ĐẦU bằng `\| GĐ-`, không phải do thước hỏng |
|
||||
| A0-3 trạng thái đĩa lúc viết | `grep -c "upgrade-pack-phased" broadcasts/_index.md` | **0** | Control dương `harness-22` = **3**, tổng dòng dữ liệu = **94** ⇒ im lặng thật |
|
||||
| TC-03 control-âm persona | `grep -h "^model:" .claude/agents/*.md \| sort \| uniq -c` | **`26 model: opus`**, không giá trị nào khác | Mẫu số 27 tệp trừ `README.md`; `effort: max` = 26 |
|
||||
|
||||
## §6 — BẪY TÔI SUÝT GIẪM, GHI LẠI ĐỂ VAI SAU KHỎI GIẪM
|
||||
|
||||
1. **Lệnh nghiệm thu `grep -c '^| GĐ-[0-6]'` đo HÌNH DẠNG DÒNG, không đo GIÁ TRỊ Ô.** Nếu tôi chép đúng chữ và điền `chưa làm` vào ô GĐ-2, lệnh này **vẫn ra 7** và vẫn "đạt", trong khi bản đồ đã hỏng đúng chỗ nó sinh ra để sửa. Bài: khi acceptance chỉ đo hình dạng, phải bổ sung một phép đo GIÁ TRỊ (ở đây là awk đếm ô hợp lệ).
|
||||
2. **Hai bảng bảy dòng trong hai tệp anh em là bẫy dương-giả có thật.** Tệp theo dõi cũng có một bảng bảy dòng theo giai đoạn. Nếu tôi để nó bắt đầu bằng `| GĐ-0 |` thì ai chạy nhầm lệnh trên tệp theo dõi sẽ **ra đúng 7 và tưởng đã kiểm xong bản đồ**. Tôi đổi cột đầu thành số `0`…`6` để hai lệnh phân biệt được tệp, rồi chạy chéo hai chiều để chứng.
|
||||
3. **`grep -c` trả mã thoát 1 khi 0 hit, nên nó CẮT ĐỨT chuỗi `&&`.** Lượt đo A0-3 đầu tiên của tôi chết ngay sau số 0 và **control dương không kịp chạy** — tức là suýt nộp một số 0 không có chứng nhân. Phải tách lệnh hoặc thêm `|| true`.
|
||||
4. **Ba nguồn cho ba con số trên cùng một phép đo** (§2). Tôi không chép con số tổng nào vào tệp sống lâu; tôi chép **phần liệt kê từng ô** rồi mới dẫn ra con số, để người sau cộng lại được.
|
||||
|
||||
|
||||
@ -64,5 +64,44 @@ Cả bốn khai mã băm ở dạng **rút gọn 8 chữ số hex**; script so b
|
||||
|
||||
🔸 **Một dòng khai bắt buộc (không chặn):** cả bốn thư của gói mang `status: DRAFT` và `reviewer_gate: "PENDING"` ở phần đầu tệp, trong khi chính `thu-chinh:66` tuyên bản phát ra phải mang dấu đã duyệt. Mã băm sạch 4/4 ⇒ **đây không phải giả mạo nội dung**, mà là **dấu trạng thái lệch với nội dung**. Ghi vào cột ghi chú của bốn dòng, không chặn việc bù dòng.
|
||||
|
||||
**Kiểm lại lời khai DRAFT bằng chính đĩa, không tin lời lead:** `grep -nE "^(status|reviewer_gate):"` trên bốn tệp cho `status: DRAFT` + `reviewer_gate: "PENDING"` ở cả bốn (dòng 13/14 · 11/12 · 12/13 · 16/17). Đối chiếu `thu-chinh` (khối *"Điều kiện duy nhất còn lại trước khi bộ này rời tay hub"*): *"Khi phát, mỗi món đi kèm dấu xác thực nội dung và trạng thái đã duyệt; bản nháp thì không có."* ⇒ Bốn món **có** dấu xác thực nội dung (mã băm, khớp 4/4) nhưng **mang trạng thái nháp** — đúng một trạng thái lai mà chính thư nói là không được tồn tại khi phát. Lời khai của lead **đứng vững**, tôi xác nhận bằng đĩa.
|
||||
|
||||
**Quy ước cột `sha256(12)` — đo từ chính sổ, không suy:** tôi đối chiếu bốn dòng cũ (`b2a2fc1cf399`, `78dc1d82`, `190c11ba2bc0`, `6239dd403792`) với tệp tương ứng. Cả bốn khớp **cả** giá trị khai lẫn 12 chữ đầu của giá trị tính lại; riêng dòng `78dc1d82` chép nguyên giá trị khai rút gọn 8 chữ. ⇒ Sổ đang dùng **12 chữ đầu của mã băm nội dung**, và chấp nhận ngắn hơn khi bên gửi khai ngắn. Dòng mới tôi ghi **12 chữ đầu của giá trị tính lại**, vì đó là thứ tôi thật sự đo được và nó bao trùm giá trị khai.
|
||||
|
||||
---
|
||||
|
||||
## §3 — ĐÃ SỬA GÌ TRONG `broadcasts/_index.md` (3 nhát, theo đúng thứ tự cứng)
|
||||
|
||||
**Nhát 1 — dòng khai phạm vi (`:7` cũ → `:7-9` mới).** Trích trước/sau ở §6.
|
||||
|
||||
**Nhát 2 — thêm hai cột `kênh` + `ghi-chú` vào CUỐI hàng.** Đây là chỗ tôi cố ý làm khác chỉ dẫn về hình thức, và lý do đo được: đặt cột mới ở cuối thì mỗi dòng cũ chỉ bị **nối thêm**, phần chữ cũ vẫn là **tiền tố nguyên vẹn** của dòng mới. Nhờ vậy lời hứa *"không sửa dòng cũ"* trở thành **một phép kiểm chạy được**, chứ không phải một lời hứa. Đã chạy phép kiểm đó, kết quả ở §4.
|
||||
|
||||
**Nhát 3 — chèn 17 dòng mới**, khuôn 9 ô: `received · id · from → to · status · folder · sha256(12) · verify · kênh · ghi-chú`.
|
||||
|
||||
Giá trị từng ô lấy từ đâu (không ô nào chép tay):
|
||||
- `received` = **ngày commit đầu tiên đưa tệp vào kho**, lấy bằng `git log --diff-filter=A --format=%cs -- <tệp>` rồi lấy dòng cuối. Đây là ngày SE **thật sự nhận**, khác với hôm nay là ngày ghi dòng. 10 thư ngày 2026-07-24, 2 thư ngày 2026-07-26, 5 thư ngày 2026-08-05 (trong đó có trọn bộ bốn món của gói).
|
||||
- `sha256(12)` = 12 chữ đầu của mã băm **tính lại**, tính trong cùng một lượt chạy bằng đúng thuật toán của `scripts/stamp_verify.py`.
|
||||
- `verify` = `✓`, dựa trên verdict `OK (canonical match)` của script, 17/17.
|
||||
- `kênh` = `all` cho cả 17 (đều là thư phát đại trà hoặc không khai kênh).
|
||||
- `status` = `processed`, `folder` = `ai_infra` — xem §5 khoản 4, đây là chỗ tôi phải khai một dè dặt.
|
||||
|
||||
**Backfill 45 dòng cũ:** `kênh` lấy từ trường `to:` của chính tệp trên đĩa, **từng dòng một** ⇒ **23 dòng `se` · 22 dòng `all`**. Ô `ghi-chú` để trống.
|
||||
|
||||
---
|
||||
|
||||
## §4 — PHÉP KIỂM SAU KHI SỬA (chạy thật, số thật)
|
||||
|
||||
| # | Phép kiểm | Kết quả |
|
||||
|---|---|---|
|
||||
| K1 | Khối `OUTBOUND` còn nguyên từng byte (so với `git show HEAD:broadcasts/_index.md`) | **ĐÚNG** — 53 dòng ⟂ 53 dòng, chuỗi bằng nhau tuyệt đối |
|
||||
| K2 | Mỗi dòng `INBOUND` cũ là **tiền tố nghiêm ngặt** của dòng mới tương ứng | **45/45 đạt · 0 dòng vi phạm** |
|
||||
| K3 | Số dòng dữ liệu `INBOUND` | 45 → **62** (chênh đúng **17**) |
|
||||
| K4 | Bảng đúng khuôn: mọi hàng cùng số ô | **63 hàng (62 dữ liệu + 1 tiêu đề), tập số ô = {9}** — không hàng nào lệch |
|
||||
| K5 | Mã định danh trùng lặp trong bảng | **0** |
|
||||
| K6 | Dòng mồ côi (có dòng nhưng không có tệp) | **0** |
|
||||
| K7 | `grep -c "upgrade-pack-phased" broadcasts/_index.md` (nghiệm thu `wave-plan:33` đòi ≥ 4) | **4** — đạt |
|
||||
| K8 | `python scripts/stamp_verify.py broadcasts/inbox/ai_infra/2026-08-04-*.md` | **exit 0** — đạt |
|
||||
| K9 | Đối chiếu ngược đĩa ↔ sổ, duyệt **đệ quy**, loại `README.md` bằng tên | vắng mặt **24 → 7**; **0 thư sau mốc nước còn vắng** |
|
||||
|
||||
🔴 **K9 chưa về 0, và tôi không giấu điều đó.** `wave-plan:33` đặt nghiệm thu là *"danh sách vắng = 0 (hôm nay 24)"*. Sau nhát sửa này còn **7**, tất cả đều **trước mốc nước** `2026-07-15`. Đây không phải sót — đây là **hai văn bản chỉ huy nói khác nhau**, và tôi làm theo phạm vi lead giao rồi trả khoản chênh về cho lead. Chi tiết ở §5 khoản 3.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user