Migrate .claude/workflows/wave-*/ (gitignored) -> runs/<run-id>/ git-TRACKED (run.md+sub-md/+harvest/) + _ledger.md 2-beat + 3-layer anti-miss + containment model shift (B6 'any tracked-change=violation' -> 'tracked-change outside run-folder+code-disjoint=violation'). hmw.js wave->run-trace (accept args.run + alias). Review (R2+R3) caught C5 L1 over-claim -> fixed (em-main convention, engine no-fs). 3 run-id: wf_9c2cd2cd-2e7 / wf_e4e46725-231 / wf_636bc95b-939. 0 production code, state unchanged (Mig 53/88 tables/306 test/68 gotcha). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6.0 KiB
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_sha256ec32951a…— 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
wavenội-bộ hmw.js (acceptargs.runprimary +args.wavealias 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)
- 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").
- 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".
- 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. - C3 2-level (eligible vs committed) là bẫy thật — review bắt
git ls-filesrỗ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 --checkPARSE-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.md33.8KB (over-soft) +investigator-codebase/MEMORY.md29.8KB (S71 same-role races REVIEW+INVEST, content hợp-lệ additive) = curate-debt (consolidate + L1→L2 next budget-audit).- 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.