Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5.3 KiB
name, description, metadata
| name | description | metadata | ||||||
|---|---|---|---|---|---|---|---|---|
| feedback_harness10_run_trace | Harness-10 adopt (S71 subfolder → S72 FLAT-refine) — git-tracked run-trace folder runs/<run-id>/ supersedes wave-folder; flat files (sub-<role>-<i>.md + <stage>-synthesis.md, no subdir); containment flip; engine-no-fs + raw-Workflow≠wrapper-guard (RECURRED S72) + check-ignore-trap + detector-tailored-out lessons |
|
Adopt AI_INFRA Harness-10 (S71, 2026-06-18, commit 8c47bd0) — quy ước thư mục lưu-vết mỗi workflow run. Supersedes Harness-2 wave-folder (feedback_harness_123_adoption bullet wave-mode).
Cốt lõi: mỗi workflow run → .claude/workflows/runs/<run-id>/ git-TRACKED, cấu-trúc FLAT (S72 refine h10-flat-detector-refine): file phẳng cùng cấp run.md (plan) + sub-<role>-<i>.md (per-sub RAW, prefix sub-) + <stage>-synthesis.md (gom VERIFIED, suffix) — phân biệt bằng TÊN, KHÔNG subfolder. (S71 dùng sub-md/+harvest/ subdir; S72 migrate flat — engine chỉ tạo file 1-cấp tự-nhiên, bỏ điểm-quên-dựng-subdir; 5 run cũ GIỮ subfolder, close-gate dual-accept C8.) + _ledger.md 2-nhịp (OPEN-beat lúc mở / CLOSE-beat lúc đóng; orphan = OPEN-không-CLOSE → giải-quyết-cứng). 3-layer anti-miss: L1 (em-main @P1 đọc ledger — run trước closed=⏳ chưa-harvest → harvest+CLOSE TRƯỚC khi mở run mới) · L2 (session-start scan runs/* orphan) · L3 (session-end close-gate idempotent VERIFY-không-re-APPEND, chống DUPLICATE-HARVEST).
Containment model FLIP: Harness-2 B6 "wave-*/ gitignored → mọi tracked-change post-workflow = stray-write" → Harness-10 "run-folder TRACKED → HIỆN trong git-diff = audit trực-tiếp; tracked-change NGOÀI runs/<run-id>/ + code-disjoint đã giao = vi-phạm". Mạnh hơn (sub-MD writes giờ thấy trong diff). G-015 giữ: TRACKED ≠ read-only-enforced (sub vẫn Bash); containment THẬT = em-main single-writer + git-diff + chunk-count.
Why: wave-folder gitignored = "vật-chất-tối" thứ 2 (như L2 archive feedback_harness9_l2_recovery_2workflow_adap) — không truy được lại đã làm gì. Tracked run-folder = audit-trail bền.
How to apply (3 lesson hard-won S71):
- Engine no-fs → scaffold = em-main @P1 = fragile-point (C2). hmw.js JS-sandbox KHÔNG tạo folder/ghi file → run-trace dựa 100% vào em-main Write @P1. Quên scaffold = lỗ-hổng âm-thầm (run OK, chỉ mất dấu-vết, KHÔNG lỗi runtime để bắt). 3-layer = LƯỚI muộn, KHÔNG khoá-cứng-lúc-fire.
- Custom workflow (≠ hmw.js) PHẢI copy return-delta-guard. hmw.js DEFAULT-mode cấm sub tự-ghi MEMORY (return-delta-only → em-main APPEND). Workflow tự-soạn thiếu guard → parallel same-role subs đua ghi MEMORY.md chung ("file modified since read") + bloat over-cap — chính là cái gây G1 curate S71 (4 investigator + 3 reviewer tự-ghi → reviewer 36.7KB/inv 29.8KB). Custom script PHẢI tự thêm guard hoặc dùng file-disjoint 1-sub/file. RECURRED S72 (confirm lesson real): chạy REVIEW qua RAW Workflow tool (KHÔNG qua hmw.js wrapper) → KHÔNG inject writeGuard → 1 reviewer tự ghi
agent-memory/reviewer/MEMORY.md(+2850B over-cap) → em-main git-status containment-check BẮT @session-end + revert (record ở run-trace, B3 restored). → dùng RAW Workflow tool = MẤT governance của project-wrapper (writeGuard/return-delta); phải dùnghmw.jsHOẶC replicate guard trong prompt raw-Workflow. - check-ignore exit-code (CORRECTED — đừng nhớ nhầm): plain
git check-ignore Xexit 1 cho path negation/re-included (KHÔNG phải 0). Chỉgit check-ignore -v --no-indexmới cho 0 ở CẢ negation lẫn ignore. Verify đúng:git check-ignore X && echo IGNORED || echo NOT(idiom cho verdict đúng) HOẶCgit ls-files Xnon-empty (= committed). C3 2-level: tracked-eligible (check-ignore NOT-IGNORED) ≠ committed (git ls-filesra file) — phảigit addmới đủ nấc.
S72 thêm (flat-refine + checklist-v2 adopt, re-audit 3-workflow): (a) detector chống-lách-engine (refine-b) TAILORED-OUT cho SE — SE chạy qua Anthropic Workflow tool (KHÔNG có CLI-launcher để lách như node-CLI) → bypass-surface ~N/A; containment hiện-hữu (git-diff + tracked-run + ledger orphan-scan G-015) đã phủ; refine nói detector = project-internal-choice → SE document tailored-out, KHÔNG cargo-cult build (anh chốt). (b) dogfood B2 value chứng-minh THẬT: REVIEW workflow RIÊNG bắt 2 lỗi IMPLEMENT-self-assess sót (hmw.js:52 schema-stale-path + sleep-cmd auto-check un-wired overclaim) → 1-workflow-tự-chấm SẼ ship cả 2. (c) /sleep-recovery-memory-l2 port §J2-tailored SE-only (A8) — sleep all lần đầu = NO-OP (mọi period đã gisted S70/S71; guards fired đúng). 3 run-id S72: audit wf_13868efb / implement wf_ac43b5ff / review wf_d482e10d. adap-report 2026-06-18-Governance-harness-10-flat-refine-checklist-v2 + email 5f511fe5.
Link: feedback_harness9_l2_recovery_2workflow_adap · feedback_workflow_fanout_reliability · feedback_agent_kill_recovery · feedback_monitor_residual_write_containment.