wal: flush 20260807T1634
This commit is contained in:
@ -13,15 +13,18 @@ chain:
|
||||
- [x] N4 wave-plan: 7 wave + 3 sub gated, 2 chạy-ngay, 5 chờ-anh, 0 loại (50KB)
|
||||
- [x] **W0 ĐÓNG — nghiệm thu ĐẠT** (lead verify độc lập): fitmap 11.697B 7/7 dòng 0-ô-trộn · tracking 17.890B 20/20 khoản · _index.md 45->69 dòng (23 se + 46 all), 24 dòng bù (17+7), 7/7+17/17 hash OK 0 tamper, 5/5 bất-biến, VẮNG=0, residual-write ngoài phạm vi = 0
|
||||
- [x] **W1-a XONG** — kiểm kê 14 đoạn máy (11 VỠ-CÂM · 3 vỡ-ồn · 0 tự-thích-nghi), 9 nhóm tên / 28 họ, 44.914B. BÁC HẲN 2 mục lane A (`detectors:1716`+`:1679` = dòng CHÚ THÍCH không phải mã; `applied-eval-nokey` = 0 file-IO)
|
||||
- [!] W1-b ký chuẩn + `naming-scan.ps1` INFORM-only + 3 vá kèm — ĐANG CHẠY
|
||||
- [x] **W1-b XONG — W1 ĐÓNG**: `naming-standard.md` 31.822B (11/11 ràng buộc) + `scripts/naming-scan.ps1` 14.341B INFORM-only + 3 vá 3/3. Scan 233 tên / **8 lệch** (BÁC lane a "23": 16 script `s<n>-`/`plan-` = một-lần HỢP LỆ). Fault-inject **4/4 BA chiều** (A cấy lệch->kêu · B cấy đúng->0 dương-giả · **A2 đổi cả tập -> FLAG THIẾU-TẬP cạnh LỆCH 0**, số 0 mất quyền đọc thành sạch). 0 tên bị đổi.
|
||||
- [!] W2 GĐ-2 lưới ghi đĩa — ĐANG CHẠY
|
||||
|
||||
LUẬT THIẾT KẾ W1-a đo được (ràng buộc mọi wave sau):
|
||||
"một nhóm tên sạch CHÍNH XÁC tới độ sâu máy của nó KIỂM, không sâu hơn một nấc"
|
||||
=> vế "phải STOP-HARD" ĐỔ (session-<N> sạch 12/12 dưới máy chỉ INFORM); vế "phải có máy TỪ CHỐI" ĐỨNG
|
||||
=> CẤM ký chuẩn sâu hơn máy
|
||||
BẪY-4 giải bằng ĐỔI TẬP ĐO: quét .md = 1.545, miễn trừ 1.131 (73,2%), 90,7% chỗ lệch NẰM TRONG vùng miễn trừ => 0-hit vô nghĩa.
|
||||
Thay bằng quét 231 tên VẬT-BỘ-MÁY: 0 miễn trừ, 23 lệch thật => có răng ngày đầu.
|
||||
- [ ] W2 GĐ-2 · W3 GĐ-3 · W5 GĐ-5 (tự chạy) · W3b/W4/W4b/W5b/W6 chờ anh
|
||||
Thay bằng quét tên VẬT-BỘ-MÁY: 0 miễn trừ => có răng ngày đầu.
|
||||
🔴 So "23 lech" cua lane a DA BI W1-b BAC: do that = **8** (16 script `s<n>-`/`plan-` la mot-lan HOP LE, dem rieng).
|
||||
Lane a du bao 231 ten, W1-b do 233. CA HAI deu dung — dem khac thoi diem/khac tap. Dung chep so, chay `scripts/naming-scan.ps1`.
|
||||
- [ ] W3 GĐ-3 · W5 GĐ-5 (tự chạy) · W3b/W4/W4b/W5b/W6 chờ anh
|
||||
|
||||
next: W0 xong -> W1; hỏi P3/P5/P7/P8 khi chạm W3b/W4b/W5b
|
||||
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
# Implementer-Backend Agent — Persistent Memory
|
||||
|
||||
- **S180 (2026-08-07) lane W1-b — ký chuẩn đặt tên + dựng máy soi (11/11 ràng buộc · 3/3 vá · fault-inject 4 lượt/3 chiều) `[#53 vai thứ 18/phiên; cứu TRỌN nhờ ghi-đĩa-từng-phần — artifact 21KB đủ ruột TRƯỚC khi return chết; lead resume, xong nốt]`:** Nghề mới ăn tiền = **LUẬT NẤC: "một nhóm tên sạch CHÍNH XÁC tới độ sâu máy của nó KIỂM, không sâu hơn một nấc"** ⇒ mỗi mục chuẩn PHẢI khai nấc + trỏ máy ép đúng nấc đó; nhóm không máy ⇒ ghi `CHƯA CÓ MÁY`, **CẤM ký luật hình dạng** (ký sâu hơn máy = ký ra thứ tự nó trôi). Hệ quả 2: máy chỉ-ĐỌC (`detectors:1109` liệt-không-cờ) hoặc THA (`:1660` `-or` chấp 2 tên) ⇒ tên vẫn trôi — **nhưng KHÔNG cần STOP-HARD**: `:1639` chỉ in INFORM mà nhóm sạch 12/12. 🔴 **Tự bắt mình tái phạm citation-trap:** vá `hmw.js:33` bỏ số "11 class", bản vá ĐẦU **trích nguyên văn** cụm cũ ⇒ grep vẫn =1 ⇒ bài học **lời-giải-thích nằm TRONG tập đo**; vòng 2 mới =0 (control-dương 2 chuỗi cùng tệp). **Bác 3 chỗ, 3/3 đứng:** (a) lane a "23 lệch" → tôi đo **8/233** (16 script `s<n>-`/`plan-` là *một-lần HỢP LỆ*, gọi lệch = **dương-giả**, mà dương-giả ngày đầu là cách nhanh nhất để người ta tắt máy soi; +1 vật lane a sót `resume-S146`); (b) lead tả bản vá S159 = `(sub|harness)-*` → đĩa thật `^(sub-.+|.+-return)\.md$` (bộ ba lọt qua nhánh `-return`, KHÔNG qua tiền tố) — mirror theo *diễn giải* sẽ đẻ **bản sao thứ 3 lệch nhau**; (c) `wave-plan:85` kê W3 sửa "5 class"→**6** = đúng LỚP-5 vừa gỡ, phải **BỎ SỐ** không đổi số. Bẫy đơn-vị cắn thật: `scripts/`+`docs/governance/` đếm theo **MỤC** (gồm thư mục) ≠ **TỆP** ⇒ lệch 4; và tự mình đẻ 2 vật giữa lượt ⇒ 231→233, phải KHAI. Phát hiện mới ngoài lane a: `settings.json:2` `autoMemoryDirectory` = **đường dẫn TUYỆT ĐỐI** neo cả tên thư mục lẫn gốc kho (lane a chỉ liệt `:9`). Tag `[s180, w1b-naming-standard, luat-nac, citation-trap-tu-bat, duong-gia-vs-chung-nhan, muc-vs-tep, inform-only-exit0]`
|
||||
|
||||
- **S171 (2026-08-04) lane BE — `7/7 mục, build PASS`, return SẠCH `[LEAD HARVEST HOI-TO @S172 — no mo tu closeout truoc; owner slot (71) chot 'gom va sleep thi auto, tu quyet'. Nguon = artifact tren dia, KHONG suy dien]; nguồn `runs/2026-08-04-S171-khkk-ui-mirror-pe/sub-implementer-backend-s171.md` 11.650 B`:** BE-1 DetailDto +5 field · **BE-1b `FinalizeStepName`/`FinalizeLevelName` DẪN XUẤT 3-ngả in-memory thay 3 subquery** (+ sửa công thức con-trỏ cho đúng KHKK) · BE-2 `ContractSigningPlanApprovalDto` đẻ mới + projection · **BE-3 tên người duyệt join `Users` — đường THỨ BA** (2 đường kia không dùng được, lý do §2) · BE-4 `WorkflowStepDto` +`DepartmentName` · BE-5 endpoint changelogs policy `KeHoachKyKet.Read` **+ rào `EnsureCanViewAsync`** · BE-6 map Cấp cho Approvals · **BE-7 enum `+ApprovalAttachment=3` + endpoint upload riêng (policy `Update`)**. Mirror `types/khkk.ts` ×2 app **SHA256 trùng khít**; `dotnet build` 0 warning/0 error + `tsc -b` ×2 exit 0. 🔴 **Tự khai 3 chỗ lệch-có-lý-do + treo B-3 vì DB dev 0 phiếu** — nấc trung thực đúng: *làm được thì khai làm được, không đo được thì khai treo*, KHÔNG nhét acceptance runtime vào ô đã-xong. ⚠️ Hệ quả @S172: chính `ApprovalAttachment` + policy `Update` đẻ ra câu hỏi owner slot (67) — **người SOẠN cũng qua được `KeHoachKyKet.Update`**. Tag `[s171, be-7-7-build-pass, dan-xuat-thay-subquery, duong-thu-ba-join-users, treo-b3-trung-thuc]`
|
||||
|
||||
- **S167 (08-01) lane K7 — cầu KHKK→HĐ BE + 5 vá `[artifact sub-implbe-k7.md; return-1 garble #53 → lead SendMessage-resume, xong solo]`:** Bài lớn nhất = **BÁC TIỀN ĐỀ ĐỀ BÀI bằng 4 phép đo trước khi gõ**: lead nói "bridge ĐÃ TỒN TẠI (W6-S161), mày chỉ vá quanh nó" — đĩa nói KHÔNG (`grep create-contract` 1 hit duy nhất = bridge PE cũ · 0 file · 0 endpoint · 0 write-site `Line.ContractId`). Cái tồn tại @W6 là **đường-ống HĐ V2**, không phải cầu ⇒ lead nhập nhằng "đường ống đã vá"≠"bridge có". **Phép thử rẻ phân biệt:** vá-6 ("nạp Project.Code/Supplier.Code theo khuôn bridge-cũ") là **no-op nếu áp lên bridge cũ** (nó ĐÃ có 2 dòng đó) ⇒ vá chỉ có nghĩa với vật CHƯA có ⇒ suy ngược ra vật thiếu. Xử: DỰNG bridge theo spec invest §K7.1 đã pin sẵn (0 quyết-định-mới của tôi) + nhúng 5 vá, KHAI RÕ chệch-khuôn + trỏ dòng spec — lead nhận. Khi **spec vá ⊥ nền invest** (`WorkflowDefinitionId` null vs pin) → **vá THẮNG** (spec `:4` viết luật đó). Cột đã có từ mig cũ ⇒ **0-mig**. `??=` giữ CHIỀU: cầu chạy sau không cướp ô của cầu trước. Thêm field vào projection dùng-chung-3-endpoint → **chạy test filter rẻ ngay** (collection-subquery SQLite dịch được: 34/35). 1 fail = reflection-authz test bắt mọi action phải cùng key module, mà vá-1 cố ý gate key MODULE KHÁC (`Contracts.Create`, #85) ⇒ **verified-fail bàn giao test-lane, KHÔNG tự sửa** (S112 khuôn). Tag `[s167, k7-bridge-khkk-hd, bac-tien-de-4-phep-do, va-noop-suy-nguoc-vat-thieu, spec-thang-nen, 0-mig, verified-fail-handoff]`
|
||||
|
||||
@ -62,3 +62,220 @@ Bốn ca hậu thuẫn (lane a §3.1, tôi dùng lại, KHÔNG đo lại): N1 é
|
||||
### 1.5 — Ràng buộc kỹ thuật cho máy soi: **`.ps1` PURE-ASCII** (gotcha #30)
|
||||
|
||||
Đo 3 script: `governance-detectors.ps1` · `memory-selfimprove-audit.ps1` · `wal-flush.ps1` → **0/0/0 dòng chứa byte ngoài ASCII in-được**. Control-dương cùng thước trên `adap-upgrade-pack-tracking.md` = **58** ⇒ thước sống, 0 là 0 thật. ⇒ `naming-scan.ps1` **buộc viết pure-ASCII** (tiếng Việt không dấu), 0 ngoại lệ.
|
||||
|
||||
---
|
||||
|
||||
## §2 — LƯỢT CHẠY THẬT TRÊN KHO SỐNG (output nguyên văn)
|
||||
|
||||
Lệnh: `powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/naming-scan.ps1` · **mã thoát = 0** (đúng hợp đồng INFORM-only).
|
||||
|
||||
```
|
||||
=== naming-scan.ps1 - MAY SOI TEN (tang bo may) ===
|
||||
RepoRoot : D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP
|
||||
Che do : INFORM-only. LUON exit 0 ke ca khi co co (lai ma thoat = W3b, sau P1=PA-2).
|
||||
Chuan : docs/governance/naming-standard.md
|
||||
Tap do : 231 ten vat-bo-may, 0 mien tru VUNG (khong quet 1.545 tep .md - bay-4).
|
||||
|
||||
--- NHOM: vai [.claude/agents]
|
||||
mau so: 27 tep
|
||||
OK 26/27 | LECH 0/27 | MIEN-theo-luat 1/27
|
||||
[MIEN ] README.md <- quy uoc pho quat (luat L4)
|
||||
|
||||
--- NHOM: nhat-ky-vai [.claude/agent-memory]
|
||||
mau so: 26 thu muc
|
||||
OK 26/26 | LECH 0/26 | MIEN-theo-luat 0/26
|
||||
|
||||
--- NHOM: lenh [.claude/commands]
|
||||
mau so: 19 tep
|
||||
OK 19/19 | LECH 0/19 | MIEN-theo-luat 0/19
|
||||
|
||||
--- NHOM: kich-ban [scripts]
|
||||
mau so: 54 muc (tep + thu muc)
|
||||
OK 52/54 | LECH 1/54 | MIEN-theo-luat 1/54
|
||||
trong OK: 5/54 theo PEP-8 (*.py snake_case - DUNG, khong phai troi)
|
||||
trong OK: 16/54 MOT-LAN (tien to s<n>-/plan- = kich ban mot lan, HOP LE)
|
||||
[MIEN ] __pycache__ <- vat sinh tu dong (luat L4)
|
||||
[LECH ] master-import-data.generated.md <- kich ban khong-phai-.py phai kebab; xem naming-standard.md section 8
|
||||
[PEP8 ] parse_forms.py <- PEP-8: *.py snake_case la DUNG
|
||||
[PEP8 ] parse_workflow.py <- PEP-8: *.py snake_case la DUNG
|
||||
[MOT-LAN] plan-b-run-verify.ps1 <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] plan-b-verify-prod.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] plan-ca-run-perms.ps1 <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] plan-ca-verify-menu.ps1 <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] plan-ca-verify-menu.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] plan-ca-verify-perms.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] plan-r-backup.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] plan-r-cleanup.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] plan-s-wipe-all-workflows.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] plan-t5-final-cleanup.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] s59-rename-workitems-pmh.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] s59-wipe-demo-workitems.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] s59-wipe-testing-data.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] s85-wipe-uat-data.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] s89-delete-test-users.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[MOT-LAN] s91-wipe-golive.sql <- kich ban mot lan thuoc phien/ke hoach - HOP LE, dem rieng
|
||||
[PEP8 ] session_ctx.py <- PEP-8: *.py snake_case la DUNG
|
||||
[PEP8 ] session_scaffold.py <- PEP-8: *.py snake_case la DUNG
|
||||
[PEP8 ] stamp_verify.py <- PEP-8: *.py snake_case la DUNG
|
||||
|
||||
--- NHOM: moc-phien [.claude/sessions]
|
||||
mau so: 90 tep
|
||||
OK 87/90 | LECH 3/90 | MIEN-theo-luat 0/90
|
||||
[LECH ] closed.md <- FORK dau-dong-phien: _end la ho chuan. detectors:1660 THA bang -or => doi sang ten thu BA thi phien da dong bi doc la DANG MO, co khong bao gio ban
|
||||
[LECH ] pause-S146-20260722T2328.md <- FORK ho cu: _pause-* la ho chuan. session_ctx.py:349-358 THA (doc ca 2 glob) => fork song mai neu khong ai goi ten
|
||||
[LECH ] resume-S146-20260722T2334.md <- tep moc phien moi BUOC BAT DAU bang _ ; xem naming-standard.md section 5
|
||||
|
||||
--- NHOM: so-governance [docs/governance]
|
||||
mau so: 16 muc (tep + thu muc)
|
||||
OK 11/16 | LECH 4/16 | MIEN-theo-luat 1/16
|
||||
[LECH ] BROADCAST-OUT-SOLUTION-ERP-2026-05-29-INFRA-RETRO.md <- VAT LICH SU (thu da gui, mang ngay) - GIU NGUYEN theo luat L1, nhung phai duoc LIET TEN: no la chung nhan nhom nay co 2 ho
|
||||
[LECH ] BROADCAST-OUT-SOLUTION-ERP-2026-05-29.md <- VAT LICH SU (thu da gui, mang ngay) - GIU NGUYEN theo luat L1, nhung phai duoc LIET TEN: no la chung nhan nhom nay co 2 ho
|
||||
[LECH ] BROADCAST-OUT-SOLUTION-ERP-2026-06-01.md <- VAT LICH SU (thu da gui, mang ngay) - GIU NGUYEN theo luat L1, nhung phai duoc LIET TEN: no la chung nhan nhom nay co 2 ho
|
||||
[LECH ] RAG-AUDIT-RESPONSE-2026-05-29.md <- VAT LICH SU (thu da gui, mang ngay) - GIU NGUYEN theo luat L1, nhung phai duoc LIET TEN: no la chung nhan nhom nay co 2 ho
|
||||
[MIEN ] README.md <- quy uoc pho quat (luat L4)
|
||||
|
||||
--- NHOM: hook [.claude/hooks]
|
||||
mau so: 1 tep
|
||||
OK 1/1 | LECH 0/1 | MIEN-theo-luat 0/1
|
||||
|
||||
--- BAT BIEN: .claude/agents/<role>.md == .claude/agent-memory/<role>/ ---
|
||||
mau so: 26 vai (tep persona, tru README) / 26 thu muc nhat ky
|
||||
khop : 26/26
|
||||
vai THIEU thu muc nhat ky : (danh sach rong)
|
||||
nhat ky THUA (khong co persona): (danh sach rong)
|
||||
|
||||
--- NGOAI TAP 231 (khai tuong minh - KHONG phai [skip]) ---
|
||||
thu muc phien: 12/12 dat hinh dang ^session-<so>$
|
||||
CO CHU DICH nam ngoai tap 231: giu mau so 231 da thoa thuan, va nhom nay DA co may ep
|
||||
(governance-detectors.ps1:1639 + session_ctx.py:133 + 2 ban session-scaffold).
|
||||
|
||||
=== TONG ===
|
||||
mau so TONG : 233 ten vat-bo-may
|
||||
goc 231 (do 2026-08-07 TRUOC wave W1) = 27 vai + 26 nhat ky + 19 lenh + 53 kich ban
|
||||
+ 90 moc phien + 15 so + 1 hook
|
||||
+2 vat chinh W1 de ra: scripts/naming-scan.ps1 va docs/governance/naming-standard.md
|
||||
=> 233 sau W1. Khai ro de khong ai doc 233 thanh 'kho phinh ra' (bay-6: so do giua chung).
|
||||
OK : 222/233
|
||||
trong do PEP-8 : 5/233 (*.py snake - DUNG theo luat ngon ngu, khong phai troi)
|
||||
trong do MOT-LAN : 16/233 (kich ban mot lan - HOP LE, tin hieu ton kho chu khong phai vi pham)
|
||||
MIEN theo luat L4 : 3/233 (in ten o tung nhom - mien tru im lang va loi im lang trong giong het nhau)
|
||||
LECH : 8/233
|
||||
|
||||
Danh sach LECH (tung ten - cam nen thanh khoang):
|
||||
- [kich-ban] master-import-data.generated.md
|
||||
- [moc-phien] closed.md
|
||||
- [moc-phien] pause-S146-20260722T2328.md
|
||||
- [moc-phien] resume-S146-20260722T2334.md
|
||||
- [so-governance] BROADCAST-OUT-SOLUTION-ERP-2026-05-29-INFRA-RETRO.md
|
||||
- [so-governance] BROADCAST-OUT-SOLUTION-ERP-2026-05-29.md
|
||||
- [so-governance] BROADCAST-OUT-SOLUTION-ERP-2026-06-01.md
|
||||
- [so-governance] RAG-AUDIT-RESPONSE-2026-05-29.md
|
||||
|
||||
Ma thoat: 0 (INFORM-only theo hop dong muc 1). Co o tren KHONG lai ma thoat.
|
||||
Lai ma thoat thuoc wave W3b, sau khi chu du an chot phan loai co theo PA-2.
|
||||
```
|
||||
|
||||
### §2b — Đọc kết quả lượt chạy thật
|
||||
|
||||
| Ô | Số | Mẫu số | Ghi chú |
|
||||
|---|---|---|---|
|
||||
| OK | 222 | /233 | gồm 5 PEP-8 + 16 MỘT-LẦN |
|
||||
| MIỄN theo luật L4 | 3 | /233 | 2 `README.md` + `__pycache__` — **in tên từng vật**, không im |
|
||||
| **LỆCH** | **8** | /233 | liệt đủ 8 tên, xem dưới |
|
||||
| TẬP VẮNG MẶT | 0 | /7 tập | cả 7 tập đều tồn tại |
|
||||
| Bất biến vai ⟂ nhật ký | 26/26 khớp | | 0 thiếu, 0 thừa |
|
||||
| Ngoài tập (khai tường minh) | 12/12 | thư mục phiên | đạt `^session-<số>$` |
|
||||
| **Mã thoát** | **0** | | đúng hợp đồng INFORM-only |
|
||||
|
||||
**8 tên LỆCH (từng tên, cấm nén thành khoảng):**
|
||||
1. `master-import-data.generated.md` *(scripts/)* — 🔸 **ứng viên DƯƠNG-GIẢ, cần lead phán**: `.generated.md` là hậu tố có nghĩa. Tôi **giữ cờ** thay vì tự miễn, vì tự miễn là đúng nước đi Goodhart mà phiên này đang chống. Nhưng nó cũng là phát hiện thật: một tệp **dữ liệu `.md`** đang nằm trong thư mục **máy móc**.
|
||||
2. `closed.md` · 3. `pause-S146-20260722T2328.md` · 4. `resume-S146-20260722T2334.md` *(tệp mốc phiên — 2 fork + 1 vô-họ)*
|
||||
5-8. `BROADCAST-OUT-…-INFRA-RETRO.md` · `BROADCAST-OUT-…-2026-05-29.md` · `BROADCAST-OUT-…-2026-06-01.md` · `RAG-AUDIT-RESPONSE-2026-05-29.md` *(vật lịch sử, giữ theo L1 nhưng phải bị gọi tên)*
|
||||
|
||||
---
|
||||
|
||||
## §3 — FAULT-INJECT: 3 CHIỀU, cây tạm `-RepoRoot` (happy-path KHÔNG tính)
|
||||
|
||||
Cây tạm dựng đủ **7 tập** (mẫu số nhỏ 12 tên) để có **baseline SẠCH thật** trước khi cấy.
|
||||
|
||||
| Chiều | Cấy gì | Kỳ vọng | Đo được | Đạt |
|
||||
|---|---|---|---|---|
|
||||
| **BASELINE** | cây sạch | LỆCH 0 | `LECH 0/12` · `khop 1/1` · exit 0 | ✅ |
|
||||
| **A — cấy tên LỆCH** | `BadRole_Name.md` (vai) · `Bad_Script.ps1` (ps1 hoa+gạch dưới) · `closed.md` (fork) | **phải KÊU cả 3** | `LECH 4/15` — gọi đúng **4 tên**: `BadRole_Name.md` · `Bad_Script.ps1` · `closed.md` · **+`[bat-bien] BadRole_Name`** (vai không có thư mục nhật ký — bắt được **hệ quả thứ hai** mà tôi không cố ý cấy) | ✅ |
|
||||
| **B — cấy tên ĐÚNG** | `beta-role.md`+thư mục nhật ký · `good_module.py` (PEP-8) · `s99-one-off.sql` (một-lần) · `_snapshot-3.md` | **phải IM** | `LECH 0/17` · `khop 2/2` · `PEP-8 2/17` · `MOT-LAN 1/17` — **0 dương-giả** | ✅ |
|
||||
| **A2 — đổi tên cả TẬP** | `mv .claude/commands → commands-RENAMED` | **phải KÊU**, cấm `[skip]` câm | `FLAG THIEU-TAP` + dòng *"Day KHONG phai [skip]… mau so = 0/19 ky vong"* + **bộ đếm riêng `TAP VANG MAT: 1`** đứng cạnh `LECH 0/16` ⇒ **không đọc nhầm 0 thành "sạch"** | ✅ |
|
||||
|
||||
🔴 **Vì sao chiều A2 quan trọng nhất:** đây đúng lớp lỗi phiên này đã có **2 ca thật** — `spawn-model-audit` mù đường Task vẫn in `TOTAL FLAGS: 0`, và H24-2 nuốt 4 khối carry vẫn in `[ok]`. Máy này **không thể** rơi vào ca đó: tập vắng làm bộ đếm `TAP VANG MAT` bật, và số 0 bên cạnh **mất quyền được đọc là "sạch"**.
|
||||
|
||||
**Mã thoát giữ 0 ở CẢ 4 lượt** (kể cả lượt có 4 cờ) ⇒ hợp đồng INFORM-only đứng vững; lái mã thoát vẫn để nguyên cho W3b.
|
||||
|
||||
---
|
||||
|
||||
## §4 — BA VÁ KÈM (R11): 3/3 LAND + verify
|
||||
|
||||
### Vá 1 — `.claude/workflows/hmw.js:33` · BỎ SỐ, trỏ khoá cấu hình
|
||||
|
||||
- **Làm:** xoá cụm chép-cứng số lớp, thay bằng câu trỏ `memory-budget.json → lead_self_audit.flag_classes` + giải thích **vì sao đếm lướt bị hụt** (lớp `view-claim-broader-than-sample` nằm cuối mảng, ngoài cụm `view-*` liền kề).
|
||||
- 🔴 **KHÔNG sửa 11→12** — đúng chỉ thị B1: sửa số là để nó thối lại.
|
||||
- **Verify:** `grep -c "11 class"` = **0** (trước vá = **1**). Control-dương cùng tệp: `flag_classes` = 1 · `VALID_ROLES` = 8 ⇒ thước sống, 0 là 0 thật. `node --check` **OK**.
|
||||
- 🔴 **TỰ BÁO MỘT LẦN TÔI SUÝT TÁI PHẠM:** bản vá ĐẦU của tôi **trích nguyên văn** cụm cũ trong lời giải thích ⇒ `grep` vẫn ra **1**, tức tôi **tái tạo đúng mẫu đang gỡ, qua đường TRÍCH DẪN**. Đúng lớp *citation-trap self-reference* (doc mô tả anti-pattern thì chứa chính mẫu đó). Sửa vòng 2: mô tả **không** tái tạo chuỗi. Bài học chuyển giao: **vá một mẫu-chuỗi thì lời giải thích cũng nằm trong tập đo.**
|
||||
|
||||
### Vá 2 — `scripts/memory-selfimprove-audit.ps1:298` · mirror bản vá S159
|
||||
|
||||
- **Làm:** `-Filter 'sub-*.md'` → `Where-Object { $_.Name -match '^(sub-.+|.+-return)\.md$' }` + 8 dòng chú thích trỏ ca thật S159 và trỏ `naming-standard.md §12` (3 chỗ phải sửa cùng lúc). Sửa luôn chuỗi thông điệp `:301` cho khớp bộ lọc mới.
|
||||
- 🔸 **ĐÍNH CHÍNH mô tả của lead:** brief ghi *"S159 nới thành `(sub|harness)-*`"*. Đĩa **không phải vậy** — bản vá S159 thật là `^(sub-.+|.+-return)\.md$` (`governance-detectors.ps1:1101-1102`). Bộ ba lọt lưới qua nhánh **`.+-return`**, KHÔNG qua tiền tố `harness-`. Tôi mirror **regex thật**, vì mirror theo diễn giải sẽ đẻ **bản sao thứ 3 lệch nhau** — đúng bệnh mà §12 đang cảnh báo.
|
||||
- **Verify KHÔNG-GÃY** (máy `/session-end` đang sống): chạy thật → `EXIT=0` · **0** dòng lỗi PowerShell (control-dương: 5 hit `eval` ⇒ output thật) · 36 dòng output bình thường.
|
||||
- **Verify CÓ RĂNG** (fault-inject `-RepoRoot` cây tạm, run-folder chỉ chứa 3 tệp `*-return.md` — dựng lại đúng ca S159):
|
||||
|
||||
| Chiều | Đo được |
|
||||
|---|---|
|
||||
| **trước-vá** (glob cũ trên cùng folder) | **0** ⇒ máy sẽ in *"no sub-\*.md … proxy N/A"* = **mù im lặng**, đúng bệnh |
|
||||
| **sau-vá** | **3** ⇒ in `3 sub-md but 0 synthesis` + `GAP:MED` — **nhìn thấy 3 lane đắt nhất** |
|
||||
| **không dương-giả** | cấy thêm `ghi-chu-phu.md` (ngoài mọi họ) ⇒ đếm vẫn **3**, không phải 4 ✅ |
|
||||
|
||||
- 🔸 Trên run-folder S180 hiện tại, cũ ⟂ mới **đều = 12** (folder này có 0 tệp `-return.md`) ⇒ **lượt chạy live KHÔNG chứng minh được răng**; răng chỉ chứng minh được bằng fault-inject ở trên. Control-dương cho biết họ này có thật: **38** tệp `*-return.md` trên toàn `runs/`.
|
||||
|
||||
### Vá 3 — Khai bất-biến `agents/<role>.md` ≡ `agent-memory/<role>/`
|
||||
|
||||
- **Làm:** ghi vào `naming-standard.md` **§1** (mô tả + hệ quả 2 máy khi lệch: `mfe-eval.ps1:264-267` loại vai khỏi phép đo kèm lời giải thích sai sự thật · `detectors:1109` xếp `$unmapped` liệt-không-cờ) và **§12** (bảng "3 chỗ, không nguồn chung").
|
||||
- 🟢 **NÂNG CẤP ngoài yêu cầu:** lane a khai bất biến này *"2 chỗ, 0 nguồn chung, **0 máy**"*. Nay nó **CÓ MÁY** — `naming-scan.ps1` kiểm **2 chiều** (vai thiếu nhật ký / nhật ký thừa không persona). Đã chứng minh bằng fault-inject chiều A: cấy `BadRole_Name.md` ⇒ máy bật thêm dòng `FLAG vai THIEU nhat ky` mà tôi **không cố ý cấy**.
|
||||
- **Verify kho thật:** 26/26 khớp, 0 thiếu, 0 thừa.
|
||||
|
||||
### Quét CÙNG-LỚP sau vá (luật "được-chỉ-1-chỗ ⇒ grep cùng-lớp")
|
||||
|
||||
Quét `[0-9]+ class` ngoài run-folder: **2 hit trong `scripts/`** = **dương-giả** (`+-1/2 class`, `armed-at-0 class` — không phải số lớp). **Trong persona: 3 site CÒN SỐNG** — `lead-stale-auditor.md:39` + `:41` ("5 class", thật 6) · `ring2-audit.md:4` ("5 class `view-*`").
|
||||
|
||||
🔴 **NGOÀI SCOPE W1 — đã có chủ: wave W3 gói-B persona.** Nhưng bàn giao kèm **một cảnh báo**: `wave-plan-S180.md:85` kê việc đó là *"`5 class view`→**6**"* — tức **đổi số**, đúng LỚP-5 mà vá-1 vừa gỡ. Làm vậy nó sẽ thối lại. **Đề nghị W3 đi đường của vá-1: BỎ SỐ, trỏ `lead_self_audit.flag_classes`.**
|
||||
|
||||
---
|
||||
|
||||
## §5 — ĐỐI CHIẾU 11 RÀNG BUỘC R1-R11 (tự chấm, lệnh chạy được)
|
||||
|
||||
| R | Nội dung | Ở đâu | Verify |
|
||||
|---|---|---|---|
|
||||
| R1 | phụ lục 14 đoạn máy | PHỤ LỤC A | `grep -cE '^\| M-[0-9]+ \|'` = **14** ✅ |
|
||||
| R2 | số chỗ sửa đồng thời (4·3·3·5) | §12 | 4 dòng, liệt **từng chỗ**, cấm nén khoảng ✅ |
|
||||
| R3 | tên neo NGOÀI kho mã | §11 | **3 vật** (lane a khai 1; +`settings.json:2`, +4 path thân hook) ✅ |
|
||||
| R4 | CẤM "giữ nguyên số dòng" | §0 L3 (`:45`) | kèm định lượng **21 trích dẫn** `wal-flush.ps1:13`, 2 neo SỐNG ✅ |
|
||||
| R5 | mỗi nhóm khai NẤC + có máy | §1-§10 | `grep -c "NẤC muốn sạch"` = **11** (10 nhóm + bảng L0) ✅ |
|
||||
| R6 | máy TỪ CHỐI, cấm 3 lối câm | script hợp đồng (4) | chứng bằng fault-inject A2: `THIEU-TAP` + bộ đếm riêng ✅ |
|
||||
| R7 | quét 231 tên, luôn in mẫu số | script hợp đồng (2)(3) | chạy thật: 233 (=231+2 vật W1, **khai rõ**) ✅ |
|
||||
| R8 | tập hợp lệ nhật ký chứa **cả 5 họ** | §6 | `grep -cE '^\| \([a-e]\) \|'` = **5** ✅ |
|
||||
| R9 | miễn trừ theo ngôn ngữ | §0 L4 | 3 loại; máy **in tên từng vật miễn** ✅ |
|
||||
| R10 | khai 2 xung đột | §14 | `grep -cE '^### XĐ-[12]'` = **2** ✅ |
|
||||
| R11 | 3 vá kèm | §4 | 3/3 land + verify 2 chiều ✅ |
|
||||
|
||||
**11/11.** Phạm vi chạm: đúng **5 tệp** (2 đẻ mới + 2 vá + nhật ký). **0 tệp cấm bị sửa** (`STATUS`/`HANDOFF`/`CLAUDE.md`/`adap-upgrade-pack-*`). **0 tên bị đổi.**
|
||||
|
||||
## §6 — CHƯA ĐO / CẦN LEAD
|
||||
|
||||
1. 🔸 `master-import-data.generated.md` — **ứng viên dương-giả**, tôi giữ cờ thay vì tự miễn (tự miễn = nước đi Goodhart). Lead phán: nhận `.generated.md` là hậu tố hợp lệ, hay coi đây là *tệp dữ liệu nằm nhầm thư mục máy móc*?
|
||||
2. 🔴 **`CLAUDE.md:151` sai với 59,7% đĩa** (nợ N-1) — W1 **bị cấm sửa** `CLAUDE.md`. Cần lead/chủ dự án mở đường; đến lúc đó `:151` phải đọc là *khuôn khuyến nghị*, KHÔNG phải vị từ kiểm kho.
|
||||
3. 🔴 **W3 đừng sửa "5 class"→"6"** (`wave-plan:85`) — đó là LỚP-5. Đi đường vá-1: bỏ số, trỏ khoá. 3 site: `lead-stale-auditor.md:39`+`:41` · `ring2-audit.md:4`.
|
||||
4. **KHÔNG ĐO ĐƯỢC:** mã thoát thật khi `wal-flush.ps1` bị đổi tên (cần đổi tên cây tạm + chạy hook + đọc `$LASTEXITCODE`) — nợ N-4.
|
||||
5. **CHƯA ĐO:** `.claude/commands/*.md` (19) + `.claude/agents/*.md` (27) neo tên gì bên trong — đó là **kiểm kê máy** (việc lane a), nhận thêm ở W1 là ăn lẹm — nợ N-5.
|
||||
6. Máy soi **chưa cắm cổng** (chạy tay) — cắm `session-end` = W3 (gom restart); lái mã thoát = W3b sau PA-2. Ô nghiệm thu *"vai giữ chuẩn"* = **NGOÀI scope** theo fit-map, chờ **P4**.
|
||||
|
||||
---
|
||||
|
||||
**END sub-w1b-chuan-ten — VERDICT: chuẩn 11/11 ràng buộc (10 nhóm tên ⊇ 6 nhóm sàn hub) · máy soi 233 tên / 8 lệch / 0 tập vắng / exit 0 · fault-inject 4 lượt 3 chiều ĐẠT (baseline sạch → cấy-lệch KÊU 4 → cấy-đúng IM 0 → mất-tập KÊU THIEU-TAP) · 3/3 vá land + verify · 3 ràng buộc/mô-tả bị BÁC có bằng chứng · 0 tên bị đổi · 0 tệp cấm bị chạm.**
|
||||
|
||||
Reference in New Issue
Block a user