[CLAUDE] Docs: dong W5 + W4b — het wave chay duoc ma khong can chu du an phan
Tiep chuoi adap 7-GD. Sau luot nay: 7/10 wave DONG.
W5 (GD-5):
- Va spawn-model-audit.ps1 4 ve. Bug that nang hon spec ta: 5 phien gan
nhat deu wf=0 => may thay 0 lane ma van in "TOTAL FLAGS: 0". Sau va:
phien S180 = 24/24 lane, co mau so, co dong KHAI khi phien do != moi nhat.
Fault-inject 2 chieu tren cay tam (workflow-only + flat-only).
- D-3: hmw.js sentinel MODEL_INHERIT, het nhanh undefined-im-lang.
- D-10 + D-12: harness-11-engine PHAN O. D-11 nay 4/5 (manh 5 = P7 ve ii).
- §6 tracking: khai lam-KHAC/manh-hon 5 dong, khong tu phong "da kiem chung".
W4b (GD-4, P8 + P4):
- Luat cham diem = harness-11-engine PHAN P, 5 khoan BAT BIEN.
- Khoi cham wire 2 cua phien + rao KHONG DO DUOC + INFORM-only >=3 phien
+ tach do-day-du-khi-chay (cong may) voi tan-suat (quyen chu du an,
CAM tich no) theo thu hub 2026-08-07.
- P4: cap 20->30 du 2 mirror => slot (75) DONG (28 vai <= 30, het LOUD-skip).
- 2 vai moi score-counter (tang-2) + score-count-auditor (tang-3), ranh cung
viet thang vao persona. Seed measured{} VA thu muc nhat ky - may soi ten
bat lead seed nua voi (thieu nhat ky => mfe-eval loai vai khoi phep do).
Khai thang: acceptance W4 o-1 grep '^ST-' = 0 vi so dang BANG (dem dung dang
= 2, dat ve chat); khong be bang de chieu regex. 2 vai moi + khoi cham chi an
tu RESTART ke.
Con lai: W3b (cho soak >=1 phien), W5b (cho P7 ve ii), W6 (moc ky cua anh).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@ -42,6 +42,12 @@ const VALID_ROLES = [
|
||||
'ring2-audit', 'ring4-audit', // +S145 C4/C4b vai #2/3 + #3/3 round-KIỂM (owner-decision [2] TÁCH mỗi-vòng-1-con). ring2-audit = KIỂM vòng soi-lead (đọc OUTPUT lead-stale+lead-gap, no-self-exempt ≠ chúng, KHÔNG soi lead trực-tiếp) · ring4-audit = KIỂM vòng nén-ngủ (đọc /sleep-recovery gist+Fidelity, tự đo byte). AUTO fire-after-measure, propose-only, NO-OP nếu vòng không đo.
|
||||
'ctx-audit', // +S153 ctx soft-memory 0df10df4 — vai-3 vòng Ctx: SOI-CHUỖI 2 đầu phiên, INFORM-only (🔄 OWNER-VETO @S153: (38)(a) 1-vai → hub-form 3-vai, anh chốt trực tiếp)
|
||||
'ctx-curator', 'ctx-verifier', // +S153 OWNER-VETO hub-form 3-vai — vai-1 KIỂM nháp @mỗi-pause (carve-out pause §1) · vai-2 ĐỐI-CHIẾU+NẠP @mỗi-tiep; cả 2 INFORM-only trả-văn-bản
|
||||
'score-counter', 'score-count-auditor', // +S181 W4b (chủ dự án phán P4) — tầng-2 + tầng-3 của luật chấm điểm
|
||||
// đáp-ứng-yêu-cầu (canonical `harness-11-engine.md` PHẦN P). 🔴 RANH CỨNG giữa 2 con, đừng gộp:
|
||||
// tầng-2 `score-counter` ĐẾM ĐỘC LẬP và **CẤM xem điểm tầng-1** trước khi đếm xong;
|
||||
// tầng-3 `score-count-auditor` kiểm PHÉP ĐẾM và **CẤM đề xuất một điểm khác** (đề xuất điểm = thành
|
||||
// tầng-2 thứ hai ⇒ không còn ai kiểm phép đếm). Gộp 2 con = mất đúng tính độc lập mà 4 tầng dựng ra.
|
||||
// Nợ P4 đã trả cùng lượt: seed `measured{}` cho CẢ HAI (số 0 = CHƯA ĐO, không phải đã-đo-bằng-0).
|
||||
'front-end-reviewer-style', 'back-end-reviewer-style', 'database-reviewer-style', // +S176 ĐỘI STYLE (anh chốt trực-tiếp).
|
||||
// 🔴 Trục = ĐỒNG-NHẤT style, ⟂ `reviewer` (ĐÚNG-SAI logic) ⇒ chạy SONG SONG được, không giẫm nhau.
|
||||
// Luật lõi anh giao: "tính năng đã deploy production = CHUẨN, trừ khi tao điều chỉnh lại lần nữa" —
|
||||
@ -88,14 +94,20 @@ const TIER2_EXPECTED_FULL_ID = 'claude-opus-5'
|
||||
// Escape-hatch per-task tier:'opus' GIỮ cho sweep/cost (ngoại lệ có chủ đích); tier:'fable' CHỈ hợp lệ
|
||||
// trong lượt lệnh engine-đắt anh gõ kèm vai (/fable-real|/fable-clone <vai> <đề-bài> — H21 S110);
|
||||
// lead KHÔNG tự ý elevate theo phán-đoán riêng (MTv3 §1.3: đường DUY NHẤT nâng 1 vai lên hạng-nhất = lệnh owner).
|
||||
// D-3 (W5/S181) — MỘT NGUỒN cho ý nghĩa "CỐ Ý không override model".
|
||||
// Trước đây 3 nhánh của resolveModel đều `return undefined`, nên đọc mã KHÔNG phân biệt được
|
||||
// *cố ý để mặc định* với *quên set* — đúng lớp "undefined-im-lặng" mà D-3 gọi tên.
|
||||
// Sentinel này KHÔNG đổi hành vi runtime: chỗ-gọi dịch nó về `undefined` trước khi truyền đi.
|
||||
const MODEL_INHERIT = 'inherit'
|
||||
|
||||
function resolveModel(role, rawRole, tier, i) {
|
||||
if (tier === 'fable' || tier === 'opus') return tier
|
||||
if (tier) log(`⚠️ hmw: tier "${tier}" lạ (task #${i}) → bỏ qua, dùng mặc định (frontmatter worker-tier opus)`)
|
||||
// Role-less (null) → inherit lead; invalid non-empty role đã THROW up-front (STOP-HARD, DIRECTED REC-3 2026-07-13)
|
||||
// → nhánh này giờ CHỈ đạt bởi role-less thật (rawRole null/''); giữ làm defensive no-op.
|
||||
if (!role && rawRole) return undefined
|
||||
if (!role) { log(`hmw: task #${i} role-less → inherit lead-model (H6.2 governed-ultracode; per-task tier:'opus' = escape-hatch sweep/cost)`); return undefined }
|
||||
return undefined // role có frontmatter: tất cả `opus`+`effort:max` (worker-tier-pin S124) — KHÔNG override
|
||||
if (!role && rawRole) return MODEL_INHERIT
|
||||
if (!role) { log(`hmw: task #${i} role-less → inherit lead-model (H6.2 governed-ultracode; per-task tier:'opus' = escape-hatch sweep/cost)`); return MODEL_INHERIT }
|
||||
return MODEL_INHERIT // role có frontmatter: tất cả `opus`+`effort:max` (worker-tier-pin S124) — KHÔNG override
|
||||
}
|
||||
|
||||
const SCHEMA = {
|
||||
@ -160,7 +172,7 @@ if (A.checkpointApproved !== true) {
|
||||
// >16 chỉ xếp hàng). Sweep TOÀN-ROSTER là use-case đã chạy thật (S125/S126 = 14/14 thời roster
|
||||
// 14); roster nay **20** ⇒ cap 16 cắt 4 lane, ép chia 2 đợt vô cớ. Đánh đổi khai thẳng:
|
||||
// 8 lane @S149 ≈ 1,06M token ⇒ 20 lane ước ~2,5M.
|
||||
const WIDTH_CAP = 20
|
||||
const WIDTH_CAP = 30
|
||||
if (A.taskList.length > WIDTH_CAP) {
|
||||
const dropped = A.taskList.slice(WIDTH_CAP)
|
||||
const keptN = WIDTH_CAP
|
||||
@ -273,7 +285,10 @@ const results = await parallel(A.taskList.map((t, i) => () => {
|
||||
agentType: role || undefined,
|
||||
schema: SCHEMA,
|
||||
label: (t && t.label) || `hmw:${role || 'task'}-${i}`,
|
||||
model: resolveModel(role, raw, t && t.tier, i), // worker-tier-pin (undefined = theo frontmatter = opus S124)
|
||||
// D-3 (W5/S181): dịch sentinel → `undefined` NGAY TẠI ĐÂY, tường minh.
|
||||
// `undefined` truyền xuống nghĩa là "không override, để frontmatter worker-tier quyết"
|
||||
// (= opus + effort:max, S124). Hành vi runtime y hệt bản trước; cái đổi là ĐỌC RA ĐƯỢC Ý ĐỊNH.
|
||||
model: (() => { const m = resolveModel(role, raw, t && t.tier, i); return m === MODEL_INHERIT ? undefined : m })(),
|
||||
})
|
||||
}))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user