# adap-report — Checklist Harness-9 + Harness-10 (run-trace folder)

- **id:** 2026-06-18-Governance-checklist-harness-9-10
- **broadcast:** `ai_infra/broadcasts/outbox/all/2026-06-18-Governance-checklist-harness-9-10.md` (content_sha256 `ec32951a…` — verified MATCH, đọc UTF-8 tường minh per gotcha #61)
- **applied:** S71 (2026-06-18), em-main + 3 Workflow (invest→implement→review) + 3 reviewer
- **nấc (G-011):** **executed-file + VERIFIED (static)** — committed; runtime hmw.js pending-restart (no hot-reload)
- **PROJECT-FIT:** Part A (Harness-9 memory) = ĐÃ adopt S70 (self-verify lại) · Part B (adap 2-workflow) = ĐÃ codify S70 · **Part C (Harness-10 run-trace) = MỚI adopt S71 (lõi việc)**

## Mandate Harness-9 PART 2 — 3 workflow run-id (bằng chứng B3)
| Stage | run-id | verdict |
|---|---|---|
| INVESTIGATE (4× investigator-codebase) | `wf_9c2cd2cd-2e7` | PASS (B+C+D strong; A stub-return nhưng ghi diary thật → bù) |
| IMPLEMENT (3× general-purpose + em-main cluster) | `wf_e4e46725-231` | PASS (3/3, containment CLEAN, wording đồng-bộ 4 file) |
| REVIEW (3× reviewer adversarial) | `wf_636bc95b-939` | PASS sau-fix (R2+R3 độc-lập bắt C5 L1 over-claim → fixed) |

> Vượt sàn tối-thiểu 2-workflow (anh chốt "đủ 3 bước invest/imple/review, tránh sai sót"). Dogfood: chính 3 workflow này tạo 3 run-trace folder TRACKED đầu tiên + 3 entry ledger 2-nhịp.

## CHECK LIST 9-10 — nấc THẬT (honest, kiểm đĩa)
### PART A — Harness-9 memory (proposal, đã adopt S70) → 🟢
A1 budget.json ✓ · A2 measure-script + seed-by-measure ✓runtime · A3 gist additive distill-gen:1 ✓ · A4 coverage-diff (H2 verify) ✓ · A5 `_INDEX` 4 sub ✓ · A6 pointer-resolve substring-sha ✓ · A7 budget-audit @session-start (em chạy TAY S71) 🟡 automation pending-restart · **A8 gist-command tách-biệt = tailored: SE KHÔNG có command riêng, curate ad-hoc (function-floor "compress≠index" giữ)** · A9 `.ragignore` ✓.

### PART B — adap 2-workflow (BẮT BUỘC, codify S70) → 🟢
B1/B2 implement+review tách (3 run-id trên) ✓ · B2.5 reverse-findings (dưới) ✓ · B3 report+run-id (file này + email) ✓ · B4 short-but-confirm vẫn review ✓ (codify `adap-apply.md:38`).

### PART C — Harness-10 run-trace (BẮT BUỘC) → 🟢 MỚI
| C | nấc THẬT | bằng chứng |
|---|---|---|
| C1 run-folder 3-phần | executed-file | `runs/2026-06-18-h10-{invest,implement,review}/` đều run.md+sub-md/+harvest/ |
| C2 scaffold-cả-3-đầu-run | convention (em-main @P1, engine no-fs) | cả 3 run scaffold đủ từ đầu |
| **C3 git-TRACKED** | **tracked-eligible → COMMITTED** (sau commit này) | check-ignore NOT-IGNORED + **`git ls-files runs/` sau commit = non-empty** |
| C4 per-turn primary | executed-file | 3 harvest synthesis viết liền sau mỗi stage |
| C5 3-layer | L2/L3 wired (session-start/end) + L1 honest (em-main @P1 convention) | review bắt L1 over-claim → fixed |
| C6 ledger 2-nhịp | convention | `_ledger.md` 3 run OPEN+CLOSE + orphan def |
| C7 caveat | doc honest (reviewer: "điểm sáng nhất") | `runs/README.md` §C7 đủ 4 trục |
| C8 migration wave→runs | convention complete | wave-*/ giữ legacy ignored, runs/ tracked, 0 wave-*/ remain |

## Tailored (form) vs floor (function)
- **Tailored:** giữ tên biến `wave` nội-bộ hmw.js (accept `args.run` primary + `args.wave` alias back-compat — minimal-risk live-engine) · wave-*/ giữ legacy-ignored thay vì xóa (no wave-*/ remain, harmless) · A8 no dedicated gist-command (curate ad-hoc) · run-id folder = `2026-06-18-h10-<stage>` (date-slug).
- **Function-floor giữ nguyên:** run-trace TRACKED 3-phần · ledger 2-nhịp · 3-layer · containment-model-shift · caveat trung-thực · 2-workflow mandate.

## Reverse-findings (B2.5 — know-how chắt-lọc gửi ngược AI_INFRA)
1. **Engine no-fs làm C5-L1 KHÔNG THỂ là engine-prompt** — L1 "check prior-run-harvested" cần đọc ledger → BẮT BUỘC là lead @P1 convention, KHÔNG phải workflow-prompt. Checklist C5 nên ghi rõ L1 = lead-side (review của tụi em bắt đúng over-claim này khi 1 implement-agent tự-nhận "wired vào prompt-builder").
2. **Custom workflow (ngoài hmw.js) thiếu return-delta-guard → same-role fan-out race** (4 investigator tự-ghi chung MEMORY.md, "file modified since read"). hmw.js DEFAULT-mode đã có guard; custom Workflow script KHÔNG → đề xuất: mandate B nên nhắc "custom workflow phải copy return-delta-guard, KHÔNG để sub tự-ghi memory chung".
3. **check-ignore exit-code trap** (exit 0 cho CẢ negation lẫn ignore) — verify C3/C8 PHẢI dùng `&& IGNORED || NOT`, nếu không kết-luận ngược. Đáng đưa vào checklist C3 self-verify như guard tường-minh.
4. **C3 2-level (eligible vs committed) là bẫy thật** — review bắt `git ls-files` rỗng dù doc nói "tracked". Floor C3 đã tách 2-level rất đúng; tụi em confirm value của nó.

## Honest caveat
- hmw.js = source-clean + `node --check` PARSE-OK, NHƯNG runtime RUN-TRACE mode chưa chạy thật (no hot-reload → restart CLI mới active; SE ít dùng wave/run-mode nên forward-looking).
- A7 budget-audit + reviewer Cat-6 + H8 inherit vẫn pending-restart (carry S66/S70).
- `reviewer/MEMORY.md` + `investigator-codebase/MEMORY.md` over-cap (S71 same-role races REVIEW+INVEST) → ✅ **CLOSED S71 FINALIZE** (anh giao "review/double-check hoàn chỉnh toàn bộ" → FINALIZE double-check `wf_73de399d-753` audit 21 checklist item [0 code-defect, 3 deferred-gap] + curate `wf_f32987b8-03f`: reviewer 36.7→24.8KB + inv 29.8→23.2KB, both <25600 cap, archive +N -0 0-byte-loss; +reviewer-gist gen:2 + 3 user-memory G2/G3 [feedback_harness10_run_trace + 2 stale-claim fix] + budget.json re-measure + gitignore exit-trap CORRECTED). Race root-cause fixed cấu-trúc (hmw.js RUN-TRACE writeGuard).
- Review = static disk-truth (git/grep/node --check), KHÔNG curl/runtime (governance adap, no endpoint).

## Files (commit S71)
NEW: `runs/_ledger.md` · `runs/README.md` · `runs/2026-06-18-h10-{invest,implement,review}/{run.md,sub-md/,harvest/}`. MOD: `.gitignore` · `hmw.js` · `workflows/README.md` · `agents/README.md` · `harvest-curator.md` · `tooling-auditor.md` · `commands/session-{start,end}.md`. + `CLAUDE.md` (test-count flush 263→306, pre-existing, resolve H1 stale-flag). adap = governance/infra only, **0 production code · 306 test untouched**.
