Closeout 4 mục OUTWARD của wave S141-S142 (anh gật @S143): - adap-report 7/7 thư, đủ 5 trường REPORT-FORMAT LOCK, evidence đo thật - email hub báo-nấc (sha 6c94873f72e0, selftest_verify exit 0, log _index cùng lượt) - STAGE-2: 7 thư -> inbox/ai_infra/, _index 0 pending, cross-check 7/7 - squash K=8 wal: -> commit chốt Ngoài wave: agents/README skill-matrix thiếu 2 row H24 (drift S121) -> 15/17 thành 17/17. Nấc cao nhất khai được = executed-file/verified-pending-restart (trio CHƯA spawn). 2 phát hiện khai thẳng theo G-015 (chi tiết trong report + email): - whitelist `tools:` KHÔNG chặn ghi ở runtime: 6 vai read-only bị append Write+Edit - pull-lag do "watch broadcasts/inbox" canh nhầm chỗ TICK H24: counter 16->17 (S143), 3-điều-kiện OK-reachable, không fail-loud. Detector TOTAL 46 == baseline 46, 0 flag mới. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6.6 KiB
/fable-real — ENGINE-ĐẮT LỆNH-A: 1 vai × SINGLE top-model deep-pass (per-invocation, H21)
Cặp
/fable-clone(lệnh-B ensemble). 🔴 restart Claude Code sau khi tạo/sửa (command.mdno hot-reload). Adopt H21 S110 (2026-07-11) — supersede semantics toggle-marker H19 (S101). KHÔNG còn.claude/fable-real-mode.on, KHÔNG còn mode persist qua session/compact: engine-đắt CHỈ SỐNG trong lượt anh gõ lệnh này. 📘 Runbook vận-hành (hàm/biến/checklist per-invocation + AC + anti-patterns):docs/governance/fable-real-runbook.md. 🔧 Guard ensemble / single-writer:docs/governance/harness-11-engine.md§K (engine).
Vai + đề-bài lượt này: $ARGUMENTS
🔴 Semantics per-invocation (H21 ①/②)
/fable-real <vai> <đề-bài>= vai anh gán chạy 1 LẦN top-model THẬT (sâu nhất, đắt nhất) cho ĐÚNG đề-bài đó. Fable up = single-Fable; Fable outage (H5, lỗi"Model isn't available") = single-Opus-1M fallback theo từng lần chạy (KHÔNG mode toàn-cục).- Hiệu-lực CHỈ lượt đó — hết lượt là hết. KHÔNG marker, KHÔNG persist. Lượt sau muốn engine-đắt = gõ lại lệnh.
🔴 Vai BẮT BUỘC ∈ roster 17 (H21 ②)
investigator-codebase · investigator-api · implementer-backend · implementer-frontend · frontend-designer · database-agent · office-document · test-specialist · reviewer · cicd-monitor · tooling-auditor · harvest-curator · lead-view-auditor · lead-omission-auditor · harness-eval · harness-refine · harness-audit.
Số vai canonical →
docs/STATUS.md§Sub-agents (B1 derived-trỏ-canonical). +2 @S121 W2 = 2 monitor H24 lead-self-audit · +3 @S141 = bộ-ba đồng-kiểm memory (trio-memory, read-only INFORM-only; TUẦN TỰ eval→refine→audit).
- Thiếu
<vai>HOẶC vai ngoài roster → em main hỏi lại anh 1 dòng ("engine-đắt cần vai đích-danh — vai nào?"), KHÔNG tự chọn vai. - 🔒 Honest-note (a): "không tự chọn vai" = tầng KỶ-LUẬT owner-gated (anh phải gõ vai) — KHÔNG claim code-enforced.
- 🔒 Honest-note (b): lệnh/alias = cách anh GÁN VAI NHANH, vẫn phải anh gõ — hệ KHÔNG tự chọn vai.
🔴 Spec-file 3-mục BẮT BUỘC mỗi run (H21 ①)
Mỗi lần chạy engine-đắt PHẢI kết-tinh 1 spec theo pipeline propose → verify → ghi → thực-thi:
- Engine propose-only — vai chạy top-model đề-xuất [đề-bài · cách làm · checklist]. Engine KHÔNG tự ghi.
- Lead verify — lead soi + chỉnh nội-dung propose.
- Lead ghi file
.claude/workflows/runs/<run-id>/spec-<tên-tính-năng>-<dd-mm-yyyy>.md— 3 heading cố-định: ① Tính-năng/đề-bài · ② Cách implement · ③ Checklist (vai + deliverable + acceptance ĐO ĐƯỢC). - Worker thực-thi THEO spec — spec bơm qua args = CON-TRỎ file spec (
runs/<id>/spec-*.md, bản lead-đã-verify) + digest ngắn / AC-ids; worker Read ĐÚNG file con-trỏ (B6 chốt-2 args-mỏng); CẤM tự lục spec/nguồn ngoài con-trỏ (file làm-việc của lane vẫn Read bình thường).
- 🔒 Honest-note (c): file spec do LEAD ghi SAU khi verify — engine KHÔNG tự ghi.
- 🔒 Honest-note (d): run chấm/verify CŨNG sinh spec-file (kế-hoạch xử issue = "cách làm" cần kết-tinh).
🔴 Floor model-tier v3 (broadcast 2026-07-11)
- Lead = frontier-class do ANH chọn per-session {Fable 5 | Opus 4.8 — cả hai 1M MAX}. CẤM lớp model thấp (Sonnet/Haiku-class) ngồi ghế lead.
- Engine-đắt per-invocation = đường DUY NHẤT nâng 1 vai lên hạng-nhất, chỉ trong lượt lệnh anh gõ. Ngoài lệnh, mọi vai giữ model roster mặc-định (worker-tier-pin S124 — role-có-frontmatter
model: opus+effort: max, role-less inherit lead; supersede H8 all-inherit; số vai canonical →docs/STATUS.md§Sub-agents, B1 KHÔNG chép số ở đây). - ⚠️ Lead KHÔNG tự ý gọi engine-đắt — kể cả khi HMW-mode ON. Engine-đắt chỉ chạy khi anh gõ
/fable-real|/fable-clone <vai> <đề-bài>.
🔴 Cờ args.run — RUN-TRACE (Sàn-1 H22, cơ-khí-hoá S121 W2)
Lead PHẢI @P1 scaffold .claude/workflows/runs/<run-id>/ (TRACKED, kèm run.md + ## taskList snapshot) rồi truyền args.run = { name:'<run-id>', dir:'.claude/workflows/runs/<run-id>' } khi gọi Workflow hmw.
🔸 Khai thật — ở lệnh NÀY gate hiếm khi cắn: /fable-real = single deep-pass 1 lane ⇒ taskList.length = 1 < 3 ⇒ hmw.js KHÔNG throw. Nhưng cờ vẫn PHẢI truyền, vì §H21① buộc run này kết-tinh spec-file vào runs/<run-id>/ ⇒ cần run-folder làm dấu-vết artifact cho /tiep + harvest; và nếu có lúc lệnh này fan-out ≥3 thì gate cắn ngay. Đừng đọc "gate không cắn" thành "khỏi cần cờ".
🔴 LUẬT non-JSON-args (per
6c2eb2b1— B6 chốt-3):args(kể cảargs.run,args.taskList,args.spec) LUÔN là object JSON thật khi gọi Workflowhmw— lead KHÔNG tựJSON.stringifyargs. Dòng normalize tronghmw.js(typeof args === 'string' ? JSON.parse(args)) chỉ là LƯỚI-CUỐI đỡ ca tầng-máy tự stringify object, KHÔNG phải giấy phép để lead tự stringify args khi truyền.
🔴 Guard (§K engine — bất-biến)
- Single deep-pass RETURN-only; em-main single-writer (B3) ghi 1 MEMORY entry đúng vai đó + gắn nhãn engine đã dùng (hmw SCHEMA
memoryDeltaKHÔNG field engine → em-main stamp @P3 harvest). - Một vai = một trí-nhớ dù chạy thật/ảo/engine nào (chống AS-10 fragment). Guard ensemble N-lane đầy-đủ (khi cặp
/fable-clonechạy) → §K.