Files
solution-erp/.claude/workflows/runs/2026-07-15-S119-adap-6-broadcast/sub-investigator-codebase-C.md
pqhuy1987 4727d16178 [CLAUDE] Docs: S119 adap 6 broadcast AI_INFRA - dieu tra chieu rong + spec v3 (dung truoc wave)
check-email 6 broadcast moi (H23 model-at-spawn / H24 lead-self-audit / H22 wal-defect-fix
5-san / H22 push-guard / EOL-CRLF agent-registry / owner-sign) - hash 7/7 + tamper 4/4 MATCH.

Pipeline H21: fable-clone invest 5-lane (wf_1f6bd5e2-478, 5/5 clean) -> spec v1 ->
fable-clone reviewer 4-lane (wf_78a84f9b-03e: R2 FAIL 4C+8M, R3 FAIL 5C+6M, R1/R4 chet #53)
-> v2 -> fable-real reviewer cong-cuoi (wf_cb964f83-331: GO-WITH-FIXES + 8 fix + 2 honesty-C)
-> v3 (STILL-BROKEN = 0). Anh chot B: dung tai spec, wave chay phien sau qua /tiep.

Do that: 57 wal: da lot origin/main (hub do duoc 1 -> SE = 57x); nguyen nhan KHONG phai
turn-seam ma la session-end.md:113 SE tu viet "kep sau -> GIU NGUYEN". K troi 3->10/buoi.
v1 SE GAY MAT VIEC (R3 fault-inject: NONWAL=0 -> 0 commit de fixup -> detached HEAD ->
hook fail-open -> abort -> mat worktree = E-029 bang cua sau).

Owner 6 chot: nguyen-tac moi (vuot-khung = request anh + AI_INFRA) / PA-2 = PA-2a hang-so +
PA-2b audit / 6-15-3 / [carry:slug] / KHONG don 57 / fix#8 (a)(b).

0 prod-code, 0 migration, 0 FE. Test 509 giu nguyen (45D + 464I).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 11:20:29 +07:00

11 KiB
Raw Blame History

Lane C — h23-vs-h8

RETURN-only tu /fable-clone ensemble wf_1f6bd5e2-478 (vai investigator-codebase, model opus). Lead ghi (B3 single-writer) — sub KHONG tu ghi. agentId=a3af2ab52fd357759


VERDICT: H23 và H8 KHÔNG mâu-thuẫn — H23(1) chấp-nhận form "ghi-chú-đầu-cây" nên thoả được mà GIỮ H8 100% nguyên-vẹn; nhưng kiểm-kê bắt 1 GAP THẬT có runtime-hại: .claude/commands/fable-clone.md hứa "ensemble tier-2" mà KHÔNG hề có tier:'opus' → khi Fable UP, lệnh-B im-lặng chạy N×Fable, trái chính §K.D floor-2 của SE (runbook:431 đã ghi 🔴 BẮT BUỘC, command-file thì không) — nên với SE, H23 KHÔNG phải "phòng-xa runtime-0" như hub khai.

1. Kiểm-kê spawn-site (đã đọc, file:line thật)

2 CLASS ngữ-nghĩa NGƯỢC nhau — đây là mấu-chốt cả phân-tích:

  • Class A = roster mặc-định. inherit = CHỦ-ĐÍCH (H8, anh-chốt S66). lead đổi → sub đổi = ĐÚNG, không phải "âm-thầm sai".
  • Class B = /fable-clone ensemble. inherit = SAI khi lead=Fable (clone phải tier-2 theo định-nghĩa).
# Spawn-site Model tường-minh? Class
1 .claude/workflows/hmw.js:162-167 (agent(prompt,{agentType,schema,label,model:resolveModel(…)})) TỐT NHẤT — param CÓ trong code, undefined by-design; ghi-chú-đầu-cây thật:32-42 phủ cả resolveModel:43-51 A+B
2 .claude/agents/README.md:75-127 decision-tree ~12 nhánh ⚠️ 0/12 nhánh; note :3 = đầu FILE không đầu CÂY (cách 72 dòng, khác heading) A
3 .claude/commands/session-start.md:96,97 (tooling-auditor + harvest-curator) không. BƯỚC 0.6 :37-45 = probe lead, không phải note-spawn A
4 .claude/commands/session-end.md:49,52 (harvest-curator (d)/(f) + tooling-auditor (g)) không A
5 .claude/commands/sleep-recovery-memory-l2.md:60 (harvest-curator) không A
6 .claude/commands/fable-clone.md:15,34,38-40 🔴 KHÔNG — và KHÔNG có tier:'opus'. :15 hứa "ENSEMBLE tier-2-mạnh-nhất"; :38-40 "Floor model-tier v3" chỉ nói ghế lead. Cơ-chế đạt tier-2 VẮNG HẲN B — GAP
7 .claude/commands/fable-real.md:36 nêu rõ H8 all-inherit + đường elevate; single-Fable = intent B
8 docs/governance/fable-real-runbook.md:130-132, 287-291, 416-422 (3 ví-dụ args) "tier":"opus" mỗi item + :431 🔴 BẮT BUỘC + :299 B
9 docs/governance/harness-11-engine.md:343 (K.E bảng lệnh-B) ⚠️ "ensemble tier-2" mà không nói cơ-chế; K.D:336 có "worker-draft pin tier-2 Opus" B

GAP #6 — chi-tiết đo được. runbook:431 nguyên-văn: "Fable UP mà BỎ pin → N lane inherit = N×Fable = 2 vị-trí chạm top-model NGOÀI chế-độ thật (trái K.D floor-2)". Mandate đó sống ở runbook + §K, KHÔNG ở command-file — tức thứ anh gõ. Đã cắn THẬT 1 lần: reviewer S108 FAIL, MAJOR #3 "clone-example thiếu tier:'opus' trái K.B/floor-2 khi Fable UP" (agent-memory/reviewer/archive/2026-07.md:13) → fix landed ở runbook. fable-clone.md H21-redesign S110 (debe82f, mtime Jul 11 — SAU S108 Jul 10) không mang mandate sang. (CHƯA VERIFY: file này từng có tier:'opus' trước S110 hay chưa — git log -S"tier" ra 2 commit nhưng giải-thích được bằng "tier-2"/"model-tier"/"frontier-class"; hiện-trạng vắng = VERIFIED.)

2. Trả lời 6 câu

(1) SE có phải ca "MỘT model duy-nhất" của §4? KHÔNG sạch. SE = một-model-tại-một-thời-điểm nhưng ĐỘNG (per-session, owner-choice {Fable|Opus}, probe session-start.md:37-45). Khác-biệt quyết-định: hệ "một model" của §4 là TĨNH → alias-vs-phiên-bản vô-nghĩa vì không có tầng-2 để lệch. SE thì Class-B có tier-2 thật (/fable-clone pin Opus ⟂ lead Fable — §K.D:336 ghi "phân-tầng THẬT bén" từ S108). ⇒ §4 "(2)(3) rút gọn" chỉ đúng Class A; Class B thì (2) SỐNG.

(2) Xem bảng §1. Class A 1 site tốt (hmw.js), 4 site thiếu-nhưng-vô-hại. Class B 1 site thủng.

(3) Ghi-chú-đầu-cây map ra sao? SE đã có 1 bản mẫu đúng chuẩn: hmw.js:32-42 — khối comment H8 đặt ngay trên resolveModel, phủ mọi lane, KHÔNG lặp inline. Đó chính là form §2(1) khuyên. Thiếu là nhân-bản form đó sang agents/README.md:75 (đầu decision-tree) + session-start/end. Rẻ, 3 chỗ, không đụng frontmatter.

(4) inherit nằm đâu trong mô-hình §2(2)? Không phải full-id, không phải alias — là INDIRECTION (con-trỏ). Nó không khoá gì cả, uỷ-quyền 100% cho lead. ⇒ thẩm-quyền phiên-bản THẬT của SE = ~/.claude/settings.json model: claude-fable-5[1m] (agent-memory/tooling-auditor/MEMORY.md:19, tự cảnh-báo "đừng conflate 2 file settings") — NGOÀI repo, machine-wide, dùng chung AI_INFRA+VIETREPORT, không git-tracked. Project .claude/settings.json = 239B hooks.Stop only, 0 key model (đã verify). ⇒ SE thoả H23 mà VẪN giữ H8: CÓ (xem PA-1).

🔴 Nhưng 1 side-effect thật của H8 phải nói thẳng: H8/S66 xoá 7 pin full-id claude-opus-4-8 (hmw.js:36 xác nhận "KHÔNG còn demote-pin"). Grep .claude/** = 0 full-id sống (chỉ comment lịch-sử). Mà tier:'opus'/tier:'fable' (resolveModel:44) = alias trần khoá HỌ, không khoá phiên-bản — đúng y §2(2). ⇒ escape-hatch Class-B giờ không còn neo phiên-bản nào trong repo; Opus đời sau ra → tier:'opus' trôi, không ai bắt. Đây không phải mâu-thuẫn (H8 xoá pin-DEMOTE, đúng ý-đồ "chất-lượng trên chi-phí") mà là hệ-quả kèm — và là điểm DUY-NHẤT H8 phải trả giá dưới lăng-kính H23.

(5) §6 phép thử-phá áp cho SE. Hub bảo bỏ param mà không đổi ⇒ phòng-xa. SE KHÔNG có pin tầng-2 ⇒ bỏ param CÓ đổi (inherit→lead). Theo chính lời hub: "Nếu nó đổi → hệ bạn CHƯA pin đủ, và sàn này vừa cứu bạn một lỗi thật."H23 với SE ≠ phòng-xa. Chính-xác: Class A runtime-value = 0 (inherit = intent, đổi theo lead là đúng); Class B runtime-value = THẬT (GAP #6 = lỗi sống, chờ Fable UP là kích). Nói "H23 vô-giá-trị vì SE all-inherit" = kết-luận sai do gộp 2 class.

(6) §2(5) kỷ-luật động-từ. ĐÃ THOẢ — không cần làm gì. SE gương-mẫu, grep 0 mis-nấc quanh model/tier: engine:348 "KHÔNG code-enforced" · engine:353 "mechanized = 0" · engine:355 "scope-guard… = convention" · fable-real.md:22 "KHÔNG claim code-enforced" · README:173+database-agent.md:13,55+session-end.md:52 G-015 "TRACKED ≠ read-only-enforced".

Bonus §2(3) kết-nạp 3-việc: SE có đủ 3 chỗ (frontmatter / hmw.js:22-30 VALID_ROLES / spawn-sites) và đã chạy đúng (office-document S107 9→10; 2 monitor S110 10→12 — fable-clone.md:21). Thiếu: chưa viết thành checklist → dựa trí-nhớ. Gap = quy-trình, không phải artifact.

3. 🔴 QUYỀN ANH — 3 phương-án

Khuyến-nghị lane này: đọc kỹ tiền-đề trước khi chọn. Tiền-đề brief "H23 ⟂ H8 xung-đột" — lane này BÁC: không xung-đột. Nên 3 PA dưới là mức-độ-adopt, KHÔNG phải "có lật H8 không". Không PA nào đụng H8. Nếu anh muốn PA lật H8 thì phải là đề-bài khác.

PA-1 — Tailor tối-thiểu (lane này nghiêng) PA-2 — PA-1 + neo full-id PA-3 — n-a toàn-bộ
Làm (a) Vá GAP #6: thêm tier:'opus' 🔴-BẮT-BUỘC-khi-Fable-UP vào fable-clone.md (trỏ runbook:431, KHÔNG lặp nội-dung). (b) Nhân form hmw.js:32-42 → note-đầu-cây 3 chỗ: README.md:75, session-start.md:96, session-end.md:49. (c) Checklist kết-nạp-sub 3-việc vào agents/README.md. (d) §2(5) = n-a đã-thoả. PA-1 + neo full-id cho tier:'opus' (hằng-số hmw.js HOẶC memory-budget.json) → alias có thẩm-quyền phiên-bản trong repo. Ghi 1 dòng "n-a: all-inherit = một-model, §4 miễn (2)(3)" rồi đóng.
Kéo theo Sửa 4 file .md, 0 frontmatter, 0 config, 0 số. H8 nguyên-vẹn. Vá 1 lỗi-sống. KHÔNG dựng bộ-soát (§4 cho phép "n-a: chưa dựng"). Con-số/policy mới ⇒ quyền anh (memory-fidelity: em KHÔNG tự đặt). Chặn alias-drift Opus-đời-sau. Chi-phí: +1 chỗ phải bảo-trì khi model đổi. GAP #6 Ở LẠI → Fable UP là N×Fable, trái K.D floor-2 của chính SE. Phải khai "biết mà không sửa" ở adap-report — sẽ đụng nấc trung-thực §C5.
Rủi-ro (b)/(c) là note thuần → gần 0. (a) đụng command-file → restart CLI (no hot-reload, fable-clone.md:8) như PA-1 + risk pin lệch settings user-global Cao — reviewer sẽ bắt lại như S108

Lý-do nghiêng PA-1: vá đúng chỗ thủng, không đẻ policy mới, không đòi anh quyết con-số. Nâng lên PA-2 chỉ khi anh muốn tier:'opus' có neo phiên-bản — đó là quyết-định của anh, không phải suy-luận của em.

4. Acceptance ĐO ĐƯỢC

  1. grep -n "tier:'opus'\|\"tier\": \"opus\"" .claude/commands/fable-clone.md≥1 hit (nay = 0). ⚠️ Dùng Grep tool, không Bash-grep: pattern \|+quote cho false-negative — lane này dính, tier:'opus' toàn-repo ra rỗng dù runbook:431 có thật.
  2. 3 note-đầu-cây tồn-tại ≤5 dòng trên dòng spawn đầu-tiên: README.md:~75 · session-start.md:~96 · session-end.md:~49. Nội-dung phải nêu: "mọi spawn dưới = model: inherit (H8 S66) = top-tier lead per-session; giá-trị SỐNG → BƯỚC 0.6 probe".
  3. Checklist kết-nạp-sub 3-việc (frontmatter inherit + hmw.js VALID_ROLES + spawn-site) hiện-diện agents/README.md; đối-chứng: roster 12 = VALID_ROLES 12 (hmw.js:22-30) = danh-sách 12 (fable-clone.md:19 = fable-real.md:20 = engine:345).
  4. §2(5): re-grep enforce-verb quanh model/tier → giữ 0 mis-nấc (nay 0).
  5. adap-report khai đúng nấc: executed-file, VERIFIED-pending-restart (command .md no hot-reload) + khai thẳng "Class A runtime-delta = 0 · Class B = vá lỗi-sống" — KHÔNG bán H23 thành "phòng-xa thuần" (sai với SE), cũng KHÔNG thổi thành "cứu hệ" (sai với Class A).

5. Phụ — 2 stale nhỏ bắt được dọc đường (ngoài scope, không chặn)

runbook trỏ hmw.js:36,38/:37-44/:32 → thật resolveModel = :43-51, khối H8 = :32-42. runbook:186 "§K:334"→thật 355 · :188 "§K.D:332"→336 · :437/:438 "§K.C:329/330"→331-334. Class C2/B3 derived-stale (scripts/governance-detectors.ps1). Đáng nói vì chính H23(1) "đọc-được-tại-chỗ": line-ref sai làm người soi lần fallback khó hơn — đúng bệnh H23 muốn chữa.