Files
solution-erp/docs/governance/adap-reports/2026-06-07-Agent-harness-1.md
pqhuy1987 e27d877172 [CLAUDE] Infra: adopt AI_INFRA Harness 1/2/3 — monitor subs (roster 8->10) + wave-folder isolation + email channel (S49)
Harness 1 (Self-observability): NEW tooling-auditor (H1 tooling/docs-freshness 4-faceted) + harvest-curator (H2 harvest-integrity 5-axis) INFORM-only monitor subs, TACH BIET per anh-mandate -> roster 8->10. Wire session-start Phase 2.1.1 RE-REPORT + session-end L.b 6->7-step (H2 5-axis GATE + H1 chot + B5 wave-gom). H3 plugin/skill = gop-vai doc, 0 new agent.

Harness 2 (wave-folder isolation): hmw.js WAVE-MODE (subMdPath + tool-aware writeGuard) + .gitignore wave-*/ + agent-teams/ (B6 git-check-ignore verified) + NEW workflows/README convention. Harness 3 (email channel): broadcasts/ (6+6 folder + 13 .gitkeep + _index + inbox/README, committed) + send/check-email cmd (self=se) + adap-apply base-path fix outbox/all/.

HMW-mode ON: recon fan-out 4 read-only agent -> em main single-writer WRITE -> reviewer PASS all 3. Containment: git-diff 1 benign self-MEMORY + chunk-count 2414=2414 (0 RAG-write). Nac executed-file, verified-runtime PENDING CLI restart. 3 adap-reports + session log. Test 181 unchanged (no product code). CI runs (hmw.js/.gitignore/.gitkeep not path-ignored) but no bundle/migration change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 23:18:43 +07:00

6.2 KiB
Raw Blame History

adap-report — 2026-06-07-Agent-harness-1

SISTER = SOLUTION_ERP. Report-format LOCK (5 trường). Generated 2026-06-07, apply by em main (HMW-mode ON — recon fan-out 4 read-only agent @P2, WRITE = em main single-writer governance). Agent/command .md chưa runtime-live pre-restart (no hot-reload).

1. id-broadcast

2026-06-07-Agent-harness-1 (category: Agent · reviewer_gate: PASS · nac: published · targets: all-fit). Harness 1 = Self-observability: H1 tooling-freshness audit + H2 harvest-integrity audit (⚠️ anh-mandate 2 sub TÁCH BIỆT) + H3 plugin/skill adoption (gộp-vai, KHÔNG phình roster).

2. nac G-011

executed-file (2 sub mới + 2 memory seed + agents/README roster 8→10 + session-start Phase 2.1.1 + session-end §L.b 7-step + H3 mapping section written) → VERIFIED-pending CLI restart (agent .md no hot-reload → cần (a) restart Claude Code để registry load tooling-auditor + harvest-curator, (b) 1 spawn-test mỗi sub confirm load OK + chạy 4-mặt/5-trục thật). H3 = recommend-only executed (mapping doc written; 0 plugin enable thực — skills đã available user-global).

3. evidence

PROJECT-FIT = ADOPT (tailored). H1 phổ-quát (mọi roster cần freshness). H2 ADOPT (SE có 10-sub roster + Workflow → có memory để harvest). H3 per-stack.

Files written/edited (repo SOLUTION_ERP):

  • H1 sub — NEW .claude/agents/tooling-auditor.md (4-mặt: skill·sub-role·plugin·docs freshness; @session-start báo+diff, @session-end chốt+new-alloc; INFORM-only) + seed .claude/agent-memory/tooling-auditor/MEMORY.md.
  • H2 sub — NEW .claude/agents/harvest-curator.md (5-trục: Coverage·Completeness·Fidelity-FLAG·Placement·Corruption; @session-end GATE + wave-gom B5; @session-start harvest-mới; INFORM-only) + seed .claude/agent-memory/harvest-curator/MEMORY.md.
  • roster doc.claude/agents/README.md: title 7→10-agent, architecture line (8 product/quality + 2 monitor), upgrade-note 06-07, skill matrix +2 row, tool grant +monitor note (read-set + store_memory strip + G-015), decision tree +2 nhánh (tooling-auditor/harvest-curator).
  • lifecycle wiresession-start.md Phase 2.1.1 Monitor RE-REPORT (H1 tooling-state+diff · H2 harvest-mới+delta-mồ-côi) + roster 7→10; session-end.md §L.b 6-step→7-step ((d)(f)=H2 5-trục GATE + wave-gom B5 · (g)=H1 chốt+new-alloc) + roster refs 7→10.
  • H3 mapping.claude/agents/README.md §"External skill/plugin mapping" (sql-database-assistant/frontend-design→vai · pr-review-toolkit→reviewer checklist · KHÔNG enable code-modernization/code-reviewer/csharp-lsp).

