wal: flush 20260807T1449

This commit is contained in:
pqhuy1987
2026-08-07 14:49:07 +07:00
parent e21533759e
commit 9f1e910eff
4 changed files with 110 additions and 33 deletions

View File

@ -1,8 +1,22 @@
# Reviewer memory — run S180 lane D (GĐ-5 / GĐ-6)
# Memory Index — reviewer (run S180 · lane E trục bệnh)
> Ghi ở thư mục ký-ức CỦA RUN (đã scaffold sẵn), KHÔNG ghi đè
> `.claude/agent-memory/reviewer/MEMORY.md` canonical — 6 lane reviewer chạy song song phiên này,
> canonical vừa bị sửa 14:34 ⇒ ghi thẳng vào đó là ca AS-10 fragment/clash. em-main gộp khi closeout.
> Một dòng mỗi memory. Chi tiết nằm trong tệp chủ đề; index này chỉ là móc gi nhớ.
- [Proxy-vị-từ làm thước mù](proxy_predicate_blind_measure.md) — máy chọn mẫu bằng HÌNH DẠNG đường dẫn, đổi đường spawn là mù câm mà vẫn in "0 lệch"
- [Claim xếp hạng cần hai mẫu số](ranking_claim_needs_two_denominators.md) — "gần xong nhất" chỉ đng khi có ≥2 đại lượng CÙNG ĐƠN VỊ; N1 đưa 0
## Feedback — cách làm việc khi review
- [Neo số dòng chết ngay khi sinh](feedback_stale_anchor_born_dead.md) — mở neo tại CHÍNH commit đang review; luật B1 trỏ-canonical đang tự cài bằng cơ chế hỏng
- [Đo bằng chính regex của máy](feedback_measure_with_detectors_own_regex.md) — grep gần đúng làm lỗ nhỏ đi 6 lần; luôn kèm control-dương
- [Hai số lệch = hỏi đếm CÁI GÌ](feedback_unit_mismatch_keep_both.md) — tuyên một bên thắng là xoá mất hiệu số, mà hiệu số mới là phát hiện
## Recent activity — S180 lane E (2026-08-07)
**Anti-pattern quan sát được**
- *Nhãn đóng hẹp hơn phạm vi thi hành:* slot (70) `HANDOFF:50` dán ĐÓNG @S179 trong khi rider lỗi máy ở `:51` còn sống — và lỗ thủng **to gấp đôi sau khi đóng** (12 → 25 slug). Đóng khoản phải hỏi "máy này quét những đâu" so với "khoản này áp ở những đâu".
- *Khai trạng-thái-quá-khứ bằng thì hiện-tại:* lead liệt `session_ctx_kb` là ghost-wire 0-reader; đo ra ghost-wire **đã đóng @S153** (`scripts/session_ctx.py:528/:563` là reader fail-loud). Trùng đúng kiểu món `pull_warn_days` đã bị bác trước đó — hai lần cùng lỗi trong cùng một ô bảng.
- *Lách luật bằng cách viết chữ vào ô đòi mã:* ô "TC chữa" của wave W0 điền *"điều kiện tồn tại của mọi TC"* — không phải một TC.
- *Va chạm tệp tạm giữa các lane song song:* tệp staging dùng tên chung bị lane khác ghi đè giữa hai lượt; chỉ phát hiện nhờ `grep` chuỗi đặc trưng trước khi nối. Nối mù = mất dữ liệu im lặng.
**Claim chống được phản biện (validation dương)**
- 3/3 ca LỚP-2 lead nêu đều đứng sau khi đo độc lập (`harvest-curator` F-05 · `lead-stale-auditor` · `ring2-audit` "5 class" vs enum 6).
- Worker-tier-pin: `26 model: opus` + `26 effort: max`, control-âm sạch (không persona nào khai model khác) ⇒ đủ mạnh để khai `không áp dụng` cho TC-03/TC-09.
**Kết quả lane** — 9 lớp giẫm 9/9 (bác 1 CA trong LỚP-9) · 12 TC: 10 mắc / 2 không mắc · 1 GĐ-đồ-chơi (GĐ-0 không trỏ về TC nào) · 1 TC-không-ai-chữa (TC-10, chỉ có nhãn GĐ-3 chứ không có thuốc). Lead sót 3 ca. Artefact: `sub-n3-lane-e-benh.md` (38.531 B · 176 dòng ruột / 24 heading · 0 mục lục rỗng).

View File

