[CLAUDE] Docs: S123 citation-trap guard + H24-3 + DUAL-ACCEPT + luat retire-legacy
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m22s
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m22s
Anh chot 4 viec governance. Detector 46->45 = DOI THANH-PHAN (-2 duong-gia +1 duong-THAT), khong phai "flag giam". Mark moi RC-pqhuy1987-15-07-2026-17-23-10. - backtick-guard H24-1: discriminator = ENCLOSURE (use vs mention), KHONG port duoc charset-guard cua H24-2 vi vi-du byte-identical voi claim. Helper DUY-NHAT Test-Quoted. Fault-inject 5/5 (2 anti-Goodhart). - H24-3 session-label lag (MED, moi): va am-gia CHUNG-MINH-DUOC cua H24-1 (so NGAY ma ngay = moi nhat => 0 flag trong khi nhan lui 3 phien; tai-phat lan 4). Fault-inject 6/6 + 6/6 sau fix. - DUAL-ACCEPT (dang-3 RETIRED) + LUAT RETIRE LEGACY: go nhanh legacy khi tap di-san RONG, giu khi CON nguoi thu-huong. Repo that 0 orphan/26. Fault-inject 7/7. - tiep.md:66 stale-at-birth + sweep view-residual-asym 6/6 be-mat LUAT sach. Reviewer PASS_WITH_FIXES bat 6 loi that, lead verify 4/4 doc-lap: gen-2 citation-trap (lead viet 30 dong chung-minh dinh-luat roi de H24-3 KHONG guard) - greedy .* lay CUOI khong phai MAX - ly-do retire ap cho dang-2 thi giet C8 - "retire HOAN-THANH mark" = nguy-bien - "5/5" = 4/4. Goodhart DO DUOC (ngoai diff): W4/S122 "va" permission-matrix:16 bang doi FORMAT anchor => khop 0 pattern => H24-1 mat chinh positive-control no dung quanh; flag-count GIAM nen trong nhu thanh-cong. Outward: addendum R5 (DUNG adopt TRI-ACCEPT) + email hub ed3786a10f12 (selftest-stamp MATCH x2). _index reconcile: 2 email S122 gui ma chua log. #53 garble x4/3 agent - harvest-curator ghi diary TRONG luc lam nen vot duoc tu dia ngay; reviewer tu rut luat "ghi diary TRUOC return" tu garble-1 va nho dung no ma garble-2 vot duoc. Prompt-dung KHONG chan duoc #53. Lead sai 4 ca tron o truc dem-ve-minh: "25"!=26 - "5/5"!=4/4 - viet "7/7 PASS" TRUOC khi chay - "0 proxy" sai. State GIU NGUYEN: Mig 66 - 89 bang - 509 test - gotcha 82 - menu 54. Con no: STATUS:6 CO Y chua bump (H24-3 dang FLAG, giu cho hien ra). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
---
|
||||
description: /tiep — recovery MỘT đường cho MỌI kiểu gián-đoạn (Harness-22 WAL session-continuity). §0 = NHÀ CANONICAL của Sàn-3 "sổ trống ≠ sạch" (3 bậc + TRI-ACCEPT; session-start BƯỚC 0.7 chỉ TRỎ vào đây, không chép). Rồi đọc .claude/WAL.md → chạy verify + git status → ground-truth thắng → nối chain từ next; mục wf: → relaunch workflow ĐÃ-CẮT-GỌT. Cặp với /pause.
|
||||
description: /tiep — recovery MỘT đường cho MỌI kiểu gián-đoạn (Harness-22 WAL session-continuity). §0 = NHÀ CANONICAL của Sàn-3 "sổ trống ≠ sạch" (3 bậc + DUAL-ACCEPT orphan, dạng-3 retired S123; session-start BƯỚC 0.7 chỉ TRỎ vào đây, không chép). Rồi đọc .claude/WAL.md → chạy verify + git status → ground-truth thắng → nối chain từ next; mục wf: → relaunch workflow ĐÃ-CẮT-GỌT. Cặp với /pause.
|
||||
argument-hint: (không tham số)
|
||||
---
|
||||
|
||||
@ -28,14 +28,14 @@ Thực-hiện **tuần-tự**: §0 (sàn) → §1 → §2 → §3 → §4.
|
||||
|
||||
| # | Tín-hiệu | Vì sao đáng tin | Lệnh |
|
||||
|---|---|---|---|
|
||||
| **①** | **Orphan run-folder**: `runs/<id>/` có `run.md` mà **không có bản-ghi-kết-quả** (xem TRI-ACCEPT dưới) | **git-independent — miễn-nhiễm hook hoàn-toàn** (đọc đĩa, không đọc git) | xem block dưới |
|
||||
| **①** | **Orphan run-folder**: `runs/<id>/` có `run.md` mà **không có bản-ghi-kết-quả** (xem DUAL-ACCEPT dưới) | **git-independent — miễn-nhiễm hook hoàn-toàn** (đọc đĩa, không đọc git) | xem block dưới |
|
||||
| **②** | `origin/main..HEAD` có commit **KHÔNG** phải `wal:` | hook **không bao giờ sinh** loại commit này ⇒ có = người làm thật ⇒ không mù | `git log --format='%s' origin/main..HEAD \| grep -qv '^wal:'` |
|
||||
| **③** | `closing:` treo trong WAL | = Sàn-2 sentinel (xem §0.b) | `grep -q '^closing:' .claude/WAL.md` |
|
||||
| **④** | `wal:`-commit **chưa đẩy** có đụng `.claude/workflows/runs/` | 🔴 **thu-hồi một phần điểm mù**: dù `WAL.md` bị **xoá trắng**, **commit của chính hook vẫn tố-giác** rằng một run đã được dựng | `git log --name-only --format='%s' origin/main..HEAD \| grep -q 'workflows/runs/'` |
|
||||
|
||||
#### ① TRI-ACCEPT — 3 dạng bản-ghi-kết-quả đều TÍNH LÀ ĐÓNG
|
||||
#### ① DUAL-ACCEPT — 2 dạng bản-ghi-kết-quả TÍNH LÀ ĐÓNG *(dạng-3 RETIRED @S123 — xem dưới)*
|
||||
|
||||
> 🔴 **Nấc chuẩn (S122):** câu hỏi là **"đã harvest chưa"** — một câu hỏi về **NỘI DUNG**. Nếu chỉ đo **TÊN FILE** thì detector đo *cái dễ đo*, không phải *cái cần đo*. Đo thật @S122: **8 dương-giả / 25 run = 32%**, trong đó folder **ghi chép đầy-đủ nhất** (`pe-negative-quote`: có cicd PASS + bundle-hash + smoke 200 + 6 stage `[x]`) **vẫn** bị xếp orphan. ⇒ nhận dạng-2/dạng-3 là làm detector **ĐÚNG**, KHÔNG phải làm nó **dễ dãi**.
|
||||
> 🔴 **Nấc chuẩn (S122):** câu hỏi là **"đã harvest chưa"** — một câu hỏi về **NỘI DUNG**. Nếu chỉ đo **TÊN FILE** thì detector đo *cái dễ đo*, không phải *cái cần đo*. Đo thật @S122: **8 dương-giả / 25 run = 32%**, trong đó folder **ghi chép đầy-đủ nhất** (`pe-negative-quote`: có cicd PASS + bundle-hash + smoke 200 + 6 stage `[x]`) **vẫn** bị xếp orphan. ⇒ nhận dạng-2 là làm detector **ĐÚNG**, KHÔNG phải làm nó **dễ dãi**.
|
||||
|
||||
```bash
|
||||
for d in .claude/workflows/runs/*/; do
|
||||
@ -49,22 +49,28 @@ for d in .claude/workflows/runs/*/; do
|
||||
# history); close-gate chấp nhận CẢ HAI dạng."
|
||||
for f in "$d"/harvest/*-synthesis.md; do [ -s "$f" ] && found=1 && break; done
|
||||
[ $found -eq 1 ] && continue
|
||||
# dạng-3 — synthesis ghi trong THÂN run.md (S112–S114; phát-hiện + chuẩn-hoá @S122).
|
||||
# `^#+[[:space:]]*synthesis` = PHẢI là heading. Chữ "synthesis" giữa câu văn KHÔNG tính
|
||||
# (chống nhận bừa — nếu lỏng, mọi run.md nhắc chữ đó đều được tha ⇒ detector im vĩnh-viễn).
|
||||
grep -qiE '^#+[[:space:]]*synthesis' "$d/run.md" && continue
|
||||
echo "ORPHAN: $d"
|
||||
done
|
||||
```
|
||||
|
||||
> 🧪 **Block này ĐÃ fault-inject trên cây tạm (S122) — 9/9 PASS, chứng có RĂNG cả 2 chiều:**
|
||||
> **FLAG đúng** → orphan-thật · flat 0-byte · C8 0-byte · chữ "synthesis" **không phải heading**.
|
||||
> **IM đúng** → dạng-1 · dạng-2 · dạng-3 · `## Synthesis` (hoa + thừa space) · folder không có `run.md`.
|
||||
> 🔴 Ca *"0-byte"* và ca *"synthesis giữa câu văn"* là 2 ca **anti-Goodhart** — thiếu chúng thì happy-path vẫn xanh mà sàn đã thủng.
|
||||
> 🧊 **dạng-3 RETIRED @S123 (anh chốt) — nhánh `grep -qiE '^#+[[:space:]]*synthesis' "$d/run.md"` đã GỠ.**
|
||||
> **Đo trước khi gỡ, 2 phép độc-lập (harvest-curator + lead), khớp nhau:** bỏ nhánh dạng-3 ⇒ **0 folder** thành orphan. Lý do lộ ở đối-chứng: **cả 6 folder** từng dựa dạng-3 (`S112`×4 · `S113` · `S114`) **nay đều có flat `*-synthesis.md`** sau retro-harvest `22ea8c5` ⇒ dạng-1 bắt hết, dạng-3 **dư-thừa hoàn-toàn**.
|
||||
> 🔴 **LUẬT retire (phát-biểu ĐÚNG — S123 review bắt bản đầu viết sai):** **gỡ một nhánh legacy khi tập di-sản của nó RỖNG; giữ khi CÒN người thụ-hưởng.** dạng-3 → **0 folder** ⇒ gỡ. dạng-2 → **5 folder** ⇒ giữ. Miễn-trừ C8 (*tha di-sản*) hết hiệu-lực **đúng lúc hết di-sản để tha**, không sớm hơn.
|
||||
> ⚠️ **Bản đầu S123 viết lý-do là:** *"doc CẤM viết mới mà máy VẪN NHẬN ⇒ cấm-bằng-trí-nhớ ⇒ gỡ"*. **Nghe xuôi nhưng SAI** — reviewer áp thẳng nó cho **dạng-2**: `workflows/README.md` cũng ghi dạng-2 = *"legacy C8 — nhận, **cấm viết mới**"* ⇒ **cùng hình-dạng** ⇒ theo lý-do đó thì **phải gỡ luôn dạng-2** ⇒ **5 folder S71 thành orphan** ⇒ ép rewrite history mà **chính C8 cấm**. ⇒ **Lý-do viết ra ≠ lý-do thật đang vận-hành.** Bài: **áp luật vừa viết cho nhánh ANH EM — vỡ thì luật sai, không phải nhánh sai.**
|
||||
> 🔸 **Hệ-quả phụ (thật, nhưng KHÔNG phải lý-do):** sau khi gỡ, luật và máy nói cùng một câu về dạng-3 ⇒ hết cần trí-nhớ để NÊU. Đó là **cái được**, không phải **cái biện-minh**.
|
||||
|
||||
> 🧪 **Block này ĐÃ fault-inject trên cây tạm — S122 9/9 PASS, RE-VERIFY @S123 sau khi gỡ dạng-3: 7/7 PASS**, chứng có RĂNG cả 2 chiều:
|
||||
> **FLAG đúng** → orphan-thật · flat 0-byte · C8 0-byte · 🔴 **run.md có `## Synthesis` mà KHÔNG có flat** (ca này **S122 IM, S123 FLAG** — chính là hiệu-lực của việc retire).
|
||||
> **IM đúng** → dạng-1 · dạng-2 · folder không có `run.md`.
|
||||
> 🔴 Ca *"0-byte"* là ca **anti-Goodhart** — thiếu nó thì happy-path vẫn xanh mà sàn đã thủng.
|
||||
> 🧊 2 ca S122 nay **hết nghĩa** (`dạng-3` IM · `"synthesis" giữa câu văn` FLAG) — cả hai đo nhánh đã gỡ. Giữ lại làm **chứng lịch-sử**, KHÔNG phải test đang chạy.
|
||||
|
||||
> ⚠️ **KHAI THẲNG 2 giới-hạn (đừng đọc thành "đã kín"):**
|
||||
> 1. **Dạng-4 KHÔNG máy nào bắt được.** `pe-negative-quote` ghi kết-quả rải trong `## Stages` + `## wf run-id` (không có heading "synthesis"). Nhận dạng-4 = phải chấp-nhận "bất-kỳ run.md nào có vẻ nói về kết-quả" ⇒ **quá lỏng, thành vô-nghĩa**. ⇒ dạng-4 **để nguyên cho người phán**, KHÔNG cơ-khí-hoá. Đây là **kẽ còn lại**, không phải chuyện đã xử.
|
||||
> 2. **Tri-accept = lưới PHÁT-HIỆN cho bản CŨ, KHÔNG phải giấy phép VIẾT bản MỚI.** Đúng khuôn C8 đã dùng sẵn (*tha di-sản, cấm viết mới kiểu cũ*). 🔴 **Run MỚI BẮT BUỘC ghi dạng-1** (`<stage>-synthesis.md` phẳng) — `workflows/README.md:17` thiết-kế **tên file mang nghĩa** (RAW `sub-` ⟂ VERIFIED `-synthesis.md`); dạng-3 phá đúng thiết-kế đó. Đo @S122: cùng ngày 07-12, `h22-wal-adopt` ghi dạng-1 còn `S112-*` ghi dạng-3 ⇒ **thói-quen không nhất-quán, KHÔNG phải migration** — nhận dạng-3 để không kêu oan, cấm dạng-3 để không tái sinh.
|
||||
> 1. **Dạng-4 KHÔNG máy nào bắt được — lập-luận CÒN ĐÚNG, ví-dụ ĐÃ LỖI-THỜI.** Nhận dạng-4 = phải chấp-nhận "bất-kỳ run.md nào có vẻ nói về kết-quả" ⇒ **quá lỏng, thành vô-nghĩa** ⇒ dạng-4 **để nguyên cho người phán**, KHÔNG cơ-khí-hoá. Đây vẫn là **kẽ CÒN LẠI**.
|
||||
> 🧊 **Nhưng ví-dụ minh-hoạ thì đã chết — đính-chính @S123:** bản S122 viết *"`pe-negative-quote` ghi kết-quả rải trong `## Stages` + `## wf run-id`… **không phải chuyện đã xử**"*. Đo lại: `22ea8c5`@**14:28** đã thêm `implement-synthesis.md` **8.249B** cho đúng folder đó ⇒ nay nó là **dạng-1**, máy bắt được. Mà câu văn kia viết ở `dfa3dae`@**14:48 — SAU 20 phút**. ⇒ **doc khai "chưa xử" cho đúng thứ chính tác-giả nó vừa xử xong** (stale-at-birth).
|
||||
> 🔴 **Vì sao phải đính-chính chứ không xoá cả mục:** người đọc grep `pe-negative-quote` → thấy flat-file → kết-luận *"cảnh-báo này sai"* → **vứt luôn cái caveat còn đúng**. Ví-dụ chết kéo theo lập-luận sống. Đây là class **`acceptance literal tự-lão-hoá`** (S121): neo lập-luận vào một literal cụ-thể thì literal đổi là lập-luận mất uy-tín oan. **Bài rút ra: neo vào TÍNH-CHẤT** (*"run.md kể kết-quả mà không có heading `synthesis` nào"*), **đừng neo vào TÊN FOLDER**.
|
||||
> 2. **Dual-accept = lưới PHÁT-HIỆN cho bản CŨ, KHÔNG phải giấy phép VIẾT bản MỚI.** Đúng khuôn C8 đã dùng sẵn (*tha di-sản, cấm viết mới kiểu cũ*). 🔴 **Run MỚI BẮT BUỘC ghi dạng-1** (`<stage>-synthesis.md` phẳng) — `workflows/README.md:17` thiết-kế **tên file mang nghĩa** (RAW `sub-` ⟂ VERIFIED `-synthesis.md`); dạng-3 phá đúng thiết-kế đó. Đo @S122: cùng ngày 07-12, `h22-wal-adopt` ghi dạng-1 còn `S112-*` ghi dạng-3 ⇒ **thói-quen không nhất-quán, KHÔNG phải migration**.
|
||||
> ✅ **@S123 khoảng-cách doc-vs-máy này ĐÃ ĐÓNG:** trước đây doc *cấm* dạng-3 mà detector *nhận* ⇒ cấm bằng trí-nhớ. Nay **gỡ nhánh dạng-3** ⇒ luật và máy nói **cùng một câu**. Di-sản không kêu oan (6 folder cũ đều đã có flat), mà tái-sinh thì **máy bắt được ngay**.
|
||||
|
||||
### 🟡 BẬC TRUNG-BÌNH — nhiều file bẩn **NGOÀI** 3 path hook persist
|
||||
|
||||
|
||||
Reference in New Issue
Block a user