[CLAUDE] Docs: S125-S126 closeout GOP — H23-precedence DO (spawn-param THANG hard-pin, /fable-real SONG) + sweep all-inherit va 15+3+5 + gotcha #83 + hub-mail h23-result
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m30s
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m30s
- NHOM A restart-verify: A1 tier:'fable' tren reviewer pin-opus -> resolved claude-fable-5 (spawn-param THANG); A2 no-tier -> claude-opus-4-8 DU lead=Fable (pin an runtime); A3 autoMemory WRITE-path OK (project_h23_spawn_precedence.md moi). - B1 sweep all-inherit floor-song: 15 dong/5 file + 3 cung-lop lot-pattern + 5 dong H23-stale o 3 command-file (H1 bat) -> VA HET; spawn-model-audit Section-D flush H8->S124 + effort-check (fault-inject 2-chieu PASS, 14 duong-gia -> 0); governance-detectors C3 seed +worker-tier-pin; re-grep 0 floor-song; suite 45 = baseline 0-new. - vocab-alias-map §3 canonical flip -> worker-tier-pin (all-inherit/two-tier = 2 alias cu); STATUS:6 FROZEN-diary label (het H24-3 lag); STATUS:25 + agents/README:5 sync. - Email hub h23-precedence-test-result stamp 945cf3ad (reviewer-gate FAIL bat 3 loi truoc stamp -> gotcha #83 aggregate-cumulative) + _index cung luot. - B3/B4 owner-gated: soan b3-b4-owner-gated-proposals.md CHO ANH (mega-line retier + budget:74 wording) — 0 apply. - Closeout: harvest 4 lane + 2 monitor (H2 GATE PASS 5/5, 0/29 orphan; H1 3/4 clean + 5-spot fix) + curate moved-not-cut reviewer/inv-cb + carry disposition (DONG 2: restart-s124, h23-fable-test-postrestart; MO re-stamp 9) + H24 counter=5 + pilot H22 D5 (pause-roundtrip + hook-fire re-verified; cross-model PENDING). - Governance/tooling-only: 0 prod-code, 0 mig, test 509 GIU, bundle FROZEN. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@ -105,9 +105,9 @@ tier==='fable'||'opus' → return tier // pin model (escape-hatch)
|
||||
tier lạ khác → warn + bỏ qua (:39)
|
||||
!role && rawRole (typo) → return undefined // fail-UP inherit Fable (:42)
|
||||
!role (role-less) → return undefined // inherit lead-model (:43)
|
||||
role có frontmatter → return undefined // H8 all-inherit top-tier (:44)
|
||||
role có frontmatter → return undefined // frontmatter tự lo = worker-tier opus (S124; hmw.js:74)
|
||||
```
|
||||
⇒ Không set `tier` = mọi lane clone chạy **inherit top-tier** (mặc-định); muốn ép tier-2 Opus (giữ quota Fable cho lead) = thêm `tier:'opus'`.
|
||||
⇒ Không set `tier` = mọi lane clone chạy **worker-tier `opus` theo frontmatter** (S124 — hết inherit-lead); `tier:'opus'` mỗi lane VẪN ghi tường-minh (clone = ensemble tier-2 by-definition, GAP#6 — pin chữ rõ hơn pin ngầm).
|
||||
|
||||
---
|
||||
|
||||
@ -116,7 +116,7 @@ role có frontmatter → return undefined // H8 all-inherit top-tier (
|
||||
| Việc | Cơ-chế | Lệnh / param chạy được | Khi nào dùng |
|
||||
|---|---|---|---|
|
||||
| **Clone ensemble** (N lane CÙNG vai) | `hmw.js parallel` (`:98`) → `agent()` (`:138-143`) | JSON args bên dưới — `taskList` = N item cùng `role` | Lượt anh gõ `/fable-clone <vai>` + heavy-judgment (H21 per-invocation; 🧊 cũ: marker VẮNG) |
|
||||
| **Real single** (1 deep pass) | **Agent-tool spawn LẺ** (1 agent) | `agentType: "reviewer"` \| `"investigator-codebase"`, prompt deep-pass; model = lead-runtime (inherit) | Lượt anh gõ `/fable-real <vai>` + cần 1 lăng-kính sâu nhất (H21 per-invocation; 🧊 cũ: marker CÓ) |
|
||||
| **Real single** (1 deep pass) | **Agent-tool spawn LẺ** (1 agent) | `agentType: "<vai anh gán>"`, prompt deep-pass; 🔴 PHẢI set `model:'fable'` param (S124 pin opus ⇒ không set = opus, KHÔNG còn lead-runtime; spawn-param THẮNG pin — đo S126) | Lượt anh gõ `/fable-real <vai>` + cần 1 lăng-kính sâu nhất (H21 per-invocation; 🧊 cũ: marker CÓ) |
|
||||
| **Resume lane garble/truncate** | **SendMessage-resume in-session** | gửi lại agent đã spawn (KHÔNG re-spawn mới) | Lane trả wrong-slice (#53) — nấc 2 recovery-ladder (diary → SendMessage-resume S105 → em-main solo) |
|
||||
| **Fallback cuối** | em-main solo | em-main tự làm vai phán-quyết | 529 overload / spawn truncate / SendMessage cũng garble |
|
||||
|
||||
@ -144,7 +144,7 @@ role có frontmatter → return undefined // H8 all-inherit top-tier (
|
||||
Nguồn: `harness-11-engine.md §K.C:327-330`. Pin để stamp CÓ NGHĨA (không paperwork).
|
||||
|
||||
**🔴 GAP-1 — scope-creep guard (RULE):** Ảo-run **BẮT BUỘC = N lane CÙNG 1 vai phán-quyết** (multi-lens), **CẤM mixed-roster fan-out**.
|
||||
- Lý-do: `hmw.js` VALID_ROLES nhận đủ vai KHÔNG gate → all-inherit **CHE** leak (mọi vai top-tier nên roster-trộn "trông ổn"; Fable về + phân-tầng thì rò top-tier ensemble sang vai ngoài 2 vị-trí).
|
||||
- Lý-do: `hmw.js` VALID_ROLES nhận đủ vai KHÔNG gate → worker-tier-pin **CHE** leak qua opus (mọi vai pin opus nên roster-trộn "trông ổn" — như thời all-inherit; lượt `tier:'fable'` mixed-roster = rò top-model sang vai ngoài lệnh).
|
||||
- Evidence-form: `taskList[*].role` phải đồng-nhất = ĐÚNG vai anh gán trong lệnh (grep taskList trước fan-out; §3/§4 template = `reviewer`/`investigator-codebase`). Ghi-chú: engine `§K.C` khai "**TOÀN roster**" khớp `hmw.js:22-36` (lịch-sử: 9 S101 → +`office-document` S107 → +2 monitor H1/H2 S110 → **+2 monitor H24 S121 W2**) — luật "no-gate → em-main tự-gác" KHÔNG đổi. 🔴 **KHÔNG chép số vai vào đây** (B1 → [`docs/STATUS.md`](../STATUS.md) §Sub-agents).
|
||||
- Nấc: **convention** (hmw.js không gate vai; kỷ-luật em-main gác).
|
||||
|
||||
@ -218,13 +218,13 @@ Mọi biến em-main chốt @P0/P1 rồi bơm vào lane. Kiểu + nguồn đọc
|
||||
|
||||
### 3.2 REAL-mode — single-deep-pass qua Agent tool
|
||||
|
||||
Điều-kiện: lượt này **anh gõ `/fable-real <vai> <đề-bài>`** (H21 — quote lệnh làm evidence). 🧊 *(H19: `$mode == real` marker CÓ.)* Spawn **DUY NHẤT 1** `investigator-codebase` qua **Agent tool** (KHÔNG qua `hmw.js` — hmw dành cho clone-ensemble), đào SÂU 1 lần. `model: inherit` (frontmatter `investigator-codebase.md:5`) → top-tier lead: Fable up = Fable · Fable down (H5) = Opus-1M per-run (§3.6).
|
||||
Điều-kiện: lượt này **anh gõ `/fable-real <vai> <đề-bài>`** (H21 — quote lệnh làm evidence). 🧊 *(H19: `$mode == real` marker CÓ.)* Spawn **DUY NHẤT 1** `investigator-codebase` qua **Agent tool** (KHÔNG qua `hmw.js` — hmw dành cho clone-ensemble), đào SÂU 1 lần. Frontmatter `investigator-codebase.md:5` nay = `model: opus` (worker-tier-pin S124) ⇒ 🔴 real-mode PHẢI set `model:'fable'` param tại spawn (spawn-param THẮNG pin — đo S126; không set = opus): Fable up = Fable · Fable down (H5) = set `'opus'` Opus-1M per-run (§3.6).
|
||||
|
||||
**Tham-số spawn (Agent tool / Task):**
|
||||
|
||||
```
|
||||
subagent_type: "investigator-codebase"
|
||||
model: inherit # frontmatter model:inherit (investigator-codebase.md:5) → top-tier lead
|
||||
model: fable # 🔴 PHẢI set param (frontmatter nay pin opus S124; param THẮNG pin — đo S126). Fable-outage → 'opus' (H5 §3.6)
|
||||
description: "ground-truth: <$target rút gọn 1 dòng>"
|
||||
prompt: |
|
||||
# NHIỆM-VỤ: ground-truth / xác-minh sự-thật (Fable-real, single-deep-pass)
|
||||
@ -364,9 +364,9 @@ Tick mỗi lần chạy lane (cả 2 mode trừ khi ghi `[clone]`/`[real]`):
|
||||
Task/Agent(
|
||||
subagent_type: 'reviewer', # = agentType; persona .claude/agents/reviewer.md; VALID_ROLES hmw.js:22-28
|
||||
description : 'reviewer-real: <$reviewTarget>',
|
||||
# model : KHÔNG set → inherit top-tier (H8 all-inherit; resolveModel hmw.js:44 role-có-frontmatter → undefined)
|
||||
# model : 'fable' — 🔴 PHẢI set (S124 frontmatter pin opus ⇒ KHÔNG set = opus; spawn-param THẮNG pin, đo S126)
|
||||
# Fable UP → single-Fable (sâu nhất, đắt nhất)
|
||||
# Fable DOWN→ single-Opus-1M (H5 per-run auto, KHÔNG đổi marker/mode — fable-real.md:20 / §4.7)
|
||||
# Fable DOWN→ set 'opus' = single-Opus-1M (H5 per-run — fable-real.md / §4.7)
|
||||
prompt : <<ADVERSARIAL TEMPLATE (b)>>
|
||||
)
|
||||
```
|
||||
@ -441,7 +441,7 @@ args = {
|
||||
|
||||
| GAP | Rủi-ro (engine) | Cách bấm | Nguồn |
|
||||
|---|---|---|---|
|
||||
| **GAP-1 scope-creep** | `hmw.js` VALID_ROLES nhận **TOÀN roster** KHÔNG gate → all-inherit CHE leak | CLONE `taskList` MỌI `role:'reviewer'` (N-lane CÙNG vai, KHÔNG mixed-roster) | `§K.C:328` · `hmw.js:22-36` |
|
||||
| **GAP-1 scope-creep** | `hmw.js` VALID_ROLES nhận **TOÀN roster** KHÔNG gate → worker-tier-pin CHE leak qua opus (như thời all-inherit) | CLONE `taskList` MỌI `role:'reviewer'` (N-lane CÙNG vai, KHÔNG mixed-roster) | `§K.C:328` · `hmw.js:22-36` |
|
||||
| **GAP-2 engine-label** | SCHEMA `memoryDelta` KHÔNG field engine | em-main **stamp nhãn engine @P3 harvest** (`real\|clone-<tier>-Sxxx`) = convention | `§K.C:329` · `hmw.js:54-64` |
|
||||
| **GAP-3 AS-10 fragment** | N lane giữ Bash (fails-open) → phân-mảnh trí-nhớ | N lane **RETURN-only** → em-main ghi **1 entry / vai** (+ nhãn) | `§K.C:330` · `fable-real.md:26` |
|
||||
|
||||
@ -517,7 +517,7 @@ args = {
|
||||
- `clone` = **N-lane ensemble tier-2** (multi-lens; để dành quota top-model cho lead — `fable-clone.md:8`).
|
||||
- ⚠️ **Cost-delta tùy runtime:** Fable DOWN → real vs clone 0 tier-delta (chỉ khác N-lane count). **Fable UP** → real=Fable-deep (đắt nhất/lần) ⟂ clone `tier:'opus'`=tier-2 (giữ quota Fable cho lead). Ghi honest theo probe (`harness-11-engine.md:332,334`).
|
||||
- [ ] 🧊 *(H19 retired)* **P5 cũ — scope-lock 2 vai** (`POSITION ∈ {reviewer, investigator-codebase}`, vai khác EXCLUDED).
|
||||
- [ ] **P5-mới (H21) — scope-lock = `ROLE_VALID`**: `INVOCATION.vai ∈ roster` do ANH gán (thiếu/lạ → hỏi anh, KHÔNG tự chọn); ⚠️ 2 monitor H1/H2 ĐÃ vào VALID_ROLES (S110) + **2 monitor H24 vào S121 W2** → hết limitation; vai-INVALID nay = STOP-HARD throw (REC-3 2026-07-13, KHÔNG fail-soft). Ngoài lượt lệnh: mọi vai giữ model roster (H8 all-inherit), lead KHÔNG tự elevate (K.D mới). *Evidence:* vai lượt này + quote lệnh.
|
||||
- [ ] **P5-mới (H21) — scope-lock = `ROLE_VALID`**: `INVOCATION.vai ∈ roster` do ANH gán (thiếu/lạ → hỏi anh, KHÔNG tự chọn); ⚠️ 2 monitor H1/H2 ĐÃ vào VALID_ROLES (S110) + **2 monitor H24 vào S121 W2** → hết limitation; vai-INVALID nay = STOP-HARD throw (REC-3 2026-07-13, KHÔNG fail-soft). Ngoài lượt lệnh: mọi vai giữ model roster (worker-tier-pin `opus` S124), lead KHÔNG tự elevate (K.D mới). *Evidence:* vai lượt này + quote lệnh.
|
||||
|
||||
---
|
||||
|
||||
@ -560,7 +560,7 @@ args = {
|
||||
description: "Fable-real judge: <ARTIFACT>"
|
||||
prompt: "<spec + acceptance + diff + RETURN-format bắt-buộc>"
|
||||
```
|
||||
Agent frontmatter `model: inherit` (`reviewer.md:5` / `investigator-codebase.md:5`) → tự ăn top-tier (`LEAD_MODEL`). *(Thay-thế: hmw 1-task + `tier:'fable'` ép lead-tier nếu cần RUN-TRACE — `hmw.js:38`.)*
|
||||
Agent frontmatter `reviewer.md:5`/`investigator-codebase.md:5` nay = `model: opus` (pin S124) ⇒ 🔴 spawn PHẢI set `model:'fable'` (param THẮNG pin — đo S126; không set = opus, KHÔNG phải `LEAD_MODEL`). *(Thay-thế: hmw 1-task + `tier:'fable'` — `hmw.js:68`.)*
|
||||
- [ ] **R3 — GAP-guard tại spawn** *(tick cả 3):*
|
||||
- GAP-1: mọi lane CÙNG **1 vai** (`taskList` roles distinct = 1), KHÔNG mixed-roster (`harness-11-engine.md:328`).
|
||||
- Lane **RETURN-only**, 0 Write memory (write-guard `hmw.js:118-122`; GAP-3).
|
||||
@ -639,7 +639,7 @@ Một lượt phán-quyết **ĐẠT ⟺ tất-cả** AC dưới (đo-được,
|
||||
| # | Anti-pattern | Vi-phạm (nguồn) | Đúng phải làm | Detect |
|
||||
|---|---|---|---|---|
|
||||
| **AP-1** | Bật real **tự-động** không anh-gõ | K.D **point-2** (`harness-11-engine.md:332`) — real CHỈ do anh gõ `/fable-real <vai> <đề-bài>` | muốn real mà anh chưa gõ LƯỢT NÀY ⇒ STOP + ĐỀ XUẤT anh gõ *(🧊 H19: "0 marker + muốn real ⇒ STOP")* | transcript lượt đó vắng `/fable-real` nhưng chạy real |
|
||||
| **AP-2** | **Mixed-roster** ensemble (fan-out nhiều vai) | GAP-1 scope-creep leak (`:328`) — all-inherit CHE tới khi Fable về | N lane **CÙNG 1 vai** (multi-lens) | `taskList` roles distinct-count > 1 |
|
||||
| **AP-2** | **Mixed-roster** ensemble (fan-out nhiều vai) | GAP-1 scope-creep leak (`:328`) — worker-tier-pin CHE qua opus (như all-inherit trước nó) | N lane **CÙNG 1 vai** (multi-lens) | `taskList` roles distinct-count > 1 |
|
||||
| **AP-3** | Lane **tự ghi memory** (store_memory / MEMORY.md / Bash-append) | GAP-3 / AS-10 fails-open (`:330,:120`) | RETURN-only; em-main ghi 1-entry/vai | git-diff `agent-memory/*` đổi trong P2 · RAG chunk-count |
|
||||
| 🧊 **AP-4** (H19 retired) | Quên **báo marker-state** cuối phiên | marker persist qua session = BY-DESIGN (`fable-real.md:10`) nhưng thiếu báo → anh quên mode đang real (burn top-model ngoài ý) | session-end **BÁO marker-state + NHẮC anh** gõ `/fable-clone` nếu muốn về ảo (em-main KHÔNG tự toggle — K.D point-2); KHÔNG commit marker (gitignored `.gitignore:92`) | BƯỚC 0.5b @start + session-end marker-report |
|
||||
| **AP-4-mới** (H21) | Chạy engine-đắt **NGOÀI lượt-lệnh** anh gõ | K.D point-2 + H21 §2.1-bis — engine-đắt CHỈ trong lượt anh gõ `/fable-real`\|`/fable-clone` kèm vai; kể cả **HMW-mode ON**, kể cả "thấy cần" = **VI-PHẠM** (lead KHÔNG tự ý) | Đợi lượt-lệnh anh; thiếu vai → **hỏi anh 1 dòng, KHÔNG tự chọn vai** | engine-đắt chạy mà transcript lượt đó vắng `/fable-real`\|`/fable-clone` |
|
||||
|
||||
Reference in New Issue
Block a user