@ -0,0 +1,18 @@
---
name: unit-mismatch-keep-both-numbers
description: Hai số lệch thì hỏi "đếm CÁI GÌ" trước khi hỏi "ai sai" — tuyên một bên thắng là xoá mất chính thông tin đắt nhất
metadata:
type: feedback
---
Gặp hai (hay ba) con số lệch nhau cho "cùng một đại lượng": **giữ cả hai, gắn đơn vị cho từng số**, rồi đọc **hiệu số** như một phát hiện. Cấm phán "bên nào đúng" trước khi biết mỗi bên đếm cái gì.
**Why:** @S180, N2 xử vụ số-lệch bằng cách tuyên một bên thắng, trong khi đo lại cho thấy đó là **lệch ĐƠN VỊ chứ không phải lỗi**:
- `runs/`: `ls -d */` = **88 thư mục** · `ls */run.md` = **85** ⇒ hiệu số 3 chính là **3 thư mục lượt chạy không có tệp mô tả** (`S117-pe-approve-minmax-range`, `S117-pe-luyke-finalize`, `S144-bootstrap`) — đúng bệnh TC-04 đang chảy máu, và nó **biến mất** ngay khi chọn một con số.
- `auto-memory/`: **61 tệp** = **60 memory + 1 `MEMORY.md` index**. Không bên nào sai.
Cùng lớp với ca `harvest-curator` F-05 cùng phiên: baseline "24 hit/11 file" không khai đơn vị — `grep -rc` đếm **DÒNG** (22), `grep -ro | wc -l` đếm **LẦN** (24). Bài học chống bẫy này đã được viết ra từ S168 nhưng nằm trong tệp **chính vai đó chưa harvest**, nên vai giẫm lại đúng bẫy 6 phiên sau.
Biến thể tinh vi hơn: "đã harvest chưa" đo bằng `grep -c "S168" MEMORY.md` = 2 ⇒ trông như đã harvest; thật ra 2 hit đó là **mention nằm trong entry S179**, không phải **entry S168**. Đơn vị ở đây là *mention ⟂ entry*.
**How to apply:** (1) Mọi con số bàn giao **phải kèm đơn vị và lệnh sinh ra nó**. (2) Khi review thấy ai đó "chốt" một trong hai số, đòi họ nêu hai thước trước. (3) Đọc hiệu số như dữ liệu, không như nhiễu. Liên quan: [[stale-anchor-born-dead]] · [[measure-with-the-detectors-own-regex]]

View File

