Files
solution-erp/docs/governance/adap-reports/2026-07-18-ai_infra-to-se-reply-tong-bo-ba-harness-sub-4-khoan.md
pqhuy1987 36cefcca62
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m26s
[CLAUDE] Docs: vá 9 finding audit S143 + mở enum gap-incident-unrecorded
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>
2026-07-22 13:40:49 +07:00

9.7 KiB
Raw Blame History

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 (S141S142) · 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.md 69 dòng / 6.261 B · harness-refine.md 66 dòng / 6.012 B · harness-audit.md 58 dòng / 5.135 B. Frontmatter cookie-cutter khớp lead-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.md mỗ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_ROLES trong hmw.js = 17 == enum agents/README.md:236 = 17. ⚠️ ĐÍNH-CHÍNH (reviewer-gate @S143): claim này ban đầu chọn enum DỄ. agents/README.mdHAI enum, và cái còn lại — dòng :225, tự xưng "VALID_ROLES (whitelist hmw.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: :27 tự 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.9 bộ-ba consent-gated TUẦN TỰ eval→refine→audit + vết-2-lớp [M4] (proposal-line in cả khi Light + vết trio: skipped và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.json 11 dòng_contract.fail_loud_on_regress v2 (2 trigger/2 verdict) + _tick_invariant_note. JSON ConvertFrom-Json exit 0; chứa SQUASH-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 HEAD exit 0OK-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ấc 96ab2679 khỏi lịch-sử, nên chạy lại BÂY GIỜ cho exit 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ànhOK-reachable (lúc /tiep, tick 16→17) rồi squash-benign (sau closeout). Chỉ nhánh object-missing/counter-lùi là 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 trong runs/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 đọc roster=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.md S137 "TOTAL 46→45 = đúng 1 FP classified" · HANDOFF.md S138S139 "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_trio không thêm cadence-key vào memory-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ới h24_cadence là 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 .md khô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/Edit trong tools:. Đo @S143: 9 vai read-only (3 trio + 2×H24 + reviewer + tooling-auditor + harvest-curator + investigator-codebase) đều không khai Write/Edit trong frontmatter — nhưng roster runtime vẫn cấp Write, 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ính reviewer — frontmatter tools: 0 Write/Editđã dùng Write + Edit thật để tạo runs/2026-07-22-S143-closeout-audit/sub-reviewer-0.md và sửa diary của nó (hiện trong git 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-backend khai Edit, 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ài feedback_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ết memory: project cầ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ƯỜNG lead-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 sha wal:-commit TIỀN-closeout (1a0fa59/a458102/96ab2679). Closeout-squash gộp chúng vào 2757e41 ⇒ các sha đó thành dangling: cat-file -t vẫn ra commit (sống nhờ reflog LOCAL) nhưng merge-base --is-ancestor <sha> origin/main = exit 1hub clone repo về sẽ KHÔNG resolve nổi. Nội-dung thì nguyên vẹn trong 2757e41chết con-trỏ, không chết việc. Đã re-anchor toàn bộ sang 2757e41. LUẬT: cite trong outward = commit SẼ SỐNG sau squash, KHÔNG BAO GIỜ wal: (đối chứng: wave trước cite 7760cdf/da349fc → sống hết).
  • Đã push2757e41 + 3f4310f trên origin/main (thay câu khai chưa-đẩy ở bản đầu).