Files
solution-erp/.claude/commands/ultra-on.md
pqhuy1987 00a1c67e55 [CLAUDE] Infra: W2 GOP-1-COMMIT - San-1 gate + PA-2a + roster 12->14 (2 monitor H24) + h24_cadence + counter + STATUS 2 row
Wave adap-6-broadcast W2 = 1 OWNER / 1 COMMIT co chu dich. Cac manh phu-thuoc nhau, tach ra la vo
duong dang chay (R2-C3): gate o W2 ma co o W3 => moi /fable-clone >=3 lane THROW ngay truoc khi W3 kip va.

(1) hmw.js - 1 EDIT, 4 viec
    - SAN-1 GATE co-khi-hoa: taskList>=3 && !args.run => THROW STOP-HARD.
      Truoc S121 san nay chi la CHU trong doc ("script no-fs KHONG tu ep") => phu thuoc lead NHO.
      Do that @S119: git grep args.run .claude/commands/ = 0 hit => 4/4 wrapper KHONG co => san danh-nghia.
      Vi sao >=3: chet giua run dai ma khong co runs/<run-id>/ => per-turn returns mat theo phien,
      CHI file tren dia song sot => /tiep §4 khong co vat-lieu cat-got => chay lai TU DAU (S118
      raw-Agent 7-spawn => 0 run-folder). THROW chu khong fail-soft (fail-soft = dut am-tham).
    - VALID_ROLES 12->14 (+lead-view-auditor +lead-omission-auditor).
    - PA-2a: TIER2_EXPECTED_FULL_ID = 'claude-opus-4-8'. La HANG-SO KHAI-BAO, KHONG phai co-che neo
      (neo-tai-spawn bat-kha-thi: param chi nhan alias; SE 0 full-id vi H8 all-inherit). Doc boi
      scripts/spawn-model-audit.ps1 (W1b) - thieu hang-so => script FAIL-LOUD.
    - H23 note CHUA-VERIFY giu nguyen nac: precedence spawn-param vs frontmatter khi CA HAI hien-dien
      = CHUA TUNG TEST; phan-biet duoc CHI o phien lead=Fable => DEFER, khong ban qua nac. + fix#8a chua thu.

(2) 4 co wrapper CUNG COMMIT voi gate (San-1 (c))
    fable-clone.md / fable-real.md / ultra-on.md => args.run: 0 -> 3 hit.
    Wrapper thu 4 = raw-invoke em-main: KHONG co file de gan co => duoc GATE chan truc tiep
    (chinh cu fault-inject duoi day di duong do). Khai that: gate chi phu hmw.js; nguong "hoac uoc
    >5 phut" KHONG co-khi-hoa duoc (script khong do truoc thoi-luong) => van la ky-luat lead;
    raw Workflow/Agent tool = ke CON-LAI khong gate duoc.
    + go so roster stale (view-stale-role-desc): "roster 12"/"12 sub"/"8-agent"/"9-agent" -> tro
    canonical docs/STATUS.md §Sub-agents (B1). session-start.md con "roster 12" = W3 so-huu, KHONG dung.

(3) 2 vai MOI - H24 §2(1), cookie-cutter frontmatter monitor san
    lead-view-auditor  = view LECH source (5 class view-*)
    lead-omission-auditor = cai BI THIEU (5 class gap-*)
    model:inherit / memory:project / maxTurns:18 / 8 tool read-only / NO Write-Edit / propose-only.
    KHONG gop vao tooling-auditor(H1)/harvest-curator(H2): H24 "gop la mat tieu-diem; can cap mat
    CHI danh cho lead". Tu-vung view/omission chon tranh va-cham (detectors:15 da so-huu
    derived-staleness; GAP qua-tai). 2 file 0-CR + block-scalar (giu ': ' N/A).

(4) memory-budget.json - single-source H24 §2(3)
    h24_cadence { light_every:6, deep_every:15, jump_on_class_repeat:3 } (anh chot Q2).
    lead_self_audit.flag_classes = enum DONG 10 class (5 view-* + 5 gap-*) - vai CAM tu che class
    (v2 M4: enum song trong dau 1 lane => worker khong bao gio thay => tu che => loang thong-ke).
    Honest-caveat giu de bao hub: hub dan "dung chep 3 con-so nay"; SE chon trung 6/15/3 = anh chot
    CO CHU-DICH lam khoi-diem, KHONG phai chep vo-thuc; re-tune sau chu-ky-2.