@ -0,0 +1,61 @@
# ERRATA của LEAD — phiên S180, arc adap upgrade-pack
> Gom mọi chỗ **lead nói sai và bị vai bác**, để không thành neo thối cho phiên sau. Mỗi mục ghi: lead nói gì · ai bác · bằng chứng · class.
## E-1 — BƯỚC 0.9 "kênh `all` = 0 thư cần áp"
**Lead nói:** thư mới nhất (08-05) đã có adap-report ⇒ mọi thư cũ hơn đã xong ⇒ `all = 0`.
**Ai bác:** `lead-gap-auditor` (FLAG-3), qua mẩu garble #53.
**Sự thật:** **4 thư `2026-08-04-upgrade-pack-phased-*` CHƯA ÁP**`ls adap-reports/ | grep -c 2026-08-04` = 0; 4 token = 0/0/0/0. Control-dương `loi-do-luong` = 1.
**Class:** suy từ thư-mới-nhất ra cả-tập. Phép đúng = **AB trên TỪNG THƯ**.
## E-2 — Bundle hash trong Phase 3 REPORT
**Lead nói:** `Ajv-MaCz` / `YsXRkBSR`.
**Ai bác:** `lead-stale-auditor` FLAG-3.
**Sự thật:** đó là cặp **S172**; cửa-sổ 6 (@S179) đã deploy **`CuWgMI7J` · `32bJmjpM`** (`STATUS:6` có, row canonical `:481` chưa lật ⇒ STATUS **tự mâu thuẫn nội file**).
**Class:** B1 trỏ-không-chép **dẫn thẳng vào ô đã ô nhiễm**; và con trỏ ghi `:479` trong khi row ở `:481`.
## E-3 — Lập luận BÁC-3 "cùng sinh @S145"
**Lead nói:** *"`hmw.js:39` và diary vai đều sinh @S145 ⇒ đồng biến, không phải 2 nhân chứng"*.
**Ai bác:** `ring1-audit` (F-I BROKE → vào LEAD).
**Sự thật (`git blame`):** `README:152` = `2757e41` **07-22** · `hmw.js:39` = `398d343` **07-25** · diary = **08-05/08-07**. **Ba mốc khác nhau.** Lead đọc nhãn `+S145` **trong nội dung comment** thành **ngày viết dòng**.
🔴 **Kết luận vẫn đúng, đường đi phải đổi** — dạng đúng: *"hai bản sao **CHƯA-CẬP-NHẬT** của cùng một trạng thái cũ"*.
**Class:** đúng lớp lỗi lead đang buộc cho vai (đọc nhãn thay vì đo).
## E-4 — "đã in `[OK] worker-tier-pin holds` ở bookend @open"
**Lead nói:** defect `spawn-model-audit` đã cắn ngay hôm nay ở bookend.
**Ai bác:** **lead tự bắt** cùng lượt.
**Sự thật:** bookend @open chạy **8 script**, **KHÔNG có `spawn-model-audit.ps1`**. Lượt chạy duy nhất trong S180 = chính lượt verify defect.
**Class:** `claim-stronger-than-work` — thêm chi tiết **không đo được** vào lập luận **đã đứng vững**, vì nó kịch tính hơn.
## E-5 — Chiều mù của `spawn-model-audit` (viết ngược TRONG LỆNH)
**Lead nói (file verify):** máy THẤY Workflow, MÙ Task ✅ đúng.
**Lead nói (prompt gửi lane D):** *"sai câm với đường **Workflow**… control-dương: đường **Agent-tool** thì nó bắt được?"* ❌ **ngược**.
**Ai bác:** lane D — *"Lệnh của lead ĐẢO NGƯỢC chiều mù — tôi không gật. Vá theo chiều lead viết = vá nhầm phía."*
**Class:** cùng nội dung, hai lần diễn đạt, một lần lật chiều. **Nếu vai gật thì bản vá đi sửa đúng phía đang chạy tốt.**
## E-6 — Ô "LỚP-9 ghost-wire": **3 món, SAI 2**
**Lead nói:** `tools-whitelist-no-teeth` · `session_ctx_kb` 0-reader · `pull_warn_days` khoá trống.
| món | phán | ai bác | bằng chứng |
|---|---|---|---|
| `pull_warn_days` | ❌ **SAI** | N1 | `check-email.md:48`*"🔒 CỐ Ý để TRỐNG — anh không đặt số @S148, script cấm tự chế mặc-định"***cố-ý-chưa-đặt-CÓ-KHAI**, khác *defined-but-unread* |
| `session_ctx_kb` | ❌ **SAI, stale ~27 phiên** | lane E | ghost-wire **ĐÓNG @S153**: `session_ctx.py:528` *"the FIRST REAL READER of session_ctx_kb (closes the H18 ghost-wire)"* + `:563` `_require_budget_kb` fail-loud + `:588` dùng thật |
| `tools-whitelist-no-teeth` | 🟡 **giữ là ca, hạ nấc** | lane E | SE **đã tự khai ở ≥7 persona** ⇒ đúng vế 2 của vá hub ⇒ **không phải vết thương hở, N4 đừng mở wave** |
**Class:** cả 3 lấy **từ trí nhớ, không đo lại**. Lane E gọi đúng tên: *"lần thứ hai cùng một lỗi trong cùng một ô"*.
## E-7 — LỚP-6 lead khai THIẾU
**Lead nói:** 1 neo lệch (`STATUS:8` trỏ `:479`, row ở `:481`).
**Ai bổ sung:** lane E — **3 neo, đều lệch đúng +2**: Policies/Menu keys `:470-471`→thật **`:472`/`:473`** · `:474`/`:476`→thật `:476`/`:478`.
🔴 Neo thứ ba **CHẾT NGAY TẠI COMMIT SINH RA NÓ** (`git show 57e672f`) — và nó nằm **bên trong chính câu mà `lead-stale-auditor` FLAG-6 tự khen là bắt được stale**.
🔴 **Vòng ngoài:** cả 3 neo **chính là luật B1 đang thi hành****thuốc chữa LỚP-5 đang được xây bằng bệnh LỚP-6**.
## E-8 — LỚP-8 lead khai NHẸ HƠN sự thật
**Lead nói:** slot (70) đóng-hụt, rider lỗi máy còn sống.
**Ai siết:** lane F + lane E, đo bằng **chính regex của detector** (không grep thô).
**Sự thật:** `marks[0]` nay ở **`:172`** (S179 closeout viết `### NEXT em` trong khi regex chỉ khớp `^\*\*`) ⇒ vùng mù **~21-46% tuỳ đơn vị**, **25/54 carry key** không bao giờ được đọc — **gồm cả `tools-whitelist-no-teeth`**. Máy vẫn in `[ok]`.
---
## 🔴 Tổng: **8 errata / 1 phiên**, trong đó **5 do vai bác, 1 lead tự bắt, 2 vai bổ sung**
**Mẫu chung của 8/8:** lead **phát biểu rộng hơn / cũ hơn cái đã đo**. Không có ca nào lead đo sai; **mọi ca đều là đo đúng rồi kể quá, hoặc không đo mà lấy từ trí nhớ.**
🔸 Đây là **cùng một class**`lead-stale-auditor` FLAG-13 vừa đặt tên hôm nay (`view-claim-broader-than-sample`) và là **cùng nội dung 2 lá thư `loi-do-luong`** SE đã áp @S179.
🔸 **Giá trị của vòng kiểm đo được:** 6 lane N3 bác lead **5 lần**, trong đó **2 lần từ chối gợi ý có định hướng lead cố tình bơm vào prompt** (lane C bẫy-nhãn-đội · lane D chiều-mù).