Audit 3 lane (reviewer FAIL 1C/4M/4m/1nit + 2 vai H24 = 6 FLAG), lead tự
re-đo từng finding trước khi vá.
CRITICAL/MAJOR:
- Re-anchor 5 adap-report: sha wal: tiền-closeout (1a0fa59/a458102/96ab2679)
dangling sau squash -> hub clone không resolve nổi. Đổi sang 2757e41.
LUẬT: cite outward = commit SẼ SỐNG sau squash, không bao giờ wal:.
- Đính chính claim OK-reachable: phép đo tự huỷ trong cùng phiên (squash lật
sang squash-benign). Sự thật mạnh hơn: cả 2 nhánh lành đã chạy runtime.
- TRIPLE 17/17/17 chọn enum dễ: README:225 (tự xưng "ĐỦ roster") còn 14 +
"4 monitor"; README:27 ("Roster THẬT") còn 14. Cả 2 vá -> 17/7.
- TOTAL 46 "== baseline" sai: baseline ghi trong repo là 45. Tách claim-DELTA
(bền) khỏi claim-TUYỆT-ĐỐI (phải neo commit+thời-điểm).
FLAG view-residual-asym: STATUS:450 + README:190 còn khai "NO Write/Edit" như
cơ-chế chặn -> sửa thành tuyên-bố ý-định (runtime vẫn cấp, 9/9 vai; nhân-chứng
reviewer đã Write+Edit thật).
FLAG gap-carry-dropped: HANDOFF carry 13 -> 14, trả [carry:session-model-adopt].
FLAG gap-decision-sunk: 3 mục "Chờ-anh" chìm 2 nhãn phiên -> lên NEXT anh (10)(11)(12).
Enum flag_classes 10 -> 11: +gap-incident-unrecorded (anh duyệt). Vai
lead-omission từ chối tự chế class và escalate đúng luật CLOSED-enum.
Bài học acceptance: AC4 grep theo SỐ nên 2 site liệt-kê-TÊN lọt lưới.
Lần sau đếm PHẦN TỬ rồi so canonical, đừng so hình-dạng chuỗi.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
9.7 KiB
adap-report — 2026-07-18-ai_infra-to-se-reply-tong-bo-ba-harness-sub-4-khoan
SE (SOLUTION_ERP) · wave adap đợt-9/10 (S141–S142) · run vòng-1
.claude/workflows/runs/2026-07-20-S141-adap-dot-9-10-bo-ba-sub/(chết giữa chừng, 5/13 partial-honest) + vòng-2 CẮT-GỌT.claude/workflows/runs/2026-07-22-S142-adap-9-10-vong-2/(wf_1e936b16-30c, 2/2 lane, 0 garble) · spec v2 = fable-clone 5-lane + fold TRỌN fable-real gate GO-WITH-FIXES 0C/7M/9n.
1. id-broadcast
2026-07-18-ai_infra-to-se-reply-tong-bo-ba-harness-sub-4-khoan (type reply; content_sha256 58e28baedf05…, re-verify tươi python scripts/stamp_verify.py exit 0 @S143 2026-07-22).
2. nấc G-011
executed-file / verified-pending-restart — khối (B) khuôn canonical bộ-ba đã thành 3 persona + 3 diary + wiring nhịp 2-đầu-phiên trên đĩa; khối (C) khoản ①(a) APPROVE đã thành contract v2 trong .session-counter.json. 🔴 3 vai trio CHƯA spawn lần nào — cần restart CLI + owner consent. CẤM đọc thành verified-runtime. verified = quyền hub.
3. evidence (đo thật)
- 3 persona (commit
2757e41):.claude/agents/harness-eval.md69 dòng / 6.261 B ·harness-refine.md66 dòng / 6.012 B ·harness-audit.md58 dòng / 5.135 B. Frontmatter cookie-cutter khớplead-view-auditor.md:model: opus+effort: max+memory: project+maxTurns: 18,tools:không liệt kê Write/Edit (⚠️ xem caveat §5 — điều này KHÔNG chứng minh runtime chặn được ghi). - 3 diary seed:
.claude/agent-memory/harness-{eval,refine,audit}/MEMORY.mdmỗi file 16 dòng, non-empty, khai thẳng "S141 seed, chưa chạy lần nào". - TRIPLE 17/17/17 (đo lại tươi @S143):
ls .claude/agents/*.md | grep -v README= 17 ==VALID_ROLEStronghmw.js= 17 == enumagents/README.md:236= 17. ⚠️ ĐÍNH-CHÍNH (reviewer-gate @S143): claim này ban đầu chọn enum DỄ.agents/README.mdcó HAI enum, và cái còn lại — dòng:225, tự xưng "VALID_ROLES (whitelisthmw.js— ĐỦ roster)" — lúc đó vẫn liệt 14, thiếu đúng 3 trio, kèm câu "4 monitor" (phải 7). Cùng lớp::27tự xưng "Roster THẬT" cũng còn 14. Cả 2 site đã vá @S143. Nguyên nhân lọt: acceptance AC4 của wave grep theo con số (roster 14|14/14|14 folder|14 vai) trong khi 2 site này liệt kê TÊN, không chứa số nào ⇒ 0 hit và bị đọc thành "sweep sạch". - Wiring nhịp:
session-start.md(30 dòng) thêm§2.1.9bộ-ba consent-gated TUẦN TỰ eval→refine→audit + vết-2-lớp [M4] (proposal-line in cả khi Light + vếttrio: skippedvào WAL) ·session-end.md(14 dòng) thêm§L.b(k)mirror + header(a)→(k). - Contract ①(a) (commit
2757e41; nội-dung land ở vòng-1, sha vòng-1 gốc đã squash):.claude/governance/.session-counter.json11 dòng —_contract.fail_loud_on_regressv2 (2 trigger/2 verdict) +_tick_invariant_note. JSONConvertFrom-Jsonexit 0; chứaSQUASH-BENIGN+transient. - Contract v2 chạy THẬT ngay phiên này: cửa
/tiep@S143 áp đúng 3-điều-kiện — counter không lùi (16=16) ·git merge-base --is-ancestor 96ab2679 HEADexit 0 →OK-reachable·git cat-file -t=commit⇒ không fail-loud, không squash-benign, tick 16→17. Đây là lần đầu contract v2 được hành-quyết ở runtime (nhánh OK-reachable). ⚠️ ĐÍNH-CHÍNH quan trọng (reviewer-gate @S143) — phép đo này TỰ HUỶ trong cùng phiên: closeout-squash cùng phiên đã nhấc96ab2679khỏi lịch-sử, nên chạy lại BÂY GIỜ choexit 1, và detector in[trace] SQUASH-BENIGN … expected closeout-squash drift. ⇒ ai đọc report rồi tự chạy lại sẽ thấy ngược với câu trên nếu không có ghi-chú này. Sự thật đầy đủ còn MẠNH HƠN bản khai đầu: trong CÙNG một phiên, contract v2 đã chạy runtime cả hai nhánh lành —OK-reachable(lúc/tiep, tick 16→17) rồisquash-benign(sau closeout). Chỉ nhánhobject-missing/counter-lùilà còn chưa gặp ca thật. - hmw.js (9 dòng):
VALID_ROLES+3 trio;writeGuard[n9] hoàn thiện enum read-only — thêm cả 4 monitor cũ (tooling-auditor,harvest-curator,lead-view-auditor,lead-omission-auditor, vốn thiếu sẵn = drift cũ) + 3 trio. - Detector suite (đo tại
2757e41, exit 0): claim bền = wave thêm 0 flag — có chứng before/after trongruns/2026-07-22-S142-adap-9-10-vong-2/sub-task-1.md(baseline=46 final=46+ Compare-Object 1 delta duy nhất = flag CŨ dời dòng 138→148).H25-role-notebookđọcroster=17 ; diaries-ok=17 ; flagged=0. ⚠️ ĐÍNH-CHÍNH (reviewer-gate @S143): bản đầu viết "TOTAL 46 == baseline 46" — chữ "baseline" ở đó là số sống lúc chạy, KHÔNG phải baseline ghi trong repo. Baseline ghi gần nhất là 45 (STATUS.mdS137 "TOTAL 46→45 = đúng 1 FP classified" ·HANDOFF.mdS138–S139 "live TOTAL 45 giữ"). Con số đã đi 45 → 46 (chưa ai giải trình) → 47 (sau closeout S143). ⇒ LUẬT rút ra: số tuyệt-đối publish ra ngoài phải neo commit + thời-điểm; tách claim-DELTA (bền, có Compare-Object) khỏi claim-TUYỆT-ĐỐI (thối theo giờ, hub chạy lại sẽ ra số khác và đọc thành SE khai sai).
4. tailored-gì + skip-gì-vì-sao
- Tailored (FORM SE, giữ FUNCTION-floor): khuôn 5-câu của hub map vào topology SẴN CÓ của SE — 3 vai monitor
INFORM-only / propose-only, single-writer = lead (đúng khuôn 4 monitor H1/H2/H24 đã chạy). Nhịp "2-đầu-phiên" gắn vào 2 lệnh vòng-đời sẵn (session-start §2.1.9·session-end §L.b(k)) — 0 lệnh mới. - Tailored — consent-gate: hub cho phép chạy theo nhịp; SE thêm cổng consent (owner gật mới chạy, mirror
sleep-check §2.1.2) + vết-skip vào WAL để chuỗi bỏ-qua nhìn thấy được. Đây là siết CHẶT hơn floor, không nới. - Form-deviation khai thẳng [n1]: hub câu-5a khuyên ghim full-id model; SE dùng alias
model: opus. Lý do: alias là dạng đã được đo (d68de5e7— H23 precedence tested, n-nhỏ ≥2 dự-án), full-id n=0 chưa ai thử. Chọn dạng-đã-test có chủ đích, không phải bỏ sót. - Skip:
harness_triokhông thêm cadence-key vàomemory-budget.json— luật TUẦN-TỰ đã sống ở§2.1.9+ trong chính persona; thêm key thứ hai = 2 đồng-hồ cho 1 nhịp (trộn vớih24_cadencelà hỏng cả hai). Skip có lý do, không phải behind.
5. honest-caveat
- 🔴 Trio chưa spawn lần nào. Toàn bộ nấc trên là file-level. Agent
.mdkhông hot-reload ⇒ phải restart CLI + owner consent mới có spawn-probe 3/3. Nếu first-run lộ sai contract, nấc phải hạ. - 🔴 "Chặn-bằng-thiếu-tool" KHÔNG có răng ở runtime — overclaim đã sửa (G-015). Spec A1 chốt enforcement là không liệt kê
Write/Edittrongtools:. Đo @S143: 9 vai read-only (3 trio + 2×H24 +reviewer+tooling-auditor+harvest-curator+investigator-codebase) đều không khaiWrite/Edittrong frontmatter — nhưng roster runtime vẫn cấpWrite, Edit, nối ở cuối danh sách tool. (Bản đầu khai "6 vai" = under-count; reviewer-gate đếm đủ 9.) 🔴 Nay có NHÂN-CHỨNG TRỰC-TIẾP, không còn là suy-luận từ vị-trí: chínhreviewer— frontmattertools:0Write/Edit— đã dùng Write + Edit thật để tạoruns/2026-07-22-S143-closeout-audit/sub-reviewer-0.mdvà sửa diary của nó (hiện tronggit status). Vai bị cấm trên giấy đã ghi được, và git-diff bắt tại chỗ. Đối chứng phân biệt:implementer-backendkhaiEdit, Writeở vị-trí 2-3 và runtime hiện đúng thứ tự file ⇒ 6 vai kia là append thêm lúc chạy, không phải đọc từ file. ⇒ Whitelist frontmatter = tuyên-bố ý-định, KHÔNG phải cơ-chế chặn. Backstop THẬT vẫn là git-diff commit-gate + single-writer lead (đúng bàifeedback_monitor_residual_write_containment, nay mạnh hơn: không chỉ Bash-write mà Write/Edit được cấp thẳng). Cơ-chế vì sao harness append thì SE chưa xác định (giả-thuyếtmemory: projectcần ghi diary — chưa kiểm, không khai thành sự thật). - Ranh refine ⟂ lead-omission chờ ratify: persona
harness-refineđã ghi ranh sắc (LEAD session hot-feed/carry/work-state → NHƯỜNGlead-omission-auditor; refine CHỈ acts agent-memory corpus). Ranh này là SE tự vạch, chưa được hub/owner ratify. - 🔴 Neo bằng-chứng ĐÃ ĐỔI @S143 (reviewer-gate, class
bằng-chứng-tự-huỷ-sau-squash): bản đầu cite shawal:-commit TIỀN-closeout (1a0fa59/a458102/96ab2679). Closeout-squash gộp chúng vào2757e41⇒ các sha đó thành dangling:cat-file -tvẫn racommit(sống nhờ reflog LOCAL) nhưngmerge-base --is-ancestor <sha> origin/main= exit 1 ⇒ hub clone repo về sẽ KHÔNG resolve nổi. Nội-dung thì nguyên vẹn trong2757e41⇒ chết con-trỏ, không chết việc. Đã re-anchor toàn bộ sang2757e41. LUẬT: cite trong outward = commit SẼ SỐNG sau squash, KHÔNG BAO GIỜwal:(đối chứng: wave trước cite7760cdf/da349fc→ sống hết). - ✅ Đã push —
2757e41+3f4310ftrênorigin/main(thay câu khai chưa-đẩy ở bản đầu).