# implement — VÒNG-2 SYNTHESIS (verified by lead, độc lập)

**Run:** `2026-07-22-S142-adap-9-10-vong-2` · `wf_1e936b16-30c` · 2/2 lane DONE · 0 error · 0 garble · 424.755 tok · 170 tool-use · ~21 phút.
**Tiền nhiệm:** vòng-1 `wf_3e1ade40-704` chết giữa chừng → `…S141-adap-dot-9-10-bo-ba-sub/implement-vong1-synthesis.md` (partial-honest, 5/13).

## Nấc trung-thực

🔴 **executed-file / verified-pending-restart.** Toàn bộ file + wiring + budget ĐÃ land và ĐÃ verify trên đĩa. Nhưng **3 vai trio CHƯA spawn lần nào** — cần restart CLI + anh consent. **CẤM đọc file này thành "verified-runtime".**

## Verify độc lập của LEAD (không tin return của lane)

| AC | Verdict | Bằng chứng lead tự chạy |
|---|---|---|
| 1 | ✅ | 3 persona + 3 MEMORY.md non-empty |
| 2 | ✅ | TRIPLE **17 / 17 / 17** (agents · VALID_ROLES · README) |
| 3 | ✅ | `§2.1.9`=1 · `squash-benign`=2 · `FAIL-LOUD`=4 (giữ) · `(a)→(k)`=1 · `(a)→(j)`=0 · `da349fc`=1 · `L.b(k)`=1 |
| 4 | ✅ | 0 site **SỐNG**; 4 residual có lý do (mục dưới) |
| 5 | ✅ | stored `1547/1616/1513` == fresh `measure-agent-memory.ps1` → **0-mismatch** |
| 6 | ✅ | `SQUASH-BENIGN`=1 · `transient`=1 · JSON parse exit 0 |
| 7 | ✅ | **lead TỰ fault-inject lại**: cây tạm sha giả → FLAG `object-missing`, trục counter IM đúng, INFORM=1, TOTAL không đổi |
| 8 | ✅ | carve-out ×5 hit trong error-ledger |
| 9 | ✅ | regex `{8,64}` ở CẢ 2 command · trỏ `scripts/stamp_verify.py` LOCAL |
| 10 | ✅ | draft `ĐÃ VỀ` ×2 + sha `101e69d6`/`58e28bae` ×2 · 0 wire |
| 11 | ✅ | detector suite **TOTAL 46 == baseline 46** (wave thêm 0 flag) · exit 0 |
| 13 | ✅ | 0 tracked-change rò ngoài file-set giao + run-folder |

## 4 residual `14/14` — GIỮ CÓ LÝ DO

1. `ACTIVE-MARKS.md:23` ×2 — bản ghi **đã ký đóng băng** (`RC-pqhuy1987-15-07`), §Q3 no-retrofit ⇒ sửa = giả-mạo.
2. `STATUS.md:227` — "14/14 verbatim unchanged-since-gist" nói về **FILE** trong sleep-recovery, **không phải roster** ⇒ sửa là sai.
3. `WAL.md:3` — chính dòng mô-tả việc sweep (**mention ⟂ use**), tự tiêu khi flush.

Các site lịch-sử khác (S122/S124/S132) **giữ nguyên số đã đo**, chỉ gắn mốc `N=14 khi đó` — KHÔNG nâng thành 17 vì phép đo đó chưa hề chạy với 17 vai.

## 3 bài học có bằng chứng (data-point mới)

1. **Lane ĐO tốt nhưng ĐẾM-VỀ-MÌNH hụt.** W-A khai "4 file còn sống ngoài quyền lane" — thật là **5**, sót `scripts/spawn-model-audit.ps1`. Lead bắt được vì chạy grep repo-wide thay vì đọc danh-sách lane đưa ⇒ `feedback_meta_count_selfcoverage_blindspot` tái-hiện. **Bài: dò TỪNG DÒNG, đừng tin con số tổng của chính người làm.**
2. **Vá failure-mode A mở ra failure-mode B.** W-B tự bắt: `[Text.Encoding]::UTF8.GetString([IO.File]::ReadAllBytes())` — cách đọc chuẩn để né bug ANSI (E-010) — **KHÔNG nuốt BOM**, `U+FEFF` sống sót ⇒ `ConvertFrom-Json` chết ⇒ detector FLAG `counter-unparseable` trên file JSON **hợp lệ**. Fix = `.TrimStart([char]0xFEFF)` (code-point ⇒ .ps1 vẫn thuần ASCII, gotcha #30). **Nếu chỉ chạy happy-path và thấy "có flag = có răng" thì đã ship một dương-giả.**
3. **Citation-trap gen-2 xảy ra THẬT trong chính diff.** Addendum W-A vừa viết vào `memory-budget.json` sinh site mới `roster 14` vì nó MÔ-TẢ việc sweep. Lane tự bắt + vá bằng **use⟂mention** (`(roster tang tu 14 len 17)`). Lead cũng chạy lại phép này trên diff của MÌNH → 0 site mới. **Bài: vá 1 class ⇒ grep lại 4 pattern trên CHÍNH DIFF của mình, không chỉ trên repo trước-khi-sửa.**

## Còn lại (ngoài run này)

Closeout outward chờ anh gật: adap-report 7-disposition · email hub selftest · STAGE-2 move 7 thư + `_index` · commit §5.2 push. Trio first-run = phiên sau restart. `agents/README` skill-matrix vẫn thiếu row 2 vai H24 (drift từ S121, ngoài scope wave).
