[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>
This commit is contained in:
@ -2,7 +2,25 @@
|
||||
|
||||
> **Tiering rule (S40):** giữ **2-3 session gần nhất**. Cũ hơn → `docs/changelog/sessions/`. Full brief history pre-S40 → `docs/_archive/HANDOFF-preS40-fullhistory.md`.
|
||||
|
||||
**Last updated:** 2026-06-02 (Session 48 — adap-* verification closure post-restart: #1 store_memory VERIFIED-runtime (0/8 subs) · #2 frontend-designer FD2 loop VERIFIED-RAN (first spawn, login a11y fix ×2 app) · #3 Gov-v2 delta CLOSED (NEW error-ledger.md + §L.b session-end). Login fix deploys. Prev: S47 adap channel install; S46 memory repair.)
|
||||
**Last updated:** 2026-06-07 (Session 49 — **AI_INFRA Harness 1·2·3 adopt** (HMW-mode ON): H1+H2 = 2 monitor sub TÁCH BIỆT (tooling-auditor + harvest-curator → roster 8→10) + wire session-start/end · H2 wave-folder isolation (hmw.js wave-mode + .gitignore B6) · H3 email channel `broadcasts/` (self=se). reviewer PASS all 3. **executed-file, verified-runtime PENDING CLI restart.** Prev: S48 adap verify closure; S47 adap channel install.)
|
||||
|
||||
---
|
||||
|
||||
## S49 (2026-06-07) — AI_INFRA Harness 1·2·3 adopt (HMW-mode ON · governance/infra, no product code)
|
||||
|
||||
**User: `/ultra-on` + `/adap-apply harness 1·2·3` — BẬT HMW-mode rồi adopt 3 broadcast harness của AI_INFRA.**
|
||||
|
||||
**HMW flow:** marker `.claude/hmw-mode.on` tạo (ON) → P2 recon fan-out **4 read-only agent** (3× investigator-codebase gap H1/H2/H3 + 1× investigator-api plugin audit · return-delta · 367K tok ~4m46s) → P3 harvest → em main single-writer WRITE ~25 file → reviewer P4 **PASS all 3**. **Containment post-P2:** git-diff 1 file-write (inv-api self-MEMORY benign) + chunk-count 2414=2414 (0 RAG-write) = defense-in-depth proven.
|
||||
|
||||
**Done:**
|
||||
- **H1 (Self-observability):** roster **8→10** — NEW 2 sub TÁCH BIỆT (anh-mandate H1≠H2 "hay quên+nhầm") `tooling-auditor` (tooling/docs-freshness 4-mặt) + `harvest-curator` (harvest-integrity 5-trục), INFORM-only (4 RAG-read, NO store_memory/Write) + 2 memory seed. Wire `session-start.md` Phase 2.1.1 RE-REPORT + `session-end.md` §L.b 6→7-step. H3 plugin/skill = gộp-vai doc (0 agent mới).
|
||||
- **H2 (wave-folder isolation):** `hmw.js` wave-mode (subMdPath + tool-aware writeGuard) + `.gitignore` `wave-*/`+`agent-teams/` (B6 **git-check-ignore VERIFIED**) + NEW `.claude/workflows/README.md`. ADD-mode (chỉ workflow DÀI). A agent-team n-a (Windows in-process).
|
||||
- **H3 (email channel):** NEW `broadcasts/` (outbox/{6 others+all} + inbox/{6 others} + _index + inbox/README + **13 .gitkeep**, committed) + 2 cmd send/check-email (self=`se`, 6 others short-id `{ai_infra,vipix,dyd,namgroup,ashico,bvaau}`) + adap-apply base-path fix `outbox/all/`.
|
||||
- **3 adap-report** `docs/governance/adap-reports/2026-06-07-Agent-harness-{1,2,3}.md` + reviewer PASS (no blocker; 1 MINOR pre-existing README diagram → fixed). **Test 181 unchanged** (no .cs).
|
||||
|
||||
**🔴 NEXT SESSION FIRST (anh restart CLI):** 1 restart activate 2 sub + 2 cmd + hmw.js wave-mode (agent/cmd `.md` no hot-reload). Then: (a) `/session-start` smoke-test 2 monitor sub load + RE-REPORT chạy thật → verified-runtime; (b) optional wave-run 1 workflow DÀI kiểm B6 isolation + B5 harvest; (c) optional `/send-email ai_infra handshake` → AI_INFRA `/check-email se` prove 2-way byte-identical.
|
||||
|
||||
**Next product (anh pick):** P11-C Vehicle+Driver (Mig 44, recon ready) · gotcha #57 LeaveType/Shift filtered-unique · P11-D/E/F · Phase 9 Ops.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
> **Update rule:** trước khi bắt đầu 1 task → ghi row `🔥 In Progress`. Xong → `✅ Recently Done`.
|
||||
> **Tiering rule (S40):** chỉ giữ **state hiện tại + 3 session gần nhất** ở file này. Session cũ hơn → `docs/changelog/sessions/`. Full history pre-S40 → `docs/_archive/STATUS-preS40-fullhistory.md`. (Tránh over-context — xóa double, không cắt nội dung.)
|
||||
|
||||
**Last updated:** 2026-06-02 (Session 48 — **adap-* verification closure post-restart** (governance + 1 a11y fix): #1 store_memory strip **VERIFIED-runtime** (registry 0/8 subs) · #2 frontend-designer **FD2 loop VERIFIED-RAN** (first spawn — login contrast a11y fix shipped ×2 app) · #3 Gov-v2 delta **CLOSED** (NEW `error-ledger.md` + §L.b 6-step wired session-end). Login fix = code commit (deploys). Prev: S47 adap channel install; S46 memory repair.)
|
||||
**Last updated:** 2026-06-07 (Session 49 — **AI_INFRA Harness 1·2·3 adopt** (HMW-mode ON — recon fan-out 4 read-only agent @P2 + em main single-writer WRITE ~25 file, governance/infra no product code): H1+H2 = **2 monitor sub TÁCH BIỆT** (tooling-auditor + harvest-curator → roster 8→10) + session-start/end wire · H2 **wave-folder isolation** (hmw.js wave-mode + .gitignore B6 VERIFIED git-check-ignore) · H3 **email channel** `broadcasts/` (self=se, 6+6 folder + 2 cmd). Nấc executed-file, **verified-runtime PENDING CLI restart**. Prev S48: adap verify closure; S47 adap channel install.)
|
||||
|
||||
---
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
| Gotchas | **57** | `docs/gotchas.md` (latest #57 soft-delete UNIQUE phải filter [IsDeleted]=0, S45) |
|
||||
| User memory | **15** | 14 + new S47 (adap-channel); index updated |
|
||||
| Skills | 6 | 3 domain + 3 ops |
|
||||
| Sub-agents | **8** | Opus 4.8 1M · 7 core + frontend-designer pink (FD2 loop **verified-ran** S48) |
|
||||
| Sub-agents | **10** | Opus 4.8 1M · 8 product/quality (7 core + frontend-designer) + **2 monitor INFORM-only** (tooling-auditor H1 + harvest-curator H2, S49 2026-06-07 Harness 1 — verified-runtime PENDING CLI restart) |
|
||||
| RAG chunks | **2406** | ✅ S41 re-bootstrap clean (3080→2406, −674 junk: node_modules+_archive now excluded; user-memory 60 chunks/10 files slug-fixed + S38-S41 indexed) |
|
||||
|
||||
**Bundle hash live (prod):** admin `DPPTx2Kw` · user `CjoUEsoV` (Gitea Run #369, S48 — rotated from `Krjvg_3j`/`6sNStgxa` by login a11y fix). cicd-monitor PASS: test 181 · Mig stays 43 · health/smoke 200 ×4.
|
||||
@ -44,6 +44,13 @@
|
||||
|
||||
## ✅ Recently Done (newest on top — 3 session; cũ hơn → session logs)
|
||||
|
||||
### S49 (2026-06-07) — 🌐 AI_INFRA Harness 1·2·3 adopt (HMW-mode ON · governance/infra, no product code, CI-skip)
|
||||
- **HMW-mode BẬT** (`/ultra-on` → marker `.claude/hmw-mode.on` gitignored) → anh `/adap-apply harness 1·2·3`. **Recon fan-out 4 read-only agent @P2** (3× investigator-codebase H1/H2/H3 gap + 1× investigator-api plugin/skill audit · return-delta · 367K tok · ~4m46s) → em main single-writer WRITE ~25 file. **Containment audit post-P2:** git-diff = 1 file-write (inv-api self-MEMORY, benign verified) + chunk-count **2414=2414** (0 RAG-write) → defense-in-depth proven (sub giữ Bash/Write — G-015).
|
||||
- **Harness 1 (Self-observability):** roster **8→10** — NEW 2 sub **TÁCH BIỆT** (anh-mandate) `tooling-auditor` (H1 tooling/docs-freshness 4-mặt skill·sub-role·plugin·docs) + `harvest-curator` (H2 harvest-integrity 5-trục), INFORM-only (4 RAG-read, NO store_memory/Write). Wire `session-start.md` Phase 2.1.1 RE-REPORT + `session-end.md` §L.b **6→7-step** (H2 5-trục GATE + H1 chốt + B5 wave-gom). H3 plugin/skill = gộp-vai doc (0 agent mới — code-modernization/code-reviewer KHÔNG enable).
|
||||
- **Harness 2 (wave-folder isolation):** `hmw.js` +wave-mode (subMdPath schema + tool-aware writeGuard) · `.gitignore` +`wave-*/`+`agent-teams/` (B6 **VERIFIED** `git check-ignore`) · NEW `.claude/workflows/README.md` convention. A agent-team = n-a (Windows in-process, convention-ready).
|
||||
- **Harness 3 (email channel):** NEW `broadcasts/` (outbox/{6 others+all}/ + inbox/{6 others}/ + _index + inbox/README + **13 .gitkeep**, committed not-gitignored) + 2 cmd `send/check-email` (self=`se`, 6 others short-id `{ai_infra,vipix,dyd,namgroup,ashico,bvaau}`) + fix `adap-apply.md` base-path → `outbox/all/` (latent bug đóng luôn).
|
||||
- **3 adap-report** `docs/governance/adap-reports/2026-06-07-Agent-harness-{1,2,3}.md` (nấc executed-file/verified-pending + evidence + tailored/skip + G-015 honest-caveat). 🟥 reviewer P4 **PASS all 3 — no blocker** (genuinely tailored not copy-paste · B6 git-check-ignore verified · SHA256 byte-identical · 1 MINOR pre-existing README diagram drift → fixed). **Test 181 unchanged** (no .cs). 🔴 **NEXT: anh restart CLI** → activate 2 sub + 2 cmd + hmw.js wave-mode → spawn-test confirm verified-runtime. → session log `2026-06-07-S49-harness-1-2-3-adopt.md`.
|
||||
|
||||
### S48 (2026-06-02) — ✅ adap-* verification closure post-restart + FD2 proof + Gov-v2 error-ledger (governance + 1 a11y fix)
|
||||
- **CLI restart confirmed done** (registry has frontend-designer + adap-* cmds + 8 subs sans store_memory) → S47 "verified-pending" upgraded. `/adap-apply all-pending` = 0 new (all 3 applied S47); `/adap-report all-applied` → re-assessed + updated 3 reports honest (§C5/G-015).
|
||||
- **#1 store_memory strip → VERIFIED-runtime:** `grep` agents `tools:` = 0 · loaded registry grants 0 `store_memory` to all **8** subs. NOT "read-only" (subs keep Bash/Write — defense-in-depth caveat holds).
|
||||
|
||||
@ -0,0 +1,52 @@
|
||||
# Session 49 — 2026-06-07 — AI_INFRA Harness 1·2·3 adopt (HMW-mode ON)
|
||||
|
||||
> Governance/infra adoption — **no product code** (0 .cs/.tsx), test 181 unchanged, CI-skip (all .md/.js/.gitignore/broadcasts). User: `/ultra-on` + `/adap-apply harness 1·2·3`.
|
||||
|
||||
## Bối cảnh
|
||||
AI_INFRA broadcast 3 file harness (2026-06-07, reviewer_gate PASS, targets all-fit) trong `outbox/all/`. User BẬT HMW-mode (`/ultra-on`) = consent Workflow fan-out, rồi adopt cả 3 qua `/adap-apply`.
|
||||
|
||||
## HMW flow (8-agent governance)
|
||||
- **P0 prep (em main):** dedup check (0 report harness-* → all chưa-applied) · audit current infra (roster 8, hmw.js có, broadcasts/ chưa) · đọc 2 investigator memory-slice (B1) · baseline Qdrant 2414 · git clean.
|
||||
- **P2 recon fan-out (Workflow `harness-recon`, 4 read-only agent, return-delta):** 3× investigator-codebase (H1 roster/session-wiring gap · H2 wave/hmw.js gap · H3 email scaffold spec) + 1× investigator-api (plugin/skill marketplace audit). 367K tok · 67 tool-use · ~4m46s · 4/4 returned.
|
||||
- **Containment audit post-P2 (defense-in-depth):** `git diff` = 1 file-write (investigator-api tự-APPEND MEMORY.md qua Write/Bash dù store_memory strip — benign, đúng chỗ, verified) · 3 inv-codebase = 0 write (return-only đúng R1). `chunk-count 2414=2414` (0 RAG-write). → G-015 chứng: containment = git-diff + chunk-count, KHÔNG allowlist đơn-độc (sub giữ Bash/Write).
|
||||
- **P3 harvest (em main single-writer):** APPEND delta 3-slice → investigator-codebase/MEMORY.md; investigator-api self-append giữ (verified).
|
||||
- **WRITE (em main single-writer governance, ~25 file):** 3 harness (chi tiết dưới).
|
||||
- **P4 reviewer (full memory, adversarial):** PASS all 3 — no blocker.
|
||||
|
||||
## 3 corrections recon caught (vs giả định ban đầu)
|
||||
1. **Harness 3 id = `se`** (KHÔNG `solution_erp`); 6 others short-id `{ai_infra,vipix,dyd,namgroup,ashico,bvaau}` — authoritative `AI_INFRA/broadcasts/sister-commands/send-email.md:13-22` (folder name = 2nd source-of-truth).
|
||||
2. **adap-apply.md base-path STALE** `outbox\*.md` → cần `outbox\all\*.md` (latent bug, đóng luôn).
|
||||
3. **H3 plugin: 0 agent mới** — sql-database-assistant/frontend-design đã là standalone skill; code-modernization/pr-review-toolkit agent-bearing → KHÔNG enable (trùng vai); code-reviewer ×3 collision → giữ roster `reviewer`.
|
||||
|
||||
## Harness 1 — Self-observability (roster 8→10)
|
||||
- NEW `.claude/agents/tooling-auditor.md` (H1 tooling/docs-freshness 4-mặt skill·sub-role·plugin·docs) + `.claude/agents/harvest-curator.md` (H2 harvest-integrity 5-trục) — **TÁCH BIỆT** (anh-mandate H1≠H2 "hay quên+nhầm"). INFORM-only, tools `[Read,Grep,Glob,Bash+4 RAG-read]`, NO store_memory/Write. + 2 memory seed.
|
||||
- `.claude/agents/README.md`: title 7→**10-agent** + architecture note + upgrade-note + skill matrix +2 + tool grant G-015 note + decision tree +2 nhánh + §H3 external skill/plugin mapping. (+ fixed pre-existing diagram drift line 11/18.)
|
||||
- `session-start.md` Phase **2.1.1** Monitor RE-REPORT (H1 diff + H2 harvest-mới). `session-end.md` §L.b **6→7-step** ((d)(f)=H2 5-trục GATE + B5 wave-gom · (g)=H1 chốt+new-alloc).
|
||||
- **Tailor SE (KHÔNG copy AI_INFRA):** 4 RAG-read thay 2 · model:inherit thay effort:max · bỏ agent-ops-monitor/sister · omit color (8 màu hết) · Fidelity→SE reviewer.
|
||||
|
||||
## Harness 2 — wave-folder memory-isolation (B1-B6)
|
||||
- `.claude/workflows/hmw.js` +WAVE-MODE: `subMdPath` schema · `wave` block · tool-aware `writeGuard` (Write-sub ghi-direct / read-only-sub return→lead-scribe) · B6 isolation prompt. Mirror AI_INFRA, tailor 8-role (read-only sub = investigator-codebase/api, reviewer, cicd-monitor).
|
||||
- `.gitignore` +`.claude/workflows/wave-*/` +`.claude/agent-teams/` (AFTER `!.claude/**` last-match-wins). **B6 VERIFIED** `git check-ignore -v`: wave/agent-teams ignored · hmw.js/README tracked.
|
||||
- NEW `.claude/workflows/README.md` (2-MODE table · wave structure · B1-B6 · agent-team n-a · guard).
|
||||
- B5 harvest wired session-end §L.b(f). A agent-team = n-a (Windows in-process, convention-ready). ADD-mode (chỉ workflow DÀI).
|
||||
|
||||
## Harness 3 — email channel cross-project (`broadcasts/`)
|
||||
- NEW `broadcasts/` tree: `outbox/{ai_infra,vipix,dyd,namgroup,ashico,bvaau,all}/` + `inbox/{6 others}/` + `_index.md` + `inbox/README.md` + **13 .gitkeep** (committed, NOT gitignored).
|
||||
- NEW `.claude/commands/send-email.md` + `check-email.md` (self=`se`, validate to≠se, 2-stage MOVE, **canonical content_sha256 formula EXACT**, infra-CC §N3).
|
||||
- `.claude/commands/adap-apply.md` base-path → `outbox\all\*.md`.
|
||||
|
||||
## reviewer verdict (P4) — PASS all 3, no blocker
|
||||
- H1: 2 sub scope-disjoint + tools correct (no store_memory/Write) + genuinely tailored (not copy-paste) + 4-mặt/5-trục đủ.
|
||||
- H2: hmw.js valid mirror + VALID_ROLES 8 + B6 git-check-ignore verified + G-015 honest.
|
||||
- H3: self=se complete + SHA256 formula byte-identical send==check + 13 .gitkeep (floor "12" undercount, em đúng 13) + adap-apply fixed.
|
||||
- honest nấc PASS (executed-file/verified-runtime-pending). G-015 scan 6 hits ALL negating = correct. mojibake false-pos "ĐÃ" clean.
|
||||
- **1 MINOR (non-block, fixed):** README:11/18 "7-agent" diagram = PRE-EXISTING (git diff proved work này chỉ touch load-bearing) → em fixed header + line 18 + note.
|
||||
|
||||
## Nấc honest + NEXT
|
||||
- **executed-file** toàn bộ; **verified-runtime PENDING anh restart CLI** (agent/cmd `.md` no hot-reload).
|
||||
- 🔴 NEXT: restart → `/session-start` smoke-test 2 monitor sub load + RE-REPORT · optional wave-run kiểm B6/B5 · optional `/send-email ai_infra handshake` → AI_INFRA `/check-email se` 2-way.
|
||||
|
||||
## Artifacts
|
||||
- 3 adap-report `docs/governance/adap-reports/2026-06-07-Agent-harness-{1,2,3}.md` (5-field LOCK).
|
||||
- user-memory `feedback_harness_123_adoption.md` (project).
|
||||
- Commit: [pending — fill sha post-commit].
|
||||
43
docs/governance/adap-reports/2026-06-07-Agent-harness-1.md
Normal file
43
docs/governance/adap-reports/2026-06-07-Agent-harness-1.md
Normal file
@ -0,0 +1,43 @@
|
||||
# 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 wire** — `session-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.
|
||||
42
docs/governance/adap-reports/2026-06-07-Agent-harness-2.md
Normal file
42
docs/governance/adap-reports/2026-06-07-Agent-harness-2.md
Normal file
@ -0,0 +1,42 @@
|
||||
# adap-report — 2026-06-07-Agent-harness-2
|
||||
|
||||
> SISTER = SOLUTION_ERP. Report-format LOCK (5 trường). Generated 2026-06-07, apply by em main (HMW-mode ON). Script/doc `.js`/`.md` **chưa runtime-live pre-restart** (no hot-reload).
|
||||
|
||||
## 1. id-broadcast
|
||||
`2026-06-07-Agent-harness-2` (category: Agent · reviewer_gate: **PASS** · nac: published · targets: **all-fit**). Harness 2 = Agent-team (A1-A2) + **Workflow wave-folder memory-isolation** (B1-B6). Prereq: #1 store_memory-strip (S47 ✓) + #4 ultracode-HMW (S49 ✓) + Harness 1 H2 harvest-curator (cùng session này ✓).
|
||||
|
||||
## 2. nac G-011
|
||||
**executed-file** (hmw.js wave-mode patch + .gitignore B6 + workflows/README + session-end B5 wire written; B6 gitignore **VERIFIED-runtime** qua `git check-ignore -v`) → **VERIFIED-pending wave-run** (cần restart + 1 WAVE-MODE workflow thật để prove B6 isolation live + B5 harvest chạy). B1 spawn-from-real-sub = **đã live** (hmw.js VALID_ROLES 8 + slice-inject, dùng từ S49).
|
||||
|
||||
## 3. evidence
|
||||
**PROJECT-FIT = ADOPT B (tailored) · A = n-a-convention-ready.** SE chạy Workflow fan-out (recon-wave session này = bằng chứng). A (agent-team) = Windows in-process only → SE chưa dùng team thật.
|
||||
|
||||
Files written/edited (repo SOLUTION_ERP):
|
||||
- **hmw.js wave-mode** — `.claude/workflows/hmw.js`: +`subMdPath` schema · +`wave` block (`A.wave.dir` detect) · +`writeGuard` TOOL-AWARE 2-nhánh (Write-sub ghi-direct sub-MD / read-only-sub return→lead-scribe) · +ISOLATION-B6 prompt (CHỈ wave-folder, KHÔNG agent-memory/MD-canonical) · meta.description 2-MODE · header no-fs scaffold note. Mirror AI_INFRA hmw.js, tailor 8-role.
|
||||
- **.gitignore B6** — +`.claude/workflows/wave-*/` + `.claude/agent-teams/` (AFTER `!.claude/**` line 83 → last-match-wins). **VERIFIED** `git check-ignore -v .claude/workflows/wave-test/wave.md` → match line 93 (gitignored); `hmw.js`+`README.md` exit=1 (tracked).
|
||||
- **convention doc** — NEW `.claude/workflows/README.md` (2-MODE table · wave-folder 2-tier structure wave.md+sub-MD+_harvest.md · B1-B6 quy-trình · agent-team n-a note · guard S1/checkpoint/G-015).
|
||||
- **B5 harvest wire** — `session-end.md` §L.b(f) += wave-folder gom (harvest-curator quét wave-*/sub-*.md → APPEND agent-memory/<role> + verify B6 git-diff/chunk-count). [làm chung Harness 1 wiring]
|
||||
|
||||
SELF-CHECK (broadcast H2):
|
||||
- A1: agent-team isolated folder `.claude/agent-teams/` gitignored + README note. ✓ (n-a runtime — convention-ready)
|
||||
- A2/B1: workflow-agent fork sub THẬT (agentType + memoryPack slice). ✓ (đã live hmw.js)
|
||||
- B2: wave-folder 2-tầng (wave.md + sub-<role>-<i>.md). ✓ (schema subMdPath + README structure)
|
||||
- B3: lead SCAFFOLD folder+wave.md TRƯỚC fan-out (script no-fs — header comment + README + meta). ✓
|
||||
- B4: writeGuard tool-aware (Write-sub direct / read-only-sub return→lead-scribe). ✓ (hmw.js)
|
||||
- B5: harvest-curator (H2) gom wave→agent-memory @session-end. ✓ (wired §L.b f)
|
||||
- B6: wave-folder gitignored + git-diff audit. ✓ **VERIFIED git check-ignore** (KHÔNG tin .gitignore text).
|
||||
- Restart + wave-run thật kiểm B6/B5: ⏳ **pending** (báo đúng nấc).
|
||||
|
||||
commit-sha: **pending** (fill post-commit).
|
||||
|
||||
## 4. tailored-gì + skip-gì-vì-sao
|
||||
- **FUNCTION-floor adopt FULLY (B1-B6):** scaffold-by-lead · 2-tier · tool-aware writeGuard · isolation-audit · harvest-gom · gitignore-B6 — giữ đủ.
|
||||
- **FORM tailored SE:** (a) read-only sub list = **investigator-codebase/api, reviewer, cicd-monitor** (4 SE read-only) vs Write sub implementer-backend/frontend, test-specialist, frontend-designer (4); AI_INFRA dùng "investigator/reviewer/cicd/monitor". (b) VALID_ROLES giữ **8** (KHÔNG thêm 2 monitor — tooling-auditor/harvest-curator = session-boundary, KHÔNG P2 fan-out worker). (c) canonical ref → AI_INFRA §J4/§J6 qua cross_project_search (SE không có CANONICAL-RULES local). (d) gitignore pattern mirror SE marker style (line 87 hmw-mode.on).
|
||||
- **A (agent-team) = SKIP=n-a-convention-ready** (KHÔNG behind): Windows 11 in-process only + SE chưa dùng team. Cơ-chế isolation chung qua workflow (`.claude/agent-teams/` gitignored phòng-trước).
|
||||
- **ADD-mode (KHÔNG thay return-delta):** wave-mode CHỈ workflow DÀI; fan-out nhẹ (recon-wave session này) giữ return-delta-only — #4 ultracode floor không vỡ.
|
||||
|
||||
## 5. honest-caveat
|
||||
- **🔴 nấc honest:** B6 gitignore = **verified-runtime** (git check-ignore THẬT). NHƯNG wave-mode END-TO-END (sub ghi sub-MD isolated + B5 harvest) = **CHƯA wave-run nào chạy** → executed-file, pending 1 WAVE-MODE workflow thật post-restart. recon-wave session này = DEFAULT return-delta (KHÔNG wave) → chưa exercise wave path.
|
||||
- **G-015 KHÔNG overclaim isolation "ENFORCED":** containment = gitignore-wave + lead git-diff post-P2 + lead-scribe(read-only sub) = defense-in-depth, KHÔNG sandbox cứng. Read-only sub vẫn giữ Bash → ghi-ngoài-repo (git-diff mù) / curl Qdrant (chunk-count bắt). Câu đúng = "sub ghi-direct chỉ wave-folder; ghi-ra-MD-chính bị git-diff bắt (in-repo); ngoài-repo/RAG cần chunk-count".
|
||||
- **Lead-scribe ≠ sub-write-direct cho read-only sub:** 4 SE read-only sub (investigator×2/reviewer/cicd) KHÔNG có Write → "ghi wave-folder" thực = return findings→em main scribe. Chỉ 4 Write-sub mới ghi-direct được. KHÔNG claim "sub tự-ghi-direct" cho read-only.
|
||||
- **hmw.js JS chưa node-check được** (top-level await/return — runtime-wrapped). Syntax confidence từ mirror AI_INFRA template (proven) + careful edit; verified-runtime cần 1 invoke thật.
|
||||
43
docs/governance/adap-reports/2026-06-07-Agent-harness-3.md
Normal file
43
docs/governance/adap-reports/2026-06-07-Agent-harness-3.md
Normal file
@ -0,0 +1,43 @@
|
||||
# adap-report — 2026-06-07-Agent-harness-3
|
||||
|
||||
> SISTER = SOLUTION_ERP (self-id=`se`). Report-format LOCK (5 trường). Generated 2026-06-07, apply by em main (HMW-mode ON). Command `.md` **chưa runtime-live pre-restart** (no hot-reload); handshake test pending.
|
||||
|
||||
## 1. id-broadcast
|
||||
`2026-06-07-Agent-harness-3` (category: Agent · reviewer_gate: **PASS** · nac: published · targets: **all-fit** · content_sha256 in frontmatter). Harness 3 = Email channel cross-project (per-project `broadcasts/`) — kênh comms CHUẨN + DUY NHẤT giữa 7 project (§N single-channel · §J2 pull-copy · 2-stage inbox · envelope SHA256 · infra-CC §N3 · adap=fan-out sub-mode).
|
||||
|
||||
## 2. nac G-011
|
||||
**executed-file** (broadcasts/ tree 13-dir + 13 .gitkeep + _index + inbox/README + 2 command se-tailored + adap-apply base-path fix — all written/committed-pending) → **VERIFIED-pending** (cần (a) restart Claude Code để `/send-email` `/check-email` hot-reload, (b) 1 handshake round-trip `/send-email ai_infra` → AI_INFRA `/check-email se` prove 2-way byte-identical). PROJECT-FIT = **Universal (KHÔNG n-a)**.
|
||||
|
||||
## 3. evidence
|
||||
**PROJECT-FIT = ADOPT (Universal).** Mọi project cần kênh comms; SE scaffold để nhận được dù chưa active.
|
||||
|
||||
Files written (repo SOLUTION_ERP):
|
||||
- **broadcasts/ tree** — `outbox/{ai_infra,vipix,dyd,namgroup,ashico,bvaau,all}/` (6 others + all fan-out) + `inbox/{ai_infra,vipix,dyd,namgroup,ashico,bvaau}/` (6 processed) + `inbox/` root (pending staging). **13 .gitkeep** (6 outbox-others + outbox/all + 6 inbox-others; inbox-root kept bởi README.md, broadcasts-root bởi _index.md).
|
||||
- **_index.md** — single index 2-section (📥 INBOUND status pending→processed + 📤 OUTBOUND) + infra-CC row note, tailored self=se (seed placeholder rows).
|
||||
- **inbox/README.md** — 2-stage doc (root pending → MOVE inbox/<from>/ processed) + per-project line `{ai_infra,vipix,dyd,namgroup,ashico,bvaau}` + .gitkeep mandate.
|
||||
- **2 command** — NEW `.claude/commands/send-email.md` + `check-email.md` (se-tailored: <SELF>→se, validate to≠se, 2-stage, infra-CC §N3, **canonical content_sha256 formula GIỮ EXACT** `(($txt -split "(?m)^---\s*$",3)[2] -replace "^\r?\n","")`).
|
||||
- **adap-apply fix** — `.claude/commands/adap-apply.md:1` base-path `outbox\*.md` → `outbox\all\*.md` (Harness 3 §8 relocate 06-07 — latent bug recon caught, đóng luôn).
|
||||
|
||||
SELF-CHECK (broadcast H3):
|
||||
- 6+6 folder + _index.md committed (KHÔNG gitignore): `git check-ignore broadcasts/...` exit=1 (tracked). ✓
|
||||
- 2 lệnh thay đúng `<SELF>`=se, validate to≠self. ✓
|
||||
- envelope from+to + content_sha256 canonical (strip-1-leading-newline send=receive). ✓ (formula verbatim)
|
||||
- 2-stage inbox (root pending → sub processed). ✓ (check-email.md + inbox/README)
|
||||
- §N KHÔNG kênh khác cho cross-project comms. ✓ (process-rule)
|
||||
- infra-CC: send-email auto bản-2 `outbox/ai_infra/<id>-cc.md` cho category≠Coord, to≠ai_infra. ✓ (step 6b; outbox/ai_infra/.gitkeep sẵn)
|
||||
|
||||
commit-sha: **pending** (fill post-commit).
|
||||
|
||||
## 4. tailored-gì + skip-gì-vì-sao
|
||||
- **FUNCTION-floor adopt FULLY:** cấu trúc broadcasts/ · 2 lệnh · envelope+SHA256 · §N single-channel · §J2 pull-copy · 2-stage committed · infra-CC §N3 · adap=fan-out sub-mode — giữ đủ.
|
||||
- **id-map AUTHORITATIVE (KHÔNG tự chế):** self=**`se`** (KHÔNG `solution_erp`), 6 others=**short-id** `{ai_infra,vipix,dyd,namgroup,ashico,bvaau}` — verify từ `AI_INFRA/broadcasts/sister-commands/send-email.md:13-22` (folder name = 2nd source-of-truth: project khác ghi vào `outbox/se/`, nếu SE dùng long-id thì cross-copy folder-match VỠ). Recon MEMORY-PACK ban đầu gợi long-id SAI → recon corrected.
|
||||
- **FORM tailored:** _index/inbox-README header → SOLUTION_ERP (se) perspective; infra-CC example → `se → ai_infra (cc-of:<to>)`; per-project line → 6 others của se (include ai_infra, exclude se-self) thay AI_INFRA's (include se, exclude ai_infra-self).
|
||||
- **adap-apply base-path fix** = incidental latent-bug close (Harness 3 §8 relocate broadcast → outbox/all/; SE adap-apply.md đọc flat outbox/*.md stale từ trước — em main đã manually nav outbox/all/ khi chạy /adap-apply session này = bằng chứng bug).
|
||||
- **KHÔNG skip** (Universal, no n-a).
|
||||
|
||||
## 5. honest-caveat
|
||||
- **🔴 nấc honest:** scaffold + commands = executed-file. **CHƯA handshake** — verified-runtime cần restart + 1 round-trip `/send-email ai_infra "handshake"` → AI_INFRA `/check-email se` prove byte-identical 2-way. Đừng claim "channel live/active".
|
||||
- **G-015 accuracy (giữ verbatim broadcast):** "đối chứng" = **whole-file byte-identical 2 bản** (outbox sender vs inbox receiver) = bằng chứng THẬT (primary). `content_sha256` = **self-check phụ** — KHÔNG tamper-proof (kẻ sửa body recompute hash được); chỉ cross-copy-match. KHÔNG mô tả "tamper-proof/secure". §J2 = mỗi bên ghi repo MÌNH (KHÔNG "AI_INFRA ghi giúp").
|
||||
- **path-coupling:** 7 broadcasts root = abs Windows path 1 Dropbox (send-email.md:13-22). web-migration sau → sửa 1 chỗ id-map.
|
||||
- **2 command runtime-pending:** send/check-email `.md` no hot-reload → CHƯA gọi được tới khi restart. (đã thấy trong skill registry = loaded, nhưng invoke-runtime cần restart confirm.)
|
||||
- **Bash POSIX vs PowerShell:** command .md reference PowerShell `Get-FileHash`/SHA256 (đúng win32 runtime nơi command chạy); scaffold .gitkeep/dir dùng Write/mkdir (KHÔNG shell-encoding ẩu, chống mojibake).
|
||||
Reference in New Issue
Block a user