Files
solution-erp/.claude/workflows/runs/2026-07-17-S138-adap-3-ban-17-07/sub-investigator-codebase-0.md
2026-07-17 22:29:06 +07:00

30 KiB
Raw Blame History

sub-investigator-codebase-0 — S138 adap 3 bản AI_INFRA 17-07 (invest + SPEC-PROPOSAL)

Engine: /fable-real single deep-pass (anh gán đích-danh). PROPOSE-ONLY — lead verify rồi ghi spec. 3 bản đọc TRỌN: đính-chính-kép 624c378d (update) · master-checklist cadd24ae (new) · năm-quyết 123d8272 (new digest). Mọi số đếm dưới = ĐÃ chạy lệnh (lệnh ghi kèm §7). Ghi-đĩa-trong-lúc-làm (bài S123 — chống #53 garble).


§1 — PROJECT-FIT per-khoản (CẢ 3 bản)

Bản Khoản FIT Nấc 1-dòng
1 đính-chính-kép Δ1 nhãn grounded sót kiểm-kê ADOPT cần-implement-NHỎ Re-grep 5-nhãn ĐÃ chạy trong invest này = 0 hằng-số grounded mọi bề-mặt sống; NHƯNG .claude/agents/reviewer.md:46 câu cửa-duyệt chép đúng danh-sách 4-nhãn LỖI của hub → vá +grounded (1-từ)
1 đính-chính-kép Δ2 ext-filter Office ADOPT already-compliant (SE-originated) SE CHÍNH LÀ dự-án báo 13 dương-giả (broadcasts/outbox/ai_infra/2026-07-16-se-to-ai_infra-adap-2-errata-report.md:20); script standing agent-frontmatter-eol-check.ps1 KHÔNG dùng ext-filter (byte-level CR, scope .claude MD-only) → 0 chỗ sửa
2 master-checklist Sàn-1 hai tầng / 4 nhóm ADOPT cần-implement Tầng-1 có (Plan cha/con Phase 3/4 + WAL goal); tầng-2 hiện 3-state (🟢🟡⚪ / [x][!][ ]), nhóm chờ-anh nằm TÁCH (work-state §2.1.5-3 + HANDOFF NEXT-anh) — chưa hợp nhất 1 VIEW 4-nhóm
2 master-checklist Sàn-2 mọi cửa ADOPT cần-implement (2/4 cửa) Mở/đóng ĐỦ; /pause in 5-ý (goal + [!] đầu — không full 2-tầng); /tiep in reconcile không in checklist tổng
2 master-checklist Sàn-3 VIEW ≠ SOURCE already Negative-verify: 0 file checklist nguồn-đôi (chỉ docs/guides/security-checklist.md khác nghĩa + broadcast inbox); nguồn durable = WAL/STATUS/HANDOFF/ACTIVE-MARKS/migration-todos
2 master-checklist Sàn-4 carry khép + máy đối-chiếu already HANDOFF re-stamp §L.b(j)(iv) + carry-age H24-2 (governance-detectors.ps1:24-26) + Sàn-3 4-tín-hiệu (tiep.md §0) + Sàn-5 run-vs-marker (session-end.md:70-96) + 5 class gap-* omission
2 master-checklist Sàn-5 chờ-owner đánh số already (+1 dòng luật-hoá) docs/HANDOFF.md:7 NEXT anh (1)…(6) numbered + [carry:] stamps; L11 prev cũng numbered — de-facto, chưa thành câu luật
3 năm-quyết K1 đóng-băng bề-mặt-đo ADOPT cần-implement-NHẸ (1-2 câu) 5 script đo mapped read-zones (§3.4); WAL nằm NGOÀI bề-mặt-đo cả 5 → ngoại-lệ WAL đúng như hub; exposure thấp (lead single-writer sequential) — khai thật
3 năm-quyết K2 cite 2-nấc máy kiểm ADOPT cần-implement (detector C6) C1 hiện CHỈ gotcha-ref + wikilink (:17-18) — 0 resolver path:line; volume đo 291 occurrence (§7.4)
3 năm-quyết K3 hứa-máy phải quét thật already-by-sweep Sweep ĐÃ chạy: 3 hit ngoài lineage, 3/3 trace được mã thật (§3.6) → candidate-list cho anh = RỖNG
3 năm-quyết K4 ngoại-lệ relay-attribution ADOPT cần-implement-NHẸ (1 câu) + n-a phần máy SE có 2 luật lớp-từ tương-đương (G-011 "KHÔNG tự khai verified" + measured-label gate :46); practice đã attribution-cạnh-verb tự nhiên; chưa có scanner lớp-từ → ranh máy = n-a, ghi nguyên-tắc
3 năm-quyết K5 pending-flip detector ADOPT cần-implement (H24-4) Cặp SE = {HANDOFF/STATUS token chờ ⟷ ACTIVE-MARKS RC-stamps}; ca THẬT ×2 (§3.8); hiện bắt bằng H24 mắt-người theo NHỊP — đúng giai-đoạn hub trước khi máy-hoá
3 năm-quyết K6.1 file-đo phải commit PARTIAL-already (+2 dòng) memory-triple 3 dòng ĐÃ commit (sessions/2026-07-17-S135-S137…:25-28) + mfe strikes persist .mfe-state.json tracked; detector-TOTAL + nhịp-nợ = narrative-only
3 năm-quyết K6.2 re-base = số SỐNG already-by-practice (+1 câu luật) Sleep-baseline "đo tươi Get-Item" dated · TOTAL 46→45 đo cùng commit 7760cdf · RAG 2441 re-verify live; chưa có CÂU LUẬT tổng-quát (generalize E-010)
3 năm-quyết K7 thứ-tự đọc 4 bản already Khung-nhịp 3daf5ee4 + năm-vòng f71c5b65 adopted S135-S137 (docs/HANDOFF.md:5); digest đứng sau = wave này

§2 — Bản 1: grounding 2 delta

Δ1 — nhãn grounded

  • Chứng SE kiểm-kê thiếu grounded: docs/governance/adap-reports/2026-07-16-Governance-vong-tu-bao-tri-thu-nam-san-su-that-nhan-da-do.md:27 — bảng kiểm-kê transcribe grep calibrat|measured|empirical|đã-đo (đúng 4 nhãn, mirror lỗi §4 hub).
  • Re-grep grounded (invest này — kết quả 0 hằng-số):
    • scripts/ = 0 hit · hmw.js = 0 · .claude/agent-memory/memory-budget.json = 0 (grep 4-pattern gồm grounded: các dòng match :72/:74/:83/:88/:90/:142 đều là measured/calibrat-prose đã xử S127-S129, KHÔNG dòng nào chứa grounded).
    • .claude/ = 10 occ / 9 file — TOÀN archive agent-memory + workflow-runs (lineage/mention, vd tooling-auditor/archive/2026-07.md, run S124/S127 sub-reviewer) — không phải hằng-số sống.
    • docs/ = 8 hit — toàn prose động-từ/lineage: "Empirical-grounded" (docs/guides/multi-agent-setup-guide.md:5), "recon-grounded" (error-ledger.md:94), "re-grounded counts" (BROADCAST-OUT…:15), "Ground S121 bằng đếm mã-nguồn" (docs/STATUS.md:448 row Policies). 0 hằng-số mang nhãn.
  • 🔴 LANDING-SITE THẬT (surprise): .claude/agents/reviewer.md:46 câu cửa-duyệt sống: "…con-số mang nhãn đo-lường (measured/empirical/calibrated/đã-đo)?"4 nhãn, THIẾU grounded = SE đã CHÉP danh-sách kiểm-kê lỗi của hub vào LUẬT SỐNG. Δ1 áp thẳng: vá :46 thêm grounded (1-từ). Agent .md no hot-reload → nấc sau vá = executed→verified-pending (mirror E3 cũ, adap-report vòng-5 :60).
  • Trớ-trêu đúng kiểu hub tả: hằng-số hub sống 42 phiên tự dán "Grounded in real measurements" — SE không có hằng-số grounded, nhưng có LUẬT-4-nhãn sẽ bỏ sót đúng nhãn đó nếu mai có.

Δ2 — ext-filter Office

  • SE-originated: broadcasts/outbox/ai_infra/2026-07-16-se-to-ai_infra-adap-2-errata-report.md:20 — phát-hiện-riêng #1: "Filter mẫu lỗ #4 của erratum THIẾU docx/xlsx/pptx/dll — chạy nguyên-mẫu … trên SE cho 13 dương-giả (12 .docx + 1 .xlsx)". Broadcast :33 "một dự-án … tự bắt, tự báo, kèm số — hub xác nhận" + :61 ghi công = chính SE.
  • Standing check KHÔNG cần sửa: scripts/agent-frontmatter-eol-check.ps1 scope = .claude/{agents,commands,skills} MD-only (:253-257 scopeSpecs), đếm BYTE CR 0x0D (:135-198 Measure-EolBytes) — KHÔNG hề dùng ext-filter/i/-text → filter Office không có chỗ đứng trong script. Check lone-CR i/-text = one-time S129 (adap-report erratum :12 — filter SE-tailored → 0 suspect; "giữ làm regression-guard" = nghĩa là file text mới lone-CR sẽ rơi vào i/-text khi CÓ AI chạy lại lệnh đó, KHÔNG phải script standing).
  • Nguyên-tắc tailor đã ghi 2 chỗ: adap-report erratum :12 + chính thư outbox :20 đề-nghị hub thêm câu tailor (hub nhận → thành Δ2 tầng-2). → nấc: already-compliant, evidence-đủ; hành-động = ghi-nhận trong adap-report mới, 0 code.

§3 — Bản 2 + 3: grounding chi-tiết

3.1 Bốn cửa vòng-đời — hiện in gì

Cửa Hiện in Evidence
/session-start Phase 3 REPORT: Plan cha/con/task tree 3-state (🟢🟡) + agent assignment + critical signal session-start.md:238-260
Work-state block 4 thành-phần (roadmap · WIP · pending-decisions · recurring-bugs) :151-161 (§2.1.5)
H24 tick + dòng-nợ 3-vế nhip-no-probe.ps1 :181-207 (§2.1.8)
/session-end Phase 4 REPORT: Plan tree 3-state + done/commit-SHA/CI verdict session-end.md:147-163
§L.b(a) STATUS Recently-Done 1-dòng + (j)(iv) RE-STAMP carry mọi carry mở :54 + :102-105
§6.4 reset WAL template rỗng :253-257
/pause WAL ghi-đè: chain ĐẦY-ĐỦ [x][!][ ] + evidence + next + verify pause.md:23-27
Báo 5-ý: goal · [!] đầu · wf bỏ lại · "an-toàn thoát" · dòng-nợ :38-44
/tiep Sàn-3 4-tín-hiệu → đọc WAL → verify ground-truth thắng → nối từ next: tiep.md:27-34, :98-116

3.2 Sàn-1/2 gap cụ thể

  • Tầng-2 bốn nhóm {xong · đang-dở+breakdown · chờ-owner · chưa-làm}: SE task-tree = 3-state; nhóm chờ-owner sống TÁCH ở work-state §2.1.5-3 (session-start only) + HANDOFF NEXT-anh (đọc thủ-công). /pause//tiep KHÔNG in khối chờ-anh.
  • Đóng-phiên "tổng-hợp chốt: arc nào đóng + mục chưa-đóng đi đâu": Phase 4 in plan-state nhưng không có câu bắt-buộc "mỗi mục chưa-đóng → chỉ đích carry-slug/WAL-line".

3.3 Sàn-3/4/5 — already, evidence

  • 0 nguồn-đôi: find -iname "*checklist*.md" → 2 hit: docs/guides/security-checklist.md (khác nghĩa) + broadcast inbox. KHÔNG có checklist trạng-thái-việc nguồn-đôi.
  • Máy đối-chiếu carry: H24-2 carry-age (governance-detectors.ps1:24-26 — streak [carry:<slug>] ≥M most-recent carry-lines, M từ config) + nghi-thức RE-STAMP (session-end.md:102-105 — vá vacuous streak≡1 @S122) + Sàn-3 (tiep.md:27-34) + Sàn-5 (session-end.md:70-96).
  • Numbered: docs/HANDOFF.md:7 (mega-line, segment hiện-hành): "NEXT anh:** (1) UAT script lũy-kế… (2) UAT freeze-NS… (3) ⚑ D1… (4) hook-cap… (5) ⚑ DP-2… (6) ⚑ DP-5…" — mỗi khoản kèm [carry:<slug>].

3.4 K1 — read-zones 5 script đo (bề-mặt-đo)

Script Vùng ĐỌC Evidence
measure-agent-memory.ps1 .claude/agent-memory/*/MEMORY.md + archive/*.md :5 ($Root) + :10-19
memory-archive-gate.ps1 .claude/agent-memory/** (MEMORY.md, memory-budget.json, .archive-strikes.json, archive/_INDEX.md) :36-38, :106-111, :247-252
mfe-eval.ps1 budget.json + .claude/governance/ACTIVE-MARKS.md + docs/governance/error-ledger.md + docs/gotchas.md + .claude/agents/*.md + agent-memory/<role>/MEMORY.md; GHI .claude/agent-memory/.mfe-state.json :42-52, :220, :241 + erratum-report lỗ#6
crystallized-backfill.ps1 agent-memory + budget.json + hotload set {docs/STATUS.md · docs/HANDOFF.md · CLAUDE.md(?) · docs/changelog/migration-todos.md} :54-57 + default-hotload block (sed :60-110 → :15-18)
nhip-no-probe.ps1 .claude/governance/.session-counter.json + budget.json + agent-memory/*/MEMORY.md + workflows/runs/*/run.md :61-62, :107-110, :126-129
  • Union bề-mặt-đo: .claude/agent-memory/** + .claude/governance/{.session-counter.json, ACTIVE-MARKS.md} + docs/{STATUS,HANDOFF,gotchas}.md + docs/governance/error-ledger.md + docs/changelog/migration-todos.md + .claude/agents/*.md + .claude/workflows/runs/*/run.md.
  • WAL.md KHÔNG nằm trong vùng đọc của cả 5 → ngoại-lệ WAL của hub áp thẳng, đúng bản-chất SE luôn.
  • Ca nội-tại đáng khai: mfe-eval.ps1 vừa ĐO vừa GHI .mfe-state.json vào agent-memory root (vùng script khác đo — nhưng dotfile root KHÔNG nằm trong tập đếm của measure/archive-gate [chỉ enumerate -Directory + MEMORY.md/archive] → benign; khai thành ngoại-lệ "bộ-đo tự ghi state" trong câu luật).
  • Race THẬT của SE: thứ-tự §L.b = (c) ĐO trước → (d) flush agent-memory SAU → sequential single-writer nên không đè-giữa-lúc-đo; exposure = sub background return giữa closeout (hiếm). Bài S135 UNION-window cùng họ (detector closeout đo per-label window vì wal-flush dời delta).

3.5 K2 — cite path:line hiện-trạng + volume

  • governance-detectors.ps1:17-18 — C1 CHỈ có (a) gotcha-ref (b) dangling wikilink. 0 resolver path:line. Suite hiện: C1(a,b)/C2-B3/C3/C4/H24-1/H24-2/H24-3 (+H25 fold) — TOTAL FLAGS print :1122; baseline repo = 45 (STATUS.md:465 S137 "TOTAL 46→45").
  • Volume: 291 occurrence cite-shape (lệnh §7.4) = docs/governance 276 (adap-reports 90 + rest 186) + commands 10 + agents 5.
  • Helper sẵn: Test-Quoted (:598 — SHARED H24-1/H24-3, enclosure use⟂mention) + Test-Excluded C4 (:113) + fence-tracking đã có tiền-lệ trong H24 matchers.
  • Honest-limit khai trước: 2-nấc bắt GÃY-CỨNG (file mất / line>EOF); KHÔNG bắt TRÔI-MỀM trong-EOF (class S108 cite-drift ±1-2 vẫn lọt — hub cùng giới-hạn).

3.6 K3 — sweep câu hứa-máy (ĐÃ CHẠY, kết quả RỖNG)

Grep rộng (lệnh §7.5) ngoài lineage → đúng 3 hit, cả 3 trace mã thật:

  1. session-end.md:103 "carry-age detector đo streak" → governance-detectors.ps1 H24-2 (:24-26). REAL.
  2. tiep.md:70 "máy bắt được" (dạng-1) → block bash DUAL-ACCEPT tiep.md:41-53 + close-gate session-end §L.b(f). REAL.
  3. tiep.md:73 "máy bắt được ngay" (tái-sinh dạng-3) → cùng block (dạng-3 đã gỡ ⇒ run.md-only → ORPHAN flag). REAL. Phụ: session-start.md:206 "H24-2 fail-loud nếu key thiếu" → real (config-key check). ⇒ 0 câu hứa-máy không mã — candidate-list (a)implement/(b)hạ-chữ = RỖNG, trình anh đúng 1 dòng kết-quả.

3.7 K4 — luật lớp-từ SE hiện có

  • G-011 nấc agreed/executed/verified + "🔴 KHÔNG tự khai verified" — usage khắp adap-reports (vd vòng-5 :17 + :100); surprise: 0 định-nghĩa canonical trong SE (grep G-011 ngoài adap-reports = 0 hit; error-ledger + engine đều không có) = hub-convention import ngầm.
  • Measured-label gate reviewer.md:46 — hạn-chế nhãn đo-lường + 3 lối thoát.
  • Practice attribution-cạnh-verb ĐÃ tự nhiên: mọi verb-durable đều kèm anh chốt "…" / anh-confirm S<nn> / RC-… (vd ACTIVE-MARKS :34 " RESOLVED @S130 (anh confirm qua AskUserQuestion…)"; budget _owner_override_note quote nguyên văn lời anh S129).
  • Không có scanner lớp-từ → ranh máy-kiểm = n-a phần máy; ghi NGUYÊN-TẮC 1 câu (nếu mai port scanner → Test-Quoted BẮT BUỘC vì mọi doc mô tả luật này đều chứa verb-durable).

3.8 K5 — pending-flip: cặp SE + 2 ca THẬT

  • Cặp: {token chờ trong docs/HANDOFF.md (+ docs/STATUS.md) ⟷ sổ chữ-ký .claude/governance/ACTIVE-MARKS.md (RC-stamps + chú-thích RESOLVED)}.
  • Ca thật #1 (mark-carry): ACTIVE-MARKS :33-34 — câu treo "treo cho anh quyết: mark MỚI hay chú-thích đủ?" sống S123→S129 chỉ trong history; " RESOLVED @S130 … near-miss lớp-4 'trạng-thái cũ như chân-lý' — bắt @S129 bằng grep-đĩa, đóng @S130".
  • Ca thật #2 (S137): HANDOFF "2 đề-xuất S131 CHỜ GẬT (wire tick H24 vào /tiep + light-run owner-triggered)" trong khi CẢ HAI đã actioned (tiep.md §2.5 tick ĐÃ wire + light-run ĐÃ chạy S137) — H24 lead-view-auditor FLAG view-stale-status, FIXED cùng phiên (session-log S135-S137 :11; STATUS :465). Token cũ còn ở segment lineage HANDOFF:15/:19 (frozen Prev — minh-hoạ dương-giả nếu detector quét cả file).
  • Volume token: HANDOFF = 7 dòng mang CHỜ GẬT|CHỜ ANH|chờ anh, STATUS = 14 dòng (đa số lineage).
  • Honest-limit: class ca#2 (đề-xuất → landed-in-CODE, không mark) KHÔNG máy-hoá được bằng cặp này (nguồn-resolve = nội-dung file đích tuỳ-ý) → vẫn thuộc H24 mắt-người; máy chỉ ăn class ca#1 (mark-adjacent).

3.9 K6 — hai kỷ-luật đo

  • 6.1: memory-triple 3 dòng COMMITTED — docs/changelog/sessions/2026-07-17-S135-S137-adap-khung-nhip-nam-vong.md:25-28 (do=measure exit 0 · de-xuat=archive-gate DRY exit 0 · kiem=mfe GOODHART-WARN 21→23). .mfe-state.json = tracked (strikes persist trong git — erratum lỗ#6). Detector-TOTAL + nhịp-nợ chỉ nằm narrative/commit-msg (7760cdf "TOTAL 46->45") — có vết de-facto nhưng KHÔNG luật.
  • 6.2: practice đúng sẵn: sleep-baseline "baseline 17-07 ≈183KB/5 file — đo TƯƠI (Get-Item).Length CẤM Get-Content (E-010)" (session-start.md:131 + session-end.md:56 + HANDOFF:7 số sống 183.054B) · TOTAL 46→45 đo trước-sau cùng commit · RAG 2441 re-verify live S126 (STATUS row). E-010 sẵn ở error-ledger.md (:35/:57/:72 AS-14). GAP = chưa có câu luật TỔNG-QUÁT "re-base = đọc số sống lúc ghi, kể cả từ ghi-chú của chính mình".

§4 — SPEC-PROPOSAL 3-mục (PROPOSE-ONLY — lead verify + ghi)

① Đề-bài

Adopt wave 3 bản AI_INFRA 17-07: (A) re-verify 2 delta bản đính-chính-kép — vá grounded vào câu cửa-duyệt reviewer.md:46 (landing-site thật) + ghi-nhận Δ2 SE-originated, KHÔNG adopt lại 2 bản gốc; (B) nâng 4 cửa vòng-đời phiên đạt 5 điểm sàn master-checklist HAI TẦNG — VIEW derive tươi từ WAL/STATUS/HANDOFF/ACTIVE-MARKS, CẤM file nguồn mới; (C) áp 5 quyết + 2 kỷ-luật đo: 1 câu đóng-băng-bề-mặt-đo, detector C6 cite-2-nấc, sweep hứa-máy (đã chạy = 0 unbacked, chỉ ghi-nhận), 1 câu ngoại-lệ relay-attribution, detector H24-4 pending-flip (scope mark-adjacent), +2 dòng do-record vào memory-triple, +1 câu luật re-base-số-sống. Add-only (§F4.1); số nhịp/cadence = 0 đổi (quyền anh); 2 detector mới = INFORM-only exit-0 nhất-quán suite.

② Cách implement per-khoản

(A1) Δ1 — reviewer.md:46: thêm grounded vào ngoặc nhãn: (measured/empirical/calibrated/grounded/đã-đo). 1-từ, em-main single-writer micro-edit (agent .md — restart note, nấc executed→verified-pending mirror E3). Adap-report bản-1 ghi kết-quả re-grep 5-nhãn (số ở §7.1-7.3, 0 hằng-số grounded) + Δ2 evidence SE-originated (outbox :20).

(B) Master-checklist — 4 file cửa, khối "CHECKLIST 2-TẦNG" chung 1 khuôn (VIEW-derive):

  • Khuôn in (đặt tên vd MASTER-CHECKLIST): Tầng-1 = mỗi arc 1 dòng {đóng·đang·chưa} (nguồn: STATUS Phase-line + Plan cha/con + WAL goal); Tầng-2 = 4 nhóm: xong (WAL [x] + Recently-Done phiên này) · đang-dở + breakdown (WAL [!] + chain evidence: đã-xong-gì/đang-giữa-gì/còn-gì) · chờ-anh — LUÔN ĐÁNH SỐ (HANDOFF NEXT-anh numbered + ⚑ pending-decisions + mark treo ACTIVE-MARKS) · chưa-làm/hẹn-cuối-phiên (WAL [ ] + NEXT-em, tách từng khoản).
  • session-start.md Phase 3: nâng template REPORT — thêm khối Tầng-2 4-nhóm (work-state §2.1.5 giữ nguyên, REPORT trỏ nó làm nguồn; nhóm chờ-anh BẮT BUỘC đánh số).
  • session-end.md Phase 4: thêm "TỔNG-HỢP CHỐT": arc nào ĐÓNG trong phiên + MỌI mục chưa-đóng → chỉ đích nơi đổ (carry-slug HANDOFF / WAL-line / STATUS-row) — khép sàn-4 bằng câu tường-minh; +1 dòng luật-hoá sàn-5 tại §L.b(j)(iv): "khối chờ-anh trong HANDOFF LUÔN đánh số (owner trả lời bằng số)".
  • pause.md bước 5: +ý-6 "in MASTER-CHECKLIST rút-gọn (Tầng-1 + đếm 4-nhóm + liệt chờ-anh đánh số) — derive từ WAL vừa ghi + HANDOFF, KHÔNG file mới".
  • tiep.md §3-bis (sau ground-truth-thắng): "in MASTER-CHECKLIST cập-nhật từ WAL đã reconcile (cái vừa xong · vẫn treo · chờ-anh đánh số)".
  • 🔴 CẤM tạo checklist.md — ghi thẳng câu cấm vào khuôn (sàn-3). FORM tự-do, giữ ngắn (WAL ≤40 dòng không đổi — khối in là OUTPUT chat, không ghi file).

(C1) Đóng-băng bề-mặt-đo — 2 câu: session-end.md §L.b(c) đầu khối: "Từ lúc chạy script đo đầu-tiên của khối (c) tới verdict cuối: KHÔNG ghi vào bề-mặt-đo (.claude/agent-memory/** + counter/MARKS + STATUS/HANDOFF/gotchas/error-ledger/migration-todos + agents/*.md + runs/*/run.md — union §3.4 sub-MD này); ghi phát sinh xếp hàng SAU verdict. Ngoại-lệ: .claude/WAL.md (ngoài bề-mặt-đo cả 5 script) + state-write của chính bộ-đo (.mfe-state.json)." Mirror 1 câu ngắn ở session-start.md §2.1.2. Text-only, 0 đổi thứ-tự khối.

(C2) Detector C6 cite-2-nấc (governance-detectors.ps1):

  • Scope: docs/governance/*.md (top-level, EXCLUDE adap-reports/ dir-level = lineage 90 occ) + .claude/commands/*.md + .claude/agents/*.md. Regex ([A-Za-z0-9_/.\-]+\.(?:md|ps1|js|cs|tsx?)):(\d+).
  • 2 nấc: (i) resolve path (repo-rel + thử vài root quen: repo-root, .claude/, docs/) → file KHÔNG tồn tại = FLAG MED cite-dead-file; (ii) tồn tại → đếm line (ReadAllLines.Length) → line > EOF = FLAG MED cite-line-past-eof.
  • 3 loại-trừ: (a) trong code-fence (tracker ``` state) + inline-backtick (Test-Quoted — matcher prose ⇒ BẮT BUỘC, luật S123); (b) dòng lineage: dir-exclude adap-reports + line có marker đóng-băng (🧊) — KHAI THẲNG phần lineage ngoài 2 proxy này chấp-nhận dương-giả đầu, tune sau first-run; (c) self-def: đăng-ký C4 Test-Excluded cho chính detector + file spec/sub-MD run này.
  • Nấc: INFORM-only exit-0 (suite convention); first-run = báo count, KHÔNG fold TOTAL baseline cho tới sau fault-inject + triage (tránh Goodhart "flag giảm").
  • Fault-inject (cây tạm -RepoRoot): cite gãy-file-giả → FLAG · cite đúng (file+line hợp-lệ) → IM · cite trong fence → IM · cite line>EOF file thật → FLAG · cite trong backtick → IM · anti-Goodhart: 2 cite cùng dòng (1 đúng 1 gãy) → FLAG đúng 1.
  • Khai giới-hạn ngay header: KHÔNG bắt trôi-mềm trong-EOF (S108 ±1-2).

(C3) K3: 0 code. Adap-report bản-3 ghi bảng 3-câu-3-mã (§3.6) + verdict RỖNG. (Optional owner-gated: +1 câu cửa-duyệt reviewer "diff thêm câu hứa-máy-quét? → mã nào làm?" — trình anh, không tự thêm.)

(C4) K4 — 1 câu nguyên-tắc, đề-xuất nhà = docs/rules.md §6.6 (cluster quyết-định khách-quan): "Thuật-lại quyết-định owner mang verb-durable (vĩnh-viễn/đóng-hẳn/bỏ-hẳn) = hợp-lệ KHI VÀ CHỈ KHI attribution tường-minh NGAY CẠNH verb (anh-chốt/anh-confirm/RC-mã/quote nguyên văn); verb-durable trần = tự-phán. Ranh máy-kiểm (khi nào port scanner): token-attribution cùng dòng, matcher PHẢI Test-Quoted." Alt-nhà: error-ledger Active-Guards — lead trình anh chọn.

(C5) Detector H24-4 pending-flip (governance-detectors.ps1):

  • Nguồn A: docs/HANDOFF.md segment HIỆN-HÀNH ONLY (từ đầu file tới trước match Prev S đầu-tiên — L15/L19 lineage = biết-trượt case phải IM) + docs/STATUS.md §In-Progress.
  • Token chờ (build code-point, gotcha #30): CHỜ GẬT|CHỜ ANHmã RC-RC-pqhuy1987-… hoặc slug mark cạnh (cùng đoạn-logic).
  • Nguồn B: ACTIVE-MARKS.md — mã RC đó ĐÃ stamped (row bảng Active/Active-High) hoặc có chú-thích ✅ RESOLVED → dòng nguồn-A vẫn "CHỜ" = FLAG MED pending-flip-stale.
  • Biết-trượt (cây tạm): hàng giả "CHỜ GẬT RC-fake…" + mark RC-fake stamped → FLAG · mark 📦 SUPERSEDED → IM · token cạnh mã RC-khác CHƯA stamp → IM · token trong backtick/fence (mô tả — chính spec này!) → IM (Test-Quoted BẮT BUỘC — file đề-xuất ĐANG mô tả token chờ = tự-quy-chiếu, khai trước per luật S123) · quét segment lineage → 0 flag (dir/segment-guard có răng).
  • Live đầu: kỳ-vọng 0 flag (segment hiện-hành không hàng treo mark-adjacent) — giá-trị ở phiên tới, mirror hub khoản 5.
  • Khai thẳng: class S137 (đề-xuất-landed-in-code) NGOÀI tầm máy → GIỮ H24 view-audit mắt-người theo nhịp (không thay).

(C6) K6 — 2 mảnh nhỏ: (i) session-end.md Item 3-bis: +2 dòng khuôn do-record: governance-detectors TOTAL=<n> + do-record: nhip-no=<dòng 3-vế> vào cùng khối memory-triple (0 script mới, 0 file mới — session-log đã committed). (ii) +1 câu luật re-base, đề-xuất nhà = error-ledger Active-Guards (generalize E-010): "Re-base baseline = chốt số SỐNG tại lúc re-base: mọi số vào sổ đọc lại từ nguồn sống tại thời-điểm ghi (CẤM chép từ ghi-chú/phiên trước — kể cả ghi-chú của chính mình); byte = (Get-Item).Length (E-010)."

③ Checklist thi-công (vai + deliverable + acceptance ĐO ĐƯỢC)

# Vai Deliverable Acceptance (đo được)
L1 worker lane-1 (4 file cửa: session-start.md + session-end.md + pause.md + tiep.md) Khối MASTER-CHECKLIST 4 cửa + 2 câu đóng-băng + 2 dòng do-record + 1 dòng luật-số sàn-5 + câu cấm nguồn-đôi grep anchor khối mới hiện đủ 4 file (4/4) · find -iname "*checklist*.md" delta = 0 file mới · dry-run đọc-khuôn: liệt được 4-nhóm từ WAL/HANDOFF THẬT hiện-tại (chờ-anh ≥1 mục có số) · 0 đổi số nhịp/cap (diff không chạm con-số config)
L2 worker lane-2 (scripts/governance-detectors.ps1 ONLY) +C6 cite-2-nấc + H24-4 pending-flip + đăng-ký Test-Excluded + gọi Test-Quoted cả 2 matcher fault-inject cây tạm: C6 6-ca (§②C2) đúng 6/6 · H24-4 5-ca (§②C5) đúng 5/5 · live-run: H24-4 = 0 flag / C6 = báo count first-run (KHÔNG fold baseline) · exit-code = 0 · script ASCII-only (gotcha #30) · suite cũ 0 flag mới (before/after comm = chỉ dòng detector mới)
L3 reviewer (gate riêng — Harness-9 2-workflow) Falsify acceptance L1/L2 + kiểm add-only-floor + kiểm Test-Quoted coverage MỌI matcher prose trong diff (luật S123) + measured-label gate trên mọi con-số mới Re-run độc-lập fault-inject byte-exact · xác nhận 0 floor hạ · verdict GO/GO-WITH-FIXES
EM em-main single-writer reviewer.md:46 +grounded (restart-note) · rules §6.6/error-ledger +2 câu luật (C4+C6ii — trình anh chọn nhà) · adap-reports ×3 + email hub + STATUS/HANDOFF grep grounded reviewer.md:46 = 1 hit · adap-reports 3 file 5-trường · nấc G-011 đúng từng hành-động (KHÔNG tự khai verified)

Owner-gated (trình anh, KHÔNG tự quyết): nhà của 2 câu luật (rules §6.6 vs error-ledger) · optional câu cửa-duyệt hứa-máy · fold C6 vào TOTAL baseline sau triage · mọi wording luật.

Lane-estimate hmw: ≤3 lane (L1 commands 4-file ⟂ L2 detector 1-file ⟂ L3 review) — file-disjoint hoàn-toàn; micro-edits để em-main.


§5 — Surprises (ngoài câu hỏi chính)

  1. reviewer.md:46 = bản chép LỖI-4-NHÃN của hub vào luật sống — Δ1 không chỉ là "re-grep xong" mà có site vá thật trong SE.
  2. G-011 không có nhà canonical trong SE — nấc-ladder dùng ở mọi adap-report nhưng 0 định-nghĩa on-disk (hub-convention import ngầm). Đáng 1 dòng trỏ trong error-ledger (owner quyết).
  3. Sweep hứa-máy = 0 unbacked — hiếm; SE quen cite thẳng tên script thay vì hứa "máy sẽ".
  4. mfe-eval.ps1 vừa đo vừa ghi vào vùng-họ-đo (.mfe-state.json trong agent-memory) — benign vì dotfile ngoài tập đếm, nhưng đúng hình bệnh K1 → khai thành ngoại-lệ tường-minh trong câu luật.
  5. HANDOFF L15/L19 còn "CHỜ GẬT" lineage của việc đã đóng — nếu H24-4 quét cả file thay vì current-segment = 2 dương-giả ngay ngày đầu (đưa vào biết-trượt case).

§6 — Phân-nấc gộp

  • already-compliant: Δ2 (SE-originated) · sàn-3/4/5 bản-2 · K3 (by-sweep) · K6.2-practice · K7.
  • cần-implement: khối checklist 4 cửa (sàn-1/2) · C6 cite-2-nấc · H24-4 pending-flip.
  • cần-implement-NHẸ (text-only): Δ1 reviewer:46 · K1 2-câu · K4 1-câu · K6.1 +2-dòng · K6.2 +1-câu · sàn-5 luật-hoá 1-dòng.
  • n-a: K4 phần máy (0 scanner lớp-từ) · K5 class đề-xuất-landed-in-code (ngoài tầm máy — giữ H24 mắt-người) · bản-2 n-a-clause (SE CÓ phiên/carry) · Δ2 phần sửa-lệnh (0 standing check dùng ext-filter).

§7 — Lệnh + số đã chạy (checklist-evidence)

  1. Grep grounded scripts/ = 0 · Grep grounded .claude/ = 10 occ / 9 file (toàn archive+runs lineage) · Grep grounded docs/ = 8 (toàn prose/verb) · budget.json + hmw.js = 0.
  2. grep -n "measured" .claude/agents/reviewer.md:46 = (measured/empirical/calibrated/đã-đo)4 nhãn, thiếu grounded.
  3. Δ2: outbox 2026-07-16-se-to-ai_infra-adap-2-errata-report.md:20 = "13 dương-giả (12 .docx + 1 .xlsx)"; agent-frontmatter-eol-check.ps1:253-257 scope 3-glob MD, :135+ byte-CR — 0 ext-filter.
  4. Cite volume: grep -rEo '[A-Za-z0-9_/.-]+\.(md|ps1|js|cs|tsx?):[0-9]+' <dir> | wc -l → docs/governance=276 (adap-reports=90, rest=186) · commands=10 · agents=5 → tổng 291.
  5. Promise-sweep: grep rộng máy (sẽ|tự)?(quét|bắt|so|kiểm|…) 3 dir ngoài lineage → 3 hit / 3 traced (session-end:103 · tiep:70 · tiep:73).
  6. memory-triple: grep -rn memory-triple docs/changelog/sessions/3 dòng tại 2026-07-17-S135-S137…:26-28 (committed).
  7. Pending-token: grep -c "CHỜ GẬT\|CHỜ ANH\|chờ anh" → HANDOFF=7 dòng · STATUS=14 dòng (đa lineage); perl-window xác nhận L15/L19 = "2 đề-xuất S131 CHỜ GẬT" (đã-actioned — ca S137).
  8. Nguồn-đôi: find -iname "*checklist*.md"2 hit, 0 nguồn-đôi trạng-thái-việc.
  9. NEXT-anh numbered: perl-window HANDOFF L7 → (1)…(6) + [carry:] mỗi khoản; L11 numbered tương-tự.
  10. Detector inventory: governance-detectors.ps1:14-26 = C2/C1(a,b)/C3/C4/H24-1/2/3; :1122 TOTAL print; baseline 45 (STATUS:465 "TOTAL 46→45" S137). Test-Quoted :598 · Test-Excluded :113.
  11. Read-zones 5 script: file:line ở §3.4.
  12. E-010: error-ledger.md:35/:57/:72 (AS-14).