# synthesis — SETUP-REVIEW đội STYLE 3 vai (S176, 06-08-2026)

**Engine:** `/fable-real reviewer` · run `wf_264fb5c2-0db` · 1 lane · 194.070 tok · 22 tool-use · 923s.
**Verdict:** `SETUP-REVIEW: SỬA-6` — **nền thiết-kế ĐỨNG VỮNG, KHÔNG BÁC.**
**Full-detail:** [`sub-reviewer-0.md`](sub-reviewer-0.md) (15.798 B) · **Kế-hoạch vá:** [`spec-va-doi-style-3-vai-06-08-2026.md`](spec-va-doi-style-3-vai-06-08-2026.md)

---

## Kết-quả 1 dòng

Đội **chưa dùng được** — không phải vì sai nền, mà vì **1 lỗi thước** khiến nó không bao giờ được gọi ở đúng use-case chính. 5 điểm còn lại là siết chặt.

## 🔴 Điểm sống-chết — SỬA-1: thước dispatch MÙ working-tree

Lead viết thước là `git diff --name-only origin/main...HEAD` (**ba-chấm**) ở 4 site. Ba-chấm chỉ thấy phần **ĐÃ COMMIT** ⇒ mù uncommitted + mù untracked.

Mà đội là **gate PRE-COMMIT** (`README:67` "MỖI LƯỢT REVIEW", khuôn `reviewer` = pre-commit). ⇒ Đúng lúc review, lệnh trả **RỖNG** ⇒ dispatch kết *"diff không chạm ⇒ KHÔNG gọi"* ⇒ **0 con spawn**, và vì không con nào chạy nên cũng **0 dòng `SKIP-CO-KHAI`** để lộ ra.

**Đội chết CÂM.** Chỉ nổ khi lead lỡ commit trước rồi mới review — tức đúng cái *"làm đi làm lại"* mà anh muốn chặn, cộng thêm chi-phí 3 persona.

> Cùng lớp `dry-run bắt lời-hứa-chưa-land` (S168) và `guard-chặn-không-đường-ghi`: **một guard không có đường chạy tới = guard không tồn tại**, mà nhìn từ ngoài thì y hệt guard sạch.

## 5 điểm còn lại (rút gọn — chi-tiết ở spec)

| # | Cái sai | Vì sao đáng sửa |
|---|---|---|
| 2 | "mọi thứ trên `origin/main` = production" quá rộng | `deploy.yml:20-27` `paths-ignore` có 7 class **chưa từng deploy**; + cửa-sổ deploy-FAIL |
| 3 | Miễn-trừ chỉ đòi **con-trỏ** | 2/3 nguồn do **chính lead** viết ⇒ dấu-cao-su. Đòi **trích nguyên văn** ⇒ owner đọc report tự bác câu bịa |
| 4 | Thách-CLEAN nhánh `DAT` **bẻ được** | Không bắt neo `file:line` ⇒ bịa "đã đối chiếu, khớp" không ai bắt. Khuôn `db` (kèm số đếm) mạnh hơn 2 con kia |
| 5 | 3 vai **thiếu dir** `agent-memory/` | Máy enumerate theo DIR ⇒ 3 vai **vô hình câm** trong đo/budget — *vắng-mặt trông giống ổn* (lead tự đo lại: 3/3 THIẾU, CONFIRMED) |
| 6 | Lead **chép luật vào persona** | Vi phạm chính B1 lead vừa viết **trong cùng file** (`db:71` cấm, `db:32/34-35/61` chép). `fe:4` chép digits — class **đã drift thật**: root `CLAUDE.md` "React 18" vs `package.json` ^19.2.5 |

## 3 điều engine BÁC — lead lo hão (ghi để khỏi lo lại)

1. **Ca REVERT không phá thước** — thước đo **TREE**, không đo **HISTORY**. Bằng chứng revert thật `3f339c0`: code revert không còn trong tree ⇒ không thành chuẩn. *Bài: phân biệt đo-tree ⟂ đo-history.*
2. **3 script không hardcode roster** — `spawn-model-audit.ps1:400-405` · `governance-detectors.ps1:1076-1083` · `mfe-eval.ps1:243` đều enumerate **ĐỘNG** ⇒ tự nhận vai mới. *Bài: đừng giả-định script hardcode, mở ra đo.*
3. **`roster 26 > WIDTH_CAP 20` không phải hậu-quả mới** — LOUD-skip **có log** `hmw.js:165-169`, không câm; pre-existing từ 23>20 @S153; use-case 1-3 lane không đụng trần. Chỉ cần nhớ: xếp 3 vai style **cuối** taskList sweep thì chúng bị cắt.

## Nền được giữ (có đo, không khen suông)

- Trục **ĐỒNG-NHẤT ⟂ ĐÚNG-SAI** tách thật — 5-category của `reviewer` **không có** trục khuôn.
- Format nhánh `LECH` **bắt neo bản production** = răng chính, hoạt động.
- *"Bê HÌNH đừng bê LỜI KHAI"* (`fe:56`) codify được ca thật (`lũy kế` 0-hit).
- `SKIP-CO-KHAI` / `CẤM ĐẠT-ảo` khớp chuẩn ring-family.
- **100% anchor FE trỏ file TỒN TẠI** trên đĩa (`KhkkListPanel`/`PipelineTreePanel`/`PurchaseEvaluationsListPage` ×2 app) — **0 con-trỏ chết**.
- Bỏ `clean-code-reviewer-style` = **quyết-định ĐÚNG** (không viết nổi câu scope-rời; 4 con cũng không phủ được seam FE↔BE).

## Vết vận-hành

- 🧪 Guard `checkpointApproved` **fire đúng** ở lần phóng đầu (0 agent · 0 token · 36ms) — guard **có răng**, không phải lỗi.
- 🔸 `reviewer` **tự ghi** `sub-reviewer-0.md` thay vì để lead scribe: vai nằm trong nhánh read-only của `writeGuard` nhưng runtime **vẫn cấp Write** (`tools-whitelist-no-teeth`, G-015). Ghi **đúng file đích trong run-folder** nên trong bờ isolation — ghi lại làm vết, không leo thang.
