Help us improve
Share bugs, ideas, or general feedback.
From forge-plan
기획서를 CEO(비즈니스)→Design(UX)→Engineering(기술) 3관점으로 순차 리뷰하는 스킬. Phase 3 에이전트 회의 후 자동 트리거. MAS P1: + Codex critic 4번째 관점 adversarial 추가 (6관점 확장).
npx claudepluginhub moongci38-oss/forge-plugins --plugin forge-planHow this skill is triggered — by the user, by Claude, or both
Slash command
/forge-plan:autoplansonnetThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**역할**: 당신은 기획서를 CEO·Design·Engineering 3관점으로 순차 리뷰하여 맹점을 제거하는 기획 검증 전문가입니다.
Creates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
역할: 당신은 기획서를 CEO·Design·Engineering 3관점으로 순차 리뷰하여 맹점을 제거하는 기획 검증 전문가입니다.
컨텍스트: Phase 3 에이전트 회의 후 자동 트리거되거나 /autoplan 호출 시 실행됩니다.
출력: CEO/Design/Engineering 관점별 리뷰 결과 + 개선 항목을 마크다운 보고서(docs/planning/active/)로 저장합니다.
아래 생각이 들면 더 엄격하게 본다:
기획서(PRD/GDD)를 3개 관점에서 순차적으로 리뷰하여 맹점을 제거한다.
단일 관점은 맹점을 만든다. CEO→Design→Eng 순서로 리뷰하여 비즈니스/UX/기술 모두 검증한다. 각 Subagent 결과는 파일로 전달 — 다음 Subagent는 파일을 읽어 컨텍스트를 확보한다.
(manual) /autoplan # 현재 Phase 3 기획서 리뷰 /autoplan --doc path/to/prd.md # 특정 문서 리뷰 /autoplan --skip ceo # CEO 리뷰 스킵
(auto-trigger) Phase 3 에이전트 회의(Competing Hypotheses) 후 → 자동 실행
각 Wave의 결과는 파일에 저장되고 다음 Wave는 파일을 읽어 컨텍스트를 확보한다.
| 파일 | 경로 | 작성자 | 읽는 자 |
|---|---|---|---|
AUTOPLAN_CEO.md | .claude/state/AUTOPLAN_CEO.md | Wave 1 CEO | Wave 2 Design, Wave 3 Eng, Wave 4 Synthesizer |
AUTOPLAN_DESIGN.md | .claude/state/AUTOPLAN_DESIGN.md | Wave 2 Design | Wave 3 Eng, Wave 4 Synthesizer |
AUTOPLAN_ENG.md | .claude/state/AUTOPLAN_ENG.md | Wave 3 Engineering | Wave 4 Synthesizer |
AUTOPLAN_SYNTHESIS.md | .claude/state/AUTOPLAN_SYNTHESIS.md | Wave 4 Synthesizer | Wave 5 Evaluator |
{기획서}-autoplan-review.md | 기획서 경로와 동일 디렉토리 | Wave 4 Synthesizer | 사용자, Wave 5 Evaluator |
모든 AUTOPLAN 중간 파일은 {project_root}/.claude/state/ 에 저장한다.
subagent_type: general-purpose
model: sonnet
입력: 기획서 파일 Read 임무: 비즈니스 관점 리뷰
| 검증 항목 | 기준 |
|---|---|
| 비즈니스 모델 | 수익화 경로 명확, 단가/마진 계산 |
| 시장 적합성 | TAM/SAM/SOM 대비 제품 포지셔닝 |
| ROI | 개발 비용 대비 기대 수익 |
| 경쟁 우위 | 진입장벽, 차별점, MOAT |
| Kill Signal | 시장 없음, 수익 모델 없음, 경쟁 불가 |
출력: .claude/state/AUTOPLAN_CEO.md
subagent_type: ux-researcher
model: sonnet
입력: 기획서 파일 Read + .claude/state/AUTOPLAN_CEO.md Read
임무: CEO 리뷰 결과를 참고하여 UX/UI 관점 리뷰 (ux-researcher 전용 UX 검증 + CRITICAL/HIGH/MEDIUM/LOW 등급)
| 검증 항목 | 기준 |
|---|---|
| 사용자 경험 | 핵심 플로우 3클릭 이내 |
| UI 일관성 | 디자인 시스템/토큰 준수 |
| 접근성 | WCAG 2.1 AA 기준 |
| 정보 구조 | 내비게이션 직관성 |
| Kill Signal | UX 복잡도 과다, 학습곡선 급경사 |
디자인 레퍼런스 URL (필수 수집) 기획서에 아래 항목을 반드시 포함할 것:
## 디자인 레퍼런스
- 참고 사이트: [URL] — (어떤 스타일/요소를 참고할지 한 줄 설명)
- 참고 사이트: [URL] — ...
→ Phase 8 구현 시 이 URL을 Claude Design(claude.ai/design)에 전달하여 화면 생성
출력: .claude/state/AUTOPLAN_DESIGN.md
subagent_type: cto-advisor
model: sonnet
입력: 기획서 파일 Read + .claude/state/AUTOPLAN_CEO.md Read + .claude/state/AUTOPLAN_DESIGN.md Read
임무: CEO + Design 리뷰 결과를 참고하여 기술 관점 리뷰 (cto-advisor 7축: 아키텍처·API·데이터모델·보안·성능·테스트전략·기술부채)
| 검증 항목 | 기준 |
|---|---|
| 기술 실현성 | 기술 스택으로 구현 가능 여부 |
| 아키텍처 | 확장성, 유지보수성, 성능 |
| 보안 | OWASP Top 10 대응 |
| 일정 | SP 추정 현실성 |
| Kill Signal | 기술 불가, 일정 3배+ 초과 |
출력: .claude/state/AUTOPLAN_ENG.md
subagent_type: general-purpose
model: sonnet
입력:
.claude/state/AUTOPLAN_CEO.md Read.claude/state/AUTOPLAN_DESIGN.md Read.claude/state/AUTOPLAN_ENG.md Read임무: 3관점 리뷰 종합, 충돌 정리, PASS/FAIL 판정
수행 절차:
| Rubric 항목 | 가중치 | FAIL 기준 |
|---|---|---|
| 비즈니스 타당성 | 30% | Kill Signal 또는 수익 모델 불명확 시 즉시 FAIL |
| UX 실현성 | 25% | 핵심 플로우 3클릭 이내 미충족, Kill Signal 시 즉시 FAIL |
| 기술 실현성 | 25% | 기술 불가 또는 일정 3배+ 초과 시 즉시 FAIL |
| 디자인 레퍼런스 완성도 | 20% | 디자인 레퍼런스 URL 미포함 시 WARN, 기획서 내 화면 명세 누락 시 FAIL |
PASS 기준: 합산 70점 이상 + 즉시 FAIL 항목 없음
(선택) Advisor 통합 조언 — 3관점 리뷰에서 충돌이 2건 이상 발생하거나, 고위험 기획(1억 이상 예산·신규 시장 진입·아키텍처 대전환)일 때만:
Agent(
subagent_type="advisor-strategist",
prompt="""
3관점 리뷰 충돌 통합 조언 요청.
기획서 핵심 (3~5줄):
{기획 요약}
CEO 리뷰 (1문단):
{CEO 어노테이션 요약}
Design 리뷰 (1문단):
{Design 어노테이션 요약}
Engineering 리뷰 (1문단):
{Engineering 어노테이션 요약}
충돌 리스트:
- {충돌 1}
- {충돌 2}
질문:
1. 이 기획의 전체 전략 방향에서 놓치기 쉬운 맹점 2개.
2. 3관점 충돌 중 어느 쪽 의견에 더 가중치를 둬야 하는지 근거 제시.
"""
)
Advisor 응답을 별도 "## Advisor 통합 조언" 섹션으로 리뷰 리포트에 첨부.
출력:
.claude/state/AUTOPLAN_SYNTHESIS.md (내부 작업 파일){기획서 경로}-autoplan-review.md (최종 리뷰 리포트)## Autoplan 3관점 리뷰 결과
### CEO Review
- [PASS] 비즈니스 모델: ...
- [WARN] ROI: ...
### Design Review
- [PASS] UX 플로우: ...
- [FAIL] 접근성: ...
### Engineering Review
- [PASS] 기술 실현성: ...
- [WARN] 일정: ...
### 충돌 사항
- CEO vs Eng: 기능 A의 우선순위 (비즈니스 가치 높음 vs 기술 복잡도 높음)
### Rubric 점수 (Lead Synthesizer 판정)
| 항목 | 가중치 | 점수 | 비고 |
|------|:------:|:----:|------|
| 비즈니스 타당성 | 30% | X/100 | ... |
| UX 실현성 | 25% | X/100 | ... |
| 기술 실현성 | 25% | X/100 | ... |
| 디자인 레퍼런스 완성도 | 20% | X/100 | ... |
| **가중 합산** | 100% | X.X/100 | |
### 판정: PASS / FAIL
### 개선 권고사항
- [위치]: [이유] → [방법]
subagent_type: general-purpose
model: sonnet
핵심 원칙: Lead Synthesizer ≠ Evaluator Lead가 너무 관대하게 보지 않았는가를 별도 에이전트가 재확인한다. Synthesizer의 의도나 판단 근거는 전달하지 않는다.
입력:
{기획서 경로}-autoplan-review.md Read (Synthesizer 판정 결과).claude/state/AUTOPLAN_CEO.md Read.claude/state/AUTOPLAN_DESIGN.md Read.claude/state/AUTOPLAN_ENG.md Read임무: Lead Synthesizer 판정의 독립 검증
검증 포인트:
Evaluator 판정 원칙:
출력: {기획서 경로}-autoplan-review.md 하단에 "## Wave 5 독립 Evaluator 검증" 섹션 추가
## Wave 5 독립 Evaluator 검증
### Lead Synthesizer 판정 검증
- Kill Signal 재확인: [OK / ESCALATE — 이유]
- 관대함 체크: [OK / 지적사항]
- 충돌 해소 검증: [OK / 불충분 — 이유]
- Rubric 독자 점수: X.X/100 (Lead: X.X/100, 차이: X점)
### 최종 판정: CONFIRM PASS / CONFIRM FAIL / ESCALATE
### 에스컬레이션 항목 (해당 시)
- [항목]: [이유] → [Human 확인 필요 사항]
최종 판정 기준:
파일 기반 통신 → JS 변수 직접 전달. 중간 파일(.claude/state/AUTOPLAN_*.md) 생성 없음. 컨텍스트 격리.
패턴: CEO → Design(CEO 결수 주입) → Eng(CEO+Design 주입) → Synthesize → Evaluate (모두 순차 await).
실행: Workflow({ script: Bash("cat ~/.claude/skills/autoplan/workflow.js"), args: { docPath, skip } })
agentType: Wave 2 = ux-researcher / Wave 3 = cto-advisor.
CLAUDE_CODE_DISABLE_WORKFLOWS=1 시 기존 5-Wave 파일 기반 방식 fallback.
.claude/state/AUTOPLAN_CEO.md 저장.claude/state/AUTOPLAN_DESIGN.md 저장.claude/state/AUTOPLAN_ENG.md 저장{기획서}-autoplan-review.md 저장병렬이 아닌 순차인 이유:
Evaluator FAIL 시
.claude/logs/{session}/errors.jsonl참조하여 재시도