(5) .claude/governance/.session-counter.json (NEW) - seed UNTICKED trung thuc
    Content-based (idempotent-key = HEAD sha), KHONG blind-increment: hook wal-flush auto-commit
    agent-memory/ MOI TURN => dem mu se vo nghia. Dat o .claude/governance/ CO CHU-DICH = ngoai
    3 path hook (.claude/WAL.md, agent-memory/, workflows/runs/) => khong bi quet vao commit wal:.
    counter=0 + last_ticked_*=null = SU THAT tai S121 (nghi-thuc tick land o W3); seed tick gia
    se lam phep do cadence dau tien noi doi - dung thu H24 sinh ra de bat.

(6) STATUS.md 2 row - CUNG LANDING roster (R3-M2: lech => detector BAO tren chinh thay doi cua H24)
    | Sub-agents | 12 -> 14 |
    | Policies | 216 | ROW MOI - GAP-3 can no de resolve token 'policy'.
    216 GROUND TU MA NGUON, khong chep tu spec: |MenuKeys.All| x |MenuKeys.Actions| = 54 x 4
    (Program.cs:82-89 AddPolicy loop; MenuKeys.cs:167 Actions=[Read,Create,Update,Delete]).
    => Policies la DERIVED = Menu keys x 4 => 2 row BUOC doi cung nhau (ghi thang vao row).

VERIFY LEAD TU DO (khong tin return):
  14/14/14 (roster / VALID_ROLES / agents-*.md tru README) = acceptance ② EOL.
  Glob tho = 15 => xac nhan R2-C1: acceptance CU "ls agents/*.md = 14" se FAIL tren impl DUNG.
  Hop-dong cheo W1<->W2 khep CA HAI chieu, do bang chinh script W1:
    detector H24-2: "h24_cadence missing" -> "M = h24_cadence.light_every = 6 (read from config)"
    spawn-model-audit: "expected constant missing" -> "[OK] expected = claude-opus-4-8 = owner-ratified"
    GAP-3 policy: MISSING -> 216, va BAT NGAY permission-matrix/SKILL.md:3 "writes 240 policy but
      canonical=216" (+:81 "writes 48") => TOTAL 49->50 (-1 fail-loud cadence, +2 policy) = so cong khop.
  eol-check tu nhan 2 vai moi: scoped 37->39 (dem bang glob, khong hardcode).
  FAULT-INJECT SAN-1 2 CHIEU (bai hoc W0.3: chi test 1 chieu thi dieu-kien viet nham van PASS):
    (b) 3 task + KHONG args.run -> THROW, agent_count=0, subagent_tokens=0, 14ms (chan TRUOC spawn)
    (a) 2 task + KHONG args.run -> gate IM, workflow launch binh thuong => khong over-fire, nguong
        dung la >=3. Neu viet nham `if (!wave)` thieu nguong thi /fable-real 1-lane se chet oan.

CHUA VERIFY (khai that, KHONG gia vo):
  14/14 spawn-probe SONG = PHAI chay SAU RESTART (registry = anh-chup khoi-phien; S120+S121 da do
  2 lan xac nhan KHONG hot-reload agent MOI). Static-check KHONG du (broadcast ④d).
  => 2 vai moi hom nay moi chi TON TAI tren dia + trong VALID_ROLES, chua chung duoc SPAWN duoc.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 13:04:21 +07:00

8.5 KiB
Raw Blame History

description, argument-hint
description argument-hint
BẬT HMW-mode SOLUTION_ERP — task LỚN chạy Workflow fan-out (roster ĐẦY-ĐỦ — số vai canonical ở docs/STATUS.md §Sub-agents, KHÔNG chép số) + sub giữ ký ức slice + verify-before-memory-write (no-overwrite-unverified) + harvest LIỀN sau mỗi workflow. /ultra-off để tắt. Gõ = anh CONSENT chạy Workflow (deliberate on-ramp). (trống = bật mode · hoặc kèm task lớn đầu tiên)

/ultra-on — BẬT HMW-mode (SOLUTION_ERP)

Cặp /ultra-off. 🔴 restart Claude Code sau khi tạo/sửa (command .md no hot-reload). Gõ lệnh này = CONSENT chạy Workflow fan-out · scope CHỈ repo SOLUTION_ERP (S1 — KHÔNG fan-out repo/corpus khác) · workflow-agent inherit lead-model (H6.2 — top-tier; lead = frontier-class anh chọn per-session {Fable 5 | Opus 4.8 — 1M MAX}, MTv3 S110; H8 all-inherit S66 · role-less→inherit S63). Mode persist qua marker: /ultra-on → em main tạo .claude/hmw-mode.on (Write) + vào mode → SỐNG qua session/compact. /ultra-off xóa. /session-start đọc marker → BÁO anh ON/OFF (khỏi quên đang ở mode đốt-token). marker = source-of-truth · gitignored (KHÔNG commit — tránh mode kẹt-ON khi clone = on-ramp ungoverned).

