# sub-harvest-curator (H2) — bookend @open S186 (2026-08-10)

> Lượt-trả-1 dính **#53** (31 tool-call; câu về = *"HEAD moved while I measured…"* — vai **nhận ra HEAD dời là ĐÚNG**, chỉ mất đường trả). Recover bằng **SendMessage resume**. Dưới = lượt-trả-2.
> 🔴 **Vai tự khai L1 BỊ CẮT lúc spawn**: banner báo `24.8KB > limit 24.4KB, only part loaded` ⇒ nó chạy với bộ-nhớ thiếu — chính nó là 1 trong 3 vai over-cap.

**VERDICT: `HARVEST: GATE-FAIL-6`**

## Finding

| sev | trục | vật | delta |
|---|---|---|---|
| HIGH | Coverage | `runs/2026-08-09-S185-bookend-close/sub-reviewer-yc021.md` (**23.280 B**) | **TRỌN artifact chưa về `agent-memory/reviewer/`.** Verdict `PASS_WITH_FIXES 8MAJ/6m` (14 finding; **R6 = mục DUY NHẤT đề FAIL** vì 3 dòng owner-SỐ sai **trước khi trình anh**: F-11 key ma `archive_gate.soft_cap_bytes` · F-12 lệch 45% · F-13 `mind_ctx_kb` stale) + 4 phản-chứng tự-bác + **2 thước-hỏng-của-chính-nó** (`s.index(']')` cắt trúng `]` trong comment ⇒ VALID_ROLES **18** thay 29, hụt 38%; `grep -rn` không glob treo >120s). 🔴 **Vô hình 4 tầng:** 0 row `run.md` · 0 mention `bookend-close-synthesis.md` · 0 hit WAL · 0 hit reviewer-folder (kể cả `archive/` + 7 topic-file). **Chỉ 1 sổ giữ vết:** `.claude/sessions/session-13/_mind-s-13.md:99` |
| HIGH | Coverage | `runs/2026-08-09-S185-bookend-close/sub-harvest-curator.md` (43.771 B) | 🔴 **ĐỪNG gom lại 43.771 B — sản-phẩm ĐÃ về nhà** (13 sổ @`93173099`). Thiếu đúng **self-record**: END-line `HARVEST-GOM: 11 vai/16 entry + 7 tệp + 7 lane / 698.109 B — GATE FAIL 2 trục…` không có trong `agent-memory/harvest-curator/`. **Điểm-mù tự-quy-chiếu S173 F-01 tái phát, lần này ở tầng LEAD** |
| MED | Placement | `runs/2026-08-09-S185-bookend-close/run.md` | **Cơ-chế truy được:** seed on-behalf lấy danh-sách từ **BẢNG** `run.md` (không có row `reviewer`) chứ không từ **FOLDER** — đúng bệnh S173 đã kê thuốc mà **chưa bind**. **mtime-chain là chứng:** artifact 08-10 03:48 ⟂ `reviewer/MEMORY.md` chốt 08-09 22:16 và không bao giờ chạm lại, trong khi lead vẫn seed tiếp tới 04:04 ⇒ **KHÔNG phải hết giờ — là không có tên trong bảng** |
| MED | Completeness | commit `93173099` vs 2 sổ | **Cùng 1 sự-kiện APPEND mang 3 tally khác nhau:** sub END-line "11 vai/16 entry" · synthesis "17 khối/11 sổ" · **git thật 13 `MEMORY.md` + 7 topic-file mới**. Tái-lập: `git show --name-only --format="" 93173099 -- .claude/agent-memory/ \| grep -c "MEMORY.md"` → **13**. Phân rã: 5 sổ nhận lane + 8 sổ nhận harvest. **Cùng hình-dạng ring1 đã bắt @S185 ("bảng tổng đếm hụt phần liệt-kê của mình") — lần 3** |
| LOW | Corruption | `runs/…S185-bookend-close/sub-ring1-audit.md:150` | Census tươi **25 occurrence / 23 line / 12 file** trên 1.169 md (perl byte-mode `\xEF\xBF\xBD`, control dương=1 + control âm=0 chạy TRƯỚC). Baseline carry "24/11" **không khai đơn-vị** ⇒ nêu cả 3 số. Hit mới duy nhất = ring1 **trích** mangle làm bằng chứng ⇒ **use⟂mention, LÀNH** |
| LOW | Placement | 7 lane `sub-opus-lane{1..7}` trong `runs/…S185-email-adap-pipeline/` | **7/7 ĐÃ placed** (verify từng file, không đo tên) — nhưng lane = worker ad-hoc "Opus 5 MAX", **không có nhà `agent-memory`** ⇒ ánh-xạ thuần phán-đoán lead, **không tái-lập được kỳ sau**. Đề: ghi luật ánh-xạ lane→sổ |

