15 KiB
adap-report — 2026-07-19-Governance-goi-chot-owner-nam-khoan
SE (SOLUTION_ERP) · nhóm-B backlog wave S149(+1) · lane L3. Thư này có 5 khoản, không phải 4 — chính đợt-11 đã tự bắt lỗi ép-cho-tròn-số ở
C14-disposition-per-khoan.md:4. Bản này báo theo TỪNG khoản 4.1–4.5, không có dòng tổng.
1. id-broadcast
2026-07-19-Governance-goi-chot-owner-nam-khoan (type update, 5 delta chồng lên 5 bản đã phát · content_sha256 c580c56682a5973e9b46de0806de8170ca663fa197bac6f08ff498ee6ce569f5 · reviewer_gate PASS-W-FIXES → ALL-FOLDED, falsify 7/7 HELD — đọc từ frontmatter inbox, chưa sha-recompute hôm nay).
2. nấc G-011
executed cho 4.1 / 4.2 / 4.4 / 4.5; 4.3 = KÉP executed(luật) + verified-pending(đo) vì ngưỡng chấm là owner-SỐ 🔒 chưa đặt. Không gộp 5 khoản thành một nhãn.
3. evidence (đo THẬT — bảng per-khoản 4.1–4.5)
| # | Khoản (delta hub) | Nấc SE | Bằng-chứng đo được |
|---|---|---|---|
| 4.1 | Lead default = tier thường; model đắt nhất đi qua 2 cửa owner-chủ-động | executed (thực-tế ĐÃ-CÓ từ trước · nhãn nay đã đóng) | @S144 khoản này ở trạng-thái KÉP: thực-tế ĐÃ-CÓ (~/.claude/settings.json pin từ 07-20 — file global, ngoài git, không grep được trong repo) nhưng nhãn canonical còn nói khác ⇒ BLOCKED-by-O-5 (C14-disposition-per-khoan.md:41 + bảng :72). Nhãn đóng bằng #23 — broadcast 2026-07-25-Governance-model-default-opus-5-max, lead đã áp lớp thi hành trong chính run này (runs/2026-07-25-S149-adap-backlog/run.md:7: settings claude-opus-5[1m] · 2 key TIER2_EXPECTED_FULL_ID + $OWNER_RATIFIED_TIER2_FULL_ID → claude-opus-5 · BƯỚC 0.6 value-update). 2 cửa owner của SE = /fable-real + /fable-clone, per-invocation KHÔNG persist (CLAUDE.md:25-26) |
| 4.2 | RETIRE resume-agent cho mục-đích giữ-model / giữ-context | executed (có phạm vi) + khảo sát xong + 1 vế chưa đo | Đọc đúng phạm vi: retire chỉ cho mục-đích giữ-model/giữ-context; path-2 cứu #53 (resume in-session) KHÔNG bị retire (goi-chot:37 — thư ghi resume vẫn hợp-lệ cho "hội-thoại tiếp-diễn trong cùng lượt làm việc"). Nghĩa-vụ verify-trên-env-mình (goi-chot:38) đã làm: artifact runs/2026-07-22-S144-adap-dot-11/C15-resume-model-override.md (tồn tại trên đĩa, đo hôm nay) — kết luận: Agent-tool resume an-toàn; 🔴 lane workflow có tier: override thì PHƠI NHIỄM, CHƯA ĐO (C14:42) |
| 4.3 | Điểm-dừng phải RẺ — không cơ-chế nào được chặn/làm-đắt cửa dừng–nối–checkpoint | 🔴 KÉP: executed (luật) · verified-pending (đo) — ngưỡng = 🔒 owner-SỐ, CHƯA ĐẶT | Luật đã vào spec đợt-11 v2 (P1-5) + acceptance C7 spec-adap-dot-11-22-07-2026-v2.md:115, trong đó bỏ tiêu-chí "ghi số" vì nó PASS ở mọi giá trị và ghi thẳng "Ngưỡng = O-gated". Đo lại đường dừng hôm nay: .claude/commands/pause.md:89 VẪN gọi powershell.exe … scripts/nhip-no-probe.ps1 trong đường /pause — nhưng cùng dòng khai "probe KHÔNG chặn điểm dừng: lỗi → in probe-loi (khong chan) → đi tiếp" (fail-open). Và bước mới (D) AUTO-SNAPSHOT pause.md:44-46 có đo trước khi wire, trích đúng câu hub bắt hỏi (goi-chot §3 "có làm điểm dừng đắt lên không"): machine-block ~140ms · secrets-sweep ~64ms (3 lượt, trung bình), chi-phí ròng khai ~64ms + 1 write. ⇒ Cơ-chế đã có, số đã đo, nhưng KHÔNG CHẤM ĐƯỢC PASS/FAIL vì không có ngưỡng. 🔒 Lane KHÔNG tự đặt số |
| 4.4 | Cửa-duyệt lời-hứa-máy (credit khuôn-câu: SE) | executed (cổng-người) · máy-quét = DỰ-ĐỊNH, chưa có | Cổng-người + acceptance đã dựng: runs/2026-07-22-S144-adap-dot-11/C6-cua-loi-hua-may.md (tồn tại trên đĩa) + acceptance C6 spec-…-v2.md:114 — bỏ neo literal "máy sẽ" (tập-đo 0/19, fault-inject cắm câu giả vẫn xanh ⇒ neo đó không có răng), thay bằng danh-sách liệt-kê tường-minh + mẫu-số công bố (19) + positive-control BẮT BUỘC + tách use ⟂ mention + đo gate đã cài chứ không đo đã quét xong (đúng goi-chot:38 "chặn từ lúc VIẾT"). 🔴 Máy quét tự động cho chính class lời-hứa-máy: CHƯA CÓ — khai dạng dự-định, đúng theo yêu cầu của chính khoản này (goi-chot:39 hub cũng tự khai y hệt) |
| 4.5 | available-in-pool ≠ mandate (model đắt hiện ra trong env ≠ đổi pin) | executed (ĐÃ-CÓ sẵn) | Khớp sẵn worker-tier-pin S124 — CLAUDE.md (memory index) project_harness4_two_tier_model: "S124 worker-tier-pin (14/14 sub = opus+effort:max, lead owner-choice, Fable qua /fable-real)". Luật "Agent ghi-nhận và báo, không tự adopt" (goi-chot:46) = đúng cái SE đang chạy; 0 việc mới |
Neo commit: 🔴 vật-chứng 4.1 nằm ở ~/.claude/settings.json — global, NGOÀI git, không có sha để cite (chính CLAUDE.md:27 cảnh báo "grep trong repo sẽ ra 0 hit"). Vật-chứng 4.3 (pause.md) và các artifact C6/C15 hiện chỉ commit trong nhánh wal: (72d2d1b), không phải ancestor origin/main (2f39a7e) ⇒ bản này neo bằng file:dòng trên đĩa, không cite sha wal: (bài học 2026-07-18-…h23-precedence-tested-update.md:26).
4. tailored-gì + skip-gì-vì-sao
- Tailored 4.1 — 2 cửa owner của SE là LỆNH, không phải config: hub mô-tả cửa owner-chủ-động chung; SE hiện-thực bằng
/fable-real(single top-model, 1 lượt) và/fable-clone(ensemble tier-2), per-invocation, không có mode persist — nghĩa là không có trạng-thái nào để quên tắt. FUNCTION-floor (tier đắt = cửa owner đích danh,goi-chot:15) giữ nguyên. - Tailored 4.2 — SE giữ 1 đường resume mà hub retire:
resume in-sessionđể cứu lỗi return-garble (#53) được giữ, vì đó không phải mục-đích giữ-model/giữ-context mà là cứu output đã mất. Đọc theo đúng câugoi-chot:22("hội-thoại tiếp-diễn trong cùng lượt làm việc") ⇒ không phải deviation, là phạm-vi. - Tailored 4.4 — SE bỏ chính neo literal mà cách viết dễ nhất sẽ dùng: thay
grep "máy sẽ"bằng danh-sách + positive-control, sau khi đo được rằng neo literal xanh cả khi cắm câu giả. Đây là tailor siết chặt hơn floor hub, không phải nới. - Skip: không skip khoản nào. 4.5 = ĐÃ-CÓ nên 0 việc, không phải n-a.
5. honest-caveat
- 🔒 4.3 — ngưỡng "rẻ" là owner-SỐ và lane này CỐ Ý KHÔNG ĐẶT. Không có ngưỡng thì câu "điểm dừng của SE có rẻ không" chưa trả lời được, dù đã có 2 số đo (~140ms / ~64ms). Bản này từ chối suy ra một ngưỡng từ chính số vừa đo — làm thế là tự-feed rồi tự-chấm. Trình anh đặt số; trước lúc đó khoản 4.3 giữ nấc
verified-pendingở vế đo. - 🔴 Đường
/pausevẫn spawn một tiến-trình ngoài (pause.md:89,nhip-no-probe.ps1). Acceptance C7 (spec-…-v2.md:115) đã mở rộng tập cấm từ liệt-kê sang "bất kỳ tiến-trình ngoài nào" trong đường dừng ⇒ theo chữ của luật, đây là một vi-phạm còn sống; phần giảm nhẹ là nó fail-open và không chặn. Không đọc thành "đã sạch". - 🔴 4.1 — lane này KHÔNG probe model, và KHÔNG chép claim của lead làm bằng-chứng. Bằng-chứng lớp thi hành trích từ
run.md:7là lời khai của lead, chưa phải phép đo. Probe thật (spawn-model-audit.ps1đọc resolved-model) thuộc lane L6 của wave này. ⇒ nấcexecutedở đây tựa trên file đã sửa, không tựa trên runtime đã chứng; nếu L6 probe ra lệch thì dòng 4.1 phải hạ nấc. - 🔴 4.2 — vế "lane workflow có
tier:override sống qua resume" đến nay VẪN CHƯA ĐO. C15 kết luận cho Agent-tool, không cho lane workflow. Trạng-thái sau S144 không rõ ⇒ giữ DEFER-đo trung thực thay vì suy từ ca đã đo (đúng bài tested = env đã test, không auto-generalize,goi-chot:23). - 🔸 4.4 — mẫu-số 19 là mẫu-số của lượt đo S144, không phải hằng số; số câu-hứa trong repo đổi theo mỗi lượt viết doc. Bất kỳ ai đọc "19" như một chỉ-tiêu cố định là đọc sai.
- 🔸 sha thư chưa tái-đo hôm nay (kế thừa frontmatter inbox theo brief). Nấc dừng ở
executed, KHÔNGverified(adap-report.md:31).
✅ ADDENDUM @S185 (2026-08-09) — ĐÓNG vế treo 4.2 (tier: override qua resume)
Block MỚI, không sửa dòng cũ. Dòng caveat "4.2 — vế lane workflow … VẪN CHƯA ĐO … giữ DEFER-đo" giữ nguyên làm vết: nó đúng lúc viết (25-07). Đây là lượt đo, checklist item C-9 của run
2026-08-09-S185-email-adap-pipeline. Ruột + lệnh:.claude/workflows/runs/2026-08-09-S185-email-adap-pipeline/sub-opus-lane5-measure.md.
Kết: vế cũ = VACUOUS (n-a CÓ SỐ) — nhưng rủi ro đã dời chỗ, và chỗ mới đang HỞ
(1) SE không có đường RESUME cho lane workflow ⇒ không có gì để "sống qua resume"
| Phép đo | Kết quả |
|---|---|
grep -cniE "resume|continue|reattach|session_id|sessionId" .claude/workflows/hmw.js |
0 |
Control dương — cùng regex, tệp có chữ resume: .claude/commands/tiep.md |
13 ⇒ thước sống, 0 là vắng thật |
| Model gắn ở đâu | DUY NHẤT tại call-site spawn: hmw.js:284 agent(prompt, {…}) + :291 model: resolveModel(role, raw, t && t.tier, i) |
⇒ Mỗi lane là một lần agent() mới, model resolve ngay tại đó. Không có resume ⇒ override không thể rớt qua resume. Câu hỏi 4.2 ở dạng nguyên thuỷ không áp cho SE.
(2) 🔴 Rủi ro thật nằm ở RELAUNCH, và ở đó tier: KHÔNG có ai canh
Đường phục-hồi của SE là relaunch-đã-cắt-gọt (tiep.md:199-205), không phải resume. Chính :205 tự khai: "Resume-theo-run-id (nếu engine có) = bonus CHỈ trong cùng phiên (SAME-SESSION-ONLY) — 🔴 CẤM claim nó chạy cross-session."
| Phép đo | Kết quả |
|---|---|
grep -ci tier .claude/commands/tiep.md |
0 (control: grep -ci model = 2 ⇒ grep sống) |
Bước 4 của nhánh wf: |
dặn re-derive memory-pack TƯƠI, 🔴 CẤM snapshot cũ — không một chữ về giữ per-task tier: |
run.md có ## taskList snapshot |
54 / 88 run-folder |
run.md có chuỗi tier: |
15 / 88 |
| run.md của chính run đang chạy (S185) | 0 hit taskList · 0 hit tier |
Chuỗi hỏng đầy đủ: workflow chết → /tiep bước 1 bảo "đọc ## taskList snapshot trong run.md" → với 34/88 run-folder (39%) snapshot không tồn tại, và run đang chạy hôm nay nằm trong nhóm đó → lead gõ lại taskList từ trí nhớ → thiếu tier: → hmw.js:103-110 resolveModel trả MODEL_INHERIT → :291 truyền model: undefined → frontmatter worker-tier opus cầm lái. Không lỗi, không cảnh báo.
🔴 Bất đối xứng của cảnh báo (đây là chỗ đáng vá): hmw.js:105 CÓ nhánh ⚠️ khi tier mang giá-trị lạ, nhưng không có nhánh nào khi tier VẮNG ở task mà lượt trước có. Tức máy kêu khi bạn gõ SAI, im khi bạn gõ THIẾU — mà thiếu mới là chế-độ hỏng của relaunch.
(3) Lưới bắt hiện có: chỉ HỒI-TỐ
scripts/spawn-model-audit.ps1 (PA-2b) so resolved-vs-expected và tự khai giới hạn ở header :30-32: "This audit is RETROSPECTIVE… does not promise the next spawn stays on the expected version." ⇒ một lane bị tụt tier vì relaunch sẽ bị bắt SAU KHI đã chạy xong bằng model rẻ hơn, không bị chặn trước.
Nấc mới cho 4.2
executed (có phạm vi) + đo XONG vế treo — thay DEFER-đo. Cụ thể: vế "sống qua resume" = n-a có số (0 đường resume, control dương 13); vế thay thế "sống qua relaunch" = HỞ, đã định lượng (0 hit tier trong tiep.md; 15/88 run.md chở tier:; run hôm nay 0/2 điều kiện).
Việc đề-xuất (KHÔNG tự làm — ngoài phạm vi lane đo, khai để nhận sau)
tiep.mdnhánhwf:bước 4: thêm 1 dòng — "chép lại per-tasktier:từ## taskList snapshot; snapshot không có ⇒ khaitierđã mất, KHÔNG im lặng dùng mặc-định." — chạm file lệnh ⇒ ăn từ phiên sau restart (ENV-DEP, không hot-reload).- Khuôn
run.md: ép## taskList snapshotchở nguyêntier:— hiện chỉ 54/88 có snapshot. Cùng họ C-7 (spawn-label khoản-④, cũng là "khuôn run.md thiếu trường"), nên gộp 1 lượt thay vì vá 2 lần. hmw.js: cân nhắc log 1 dòng INFORM khi taskList relaunch có role từng chạytiermà lượt này vắng — nhưng máy không biết "lượt trước", nên rẻ hơn là để ở lớptiep.md(mục 1). Ghi để không ai tưởng đã có máy canh.
🔸 Caveat của chính phép đo này: 15/88 đếm theo chuỗi tier: nên gồm cả nhắc-trong-văn-xuôi, tức 15 là cận TRÊN của "run.md thật sự chở override". 54/88 và 0/0 của run hôm nay thì đếm trực tiếp, không có nhập nhằng.
ADDENDUM-2 @S185 (2026-08-10) — vế 4.4 "máy-quét = DỰ-ĐỊNH" hết hiệu lực (block mới, row cũ giữ nguyên — bài-5)
- 4.4 máy-quét lời-hứa-máy ĐÃ DỰNG:
scripts/loi-hua-may-scan.ps1(30.223 B, lane7 run2026-08-09-S185-email-adap-pipeline— self-test 11/11 PASS, fault-inject 3 ca cây tạm + control dương, 759ms). Mẫu-số ĐO LẠI = 30 dòng (không phải 19 của C6 @S144 — cùng regex chạy 08-09; đúng lời khoản "mẫu-số công bố" phải tươi), 0 dòngviolation-open. Nợ còn:cửa gọi✅ cắm @S185 vàosession-end §L.b(k-ter)(máy thứ 3). - 4.2 vế "tier-qua-resume CHƯA ĐO" → ĐÃ ĐO @S185 (lane5 C-9, addendum riêng nếu có — xem
sub-opus-lane5-measure.md). - 4.3 vẫn chờ owner-SỐ (W-3 — đã re-surface vào khối chờ-anh @S185 sau 15 ngày rơi).
ADDENDUM-3 @S185 — 4.3 CHẤM ĐƯỢC RỒI: PASS (block mới, row cũ giữ)
Owner đặt ngưỡng "điểm dừng RẺ" = 500ms (YC-021/W-3, key stop_point_cheap_ms + nguyên văn trong memory-budget.json). Mọi số đã đo đều dưới: machine-block ~140ms · secrets-sweep ~64ms · tien-kiem ~194ms · nhip-no-probe ~281ms ⇒ 4.3 = PASS. Vế "KÉP executed·verified-pending" của row cũ hết hiệu lực từ 08-10.