[CLAUDE] Docs: S124 adap-wave AI_INFRA + owner worker-tier-pin (14 agent opus+effort:max) + user-memory relocate R6 + H24 dogfood
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m26s
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m26s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -6,7 +6,7 @@
|
||||
|
||||
export const meta = {
|
||||
name: 'hmw',
|
||||
description: 'HMW P2 execute (SOLUTION_ERP) — fan-out roster ĐẦY-ĐỦ (số vai canonical → docs/STATUS.md §Sub-agents; KHÔNG hardcode số ở đây — lesson S108 comment stale làm worker đọc sai runtime) có MEMORY-PACK slice (qua args vì script không đọc file) + return findings + checklistEvidence + memoryDelta (spawn-record 4-field). 2 MODE (Harness 2, 06-07): (A) DEFAULT return-delta-only — fan-out NHỎ (<3 task VÀ ≤5 phút), sub KHÔNG ghi file, git-diff verify. (B) RUN-TRACE mode (args.run, Harness-10) — 🔴 BẮT BUỘC khi run ≥3 task HOẶC ước >5 phút (sàn H22 S111; script no-fs KHÔNG tự ép — enforcement = em-main scaffold @P1 + set args.run) — workflow DÀI, em main scaffold .claude/workflows/runs/<run-id>/ TRACKED FLAT (run.md + sub-<role>-<i>.md + <stage>-synthesis.md phẳng cùng cấp) @P1, sub ghi full-detail vào CHỈ sub-<role>-<i>.md mình (B4/B6), harvest per-turn primary (C4) + H2 gom @session-end = backstop verify-idempotent. taskList thoải mái (queue theo slot, không cap cứng). memoryDelta KHÔNG tự ghi — em main VERIFY + APPEND-only @P3 (no-overwrite-unverified, B3). Model H8 all-inherit (Harness-8 2026-06-16): role-có-frontmatter inherit top-tier lead · role-less inherit · per-task tier:\'fable\'|\'opus\' escape-hatch. Scope = repo SOLUTION_ERP ONLY (S1 — KHÔNG fan-out repo/corpus khác).',
|
||||
description: 'HMW P2 execute (SOLUTION_ERP) — fan-out roster ĐẦY-ĐỦ (số vai canonical → docs/STATUS.md §Sub-agents; KHÔNG hardcode số ở đây — lesson S108 comment stale làm worker đọc sai runtime) có MEMORY-PACK slice (qua args vì script không đọc file) + return findings + checklistEvidence + memoryDelta (spawn-record 4-field). 2 MODE (Harness 2, 06-07): (A) DEFAULT return-delta-only — fan-out NHỎ (<3 task VÀ ≤5 phút), sub KHÔNG ghi file, git-diff verify. (B) RUN-TRACE mode (args.run, Harness-10) — 🔴 BẮT BUỘC khi run ≥3 task HOẶC ước >5 phút (sàn H22 S111; script no-fs KHÔNG tự ép — enforcement = em-main scaffold @P1 + set args.run) — workflow DÀI, em main scaffold .claude/workflows/runs/<run-id>/ TRACKED FLAT (run.md + sub-<role>-<i>.md + <stage>-synthesis.md phẳng cùng cấp) @P1, sub ghi full-detail vào CHỈ sub-<role>-<i>.md mình (B4/B6), harvest per-turn primary (C4) + H2 gom @session-end = backstop verify-idempotent. taskList thoải mái (queue theo slot, không cap cứng). memoryDelta KHÔNG tự ghi — em main VERIFY + APPEND-only @P3 (no-overwrite-unverified, B3). Model worker-tier-pin (owner-decision S124): role-có-frontmatter = opus+effort:max (worker-tier, KHÔNG inherit) · role-less inherit lead · per-task tier:\'fable\'|\'opus\' escape-hatch (fable qua /fable-real; H23-precedence CHƯA test — restart-để-ăn). Scope = repo SOLUTION_ERP ONLY (S1 — KHÔNG fan-out repo/corpus khác).',
|
||||
phases: [{ title: 'Execute', detail: 'fan-out memory-pack-injected agents, structured return' }],
|
||||
}
|
||||
|
||||
@ -38,23 +38,27 @@ const VALID_ROLES = [
|
||||
// ─── PA-2a — hằng-số kỳ-vọng model tier-2 (H23 model-at-spawn, owner-chốt O1 @S121 W2) ──
|
||||
// 🔴 ĐÂY LÀ HẰNG-SỐ KHAI-BÁO, KHÔNG PHẢI CƠ-CHẾ NEO. Nó KHÔNG ép model lúc spawn.
|
||||
// Vì sao chỉ là hằng-số: neo-model-tại-spawn BẤT-KHẢ-THI ở SE — param `model:` chỉ nhận ALIAS
|
||||
// ('opus'/'fable'/...), không nhận full-id; và SE có 0 agent pin full-id (H8 all-inherit 14/14).
|
||||
// ('opus'/'fable'/...), không nhận full-id; SE nay pin ALIAS `opus` (KHÔNG full-id) ở 14/14 frontmatter.
|
||||
// ⇒ owner chốt PA-2 = PA-2a (hằng-số này, để audit có thứ ĐỐI-CHIẾU) + PA-2b (scripts/spawn-model-audit.ps1
|
||||
// so resolved-vs-expected). Đọc bởi: scripts/spawn-model-audit.ps1 (thiếu hằng-số ⇒ script FAIL-LOUD).
|
||||
// 🔸 CHƯA VERIFY (khai thật, KHÔNG giả-vờ đã test — v2:271): thứ-tự ưu-tiên giữa "tham-số tại spawn" và
|
||||
// "pin ở tệp định-nghĩa" khi CẢ HAI cùng hiện-diện = CHƯA TỪNG ĐƯỢC TEST. Ở SE cả hai đều hiện-diện
|
||||
// (resolveModel() trả alias vào agent(...,{model:...}) TRONG KHI frontmatter 14/14 = inherit).
|
||||
// Nếu frontmatter THẮNG ⇒ mọi escape-hatch tier: = NO-OP. Phép thử phân-biệt được CHỈ chạy được ở
|
||||
// phiên lead=Fable (lead=Opus thì 2 nhánh ra cùng kết-quả ⇒ không phân-biệt) ⇒ DEFER, không bán quá nấc.
|
||||
// 🔸 H23 precedence — NAY TESTABLE (đổi từ DEFER, owner-decision S124): thứ-tự ưu-tiên giữa "tham-số tại spawn"
|
||||
// và "pin ở tệp định-nghĩa" khi CẢ HAI cùng hiện-diện. Ở SE cả hai đều hiện-diện (resolveModel() trả alias
|
||||
// vào agent(...,{model:...}) TRONG KHI frontmatter 14/14 = opus, KHÔNG còn inherit).
|
||||
// 🔴 Vì frontmatter nay = `opus` (KHÁC `fable`): spawn tier:'fable' → nếu spawn THẮNG=fable, nếu frontmatter
|
||||
// THẮNG=opus ⇒ PHÂN-BIỆT ĐƯỢC KỂ CẢ lead=Opus (khác thời all-inherit — inherit→lead làm 2 nhánh trùng).
|
||||
// 🔴 Nếu frontmatter THẮNG ⇒ tier:'fable' của /fable-real = NO-OP ⇒ KHÔNG escalate Fable được (owner dùng
|
||||
// /model chọn lead=Fable tay). PHẢI test phiên kế (sau RESTART kích-hoạt frontmatter mới): spawn 1 lane
|
||||
// tier:'fable' → đọc resolved qua spawn-model-audit.ps1. CHƯA test lượt này (frontmatter mới cần restart).
|
||||
// 🔸 CHƯA THỬ (fix#8a): param `model:` có TỪ-CHỐI full-id không — doc nói enum-alias; chưa ai thử thật.
|
||||
const TIER2_EXPECTED_FULL_ID = 'claude-opus-4-8'
|
||||
|
||||
// ─── H8 all-inherit top-tier (Harness-8 adopt 2026-06-16 — thay thế two-tier H4.5) ──
|
||||
// MỌI sub-agent có memory → frontmatter `model: inherit` = ăn top-tier lead (runtime PER-SESSION
|
||||
// outage-driven — BƯỚC 0.6 probe mỗi phiên; flip-chain canonical → docs/STATUS.md §Sub-agents.
|
||||
// KHÔNG hardcode model hiện-hành ở comment — lesson S108: comment stale làm 2/4 worker đọc sai runtime).
|
||||
// KHÔNG còn demote-pin `claude-opus-4-8` (H4.5 đã gỡ).
|
||||
// hmw KHÔNG set model cho role-có-frontmatter → return undefined, frontmatter (inherit) tự lo.
|
||||
// ─── Worker-tier-pin opus (owner-decision S124 — thay thế H8 all-inherit; adopt erratum-h8 floor) ──
|
||||
// MỌI sub-agent (14/14) → frontmatter `model: opus` + `effort: max` = worker-tier gán-cứng (KHÔNG còn
|
||||
// inherit lead). Lead = frontier owner-choice per-session (BƯỚC 0.6 probe); Fable = owner gõ /fable-real
|
||||
// HOẶC /model tay (owner "còn Fable tao sẽ chỉ định qua Fable-real hoặc tự chọn").
|
||||
// KHÔNG hardcode model hiện-hành ở comment — lesson S108: comment stale làm 2/4 worker đọc sai runtime.
|
||||
// (🔴 restart-CLI để frontmatter mới ăn runtime — EDIT-agent-tồn-tại no-hot-reload.)
|
||||
// hmw KHÔNG set model cho role-có-frontmatter → return undefined, frontmatter (opus) tự lo (= worker-tier).
|
||||
// Role-less (H6.2 governed-ultracode): default = inherit lead-model (top-tier) — KHÔNG pin rẻ làm default.
|
||||
// H8.2 "workflow nhanh nhất" = song song tối đa + xuất nhanh, KHÔNG hạ model làm rẻ.
|
||||
// Escape-hatch per-task tier:'opus' GIỮ cho sweep/cost (ngoại lệ có chủ đích); tier:'fable' CHỈ hợp lệ
|
||||
@ -62,12 +66,12 @@ const TIER2_EXPECTED_FULL_ID = 'claude-opus-4-8'
|
||||
// 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).
|
||||
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 H8 (inherit top-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ả `inherit` (H8 all-inherit top-tier) — KHÔNG override
|
||||
return undefined // role có frontmatter: tất cả `opus`+`effort:max` (worker-tier-pin S124) — KHÔNG override
|
||||
}
|
||||
|
||||
const SCHEMA = {
|
||||
@ -162,7 +166,7 @@ if (!wave && A.taskList.length >= 3) {
|
||||
// để whitelist ⇒ 3 nguyên-tắc detector của broadcast là N/A **vì không có launcher**, KHÔNG phải vì "hết kẽ".
|
||||
|
||||
phase('Execute')
|
||||
log(`HMW P2: fan-out ${A.taskList.length} task (${wave ? 'RUN-TRACE' : 'return-delta-only'}, H8 all-inherit top-tier, memory-pack-injected, scope=SOLUTION_ERP repo only)`)
|
||||
log(`HMW P2: fan-out ${A.taskList.length} task (${wave ? 'RUN-TRACE' : 'return-delta-only'}, worker-tier-pin opus, memory-pack-injected, scope=SOLUTION_ERP repo only)`)
|
||||
|
||||
const results = await parallel(A.taskList.map((t, i) => () => {
|
||||
const raw = t && t.role
|
||||
@ -208,7 +212,7 @@ 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), // H8 all-inherit (undefined = theo frontmatter = inherit)
|
||||
model: resolveModel(role, raw, t && t.tier, i), // worker-tier-pin (undefined = theo frontmatter = opus S124)
|
||||
})
|
||||
}))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user