Files
solution-erp/.claude/commands/fable-real.md
pqhuy1987 c2d01f0dce
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m30s
[CLAUDE] Docs: S152 closeout — bookend hình B trọn 2 đầu + owner (30)(31)(32) + queue memory-ops TRỌN (squash 20 wal:)
- Owner 3-quyết: (30) JUMP để-nguyên-theo-nhịp · (31) 4 persona +NEVER-block (restart ĐÃ THOẢ) · (32) vòng 1→5 AUTO — lô consent gỡ 9 site (5 H1 + ring1-tự-bắt + 3 trio; E-013 EXT)
- Memory-ops TRỌN: A1-A4/D1/D2/R1/B-series — A7 392/392 · mfe 20/20-100% lần đầu · lead-gap drain 24.728→16.485B · strike-ledger + WARN-latch (-Ack = owner-action)
- V4 sleep AUTO đầu: 1 shard thật/16 KÊU · ring4 đầu-đời TRƯỢT-4/5 → 4 fix gist (scribe sub-ring4-close vì return-only)
- Thư model re-stamp: 59ce1d0f → 9c909007 published (G-024a) — adap-report Đính-chính @S152 + sweep 13 bề-mặt LIVE
- Bookend @close: stale 6 FLAG + gap 2 FLAG → vá 8/8; ring2 8/8 ĐẠT (4-A pin-bản-cắt → slot 33) · ring1 48Đ/5T/59-claim
- M9 13 đơn-vị diary (3 S151-deep hồi-tố) · #53 ×10-chắc → tally 60-cận-dưới + errata subject-1b85713
- Session-log 2 run= + completeness-gate 5-vòng ĐẠT · HANDOFF segment S152 (carry 3-đóng/3-mới/23-giữ; slot 33/34)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 01:58:30 +07:00

48 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
description: /fable-real <vai> <đề-bài> — ENGINE-ĐẮT LỆNH-A per-invocation (H21): vai anh GÁN chạy 1 LẦN SINGLE top-model THẬT (Fable 5; outage → single-Opus-1M/run) deep-pass cho ĐÚNG đề-bài đó, hiệu-lực CHỈ lượt đó — KHÔNG marker, KHÔNG mode persist. Thiếu/sai vai → em main hỏi lại anh 1 dòng, KHÔNG tự chọn. Cặp /fable-clone.
argument-hint: <vai roster> <đề-bài phán-quyết> — vd "reviewer rà-soát commit X" · "investigator-codebase truy nguồn bug Y"
---
# /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 `.md` no 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`](../../docs/governance/fable-real-runbook.md).
> 🔧 **Guard ensemble / single-writer:** [`docs/governance/harness-11-engine.md`](../../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 (canonical → STATUS §Sub-agents; B1 — KHÔNG hardcode số) (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-stale-auditor` · `lead-gap-auditor` · **`harness-eval` · `harness-refine` · `harness-audit`** · **`ring1-audit` · `ring2-audit` · `ring4-audit`** (round-KIỂM ×3 S145).
> Số vai canonical → [`docs/STATUS.md`](../../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)** · **+3 @S145 = `ring1-audit`/`ring2-audit`/`ring4-audit` (round-KIỂM ×3, C4/C4b TÁCH mỗi-vòng-1-con)**.
- **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**:
1. **Engine propose-only** — vai chạy top-model đề-xuất [đề-bài · cách làm · checklist]. Engine KHÔNG tự ghi.
2. **Lead verify** — lead soi + chỉnh nội-dung propose.
3. **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**).
4. **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 = DEFAULT Opus 5 MAX** (thư `9c909007` @S149 (re-stamp 07-25 G-024a; pre `59ce1d0f`); model cao hơn = anh `/model` đầu phiên hoặc chính lệnh này — 🧊 idiom "frontier-class do ANH chọn per-session" superseded-VALUE, cấu trúc giữ). **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`](../../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, §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; nếu 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 Workflow `hmw` — lead **KHÔNG** tự `JSON.stringify` args. Dòng normalize trong `hmw.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 `memoryDelta` KHÔNG field engine em-main stamp @P3 harvest).
- **Một vai = một trí-nhớ** chạy thật/ảo/engine nào (chống AS-10 fragment). Guard ensemble N-lane đầy-đủ (khi cặp `/fable-clone` chạy) §K.