Path A chốt sau pre-flight Plan G Trial Week 1 (Session 21 turn 1). Con thứ 4 cicd-monitor green READ tier — poll Gitea Actions API + curl bundle hash 2 app + sqlcmd migration verify prod + endpoint smoke. ~150K spawn cost extra, trade-off để catch deploy ship fail tự động không phụ thuộc em main nhớ verify thủ công (recurring blind spot S20). Files added: - .claude/agents/cicd-monitor.md (~7KB) — system prompt + 8-step workflow + 5-stage report + gotcha #25/#39/#40/#41/#44 cross-ref + skill iis-deploy-runbook/dependency-audit-erp/ef-core-migration preload - .claude/agent-memory/cicd-monitor/MEMORY.md (~5KB seed) — recurring CI bug patterns + 5-stage checklist + baseline build/bundle metrics Files updated: - .claude/agents/README.md — 4-agent architecture diagram (green slot) + decision tree (after push + prod issue diagnose branches) + memory routine 4 SendMessage + skills preload 4 agents + cost reality ~750K spawn / ~1.35M heavy / ~700K optimized + trial workflow Week 1-3 CI/CD Monitor spawn integrated + pass criteria + catch ≥1 deploy ship fail Trade-off rationale: - 4× solo → 6.5× solo per heavy session (vs 3 agents 6× solo) — Max 20× plan absorbs - Post-deploy ship verification = recurring blind spot (Em main solo quên verify ~30% push S20) - Bundle hash unchanged + mig drift prod = silent fail signal (no exception, just user UAT confusion) CI skip per path filter (all 3 files .md match `**/*.md` paths-ignore). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
222 lines
11 KiB
Markdown
222 lines
11 KiB
Markdown
# Multi-agent SOLUTION_ERP — Master Coordination Guide
|
||
|
||
> **Architecture:** 4 sub-agents Opus 4.7 1M Max + em main coordinator.
|
||
> Pattern: Anthropic Building Effective Agents orchestrator-workers + Cognition "writes single-threaded" hybrid + post-deploy automated watchdog.
|
||
> Setup: Session 20 turn 12 (2026-05-11) initial 3 agents + Session 21 turn 1 (2026-05-12) +cicd-monitor — empirical-grounded từ NAMGROUP s41-s43 trial curve.
|
||
|
||
---
|
||
|
||
## 🎯 Architecture
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ EM (Main) — Opus 4.7 1M Max │
|
||
│ • Reasoning + write code (single-threaded principle) │
|
||
│ • User dialog + architectural decisions │
|
||
│ • Coordinate 4 sub-agents via SendMessage │
|
||
│ • Synthesize cross-agent findings end-of-session │
|
||
└─────────────────────────────────────────────────────────┘
|
||
↓ spawn + keep-alive (Opus 4.7 1M Max each)
|
||
┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐
|
||
│Investigator│ │ Implementer│ │ Reviewer │ │ CI/CD │
|
||
│ │ │ │ │ │ │ Monitor │
|
||
│ READ only │ │ WRITE strict│ │ READ only │ │ READ only │
|
||
│ │ │classification│ │ adversarial│ │ post-deploy│
|
||
│ Research + │ │Cookie-cutter│ │ pre-commit │ │ │
|
||
│ Audit + │ │ + Multi-file│ │ + live │ │ Gitea poll │
|
||
│ External │ │ independent│ │ verify │ │ + bundle │
|
||
│ research │ │ ONLY │ │ │ │ hash + │
|
||
│ │ │ │ │ │ │ prod smoke │
|
||
└────────────┘ └────────────┘ └────────────┘ └────────────┘
|
||
cyan yellow red green
|
||
```
|
||
|
||
---
|
||
|
||
## 🔄 Invocation decision tree (em main apply)
|
||
|
||
Task input → classify task type:
|
||
|
||
```
|
||
├── Read-only research / audit / scan > 5 files / external fetch?
|
||
│ → Spawn Investigator (always safe)
|
||
│
|
||
├── Adversarial pre-commit verify / heavy diff / deploy claim?
|
||
│ → Spawn Reviewer (always before push critical)
|
||
│
|
||
├── After push code commit (NOT docs-only — gotcha #41 path filter)?
|
||
│ → Spawn CI/CD Monitor (poll Gitea Actions + bundle hash + prod smoke async)
|
||
│ → ~150K spawn cost — catch deploy fail tự động không phụ thuộc em main nhớ verify
|
||
│
|
||
├── User reports prod issue ("500", "không lên", "không thấy thay đổi")?
|
||
│ → Spawn CI/CD Monitor diagnose first (logs + curl + sqlcmd evidence)
|
||
│
|
||
├── Cookie-cutter mechanical (N independent files same pattern, deterministic spec)?
|
||
│ ✓ N >= 5 files
|
||
│ ✓ Spec deterministic (no implicit decisions)
|
||
│ ✓ Pattern proven > 1× prior
|
||
│ → Spawn Implementer (Case 1 Anthropic verified)
|
||
│
|
||
├── Multi-file independent changes (different modifications per file)?
|
||
│ ✓ Each file verifiable independently
|
||
│ ✓ Files NOT cross-stack tight coupling
|
||
│ → Spawn Implementer (Case 2 orchestrator-workers)
|
||
│
|
||
├── Test generation for isolated methods?
|
||
│ → Spawn Implementer (Case 3 verified)
|
||
│
|
||
├── Mass code migration (framework upgrade, per-file deterministic)?
|
||
│ → Spawn Implementer (Case 5 verified)
|
||
│
|
||
├── Quick task < 30 min (overhead spawn không xứng)?
|
||
│ → Em solo direct
|
||
│
|
||
├── Schema design / UX flow / architectural decision / cross-stack tight coupling?
|
||
│ → Em solo (Cognition "writes single-threaded")
|
||
│ → Investigator pre-flight optional
|
||
│ → Reviewer pre-commit always
|
||
│
|
||
└── Bug fix tightly coupled (cross BE/FE/DB, reasoning chain)?
|
||
→ Em solo (Anthropic warning: "tightly interdependent coding")
|
||
→ Investigator pre-flight optional
|
||
→ Reviewer pre-commit always
|
||
```
|
||
|
||
---
|
||
|
||
## 📋 Implementer task classification — CRITICAL rules
|
||
|
||
**Em main MUST self-check before spawning Implementer:**
|
||
|
||
### ✅ ACCEPT criteria (ALL must be true)
|
||
1. ✅ Spec deterministic (no implicit decisions left for agent)
|
||
2. ✅ Files independent (modifications don't depend on each other)
|
||
3. ✅ Pattern repeatable (proven > 1× prior session — reference memory entries)
|
||
4. ✅ Estimated effort > 30 min (overhead worth)
|
||
5. ✅ Max 2 layers cross-stack (NOT BE entity + DTO + FE wire 3-layer)
|
||
6. ✅ Each file output verifiable independently
|
||
|
||
### ❌ REFUSE criteria (ANY triggers refusal)
|
||
1. ❌ Schema design decisions needed
|
||
2. ❌ UX flow decisions needed
|
||
3. ❌ Cross-stack > 2 layers tight coupling
|
||
4. ❌ Bug fix involving reasoning chain
|
||
5. ❌ Integration testing involving multiple components
|
||
6. ❌ < 30 min trivial task
|
||
7. ❌ First time pattern (no prior precedent)
|
||
8. ❌ Spec ambiguity > 20%
|
||
|
||
**Implementer agent ALSO has self-check trong system prompt → auto-refuse out-of-scope.**
|
||
|
||
---
|
||
|
||
## 💾 Memory consult discipline
|
||
|
||
Each agent has `.claude/agent-memory/<name>/MEMORY.md` persistent diary:
|
||
|
||
- **Spawn:** Auto-inject first 200 lines / 25KB của MEMORY.md
|
||
- **During work:** Agent may Read full MEMORY.md if task complex
|
||
- **Before return:** Agent MUST update MEMORY.md với findings (BẮT BUỘC)
|
||
- **Cross-session:** MEMORY.md persists on disk
|
||
|
||
**Em main routine end-of-session:**
|
||
|
||
```
|
||
SendMessage Investigator: "Flush MEMORY.md với findings session này. Format:
|
||
1-2 sentences per finding. Categories: patterns / anti-patterns / gotchas
|
||
discovered / external research summary."
|
||
|
||
SendMessage Implementer: "Flush MEMORY.md với patterns applied + ambiguities
|
||
encountered + scope refusals."
|
||
|
||
SendMessage Reviewer: "Flush MEMORY.md với anti-patterns observed + gotcha
|
||
regressions caught + claim verification results."
|
||
|
||
SendMessage CI/CD Monitor: "Flush MEMORY.md với run failures observed + post-deploy
|
||
bundle hash trend + recurring CI bugs + deploy time delta vs baseline."
|
||
|
||
Em read 4 MEMORY.md updates → synthesize cross-agent learnings → integrate
|
||
vào project memory / session log.
|
||
|
||
Em proceed normal close-out: STATUS update + commit + push.
|
||
```
|
||
|
||
---
|
||
|
||
## 🛠️ SendMessage discipline
|
||
|
||
**Cost optimization:**
|
||
- Within 5min cache TTL window khi possible (90% discount cached prefix)
|
||
- Compact prompts (~5K new content each) thay vì dump (~24K)
|
||
- Skip spawn cho task < 30min
|
||
|
||
**Context discovery preservation:**
|
||
- Include explicit "Include surprising findings + edge cases discovered" trong spec
|
||
- Periodic checkpoint mỗi 1-2h heavy work: prompt agents flush MEMORY.md
|
||
- Session crash → MEMORY.md preserved on disk, in-session context lost
|
||
|
||
---
|
||
|
||
## 🎯 Project-specific tunings (SOLUTION_ERP)
|
||
|
||
**Stack:** .NET 10 Clean Architecture + CQRS MediatR + EF Core 10 + SQL Server + 2 React 19 Vite 8 FE (admin + user) + Gitea Actions CI + Windows IIS.
|
||
|
||
**Current state (Session 21 turn 1 — 2026-05-12):** 27 migrations · 59 DB tables · ~142 endpoints · 34 FE pages · 81 test pass · 44 gotchas · 16 memory entries · 6 skills · 30 demo user · 3 prod domain `*.solutions.com.vn` · **4 sub-agents (seeds-only post-cicd-monitor add)**.
|
||
|
||
**Skills preload mỗi sub-agent:**
|
||
- **Investigator:** `contract-workflow` + `permission-matrix` + `ef-core-migration` (research patterns + schema audit)
|
||
- **Implementer:** `ef-core-migration` + `permission-matrix` + `form-engine` (scaffold + 3-file rule + permission seed)
|
||
- **Reviewer:** `dependency-audit-erp` + `iis-deploy-runbook` + `contract-workflow` (security/deploy/workflow audit)
|
||
- **CI/CD Monitor:** `iis-deploy-runbook` + `dependency-audit-erp` + `ef-core-migration` (deploy runbook + dep pin verify + mig prod check)
|
||
|
||
**Context paste session start (em main responsibility):**
|
||
- `docs/STATUS.md` current state
|
||
- `docs/CLAUDE.md` root tech context
|
||
- Latest 2 session logs `docs/changelog/sessions/`
|
||
- Active gotchas `docs/gotchas.md`
|
||
- Memory entries `C:\Users\pqhuy\.claude\projects\D--Dropbox-CONG-VIEC-SOLUTION\memory\MEMORY.md`
|
||
|
||
→ Auto-inject baseline ~80-150K per agent. Plus task-specific Read on-demand.
|
||
|
||
**Windows MAX_PATH pitfall:** Project path `D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP\` đã nested 51 chars + Dropbox-managed. **Implementer frontmatter KHÔNG dùng `isolation: worktree`** (per Pitfall 1 template). Default branch isolation OK.
|
||
|
||
**UAT live mode (Phase 9 active):** Memory `feedback_uat_skip_verify` — skip `dotnet test` mỗi chunk, vẫn `npm run build` × 2 app. Reviewer khi spawn pre-commit cần áp rule này (không yêu cầu test increment cho UAT iteration), VẪN verify wire BE + security + anti-fiddle.
|
||
|
||
---
|
||
|
||
## 📊 Cost reality
|
||
|
||
| Component | Effective tokens billed (after caching) |
|
||
|---|---|
|
||
| 4 sub-agents spawn setup | ~750K (4 × ~188K cache WRITE — CI/CD Monitor +~150K) |
|
||
| 10 SendMessages each ~24K new | ~450K (10 × 45K equivalent với cache READ) |
|
||
| Em main session | ~200K |
|
||
| **Total per heavy session** | **~1.35M (~6.5× solo)** |
|
||
| **Optimized (compact + cache + skip trivial)** | **~700K (~3.5× solo)** |
|
||
|
||
**Max 20× plan absorbs ~3.5× solo cost comfortable.**
|
||
**CI/CD Monitor +~150K trade-off:** catch deploy fail tự động → KHÔNG phụ thuộc em main nhớ verify thủ công (recurring blind spot pattern).
|
||
|
||
---
|
||
|
||
## 🧪 Trial workflow (2-4 tuần evaluate)
|
||
|
||
- **Week 1:** Setup + Plan trial cookie-cutter (Case 1 verified). SOLUTION_ERP candidate: Contract V2 wire Mig 28+29 mirror PE pattern — pattern proven 1× S17-S19 (PE V2). ~600+ LOC, 2 mig + Service + Controller + FE × 2 app. **CI/CD Monitor spawn sau mỗi push** verify Gitea Actions PASS + bundle hash 2 app changed + mig 28+29 applied prod.
|
||
- **Week 2-3:** Feature wire (Solo em + Inv pre-flight + Rev pre-commit + CI/CD Monitor post-push) — phân quyền strict V2 + drop legacy V1.
|
||
- **Week 4:** Evaluate quality vs cost real numbers.
|
||
- Pass criteria: Rev catch ≥ 2 wire bugs trước commit + CI/CD Monitor catch ≥ 1 deploy ship fail (bundle hash unchanged / mig drift) + time saving ≥ 25% Case 1+2 + Max 20× quota comfortable
|
||
- Fail criteria: any of above unmet → rollback solo, agents archived
|
||
|
||
---
|
||
|
||
## 🔗 References
|
||
|
||
- [Anthropic Building Effective Agents](https://www.anthropic.com/engineering/building-effective-agents)
|
||
- [Cognition "Multi-Agents Working"](https://cognition.ai/blog/dont-build-multi-agents)
|
||
- [Anthropic Sub-agents docs](https://docs.claude.com/en/docs/claude-code/sub-agents)
|
||
- Memory entries (`C:\Users\pqhuy\.claude\projects\D--Dropbox-CONG-VIEC-SOLUTION\memory\`):
|
||
- `feedback_per_chunk_commit.md` — per-chunk discipline reference cho Implementer pattern
|
||
- `feedback_uat_skip_verify.md` — Reviewer rule trong Phase 9
|
||
- `feedback_drastic_refactor_scope.md` — Implementer refuse criteria reference
|
||
- `feedback_audit_reuse_before_clone.md` — Investigator audit-first pattern
|