Overview
Architect → Builder → Reviewer → Architect It is a 3-agent team skill that completes a single feature through a loop.
| Agent | Role | Core Principles |
|---|---|---|
| Architect | Establish design plan + final decision authority | Deliver BRIEF via SendMessage → Accept/reject Reviewer verdict |
| Builder | Implement code based on BRIEF | Do not touch outside scope, do not modify files after completion, self-review + submit verification evidence |
| Reviewer | Independent verification + 3-stage verdict | qa-gate + code review integrated, read-only, worktree isolation, no abuse of CONDITIONAL |
Differences from peach-team-dev
| peach-team-dev | peach-team-3a | |
|---|---|---|
| Number of agents | Up to 5 | Fixed at 3 |
| Suitable cases | Large-scale fullstack | Single feature, small-scale modifications |
| Verdict method | 2-stage pass/fail | 3-stage APPROVED / CONDITIONAL / REJECTED |
| Ambiguous cases | Unconditional rework | Architect makes the final judgment |
Inputs
/peach-team-3a [작업 설명]
# 옵션
# model=sonnet|opus|haiku (서브에이전트 모델 override, 기본값: sonnet)
# layer=backend|frontend|fullstack (구현 범위, 미지정 시 Architect가 판단)
Orchestration
0. Input validation
Check that the agent team feature is enabled
cat ~/.claude/settings.json | grep -i "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS"
If the setting is absent or "1"is not stop immediatelyand output guidance:
⚠️ 에이전트 팀 기능이 비활성화되어 있습니다.
~/.claude/settings.json에 아래 내용을 추가한 후 Claude Code를 재시작하세요:
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
}
}
If the task description is missing, ask:
어떤 기능을 구현할까요? (예: "공지사항 목록 API 추가", "회원 상태 필드 수정")
model option:
- Unspecified: run subagents with the default sonnet
- If specified: override all subagents to that model
- Allowed values: sonnet, opus, haiku
1. Environment check
# 프로젝트 구조 파악
ls api/src/modules/ 2>/dev/null
ls front/src/modules/ 2>/dev/null
# test-data 가이드코드 존재 확인
ls api/src/modules/test-data/ 2>/dev/null
ls front/src/modules/test-data/ 2>/dev/null
# DAO 라이브러리 감지
head -5 api/src/modules/test-data/dao/test-data.dao.ts 2>/dev/null
# from 'bunqldb' → 재할당 방식
# from 'sql-template-strings' → append 방식
# Controller 프레임워크 감지
head -3 api/src/modules/test-data/controller/test-data.controller.ts 2>/dev/null
# _common 구성 감지
ls api/src/modules/_common/ 2>/dev/null
ls api/src/modules/_common/constants/ 2>/dev/null
# 스킬 references 경로 감지
BACKEND_REFS=$(find ~/.claude ~/.agents -path "*/peach-gen-backend/references" -type d 2>/dev/null | head -1)
UI_REFS=$(find ~/.claude ~/.agents -path "*/peach-gen-ui/references" -type d 2>/dev/null | head -1)
2. Team composition diagram
Architect
│
│ SendMessage: BRIEF 전달
▼
Builder ──────────────────────────────────┐
│ │ REJECTED → Ralph Loop
│ SendMessage: 구현 완료 + 자기 검토 │
▼ │
Reviewer (worktree 격리) │
│ │
├── APPROVED ──→ SendMessage → Architect│
├── CONDITIONAL → SendMessage → Architect│
└── REJECTED ──→ SendMessage → Builder ─┘
3. Team creation and task registration
TeamCreate: team_name="3a-[작업축약명]-team"
TaskCreate:
1. "설계 계획 수립" (owner: architect)
2. "코드 구현" (blockedBy: Task1, owner: builder)
3. "검증 및 판정" (blockedBy: Task2, owner: reviewer)
4. Role-specific instructions
The full definition of each role is in references/.
When creating a subagent, include the entire contents of that file in the prompt.
model= If the option is specified, pass it as the model parameter to override the frontmatter default.
| Role | Reference file | Execution environment |
|---|---|---|
| architect | references/architect-agent.md | General |
| builder | references/builder-agent.md | General |
| reviewer | references/reviewer-agent.md | worktree isolation |
Architect instruction points
Context the orchestrator should include in the prompt when creating the Architect agent:
- Task description:
[사용자 입력 그대로] - Environment information: DAO library, Controller framework, modules path, _common constants list
- Guide code location:
api/src/modules/test-data/,front/src/modules/test-data/ - references path:
${BACKEND_REFS},${UI_REFS} - Details:
references/architect-agent.mdreference
Builder instruction points
After the Architect delivers the BRIEF via SendMessage, spin up the Builder. The orchestrator includes the following when creating the Builder agent:
- Architect's BRIEF content (full text received via SendMessage)
- Environment information: same as Architect instructions
- Details:
references/builder-agent.mdreference
Reviewer instruction points
After the Builder reports implementation completion via SendMessage, spin up the Reviewer. When creating the Reviewer agent, the orchestrator includes the following:
- Builder's implementation report content (list of implemented files + self-review results)
- Architect's BRIEF content (judgment criteria)
- Details:
references/reviewer-agent.mdreference
5. Reviewer verdict handling
When the Reviewer reports the verdict result to the orchestrator via SendMessage, the orchestrator handles it.
✅ APPROVED
Reviewer → SendMessage → 오케스트레이터: "APPROVED" + 검증 결과
오케스트레이터 → SendMessage → Architect: 완료 보고
오케스트레이터 → /peach-qa-gate 자동 실행 (최종 증거 수집)
오케스트레이터 → 팀 정리
⚠️ CONDITIONAL
Reviewer → SendMessage → 오케스트레이터: "CONDITIONAL" + 조건 내용
오케스트레이터 → SendMessage → Architect: 조건 전달 + 판단 요청
Architect → SendMessage → 오케스트레이터:
"조건 수용" → 오케스트레이터 → SendMessage → Builder: 수정 지시 → Reviewer 재검증
"조건 무시" → 판단 근거 기록 후 APPROVED로 처리
Rules:
- CONDITIONAL is not a Ralph Loop. Completion must not be processed until the Architect makes a judgment.
- Reviewer는 Conditional items + the reason why it is not REJECTEDmust be reported together.
- If the Architect chooses "ignore", the orchestrator includes the rationale in the final completion report.
❌ REJECTED — Ralph Loop activated
Reviewer → SendMessage → 오케스트레이터: "REJECTED" + 수정 필요 항목
오케스트레이터 → Ralph Loop 단계 판단
오케스트레이터 → SendMessage → Builder: 피드백 + 수정 지시
Builder 수정 완료 → SendMessage → 오케스트레이터 → Reviewer 재검증
Ralph Loop (iterative verification mechanism)
On REJECTED, rather than a simple retry, iterate with structured feedback injection.
Escalation stages
| Iteration count | Stage | Action |
|---|---|---|
| 1~3회 | Autonomous fix | Builder fixes based only on Reviewer feedback |
| 4회 | Re-reference guide | Re-read the entire test-data baseline skeleton, then fix |
| 5~7회 | Codex diagnosis | codex:codex-rescueIndependently diagnose the failure cause + re-reference the guide |
| 8~10회 | Minimal fix | Focus only on Must Follow items, defer the rest |
| 11+ | Abort | Escalate to user |
Codex deployment conditions (5–7 iterations or 2 consecutive REJECTED)
CODEX_AVAILABLE=truedeployed only when"codex@openai-codex": truedetected in settings.json)- On 2 consecutive REJECTED: deploy
codex:codex-rescueimmediately without waiting 5 Ralph Loop iterations (3A induces early escape due to the small-loop nature) CODEX_AVAILABLE=false: continue the existing Ralph Loop without Codex (re-reference the guide)- Codex no response/timeout: wait 60 seconds → if no response, skip and proceed with existing feedback
- Codex diagnosis results insufficient: the orchestrator ignores them and proceeds with existing feedback
Escalation report
## Ralph Loop 에스컬레이션
- 작업: [작업 설명]
- 반복: N/10회
- 단계: [현재 단계]
- 미해결: [위반 항목]
- 권장: [수동 개입 사항]
Inter-agent communication structure
Same as the peach-team-dev series, communicate via SendMessage + TaskUpdate.
Architect → 오케스트레이터 (SendMessage): BRIEF 내용
오케스트레이터 → Builder 프롬프트에 BRIEF 포함하여 스핀업
Builder → 오케스트레이터 (SendMessage): 구현 완료 + 자기 검토 + 파일 목록
오케스트레이터 → Reviewer 프롬프트에 BRIEF + 구현 보고 포함하여 스핀업
Reviewer → 오케스트레이터 (SendMessage): 판정 + 검증 결과
On completion of each stage, update the status via TaskUpdate:
- Task #1 (design): Architect complete →
completed - Task #2 (implementation): Builder complete →
completed - Task #3 (verification): Reviewer APPROVED →
completed/ REJECTED → Builder rework
Completion
1. Evidence collection
The orchestrator automatically runs /peach-qa-gate→ generate evidence report
- If the verdict is ❌, fix the relevant item and rerun
- If the verdict is ✅, proceed to the next step
2. Team cleanup
SendMessage(shutdown_request) → 모든 팀원에게
TeamDelete → 팀 정리
Completion report format
✅ 3A 팀 작업 완료
작업: [작업 설명]
반복: [총 Reviewer 검증 횟수]회
결과:
✅ Architect: BRIEF 수립 완료
✅ Builder: 구현 완료
✅ Reviewer: APPROVED (또는 CONDITIONAL → Architect 수용)
✅ qa-gate: 증거 보고서 생성 + 완료 가능 판정
생성/수정된 파일:
[파일 목록]
다음 단계:
[실행 방법 안내]
Examples
# 단일 API 추가
/peach-team-3a 공지사항 목록 조회 API 추가
# 기존 기능 수정
/peach-team-3a 회원 상태 필드에 '정지' 값 추가 layer=backend
# UI 컴포넌트 수정
/peach-team-3a 상품 목록 페이지에 엑셀 다운로드 버튼 추가 layer=frontend
# opus 모델로 실행
/peach-team-3a 결제 상태 전이 로직 구현 model=opus