## 4 câu đích danh

**`ORPHAN-DOC-LAP:` 0 orphan — KHỚP lead, nhưng mẫu-số KHÁC nên khai rõ.** Universe **93 dir**, **90 có `run.md`**, 3 loại trừ **có tên** (`S117-pe-approve-minmax-range`, `S117-pe-luyke-finalize` spec-only + `S144-bootstrap` có `bootstrap-synthesis.md`). Lưới `find "$d" -name "*synthesis*.md" -size +0c` bắt đúng 1 candidate = **`2026-08-10-S186-bookend-open/` — ĐANG CHẠY** (chính phiên này), không tính orphan nhưng ghi nhận theo anti-pattern #3. **0 lệch folder nào.**

**`S185-2-FOLDER:` CÓ 2 delta chưa về.** `bookend-close` **thủng 2** (reviewer-yc021 trọn 23.280 B + self-record harvest-curator); `email-adap-pipeline` **SẠCH 12/12**. 🔴 **Nợ THẬT chưa-APPEND = 23.280 B + 1 self-record, KHÔNG phải 67.051 B** — kể kiểu tổng là **đẩy người sau đi gom thứ đã ở nhà** (bài S180 F-04).

**`OVER-CAP:` BÁC premise của brief, XÁC NHẬN đo của `lead-gap-auditor`.** `ring2-audit` = **24.859 B DƯỚI cap**, nén tại `c2f45231` 2026-08-10 02:49, disk==HEAD==24.859, archive `ring2-audit/archive/2026-08.md` 8.771 B tồn ⇒ **nợ trong brief đã trả ~10h trước phiên này**. 3 vai over-cap THẬT (>25.600):
- **`reviewer` 31.341** (+5.741, **vượt CẢ soft-L1 30.720** — nặng nhất, vừa nhận 7 topic-file)
- **`harvest-curator` 28.071** (+2.471 — **chính vai này**; chứng ngôi-thứ-nhất: banner spawn báo L1 chỉ nạp một phần)
- **`ctx-audit` 26.695** (+1.095)
🔴 Danh-sách trong synthesis S185 `{ring2, reviewer, tooling}` nay **sai 2/3**: `tooling-auditor` = **15.039 B** (tự-compact 31.696→14.852 @S185).

**`ZERO-BYTE:` 0 ca thật.** `find .claude -type f -size 0` = 10 file, **TẤT CẢ `.gitkeep`** trong 5 run-folder cũ 06-18, khớp baseline S153. 0 `MEMORY.md` 0-byte, 0 synthesis 0-byte. Kèm: `find .claude -type d -empty` = **0** ⇒ lớp sandbox-rỗng (S169) **không tái phát**; git mù chỗ này nên phải `find` mới thấy.

## Containment (G-015, khai đúng giới hạn)
0 Write/Edit trong repo · 0 `store_memory` · 2 file control chỉ ở `/tmp` ngoài repo. Dirty duy nhất `.session-counter.json` = **BOM-strip của hook**, không phải vai. Vai giữ `Bash` ⇒ **KHÔNG tuyên "read-only enforced"**. Mẫu-số: HEAD `bc309c55`; HEAD dời sang `69f9db80` giữa lúc đo nhưng `git diff --stat` chỉ đụng `S186-bookend-open/run.md` (+13 dòng) ⇒ **mọi số còn hiệu lực**.