Task đầu (nếu có): $ARGUMENTS

🚦 Keyword = QUYỀN, KHÔNG phải LỆNH (T4 — bài học 515K-token false-trigger)

  • Chữ "workflow" / "ultracode" trong câu anh HOẶC trong reminder harness = MỞ QUYỀN hỏi (eligibility-to-ask), KHÔNG auto-run Workflow.
  • Mode-OFF + anh nói "chạy workflow" → em main TỪ CHỐI + nhắc anh gõ /ultra-on, KHÔNG tự chạy.
  • 🔴 CẤM dùng native /effort ultracode (nó auto-author+run workflow MỌI task — KHÔNG checkpoint / KHÔNG memory-harvest / KHÔNG scope-guard = ngược thiết kế). HMW = home-built orchestrator-workers, marker-gated.
  • 🟢 H6.1 (governed-ultracode, adopt S63) — mode-ON = auto-HMW: mode ON → task SUBSTANTIVE (≥2 bước độc-lập · multi-file · sweep/audit/review/migration/research/verify-heavy) em main TỰ author+chạy Workflow (KHÔNG cần anh gõ "workflow"; marker-ON = standing consent — vẫn checkpoint INFORM {số agent·vai·task} rồi chạy NGAY). Task TRIVIAL / governance-authoring single-writer → solo (chống token-nổ). Ranh giới = "workflow có giúp THẬT không"; nghi-ngờ nghiêng workflow, KHÔNG workflow 1-câu-hỏi-đáp. = lấy sự-tiện native ultracode + GIỮ guard HMW. (H6.7 role+memory-fidelity ĐÃ là floor sẵn: agentType ∈ VALID_ROLES + memoryDelta→agent-memory single-writer B3.)

Phân loại (em main mỗi task)

  • HMW (LỚN): fan-out nhiều file/nguồn — sweep · audit · cross-stack review · mass migration · multi-source research. Số task THOẢI MÁI (harness queue theo slot, KHÔNG cap cứng) · spawn ĐÚNG VAI (agentType ∈ VALID_ROLES; role lạ ∉ VALID_ROLES → hmw.js THROW STOP-HARD + báo owner (REC-3 2026-07-13); role-less null → inherit lead).
  • Thường (nhỏ): <30min · 12 file · hỏi-đáp → Agent-tool spawn lẻ / solo theo .claude/agents/README.md decision-tree, KHÔNG HMW.

VALID_ROLES (roster SOLUTION_ERP — số vai canonical → docs/STATUS.md §Sub-agents, B1 KHÔNG chép số ở đây)

investigator-codebase · investigator-api · implementer-backend · implementer-frontend · test-specialist · reviewer · cicd-monitor · frontend-designer · database-agent · office-document (+S107) · tooling-auditor · harvest-curator (+S110 anh-directed — monitor vẫn INFORM-only, lane RETURN-only) · lead-view-auditor · lead-omission-auditor (+S121 W2 — 2 monitor H24 lead-self-audit, INFORM-only propose-only; class-flag = enum ĐÓNG lead_self_audit.flag_classes.claude/agent-memory/memory-budget.json, nhịp = h24_cadence cùng file)

Role lạ ∉ VALID_ROLES → hmw.js THROW (STOP-HARD) + báo owner thêm vai (REC-3 2026-07-13; fail-soft cũ "đứt âm-thầm" đã bỏ); role-less null → inherit lead. Windows MAX_PATH (Dropbox nested) → KHÔNG isolation:worktree.

Quy trình HMW — vai trò từng phase