SELF-CHECK (broadcast H1):

  • H1.1: tooling-auditor.md audit 4-mặt (skill·sub-role·plugin·docs). ✓ (executed-file)
  • H1.2: wired CHỐT @session-end (§L.b g) + RE-REPORT-diff @session-start (2.1.1). ✓
  • H1.3/H2.3: INFORM-only + lead single-writer (VERIFY→APPEND B3); 2 sub tools: KHÔNG store_memory/Write. ✓ (verify post-restart grep store_memory .claude/agents/tooling-auditor.md harvest-curator.md = 0)
  • H2.1: harvest-curator.md 5-trục đủ (nâng từ session-end §L.b 3/5 sẵn có → 5/5 + Fidelity-escalate-reviewer + Placement). ✓
  • H2.2: GATE @session-end §L.b(f) + RE-REPORT @session-start 2.1.1. ✓
  • H3.1/3.2: rà marketplace + 23 standalone skill → gộp-vai, 0 agent mới. ✓
  • H3.3: Windows-no-op (csharp-lsp) + name-collision (code-reviewer→giữ reviewer canonical) + KHÔNG phình roster. ✓
  • H1/H2 RIÊNG BIỆT (anh-mandate): 2 file .md TÁCH BIỆT, scope overlap=0. ✓

commit-sha: pending (fill post-commit — xem follow-up "[CLAUDE] Docs: fill adap-report sha").

4. tailored-gì + skip-gì-vì-sao

  • FUNCTION-floor adopt FULLY: H1 4-mặt · H2 5-trục · H1≠H2 2-sub-riêng-biệt (mandate) · INFORM-only + single-writer · @session-start diff + @session-end chốt/gate · H3 gộp-vai-KHÔNG-phình-roster — giữ đủ, KHÔNG hạ floor.
  • FORM tailored SE: (a) tools 2 sub = 4 RAG-read (search_memory/search_code/cross_project_search/list_projects) thay AI_INFRA 2-RAG; model:inherit thay effort:max. (b) Bỏ "agent-ops-monitor/sister" vai (AI_INFRA-specific) — SE là sister, audit self-only. (c) ref SE files (agents/README, docs/STATUS, docs/governance) thay AGENT-ROSTER/CANONICAL. (d) Fidelity-escalate → SE reviewer. (e) omit color (8 màu chuẩn cyan/blue/yellow/orange/purple/red/green/pink đã hết; brown/teal không trong enum chuẩn → tránh load-fail; mirror AI_INFRA cũng omit). (f) H2 NÂNG nền sẵn có (session-end §L.b(d)(f)(c) = 3/5 trục) thay build-from-scratch.
  • KHÔNG skip mục nào (H1/H2/H3 đều fit). H3 = recommend+map (KHÔNG enable plugin agent-bearing — đúng floor "CHỈ enable nếu lấp lỗ-hổng roster THẬT"; roster 10 đã đủ).

5. honest-caveat

  • 🔴 nấc honest: executed-file, CHƯA verified-runtime. 2 sub CHƯA spawn lần nào (agent .md no hot-reload). Đừng đọc report = "monitor đã chạy". verified-runtime cần anh restart CLI + spawn-test tooling-auditor/harvest-curator (giống S39 split + S47 frontend-designer lesson).
  • G-015 KHÔNG overclaim: 2 sub = propose-only, KHÔNG "read-only enforced". store_memory strip = tool RAG-write không-gọi-được; NHƯNG giữ Bash = write-channel mở (recon-wave này đã CHỨNG: investigator-api tự-APPEND MEMORY.md qua Write/Bash dù strip — git-diff bắt 1 file-write, chunk-count 2414=2414 bắt 0 RAG-write). Containment = defense-in-depth (em main single-writer + git-diff + chunk-count), KHÔNG allowlist đơn-độc.
  • name-collision (FORM, KHÔNG runtime): tooling-auditor/harvest-curator trùng tên AI_INFRA canonical — KHÁC repo → KHÔNG collision lúc chạy; body ĐÃ tailor SE (KHÔNG copy-paste). code-reviewer (×3 nguồn) collide roster reviewer → giữ reviewer canonical, KHÔNG enable plugin code-reviewer.
  • H3 plugin nấc: 15 plugin = ENABLED user-global, mapping doc = assigned, CHƯA used-in-session. KHÔNG conflate "enabled"="đang dùng".
  • Restart-batch: Harness 1+2+3 (S này) → toàn bộ agent/command/workflow .md/.js cần 1 restart chung hot-reload.