[CLAUDE] Infra: W3 file 4-9 - TRI-ACCEPT authority + GAP#6 tier:opus + roster sweep + ACTIVE-MARKS chu-thich

FILE 4 fable-clone.md -- GAP#6: lane ensemble PHAI mang tier:'opus'.
  Thieu => inherit lead => lead=Fable thanh N x Fable = dot quota gap N lan VA pha dung
  ly-do lenh ton tai (ensemble RE de THAY 1 luot Fable dat). lead=Opus thi tier:'opus'
  ≡ inherit => loi VO HINH, chi lo khi Fable UP (dung loi reviewer bat @S108).
  + khai CHUA VERIFY precedence spawn-param vs frontmatter (H23 §2(2)) => DEFER phien lead=Fable.
  + grep tier:'opus' = DIEU-KIEN CAN, KHONG DU (do CHU trong file, Goodhart-able 100%).

FILE 5 agents/README.md -- bo SO khoi 8 cho (khong doi so: doi thi roster ke lai stale).
  File nay chinh la VI-DU minh-hoa cho class view-stale-role-desc trong lead-view-auditor.md:47.
  + canh-bao bay glob: `ls .claude/agents/*.md` bat LUON README.md => thua 1 (R2-C1).
  + khai: doi roster = doi 2 BE-MAT DOC-LAP (agents/*.md -> registry | VALID_ROLES -> agentType).

FILE 6 fable-real-runbook.md -- 14 hit (lead bao 8 = SAI, xem duoi). + hmw.js:22-30 -> :22-36 (stale line-ref).
FILE 7 sleep-recovery-memory-l2.md -- `all` tu hardcode 9 -> DAN-XUAT TU DIA (do ra 10).
  Danh-sach cung 9 da ROT office-document (them S107) suot tu do. Tro-treu: chinh doc do
  da ghi "luon quet dia that" cho con-so 4/9 ngay duoi, nhung hardcode roster phia tren.
FILE 8 workflows/README.md -- TRI-ACCEPT vao ORPHAN-AUTHORITY (:19-20) + B1 pointer.
FILE 9 ACTIVE-MARKS.md -- chu-thich cho mark RC-...20-42-01 (anh CHOT: giu ban ky nguyen ven,
  them chu-thich; P4/P8). "roster 12" trong than mark = anh chup luc ky, KHONG phai gioi-han.

+ STATUS.md:25 -- STALE THAT trong chinh file CANONICAL: row ghi | Sub-agents | 14 | nhung
  narrative CUNG DONG ghi "ca 12 sub model: inherit" (W2 sua row, bo sot narrative).
  Bay mega-line TAI HIEN: grep -c = 1 vs grep -o|wc -l = 2.

+ spec v3-PATCH -- SUA ACCEPTANCE FIX#6 (ban goc BAT-KHA-THI, tien-le WAL:29):
  "0 hit song" do CA phan CO Y khop => implementation DUNG van truot. Lan thu BA cung ho
  R2-C1 (ls=14) + R3-M3 (TOTAL>=46). Acceptance moi = disposition TUNG DONG theo 6 nhom.
  Sweep that sau W3: 14 hit song, 0 cai la stale-can-va (vi-du co chu-dich / trich lich-su /
  ban da ky / so tam / W5 chua toi luot / canonical history-delta).

LEAD TU BAT 2 LOI DEM (deu o truc dem-ve-viec-minh, -> adap-report):
(a) bao "fable-real-runbook 8 hit" -- that la 14; lay output `head -40` DA BI CAT lam so tong.
(b) bao "do lai tai-hien CHINH XAC du-bao FIX#4" roi lay trung-khop lam cho dua, trong khi
    CA FIX#4 LAN LEAD deu dang do TEN FILE. Con-so dung, huong do sai.
=> khop feedback_meta_count_selfcoverage_blindspot: lead DO tot, lead DEM VE MINH thi sai.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-07-15 14:59:36 +07:00
parent dfa3daef05
commit 53765b0de3
8 changed files with 105 additions and 31 deletions

View File

@ -17,7 +17,18 @@ Mỗi lần chạy workflow fan-out (RUN-TRACE mode) → **1 thư mục run** gi
└── <stage>-synthesis.md ← gom/VERIFIED (suffix `-synthesis.md`) — EM MAIN ghi NGAY sau mỗi fan-out turn (C4 per-turn primary)
```
Phân biệt RAW (prefix `sub-`) vs VERIFIED (suffix `-synthesis.md`) bằng **TÊN file**, KHÔNG subfolder. **C8:** 5 run cũ S71 (`h10-invest``h910-curate`) giữ `sub-md/`+`harvest/` (đừng rewrite history); close-gate chấp nhận CẢ HAI dạng.
- `runs/_ledger.md` — 🧊 **RETIRED H18-B S100** (sổ 2-nhịp nghỉ-hưu — đo bắt-thật: true-orphan-catch 0/15 lifetime + mode-A coverage 0/8 workflow từ S93; 15 row lịch-sử GIỮ NGUYÊN, đảo-ngược = gỡ marker). **Orphan-authority = folder-scan:** `runs/<id>/``run.md``*-synthesis.md` VẮNG/0-byte. Chi-tiết `runs/README.md`.
🔴 **TRI-ACCEPT (S122) — close-gate nhận BA dạng, KHÔNG phải hai.** Định-nghĩa CANONICAL + block quét = [`.claude/commands/tiep.md`](../commands/tiep.md) **§0** (KHÔNG chép logic sang đây — B1):
| dạng | hình-dạng | tư-cách |
|---|---|---|
| **1** | `<stage>-synthesis.md` **phẳng** | ✅ **hiện-hành — run MỚI BẮT BUỘC dùng dạng này** |
| **2** | `harvest/<stage>-synthesis.md` | 🧊 legacy C8 (5 run S71) — nhận, **cấm viết mới** |
| **3** | heading `## synthesis` trong **THÂN `run.md`** | 🧊 legacy S112S114 — nhận, **cấm viết mới** |
**Vì sao phải nhận dạng-3 (đây là sửa ĐÚNG, không phải nới lỏng):** gate hỏi *"đã harvest chưa"* — câu hỏi về **NỘI DUNG** — nhưng lại đo **TÊN FILE**. Đo thật @S122: **8 dương-giả / 25 run = 32%**; 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. Bồi: commit `8fa2fcc` khoe *"close-review run.md synthesis [H2 gate]"*`git show --stat` **không chạm folder** ⇒ H2 **đã soi + coi ĐÓNG**, chỉ lệch tên file.
🔴 **Nhận ≠ cho phép** (đúng khuôn C8: *tha di-sản, cấm viết mới kiểu cũ*). Dạng-3 **phá chính thiết-kế "tên file mang nghĩa"** ở dòng trên. **KHÔNG phải convention của một thời-kỳ:** 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**. Run mới ghi dạng-3 ⇒ **NÊU (drift)**.
🔸 **Kẽ CÒN LẠI — dạng-4** (kết-quả rải dưới heading tuỳ-ý, vd `## Stages` + `## wf run-id`): **KHÔNG máy nào bắt được** — nhận nó = phải nhận "bất-kỳ run.md nào có vẻ nói về kết-quả" ⇒ quá lỏng, vô-nghĩa ⇒ **để người phán**. Đây **KHÔNG phải chuyện đã xử**.
- `runs/_ledger.md` — 🧊 **RETIRED H18-B S100** (sổ 2-nhịp nghỉ-hưu — đo bắt-thật: true-orphan-catch 0/15 lifetime + mode-A coverage 0/8 workflow từ S93; 15 row lịch-sử GIỮ NGUYÊN, đảo-ngược = gỡ marker). **Orphan-authority = folder-scan:** `runs/<id>/``run.md`**KHÔNG thoả bất-kỳ dạng nào trong TRI-ACCEPT** (dạng-1 phẳng · dạng-2 `harvest/` · dạng-3 `## synthesis` trong run.md) — mỗi dạng đều đòi **khác 0-byte**. 🔴 Block quét canonical + 9/9 fault-inject → [`tiep.md`](../commands/tiep.md) **§0** (⚠️ bản trước S122 chỉ nhận dạng-1 ⇒ **32% dương-giả**). Chi-tiết `runs/README.md`.
## 2 MODE memory (anh 06-07, KHÔNG thay return-delta)
@ -33,7 +44,7 @@ Phân biệt RAW (prefix `sub-`) vs VERIFIED (suffix `-synthesis.md`) bằng **T
## Quy trình RUN-TRACE (B1B6)
1. **B3 SCAFFOLD TRƯỚC (em main @P1):** tạo `runs/<run-id>/` + `run.md` (FLAT KHÔNG cần `sub-md/`/`harvest/` subfolder hay `.gitkeep`; file `sub-*`/`*-synthesis.md` sinh phẳng cùng cấp khi fan-out chạy). *(🧊 bước "ghi OPEN-beat vào `runs/_ledger.md`" retired H18-B S100 — orphan-authority = folder-scan.)* `hmw.js` chạy JS-sandbox **no-filesystem** KHÔNG tự tạo folder; **em main Write @P1** TRƯỚC khi invoke Workflow. (Đây fragile-point quên scaffold = run mất dấu-vết âm-thầm; xem `runs/README.md` §C7.)
2. **B1 spawn-from-real-sub:** mỗi task `role ∈ VALID_ROLES` (12 sub đủ roster từ S110, +2 monitor anh-directed) workflow-agent = sub THẬT (`agentType` inherit memory-pack slice + skill identity), KHÔNG agent vô-danh.
2. **B1 spawn-from-real-sub:** mỗi task `role ∈ VALID_ROLES` (**roster ĐẦY-ĐỦ** số vai canonical [`docs/STATUS.md`](../../docs/STATUS.md) §Sub-agents, B1 KHÔNG chép số đây) workflow-agent = sub THẬT (`agentType` inherit memory-pack slice + skill identity), KHÔNG agent vô-danh.
3. **B4 phân-quyền TOOL-AWARE:** `hmw.js` inject vào prompt mỗi sub đường-dẫn `runs/<run-id>/sub-<role>-<i>.md` (phẳng) + lệnh ghi ĐÚNG file đó.
- **Write sub ( Write/Edit):** implementer-backend · implementer-frontend · test-specialist · frontend-designer ghi-direct sub-MD via Write/Edit.
- **Read-only sub (CHỉ Bash):** investigator-codebase · investigator-api · reviewer · cicd-monitor 🔴 KHÔNG Bash-write MD (mojibake) full-detail vào `findings` + `subMdPath` **em main scribe @P3** (single-writer).

View File

@ -153,7 +153,30 @@ if (A.taskList.length >= 3 && !w) throw new Error('H22 Sàn-1: run ≥3 task PH
- **Vào W2 (1-EDIT):** `hmw.js:9` meta + `ultra-on.md:24` danh-sách VALID_ROLES 12→14 (**routing-doc ⇒ CÙNG COMMIT**)
- **Vào W3:** `fable-real.md` + `fable-real-runbook.md`
**Acceptance:** sau W3, pattern trên = **0 hit sống** (ngoài lịch-sử/archive).
**Acceptance:** ~~sau W3, pattern trên = **0 hit sống** (ngoài lịch-sử/archive).~~
## 🔴 ACCEPTANCE FIX#6 — SỬA @S122 (bản gốc BẤT-KHẢ-THI; tiền-lệ WAL:29 lead sửa acceptance cơ-học rồi báo)
**Lỗi:** *"0 hit sống"* đo **TOÀN BỘ** bề mặt khớp pattern — **kể cả phần CỐ Ý khớp**. Một implementation **ĐÚNG** vẫn trượt. **Cùng họ R2-C1 (`ls=14` sai số-học) + R3-M3 (`TOTAL≥46` bất-khả)** — lần thứ **BA** trong cùng spec: **acceptance viết bằng LITERAL thì đo cái TRÔNG GIỐNG, không đo cái ĐÁNG ĐỔI.**
**Bằng-chứng (sweep thật sau W3):** 14 hit còn sống, **0 cái là stale-cần-vá**:
| Nhóm | Hit | Vì sao KHÔNG được "vá" |
|---|---|---|
| **Ví-dụ CÓ CHỦ-ĐÍCH** | `lead-view-auditor.md:47` | Nó **minh-hoạ** class `view-stale-role-desc` bằng đúng chuỗi đó. Vá = **phá tài-liệu của chính vai đi bắt stale** |
| **Trích lịch-sử** | `agents/README:3` · `sleep-recovery-memory-l2:43` · `ACTIVE-MARKS:23` | Do W3 **vừa viết** để **giải-thích** cái đã vá |
| **Bản ĐÃ KÝ** | `ACTIVE-MARKS:19` | **Anh chốt @S122: giữ nguyên** (P4/P8) + chú-thích |
| **Sổ tạm** | `WAL:15/:29/:38` | Nhật-ký làm-việc, không phải doc |
| **Chưa tới lượt** | `harness-11-engine.md:269/:322/:332/:345` | = **W5**, KHÔNG phải W3 |
| **Canonical + history-delta** | `STATUS.md:25` `VALID_ROLES 12→14` | Mô-tả **đúng** sự thay-đổi |
**⇒ Acceptance MỚI (đo cái ĐÁNG ĐỔI, không đo cái TRÔNG GIỐNG):**
> Sau W3, **mọi hit sống của pattern PHẢI rơi vào đúng 1 trong 6 nhóm trên** — **0 hit** thuộc nhóm *"doc dẫn-xuất đang khai số roster SAI như thể đó là sự-thật hiện-hành"*. Nhóm *"chưa tới lượt"* **PHẢI rỗng sau W5**.
> **Cách kiểm = disposition TỪNG DÒNG** (không phải 1 con-số tổng — bài học §0: *con-số tổng đóng vai "đã phủ hết"*).
**🔴 3 điều tự-bắt trong lúc chạy acceptance này (→ adap-report):**
1. **`STATUS.md:25` có stale THẬT** mà pattern **suýt bỏ sót**: row canonical ghi `| Sub-agents | **14** |` nhưng **narrative CÙNG DÒNG** ghi ``cả 12 sub `model: inherit` `` ⇒ **mâu-thuẫn nội-tại NGAY TRONG nguồn chuẩn** (W2 sửa row, bỏ sót narrative). Vá @S122 bằng cách **bỏ số khỏi narrative**, không phải đổi số.
2. **Bẫy mega-line TÁI HIỆN ĐƯỢC:** `STATUS.md:25``grep -c` = **1**, `grep -o | wc -l` = **2**. Ai dùng `grep -c` sẽ vá 1 chỗ rồi tưởng xong. (WAL:13 đã ghi bẫy này; nó **vẫn suýt ăn** lần nữa.)
3. **Lead ĐẾM SAI ×2 trong cùng phiên** — cả hai đều ở trục *đếm-về-việc-mình*: (a) báo *"`fable-real-runbook.md` **8 hit**"* — thật là **14** (lấy output `head -40` **đã bị cắt** làm số tổng); (b) báo *"đo lại tái-hiện CHÍNH XÁC dự-báo FIX#4"* rồi lấy trùng-khớp làm chỗ dựa, trong khi **cả FIX#4 lẫn lead đều đang đo TÊN FILE**. Khớp `feedback_meta_count_selfcoverage_blindspot`: **lead ĐO tốt, lead ĐẾM VỀ MÌNH thì sai.**
---