Phase Ai Làm
P0 prep 👤 em main đọc MEMORY sub liên quan → memory-pack SLICE/vai (KHÔNG full) + taskList + chụp chunk-count Qdrant baseline + git status sạch
P1 decide sub liên quan (full memory) recommend approach + acceptance-checklist → em main chốt plan
🔴 P1-run scaffold 👤 em main BẮT BUỘC khi taskList.length ≥ 3 (Sàn-1 H22, cơ-khí-hoá S121 W2): scaffold .claude/workflows/runs/<run-id>/ (TRACKED) + run.md kèm ## taskList snapshot → truyền args.run = { name, dir }. Thiếu cờ + ≥3 task ⇒ hmw.js THROW STOP-HARD. Script chạy JS-sandbox KHÔNG filesystem ⇒ tự nó không tạo folder được ⇒ đây là lý-do gate nằm ở em-main chứ không ở script. Bỏ qua ⇒ chết giữa run là mất trace (per-turn returns chết theo phiên; chỉ file trên đĩa sống sót) ⇒ /tiep §4 phải chạy lại TỪ ĐẦU thay vì cắt-gọt. 🔸 Ngưỡng "hoặc ước >5 phút" KHÔNG cơ-khí-hoá được ⇒ phần đó là kỷ-luật lead. 🔸 raw Workflow/Agent tool = kẽ CÒN-LẠI không gate được từ đây
checkpoint (inform) 👤 em main BÁO {số agent · vai · task} @inform → set args.checkpointApproved=true → fan-out NGAY (marker-ON=consent; anh interrupt nếu sai — KHÔNG chờ confirm từng lần)
P2 execute Workflow hmw fan-out agent: memory-pack injected qua args + agentType + schema. DEFAULT read/analyze; write = file-disjoint. H8 all-inherit (S66): role-có-frontmatter inherit top-tier lead · per-task tier:'opus' escape-hatch (tier:'fable' CHỈ trong lượt lệnh engine-đắt anh gõ — H21 S110)
P3 harvest 👤 em main (single-writer) NGAY sau P2 → VERIFY delta + APPEND-only vào MEMORY.md mọi agent tham gia (B3)
P4 final sub quality (full memory) reviewer PASS/FAIL · cicd-monitor drift · investigator verify · implementer/test scope → return delta
👤 em main synthesize + git-diff + chunk-count check + commit (anh OK)

🧠 KỶ LUẬT KÝ ỨC (cốt lõi — M1..M5 + R1)

  • B1 (M1) có ký ức: agent vai X ← memory-pack slice của đúng sub X (qua args; script KHÔNG đọc file — lead đọc .claude/agent-memory/X/MEMORY.md @P0 rồi bơm @P2). KHÔNG full memory.
  • B2 (M4) đúng chỗ + harvest-LIỀN: delta vai X → .claude/agent-memory/X/MEMORY.md. Harvest NGAY sau MỖI workflow (KHÔNG gom cuối session) → memory mọi agent fresh TRƯỚC lần spawn kế. Tốc-độ KHÔNG override B3.
  • B3 (M3) KHÔNG ghi đè nếu chưa kiểm tra: em main = single-writer, VERIFY delta → APPEND-only; KHÔNG overwrite/sửa/xóa entry cũ trừ khi verified; delta nghi ngờ → pending-verify (không nhập). (Generalize: memory cũ = tài sản.)
  • R1 return contract: mỗi agent return findings + memoryDelta{task,verdict,learned,surprise} (bắt buộc) + checklistEvidence (tùy). Agent CHỈ return — KHÔNG tự ghi ký ức kênh nào.
  • M5 prereq (verify-ONLY, KHÔNG re-author): store_memory đã strip khỏi MỌI sub (broadcast Memory-store-memory-strip-global, applied S47) → kênh RAG-write mechanized-blocked. Re-verify intact: grep store_memory .claude/agents/*.md0 ở dòng tools:.

🔴 Enforcement THẬT (G-015 — KHÔNG overclaim)

  • Mechanized = CHỈ store_memory gỡ khỏi allowlist (tool RAG-write đó không-gọi-được). KHÔNG = agent "read-only".
  • "KHÔNG ghi file MEMORY.md" = prompt-rule, CHƯA mechanized — sub vẫn giữ Bash (+ Write/Edit vai write) = kênh ghi MỞ (Bash ghi file bất kỳ / curl thẳng Qdrant :6333).
  • Containment thật = defense-in-depth: git diff post-P2 (bắt file-write) + chunk-count Qdrant pre/post-P2 (bắt RAG-write). Lỗ residual (ghi ngoài-repo / Qdrant net-zero-delta) → sandbox / strip-Bash khỏi vai read-only = defer (Bash cần cho audit).

Guards: S1 scope-repo-mình · S2 checkpoint-throw (hmw.js GIỮ anti-accidental) · S3 sub-KHÔNG-spawn-sub · B3 + harvest-liền · git-diff + chunk-count post-P2 · same-model · số-task-thoải-mái + spawn-đúng-vai · KHÔNG bỏ P3.