| name | prd |
| description | Write a complete unified PRD covering user/JTBD/decisions/scope/agent-spec/metrics/hypotheses in 15 sections. Single source of truth for both customer-facing products and the LLM agents inside them. Replaces the older 7-section agent-only template. prd is the canonical owner of ยง6 Now/Next/Later. --mode design-shotgun reads ยง1+ยง11 from existing PRD and generates harness/design-variants/ (4 HTML variants + comparison.md). --mode roadmap is the ยง6 sub-mode: generate(Mermaid gantt + ROADMAP.md), rice(deterministic RICE scoring), prioritize(Now/Next/Later ์ฌ๋ถ๋ฅ). |
| argument-hint | [product or agent name] | --mode design-shotgun | --mode roadmap [generate|rice|prioritize] |
| allowed-tools | ["Read","Write"] |
| model | inherit |
| hooks | {"Stop":[{"type":"command","command":"bash scripts/validate-prd.sh . 2>/dev/null || true"}]} |
Project Context (auto-injected)
ํ๋ก์ ํธ ๋ฉ๋ชจ๋ฆฌ:
!cat .claude/MEMORY.md 2>/dev/null || echo "ํ๋ก์ ํธ ๋ฉ๋ชจ๋ฆฌ ์์."
ํ์ฌ ์ด์ (Linear/GitHub):
!linear issue list --mine --status "In Progress" --limit 5 2>/dev/null || gh issue list --limit 5 --json number,title --jq '.[] | "#\(.number) \(.title)"' 2>/dev/null || echo "์ด์ ํธ๋์ปค ์ฐ๊ฒฐ ์์."
Unified PRD Template โ 15 Sections
Core Goal
- ๊ณ ๊ฐ(์ธ๊ฐ) ๋์ ์ ํ๊ณผ ๊ทธ ์์ LLM ์์ด์ ํธ ์ฌ์์ ๋จ์ผ PRD 15-section์ผ๋ก ํตํฉ
- "์ฌ๋ยท๋ฌธ์ ยท๊ฒฐ์ "์ด ์๋จ (1-6), "์์ด์ ํธยท์คํ ์ฌ์"์ด ์ค๋จ (7-11), "์งํยท๊ฐ์คยท์คํจ"๊ฐ ํ๋จ (12-14)
- 1์ธ ๋น๋ 60์ผ ์ฌ์ดํด + 5๋ช
์ฌ๋ ๊ฒ์ฆ + Live URL ๋์ฐฉ๊น์ง ๊ฐ์ PRD๋ฅผ ๋งค๋ฒ ๊ฐฑ์
Trigger Gate
Use This Skill When
- ์ SaaSยท๋ฒํฐ์ปฌ ์ฑยท1์ธ ๋น๋ ์ ํ์ ์ ์ ์ฌ์ ๋ฌธ์ํ (PRD v0.1)
- 5๋ช
์ฌ๋ ๊ฒ์ฆ ์ง์ PRD v0.2~v0.3 ๊ฐฑ์
- ๋๋ฉ์ธ ํนํ ์ ํ (๋ฒ๋ฅ ยท๊ต์กยท์๋ฃ) โ ์ฌ์ฉ์ ํ๋ฅด์๋ยทJTBD๊ฐ ํต์ฌ
- ๋ด๋ถ์ฉ LLM ์์ด์ ํธ spec โ Section 1ยท3์ ํ๋ฅด์๋ = ๋ด๋ถ ์ฌ์ฉ์, Section 7-11์ ์์ด์ ํธ ์์ธ
- ํฌ์์ยทํํธ๋ยท์ธ๋ถ ์์ง๋์ด์๊ฒ ์ ํ ์ฌ์ ๊ณต์ ์ ๋ฌ
- PRD ยง11 Output Spec ์์ฑ ํ UI ๋ณํ 4๊ฐ๋ฅผ ๋น๊ตํด ์ค๊ณ ๋ฐฉํฅ์ ๊ฒฐ์ ํ ๋ โ
--mode design-shotgun
- ยง6 Now/Next/Later๋ฅผ ์๊ฐ์ ๋ก๋๋งต์ผ๋ก ๋ณํํ๊ฑฐ๋ ๋ฐฑ๋ก๊ทธ๋ฅผ RICE๋ก ์ฐ์ ์์ํํ ๋ โ
--mode roadmap [generate|rice|prioritize]
Route to Other Skills When
- ๋ฐฐํฌ ์ QA ๋ผ์ด๋ โ
deliver/qa-checklist --mode adversarial (PRD ยง15 QA Pool + PERSONA_SPECS ๊ธฐ๋ฐ ๋์ ์์ด์ ํธ ๊ตฌ์ฑ)
- ICPยทbeachhead ์ ์ โ
discover/customer-reach๋ก ๋ผ์ฐํ
ํ Section 1์ ์ฃผ์
- JTBDยทSwitch Interview โ
discover/customer-reach๋ก ๋ผ์ฐํ
ํ Section 2์ ์ฃผ์
- ๊ฒฐ์ ์ต์
๋งคํธ๋ฆญ์ค โ
discover/assumptions --mode build-or-buy (6์ถ) + architect/orchestration (4ํจํด) + discover/hitl (5๋ ๋ฒจ) โ Section 4
- ์ ์ธ์ฌํญ ์๋ ์ธ์ฉ โ
hplan/exclusions ๋ ์ง์คํธ๋ฆฌ fuzzy match โ Section 5
- MVP ๋น์ฉ ์๋ฎฌ๋ ์ด์
โ
discover/cost-sim (lognormal p50/p90) โ Section 6
- Instruction 7์์ ์์ธ ์ค๊ณ โ
deliver/agent-setup โ Section 7 ๋ณด๊ฐ
- OKR ์ ์ โ
operate/metrics-design --step okr (dual-axis) โ Section 12
- ๊ฐ์ค ๋ถํด โ
discover/assumptions (4์ถ) โ Section 13
- ์ ๋ขฐ์ฑยทSLO โ
operate/reliability โ Section 14
- Multi-ecosystem export โ
hplan/handoff (Spec-Kit / Kiro / GStack / Claude Code)
- ์ฌ์ฉ์ ์ธํฐํ์ด์ค๊ฐ ์๋ LLM ์์ด์ ํธ (UI/UX ๊ฐ์ ) โ
deliver/respect --mode brief (RESPECT.md ๋์์ธ ์๊ทธ๋์ฒ) โ Section 11 ์ถ๋ ฅ ์ฌ์ ๋ณด๊ฐ
- design-shotgun ๋ณํ ์ ํ ํ TC ์๋ ์์ฑ โ
deliver/qa-checklist
Boundary Checks
- PRD 15-section์ "๋ฌด์์ ํ๋๊ฐ"๋ฅผ ๋ช
์ํ์ง๋ง, "์ด๋ป๊ฒ ๊ธฐ์ ์ ์ผ๋ก ๊ตฌํํ๋๊ฐ"๋ ๋ณ๋ ๊ตฌํ ๋ฌธ์
- ๊ฐ ์น์
์ "5๋ช
์ฌ๋ ์ธํฐ๋ทฐ์ ๊ทธ๋๋ก ์ธ ์ ์๋๊ฐ? + ์์ง๋์ด๊ฐ ์ด๊ฒ๋ง์ผ๋ก ๊ตฌํ ๊ฐ๋ฅํ๊ฐ?" ๋ ๊ธฐ์ค์ผ๋ก ๊ฒ์ฆ
- ์ ์ธ์ฌํญ(Section 5)์ด ์ต์ 5๊ฐ ์ด์ โ "์์์ ์ผ๋ก ์ ๋ง๋๋ ๊ฒ" ๋ช
์
- Section 7-11 (์์ด์ ํธ ์ฌ์)์ 1์ธ ๋น๋๊ฐ LLM ์์ด์ ํธ๋ฅผ ํฌํจํ์ง ์์ผ๋ฉด "N/A โ ์ผ๋ฐ SaaS"๋ก ๊ฐ๋จ ํ๊ธฐ ๊ฐ๋ฅ
--mode design-shotgun ์ฌ์ฉ ์ docs/PRD.md ๋ถ์ฌ โ fail loud: "docs/PRD.md ์์. /prd [์ ํ๋ช
] ๋จผ์ ์คํํ์ธ์."
--mode design-shotgun ์ฌ์ฉ ์ ยง11 ์น์
๋ถ์ฌ โ fail loud: "PRD ยง11 Output Specification ์น์
์ด ํ์ํฉ๋๋ค."
--mode roadmap generate|prioritize ์ฌ์ฉ ์ ยง6 Now/Next/Later ๋ถ์ฌ โ fail loud: "PRD ยง6 MVP ๋ฒ์ ์น์
์ด ํ์ํฉ๋๋ค."
- prd๋ ยง6 Now/Next/Later์ canonical ์์ ์๋ค โ roadmap์ ๊ทธ sub-mode๋ก ยง6์ ์๊ฐํยท์ฐ์ ์์ํํ๋ฉฐ, ๋ณ๋ ์คํฌ์ด ์๋๋ค.
Failure Handling
| ์คํจ ์ํฉ | ๊ฐ์ง | ๋์ |
|---|
| ICP๊ฐ "20-50๋ ์ผ๋ฐ์ธ" ๊ฐ์ด ์ถ์์ | Section 1 ๊ฒํ ์ beachhead 5-criteria ํต๊ณผ ๋ชป ํจ | discover/customer-reach ๋ผ์ฐํ
์ผ๋ก ICP ์ฌ์ ์ |
| JTBD๊ฐ ์๋ฃจ์
์ด์กฐ ("ํธํ๊ฒ X ํ ์ ์๋ค") | Section 2๊ฐ Job์ด ์๋ Feature ์ค๋ช
| Switch Interview 4 Forces (PushยทPullยทAnxietyยทHabit)๋ก ์ฌ์์ฑ |
| ๊ฒฐ์ ์ต์
๋งคํธ๋ฆญ์ค๊ฐ ์ต์
1๊ฐ๋ง | Section 4์ ์ต์
A/B/C ์ค ํ๋๋ง | ์ต์ 2๊ฐ ์ต์
+ ํธ๋ ์ด๋์คํ ๊ฐ์ . discover/assumptions --mode build-or-buy ํธ์ถ |
| ์ ์ธ์ฌํญ ๋น์ด ์์ | Section 5 ๋น ์นธ | "์ ๋ ์ ๋ง๋๋ ๊ฒ 5๊ฐ" ๊ฐ์ ์
๋ ฅ. hplan/exclusions ์๋ ์ธ์ฉ |
| MVPยทFull vision ๋ถ๋ฆฌ ์์ | Section 6์ Now/Next/Later ๊ตฌ๋ถ ์์ | 3-tier ๋ถํ + ๊ฐ tier์ cogs p50/p90 ์ฒจ๋ถ |
| Anti-Goals ์์ | Section 7์ "ํ๋ฉด ์ ๋๋ ๊ฒ" ์์ | ์ต์ 3๊ฐ ๊ฐ์ . ๋๋ฉ์ธ ๋ฃฐยทhallucination ์ ์ฑ
ยท๋ฒ์ ์ฑ
์ ์์ญ ํฌํจ |
| Tools ํธ์ถ ์ ํ ์์ | Section 8 ์ผ๋ถ ํ์ "ํธ์ถ ์ ํ" ์ปฌ๋ผ ๋น ์นธ | deliver/agent-setup ๋ผ์ฐํ
์ผ๋ก ๋๊ตฌ๋ณ ์์ธ ์กฐ๊ฑด ์ ์ |
| Trigger ๋ชจํธ ("ํ์ ์") | Section 10 ํธ๋ฆฌ๊ฑฐ ์ ํ ๋ฏธ์ง์ | Cron/Event/Manual/Pipeline ์ค ๋ช
์์ ์ ํ |
| Output ์์ ์์ | Section 11 ์ถ๋ ฅ ์ํ ์นธ ๋น ์นธ | ์ค์ ์ถ๋ ฅ 1๊ฐ ์์ฑ ๊ฐ์ (Markdown / JSON / Plain text) |
| ์ฑ๊ณต ์งํ๊ฐ ์ถ์ ยท๋๊ธฐ ๋ถ์ฌ | Section 12์ ์ธก์ ยท๊ธฐํ ์์ | operate/metrics-design --step okr ๋ผ์ฐํ
์ผ๋ก Dual-axis ์ฌ์์ฑ |
| ๊ฒ์ฆ ๊ฐ๋ฅ ๊ฐ์ค ์์ | Section 13์ ๊ฐ์ค 0๊ฐ | discover/assumptions๋ก top-3 + 2-day experiment ๊ฐ์ |
| HITL ํธ๋ฆฌ๊ฑฐ ๋ชจํธ | Section 14์ "์ฌ์ฉ์ ํ์ธ" ๊ฐ์ด ์ถ์ | ๊ตฌ์ฒด์ ์๊ณ๊ฐยท์ด๋ฒคํธ๋ก ์ฌ์ ์ (์: ์ถฉ์ค์ฑ < 0.7) |
docs/PRD.md ๋ถ์ฌ (--mode design-shotgun) | ls ์คํจ | fail loud + "/prd ๋จผ์ " ํ ์ข
๋ฃ |
ยง11 ๋ถ์ฌ (--mode design-shotgun) | ์น์
์ถ์ถ ์์ | fail loud + "PRD ยง11 ํ์" ํ ์ข
๋ฃ |
ยง1 ๋ถ์ฌ (--mode design-shotgun) | ์น์
์ถ์ถ ์์ | WARN + ICP ์ ํฉ๋ ํ๊ฐ ์๋ต, ๊ณ์ ์งํ |
Quality Gate
Unified PRD 15-section ๊ตฌ์กฐ
์๋จ = ์ฌ๋ยท๋ฌธ์ ยท๊ฒฐ์ (Section 16) โ ๋น์ฆ๋์ค๊ฐ ์ฝ์
์ค๋จ = ์์ด์ ํธยท์คํ ์ฌ์ (Section 711) โ ์์ง๋์ด๊ฐ ์ฝ์
ํ๋จ = ์งํยท๊ฐ์คยท์คํจ (Section 12~14) โ PM์ด ๋งค์ฃผ ๊ฐฑ์
๋ถ๋ก = QA Pool (Section 15) โ deliver/qa-checklist --mode adversarial ์ ์ฉ
Section 1 โ ์ฌ์ฉ์ / ICP / ํ๋ฅด์๋
ICP (Ideal Customer Profile):
[ํ ์ค ์ ์ โ beachhead 5-criteria ํต๊ณผ]
ํ๋ฅด์๋ (2~3๊ฐ):
### ํ๋ฅด์๋ A. [์ด๋ฆยท์ญํ ]
- ํ๋ฃจ ์ผ๊ณผ:
- ํต์ฌ ๊ณ ํต (top 3):
- ํ์ฌ ๋์:
- ๋๋ฌ ์ฑ๋ (verified):
์๋ ํธ์ถ: discover/customer-reach beachhead 5-criteria ๊ฒฐ๊ณผ inject (๋ถ์ฌ ์ ICP 1์ค + ํ๋ฅด์๋ 2~3๊ฐ ์ง์ ์์ฑ)
์ดํด๊ด๊ณ์ ์ํฅ๋ ๋งคํธ๋ฆญ์ค (์กฐ์ง ๋์
์ ์ ํ):
์์ด์ ํธ๊ฐ ์กฐ์ง ์ ์ฒด์ ์ํฅ์ ๋ฏธ์น๊ฑฐ๋ ์ฌ๋ฌ ํ ํฉ์๊ฐ ํ์ํ ๊ฒฝ์ฐ, ํ๋ฅด์๋ ์ดํ ์๋ ํญ๋ชฉ์ ์ถ๊ฐํ๋ค.
| ์ดํด๊ด๊ณ์ ๊ทธ๋ฃน | Power (1-5) | Interest (1-5) | ์ ๋ต | ํต์ฌ ๋ฉ์์ง |
|---|
| ๊ฒฝ์์ง (C-Level) | | | Engage Actively | ROI + ๋ฆฌ์คํฌ ๋๋น์ฑ
|
| ์ง์ ์ฌ์ฉ์ | | | Engage Actively | ๋ฐ๋ณต ์์
ํด๋ฐฉ |
| ์์ง๋์ด๋ง | | | Manage Closely | ๊น๋ํ ์ํคํ
์ฒ + ์์ ๊ถ |
| ๋ฒ๋ฌด/์ปดํ๋ผ์ด์ธ์ค | | | Keep Informed | HITL + ๊ฐ์ฌ ๋ก๊ทธ |
| ์ด์/CS | | | Keep Informed | ์์ ์ฑ + ์์ค์ปฌ๋ ์ด์
๊ฒฝ๋ก |
| ์ฌ๋ฌด | | | Keep Informed | ๋น์ฉ ์์ธก ๊ฐ๋ฅ์ฑ + ROI |
์ฃผ์ ์ ํญ ์ ํ: Job Threat("๋ด ์ผ ๋์ฒด") โ Co-pilot ํฌ์ง์
๋ / Trust Deficit("AI ๋ฏฟ์ ์ ์๋ค") โ Shadow Mode ๊ฒ์ฆ / Control Loss("ํต์ ๋ชป ํจ") โ HITL ์ค๊ณ
Section 2 โ JTBD (Jobs To Be Done)
ํต์ฌ Job (1~3๊ฐ):
### Job-1: [์ํฉ]์์ [๋ชฉํ]๋ฅผ ๋ฌ์ฑํ๊ณ ์ถ๋ค, ๊ทธ๋์ [์ฑ๊ณต ๊ธฐ์ค]
- Push (ํ ์ํ ๋ถ๋ง):
- Pull (์ ์๋ฃจ์
๋งค๋ ฅ):
- Anxiety (๋์
๋ถ์):
- Habit (๊ธฐ์กด ์ต๊ด ๊ด์ฑ):
์๋ ํธ์ถ: discover/customer-reach Switch Interview ์ฐ์ถ๋ฌผ (๋ถ์ฌ ์ Push/Pull/Anxiety/Habit 4 Forces๋ก 1~3๊ฐ Job ์ง์ ์์ฑ)
Section 3 โ ํต์ฌ ๋ฌธ์ + ํด๊ฒฐํ ๊ฐ์น
๋ฌธ์ (top 1~3 โ ์ ์คํ ์ดํด):
1. [ํ๋ฅด์๋]๋ [์ํฉ]์์ [๊ณ ํต] โ ๋งค์ผ N์๊ฐ ๋๋ โฉM ์์ค
ํด๊ฒฐ ๋ฐฉ์ (์ํฌํ๋ก์ฐ, ์๋ฃจ์
X):
[๋ณธ ์ ํ์ด ํ์ด์ฃผ๋ ํ๋ฆ โ ์ผํ๋ ๋ฐฉ์์ด ์ด๋ป๊ฒ ๋ฐ๋๋๊ฐ]
10๋ฐฐ ๊ฐ์น (์ ๋):
- ์๊ฐ: [Before] N์๊ฐ โ [After] N๋ถ (M๋ฐฐ)
- ๋: [Before] โฉM โ [After] โฉK (M๋ฐฐ)
- ๋๋: ์๋ก ๊ฐ๋ฅํด์ง๋ ๊ฒ
Section 4 โ ๊ฒฐ์ ์ต์
๋งคํธ๋ฆญ์ค
| ๊ฒฐ์ ํญ๋ชฉ | ์ต์
A | ์ต์
B | ์ต์
C | ์ ํ | ํธ๋ ์ด๋์คํ | ์ฌ๊ฒํ ์์ |
|---------|--------|--------|--------|------|-------------|------------|
| RAG ์ธํ๋ผ | Supabase pgvector | ChromaDB | Pinecone | A | Cloud ํ ์คํ vs ๋ก์ปฌ ์์ ๋ | 100๋ช
|
| ๊ฒฐ์ | Paddle MoR | Stripe | Lemon Squeezy | A | ์ฌ์
์ ๋ฑ๋ก vs ์ง์ ํตํฉ | 1,000๋ช
|
| Orchestration | Sequential | Parallel | Router | A | ๋๋ฒ๊น
vs ์๋ | Wave 2 |
| HITL ๋ ๋ฒจ | L2 (suggest) | L3 (approve) | L4 (autonomous) | L3 | ์์ ์ฑ vs ์๋ | 5๋ช
์ฌ๋ ํ |
์๋ ํธ์ถ: discover/assumptions --mode build-or-buy + architect/orchestration + discover/hitl
Section 5 โ ์ ์ธ์ฌํญ (Out-of-Scope)
์์์ ์ผ๋ก ์ ๋ง๋๋ ๊ฒ (์ต์ 5๊ฐ):
1. โ [๊ธฐ๋ฅ X] โ ์ด์ : [์ ์ ๋ง๋๋, ํ ์ค]
2. โ [๊ธฐ๋ฅ Y] โ ์ด์ :
3. โ ...
4. โ ...
5. โ ...
์ฌ๊ฒํ ์ ํธ:
- [์ธ์ ์ด ์ ์ธ ๊ฒฐ์ ์ ๋ค์ ๋ณผ ๊ฒ์ธ๊ฐ]
์๋ ํธ์ถ: hplan/exclusions ๋ ์ง์คํธ๋ฆฌ fuzzy match top-10
Section 6 โ MVP ๋ฒ์ / Full vision
### Now (Wave 1, Day 1~60) โ 5๋ช
์ฌ๋ ๋๋ฌ
- ํต์ฌ ๊ธฐ๋ฅ 3~5๊ฐ (์ด๊ฒ ์์ด 5๋ช
์ฌ๋ ๋ถ๊ฐ๋ฅ)
- cogs (p50): $___ / ์ฌ์ฉ์ / ์
- cogs (p90): $___ / ์ฌ์ฉ์ / ์
- Live URL ๋์ฐฉ: Day 60
### Next (Wave 2, Day 61~120) โ 5๋ช
โ 30๋ช
- ํ์ฅ ๊ธฐ๋ฅ 3~5๊ฐ
- cogs (p50): $___ / ์ฌ์ฉ์ / ์
### Later (Wave 3, Day 121+) โ 30๋ช
โ 100๋ช
+
- ํ์ฅ ๊ธฐ๋ฅ
- cogs (p50): $___ / ์ฌ์ฉ์ / ์
์๋ ํธ์ถ: discover/cost-sim (p50/p90 lognormal)
Section 7 โ Role + Primary Goal + Anti-Goals
๋ณธ ์ ํ์ด LLM ์์ด์ ํธ๋ฅผ ํฌํจํ๋ฉด ์์ฑ. ์ผ๋ฐ SaaS๋ฉด "N/A"
Role:
[์์ด์ ํธ์ ์ญํ ์ ์ โ 1~3๋ฌธ์ฅ]
Primary Goal:
[๋จ ํ๋์ ํต์ฌ ๋ชฉํ]
Secondary Goals:
1.
2.
Anti-Goals (ํ๋ฉด ์ ๋๋ ๊ฒ, ์ต์ 3๊ฐ):
1. [๋๋ฉ์ธ ๋ฃฐ โ ์: ๋ณํธ์ฌ ์ฑ
์ ์์ญ hallucination ๊ธ์ง]
2. [๋ฐ์ดํฐ ์ ์ฑ
โ ์: ์ฌ์ฉ์ ๋ฐ์ดํฐ ์ธ๋ถ ์ ์ก ๊ธ์ง]
3. [๋ฒ์ ์ฑ
์ โ ์: ์๋ฃ ์ง๋จ ๋์ฒด ๊ธ์ง]
์๋ ํธ์ถ: deliver/agent-setup 7์์ ์์ธ ์ค๊ณ (๋ถ์ฌ ์ Anti-Goals 3๊ฐ ์ง์ ์์ฑ)
Section 8 โ Tools & Integrations
| ๋๊ตฌ/API | ์ฉ๋ | ์ฌ์ฉ ์กฐ๊ฑด | ํธ์ถ ์ ํ |
|---------|------|---------|---------|
| OpenAI text-embedding-3-small | ๋ฒกํฐ ์๋ฒ ๋ฉ | ์ ๋ฌธ์ ingest ์ | 1ํ/๋ฌธ์ |
| Supabase pgvector | ์ ์ฌ๋ ๊ฒ์ | ์ฌ์ฉ์ ์ฟผ๋ฆฌ ์ | ๋ฌด์ ํ |
| Paddle API | ๊ฒฐ์ ยท์ธ๊ธ | ๊ตฌ๋
๊ฐ์
ยทํด์ง | ์ด๋ฒคํธ ๊ธฐ๋ฐ |
| Channel Talk API | CS ์๋ต | ์ฌ์ฉ์ ๋ฉ์์ง | 1ํ/๋ฉ์์ง |
์ต์ ๊ถํ ์์น: ํ์ํ ๋๊ตฌ๋ง ํฌํจ, ๊ฐ ๋๊ตฌ ์ฌ์ฉ ๋ฒ์ ๋ช
์
Section 9 โ Memory & Context Design
Working Memory (์ปจํ
์คํธ):
- ํญ์ ๋ก๋: [์์คํ
ํ๋กฌํํธ, ๋๋ฉ์ธ ๋ฃฐ, ์ฌ์ฉ์ ์ปจํ
์คํธ]
- ์กฐ๊ฑด๋ถ ๋ก๋: [๊ด๋ จ ๋ฌธ์ top-5 from RAG]
- ์ปจํ
์คํธ ์์ฐ: [์ต๋ N tokens]
Long-term Memory (DB / ํ์ผ):
- ์ฝ๊ธฐ: [์ฌ์ฉ์๋ณ ๋์ ๋ฐ์ดํฐ ์์น]
- ์ฐ๊ธฐ: [์ธ์ ๋ฌด์์ ์ ์ฅ]
- ์ ์ฅ ํธ๋ฆฌ๊ฑฐ: [์ธ์
์ข
๋ฃ / ์ฌ์ฉ์ ์ก์
]
Procedural Memory (Skills):
- [์ฐธ์กฐํ๋ ๋๋ฉ์ธ SKILL.md ๋ชฉ๋ก]
์ปจํ
์คํธ ์์ฐ ๊ฐ์ด๋ (ํ ํฐ ์ถ์ ๊ธฐ์ค):
| ๋ชจ๋ธ | ์ต๋ ์ปจํ
์คํธ | ์ค์ฉ์ ํ๋ |
|---|
| Haiku | 200k tokens | 40k (๋น์ฉ ํจ์จ) |
| Sonnet | 200k tokens | 80k (๊ท ํ) |
| Opus | 200k tokens | 100k (ํ์ง ์ฐ์ ) |
ํ ํฐ ์ถ์ : ๋งํฌ๋ค์ด 1KB โ 250350 tokens, ์ฝ๋ 1KB โ 200300 tokens, JSON 1KB โ 150~250 tokens
์๊ณ๊ฐ: 70% ๋ฏธ๋ง ์ ์ / 70~85% ๊ฒฝ๊ณ (์ ํ์ผ ๋ก๋ ์ต์ํ) / 85%+ ์ํ(์กฐ๊ฑด๋ถ ํญ๋ชฉ ์ ์ธ)
ํ์/์กฐ๊ฑด๋ถ/์ ์ธ ๋ถ๋ฅ: ํญ์ ๋ก๋(SOUL+USER+์ต๊ทผ ๋ฉ๋ชจ๋ฆฌ)ยท์กฐ๊ฑด๋ถ ๋ก๋(MEMORY, ๋๋ฉ์ธ SKILL)ยท์ ์ธ(์ค๋๋ ํ์ผยท์๋ฌธ ์ ์ฒด)๋ก ๊ตฌ๋ถํ๊ณ ์ด ์์ฐ์ 40% ์ด์์ ์ถ๋ ฅ+์ถ๋ก ์ฉ์ผ๋ก ํ๋ณดํ๋ค.
Section 10 โ Trigger & Execution Flow
ํธ๋ฆฌ๊ฑฐ ์ ํ:
โ Cron (์ฃผ๊ธฐ์ ) โ ์ค์ผ์ค:
โ Event-Driven โ ์ด๋ฒคํธ:
โ Manual โ ์กฐ๊ฑด:
โ Pipeline โ ์ ํ ์์ด์ ํธ:
์คํ ํ๋ฆ:
Step 1: [์
๋ ฅ ์์ง]
Step 2: [์ฒ๋ฆฌ]
Step 3: [์ถ๋ ฅ ์์ฑ]
Step 4: [์ ๋ฌ/์ ์ฅ]
์์ ์คํ ์๊ฐ: [์ด/๋ถ]
ํ์์์ ์ค์ : [์ด]
Section 11 โ Output Specification
์ถ๋ ฅ ์ฑ๋: [Web UI / Telegram / ์ด๋ฉ์ผ / API]
์ถ๋ ฅ ํ์: [Markdown / Plain text / JSON / ๊ตฌ์กฐํ ํ
์คํธ]
์ถ๋ ฅ ๊ธธ์ด: [์ต๋ N์ / N์ค]
์ธ์ด: [ํ๊ตญ์ด / ์์ด]
ํค: [๊ฐ๊ฒฐ / ์์ธ / ๋ธ๋ฆฌํ / ๋ํํ]
์ถ๋ ฅ ์์:
---
[์ค์ ์ถ๋ ฅ ์ํ ์์ฑ]
---
Section 12 โ ์ฑ๊ณต ์งํ ํตํฉ (Dual-axis)
North Star Metric:
[๋จ ํ๋ ๊ฐ์ฅ ์ค์ํ ์งํ โ ์ฌ์ฉ์ ๊ฐ์น์ ์ง๊ฒฐ]
Business KRs (3~5๊ฐ):
1. DAU / WAU / MAU
2. MRR / ARR
3. ๋ฆฌํ
์
D7 / D30
4. NPS
5. Sean Ellis 40% โ "๋ ์ด์ ๋ชป ์ฐ๋ฉด ๋งค์ฐ ์ค๋ง"
Operational KRs (3~5๊ฐ, mandatory cost KR ํฌํจ):
1. TTV (Time To Value) โค 5๋ถ
2. ๋๋ฉ์ธ ์ถฉ์ค์ฑ โฅ 0.85
3. ์์ด์ ํธ ์๋ต ์๊ฐ p95 โค 3์ด
4. ์ cogs / ์ฌ์ฉ์ โค $___
5. ์๋ฌ์จ โค 1%
Anti-Metric (์ด ์งํ๊ฐ ์ค๋ฅด๋ฉด ์ํ):
[์: ํ๊ท ์ธ์
์๊ฐ์ด 30๋ถ ๋์ผ๋ฉด ์ฌ์ฉ์๊ฐ ๊ธธ์ ์์ ๊ฒ]
์๋ ํธ์ถ: operate/metrics-design --step okr (dual-axis)
Section 13 โ ๊ฒ์ฆ ๊ฐ๋ฅ ๊ฐ์ค ๋ฐ์ค
Top-3 ๊ฐ์ค (Value/Feasibility/Reliability/Ethics 4์ถ):
### ๊ฐ์ค H-1 (Value)
- ๊ฐ์ค: [if X then Y because Z]
- ์ธก์ : [์ด๋ป๊ฒ ์ธก์ ]
- ์๊ณ๊ฐ: [ํต๊ณผ ๊ธฐ์ค]
- 2-day experiment: [์คํ ์ค๊ณ]
- ๊ฒฐ๊ณผ: [ํต๊ณผ / ์คํจ / ์งํ ์ค]
### ๊ฐ์ค H-2 (Feasibility)
...
### ๊ฐ์ค H-3 (Reliability)
...
์๋ ํธ์ถ: discover/assumptions (4์ถ ๋ถํด + 2-day experiment)
Section 14 โ ์คํจ ๋ชจ๋ + Human-in-the-loop
์คํจ ์๋๋ฆฌ์ค ๋งคํธ๋ฆญ์ค (์ต์ 4๊ฐ):
| ์๋๋ฆฌ์ค | ๊ฐ์ง | ๋์ | ์ฌ์ฉ์ ์ํฅ |
|---------|------|-----|------------|
| ๋๋ฉ์ธ RAG ์ถฉ์ค์ฑ < 0.7 | Eval suite | Fallback to GPT + ๊ฒฝ๊ณ | ๋ฎ์ |
| ๊ฒฐ์ API ์คํจ | HTTPError | 3ํ ์ฌ์๋ โ ๋์ ๊ฒฐ์ ์๋ด | ์ค๊ฐ |
| ํ๊ตญ์ด ํ๋ก๋ช
์๋ชป ์ธ์ | ์ฌ์ฉ์ ์ ๊ณ | admin ์๋ฆผ + roll back | ๋์ |
| ๋ฐ์ดํฐ ์ ์ถ ์์ฌ | ๋น์ ์ access | ์ฆ์ ์ฐจ๋จ + audit log | Critical |
Human-in-the-loop ํธ๋ฆฌ๊ฑฐ:
- ๋๋ฉ์ธ ์ถฉ์ค์ฑ < 0.7 โ ์ฌ์ฉ์ ํ์ธ ์์ฒญ
- ๊ฒฐ์ ๋ถ์ โ admin escalation
- ๋ฒ๋ฅ ยท์๋ฃ ๋ฑ high-stakes โ ํญ์ ์ฌ์ฉ์ ํ์ธ
Section 15 โ QA Pool (๋ฐฐํฌ ์ ๊ฒ์ ์์ด์ ํธ ๊ตฌ์ฑ)
์ด ์น์
์ PRD ์์ฑ ์ ์๋ ์์ฑ. qa-checklist --mode adversarial ์คํ ์ ํ์.
๊ฒฐ์ ๋ก ์์น: ์ญํ ์ ํ์ ์๋ ๋งคํ ํ
์ด๋ธ ๊ธฐ๋ฐ โ LLM ์์ ํ๋จ ๊ธ์ง.
โ ๏ธ interview_evidence_verified: false์ธ QA_POOL.json์ผ๋ก QA ๋ผ์ด๋๋ฅผ ์คํํ๋ฉด, ํ๋ฅด์๋ ๊ธฐ๋ฐ ๊ฒ์ฆ์ด ๋๋ฝ๋ ์ํ์
๋๋ค. interview-synthesis audit์ ๋จผ์ ์๋ฃํ์ธ์.
QA Pool ๊ตฌ์ฑ ๊ท์น:
### ํ๋ฅด์๋ ์์ด์ ํธ (harness/PERSONA_SPECS.json ์์ ์๋ ์ฐ๊ฒฐ)
- interview-synthesis ๊ฒฐ๊ณผ๊ฐ ์์ผ๋ฉด PERSONA_SPECS.json์ P01~P0N ์ ์ ํฌํจ
- PERSONA_SPECS.json ๋ถ์ฌ ์ โ `interview_evidence_verified: false` ๋ก ์ ์ฅ + "ํ๋ฅด์๋ ์์ (์ธํฐ๋ทฐ ์๋ฃ ํ ์ฌ์คํ ๊ถ์ฅ)" ๋ช
์
- PERSONA_SPECS.json ์กด์ฌ ์ โ `interview_evidence_verified: true` ๋ก ์ ์ฅ
### ๊ฐ๋ฐ ๋ฆฌ๋ทฐ์ด ์ญํ (๋๋ฉ์ธยท์คํ ๊ธฐ๋ฐ ๊ฒฐ์ ๋ก ๋งคํ)
๊ฒฐ์ ๋ก ๋งคํ ํ
์ด๋ธ:
| PRD ์กฐ๊ฑด | ํฌํจ ์ญํ |
|---|
| ยง1 ICP ๋๋ฉ์ธ = ๋ฒ๋ฅ | legal_domain (๋ฒ๋ น ์ ํ์ฑ ๊ฒ์ฆ) |
| ยง1 ICP ๋๋ฉ์ธ = ์๋ฃ | medical_domain |
| ยง1 ICP ๋๋ฉ์ธ = ๊ธ์ต | finance_domain |
| ยง8 ์คํ์ Next.js / React / Vue / Flutter / Swift / Kotlin ํฌํจ | frontend |
| ยง8 ์คํ์ FastAPI / Django / Node / Go / Rails / Spring ํฌํจ | backend |
| ยง8 ์คํ์ GraphQL ํฌํจ | backend |
| ยง8 ์คํ์ DB (PostgreSQL / MySQL / Supabase / MongoDB) ํฌํจ | backend |
| ยง8 ์คํ์ LLM API ํฌํจ | ai_engineer |
| ยง7 Anti-Goals์ ๋ณด์ยท๊ฐ์ธ์ ๋ณด ํฌํจ | security |
| ยง14 ์คํจ ์๋๋ฆฌ์ค 4๊ฐ ์ด์ | qa_engineer |
| ๊ธฐ๋ณธ (ํญ์ ํฌํจ) | qa_engineer |
| ยง8 ์คํ ํค์๋๊ฐ ์ ํจํด์ ๋ฏธํด๋น | WARN ์ถ๋ ฅ: "์คํ ๋ฏธ๋งคํ โ dev_roles์ ์๋ ์ญํ ์ถ๊ฐ ํ์" |
## ยง15 QA Pool
์์ฑ์ผ: YYYY-MM-DD | ์์ค: ยง1 ICP, ยง7 Anti-Goals, ยง8 ์คํ, ยง14 ์คํจ ์๋๋ฆฌ์ค
### ํ๋ฅด์๋ ์์ด์ ํธ
- ์์ค: harness/PERSONA_SPECS.json
- [P01: ์ด๋ฆยท์ญํ ] / [P02: ์ด๋ฆยท์ญํ ] / ...
### ๊ฐ๋ฐ ๋ฆฌ๋ทฐ์ด ์ญํ
- [์ญํ 1]: [ํฌํจ ๊ทผ๊ฑฐ โ ์ด๋ค PRD ์กฐ๊ฑด์ ํด๋นํ๋์ง]
- [์ญํ 2]: [ํฌํจ ๊ทผ๊ฑฐ]
- ...
### ์์ ๋ผ์ด๋ ์
- Critical ์ด์ ์์ ๋: 1~2 ๋ผ์ด๋
- Critical ์ด์ ๋ฐ์ ์: ralph loop ์๋ ์์ ํ ์ฌ๊ฒํ
์ ์ฅ: harness/QA_POOL.json (qa-checklist --mode adversarial์ด ์ฝ์)
{
"generated_at": "YYYY-MM-DD",
"persona_source": "harness/PERSONA_SPECS.json",
"interview_evidence_verified": false,
"dev_roles": ["frontend", "backend", "qa_engineer", "legal_domain"],
"role_rationale": {
"frontend": "ยง8 ์คํ Next.js ํฌํจ",
"legal_domain": "ยง1 ICP ๋ฒ๋ฅ ๋๋ฉ์ธ"
}
}
--mode design-shotgun โ ยง11 ์๊ฐํ ๋ณํ ์์ฑ
docs/PRD.md์ ยง1 ICP + ยง11 Output Specification์ ํ์ฑํด
harness/design-variants/ ์ HTML ๋ณํ 4๊ฐ์ ๋น๊ต ๋ฌธ์๋ฅผ ์์ฑํ๋ค.
Rule 5 ์ค์
| ํ๋จ | ๋๊ตฌ | LLM |
|---|
| PRD ํ์ผ ์กด์ฌ ์ฌ๋ถ | ls/Read | โ |
| ยง1ยทยง11 ์น์
์กด์ฌ ์ฌ๋ถ ํ์ธ | grep ๊ฒฐ์ ๋ก | โ |
| ยง1ยทยง11 ์น์
๋ด์ฉ ์ถ์ถ | ๋ผ์ธ ๋ฒํธ ๊ธฐ๋ฐ ํ์ฑ ํ LLM | โ
(๋น์ ํ ๋ด์ฉ ํด์) |
| 4๊ฐ HTML ๋ณํ ์์ฑ | โ | โ
(์์ฐ์ด ์์ฑ) |
| comparison.md ์ ํฉ๋ ํ๊ฐ | โ | โ
(ํ๋จ ์ค๋ช
) |
| ํ์ผ ์ ์ฅ | Write | โ |
Inputs
| ์
๋ ฅ | ์ถ์ฒ | ์ฒ๋ฆฌ |
|---|
| ICP ์ ์ + ํต์ฌ ๊ณ ํต | docs/PRD.md ยง1 | ๋ณํ ์ ํฉ๋ ํ๋จ ๊ธฐ์ค |
| ์ถ๋ ฅ ์ฑ๋ยทํ์ยทํค | docs/PRD.md ยง11 | 4๊ฐ ๋ณํ์ ๊ณตํต ๊ธฐ๋ฐ |
Instructions (--mode design-shotgun)
Step 1 โ PRD ๋ก๋ ๋ฐ ์น์
์ถ์ถ
ls docs/PRD.md 2>/dev/null || echo "PRD_MISSING"
PRD_MISSING ์:
โ ์๋ฌ: docs/PRD.md ์์.
/prd [์ ํ๋ช
] ๋จผ์ ์คํํ์ธ์.
์ฆ์ ์ข
๋ฃ.
ยง11 ์น์
์กด์ฌ ๊ฒฐ์ ๋ก ํ์ธ (LLM ํธ์ถ ์ ):
grep -in "^#\+.*\(section 11\|ยง11\|11 โ\|11\.\)" docs/PRD.md | head -3
ยง1๋ ๋์ผํ๊ฒ grep์ผ๋ก ํ์ธ:
grep -in "^#\+.*\(section 1\b\|ยง1\b\|1 โ\|1\.\)" docs/PRD.md | head -3
ยง1 ๋งค์นญ 0๊ฑด โ WARN (FAIL ์๋): "ยง1 ์์ด ICP ์ ํฉ๋ ํ๊ฐ ์๋ต"
docs/PRD.md Read โ ยง1 (ICP / ํ๋ฅด์๋) + ยง11 (Output Specification) ์ถ์ถ.
ยง11 ๋ถ์ฌ ์:
โ ์๋ฌ: PRD ยง11 Output Specification ์น์
์ด ํ์ํฉ๋๋ค.
์ฆ์ ์ข
๋ฃ.
Step 2 โ ์ถ๋ ฅ ๋๋ ํฐ๋ฆฌ ์ค๋น
mkdir -p harness/design-variants
Step 3 โ 4๊ฐ HTML ๋ณํ ์์ฑ
๊ฐ ๋ณํ์ ยง11์ ๋ค๋ฅด๊ฒ ํด์ํ ๊ฒ์ด๋ค. ๋ณํ ํจํด:
| ๋ณํ | ยง11 ํด์ ์ ๋ต | ICP ์ ํฉ ์ํฉ |
|---|
| Variant A | ๋จ๊ณ ๋ช
์ (์คํ
ํผ/ํญ) โ ์์์ ์งํ ์ํ ๊ฐ์กฐ | ์ฒ์ ์ฌ์ฉํ๋ ICP, ํ์ต ๋น์ฉ์ด ์๋ ํ๋ก์ฐ |
| Variant B | ์ปจํ
์คํธ ๋ณด์กด (๋ชจ๋ฌ/์ค๋ฒ๋ ์ด) โ ํ์ฌ ํ๋ฉด ์ ์ง | ๋น๊ตยท์ฐธ์กฐ๊ฐ ํ์ํ ICP, ์ค๋จ ํ ์ฌ๊ฐ ๋น๋ฒ |
| Variant C | ๋จ์ ์ง์ (๋ฏธ๋๋ฉ) โ ํต์ฌ ์
๋ ฅ/์ถ๋ ฅ๋ง | ๋ฐ๋ณต ์ฌ์ฉ ICP, ์๋ จ ์ฌ์ฉ์ |
| Variant D | ํ๋ก๊ทธ๋ ์๋ธ ๊ณต๊ฐ โ ๊ธฐ๋ณธ ์ต์
โ ๊ณ ๊ธ ์ต์
์์ฐจ ๋
ธ์ถ | ์
๋ฌธ์+์๋ จ์ ํผ์ฌ ICP |
๊ฐ harness/design-variants/variant-[A-D].html ํ์ผ์:
- ์์ HTML + ์ธ๋ผ์ธ CSS๋ง ์ฌ์ฉ (์ธ๋ถ CDN, JS ํ๋ ์์ํฌ ๊ธ์ง)
- ํ์ผ ์๋จ ์ฃผ์์ ยง11 ํด์ ๋ช
์:
- ์ค์ ์ ํ ์์ด์ดํ๋ ์ ์์ค์ HTML ๋งํฌ์
(๋๋ฏธ ํ
์คํธ OK, ๊ตฌ์กฐ๋ ยง11 ๋ฐ์)
- ์์: ํ์ ํ๋ ํธ (์ค๊ณ ๊ฒฐ์ ์ด ์๋๋ผ ๋ ์ด์์ ์ง์ค)
Step 4 โ comparison.md ์์ฑ
harness/design-variants/comparison.md:
# Design Variants โ [์ ํ๋ช
]
์์ฑ: YYYY-MM-DD | ์์ค: docs/PRD.md ยง1 + ยง11
## ยง11 Output Spec ์์ฝ
[์ถ์ถ๋ ยง11 ํต์ฌ ๋ด์ฉ 3-5์ค]
## ICP ์์ฝ (ยง1)
[์ถ์ถ๋ ICP ํต์ฌ 1-2์ค]
## ๋ณํ ๋น๊ต
| ๋ณํ | ยง11 ํด์ | ICP ์ ํฉ๋ | ์ฃผ์ TC ํ๋ณด | ์ ํ ์ ์ฃผ์์ |
|---|---|---|---|---|
| Variant A | ... | โ
โ
โ
โโ | ... | ... |
| Variant B | ... | โ
โ
โโโ | ... | ... |
| Variant C | ... | โ
โ
โ
โ
โ | ... | ... |
| Variant D | ... | โ
โ
โ
โโ | ... | ... |
## ๊ถ์ฅ ๋ณํ
[ICP ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ์ ํฉํ ๋ณํ + ์ด์ 2-3์ค]
## ๋ค์ ๋จ๊ณ
1. ๋ณํ ์ ํ ํ โ `deliver/qa-checklist` ๋ก ํด๋น ๋ณํ TC ์์ฑ
2. TC ์์ฑ ํ โ `deliver/ui-validate --check tc-gate [URL]` ๋ก ์ฆ๊ฑฐ ์์ง
Step 5 โ ์๋ฃ ์ถ๋ ฅ
โ
harness/design-variants/ ์์ฑ ์๋ฃ
Variant A: variant-A.html (์คํ
ํผ/ํญ ๋ฐฉ์)
Variant B: variant-B.html (์ปจํ
์คํธ ๋ณด์กด ๋ฐฉ์)
Variant C: variant-C.html (๋ฏธ๋๋ฉ ์ง์ ๋ฐฉ์)
Variant D: variant-D.html (ํ๋ก๊ทธ๋ ์๋ธ ๊ณต๊ฐ ๋ฐฉ์)
๋น๊ต: comparison.md
โ comparison.md๋ฅผ ๊ฒํ ํ๊ณ ๋ณํ์ ์ ํํ ํ /qa-checklist ๋ฅผ ์คํํ์ธ์.
Failure Handling (--mode design-shotgun)
| ์คํจ ์ํฉ | ๊ฐ์ง | ๋์ |
|---|
docs/PRD.md ๋ถ์ฌ | ls ์คํจ | fail loud + "/prd [์ ํ๋ช
] ๋จผ์ " ํ ์ข
๋ฃ |
| ยง11 ๋ถ์ฌ | ์น์
์ถ์ถ ๊ฒฐ๊ณผ ์์ | fail loud + "PRD ยง11 ํ์" ํ ์ข
๋ฃ |
| ยง1 ๋ถ์ฌ | ์น์
์ถ์ถ ๊ฒฐ๊ณผ ์์ | WARN (FAIL ์๋) + "ยง1 ์์ด ICP ์ ํฉ๋ ํ๊ฐ ์๋ต" ํ ๊ณ์ |
harness/ ๋ถ์ฌ | ls ์คํจ | mkdir -p harness/design-variants/ ํ ์งํ |
Quality Gate (--mode design-shotgun)
Examples (--mode design-shotgun)
Good Example
์
๋ ฅ: --mode design-shotgun (docs/PRD.md ์กด์ฌ, ยง1ยทยง11 ์์)
๊ธฐ๋ ๋์:
- PRD ยง1 ICP + ยง11 Output Spec ์ถ์ถ
- 4๊ฐ HTML ๋ณํ ์์ฑ (harness/design-variants/)
- comparison.md ์์ฑ (ICP ์ ํฉ๋ ํ๊ฐ ํฌํจ)
- ์๋ฃ ํต๊ณ ์ถ๋ ฅ
Bad Example
์
๋ ฅ: --mode design-shotgun (docs/PRD.md ์์)
๊ธฐ๋ ๋์:
โ ์๋ฌ: docs/PRD.md ์์.
/prd [์ ํ๋ช
] ๋จผ์ ์คํํ์ธ์.
์คํ ์ค๋จ.
--mode roadmap โ ยง6 ๋ก๋๋งต + RICE ์ฐ์ ์์ํ
prd๋ ยง6 Now/Next/Later์ canonical ์์ ์๋ค. roadmap์ ๋ณ๋ ์คํฌ์ด ์๋๋ผ ยง6์ ์๊ฐ์ ๋ก๋๋งต๊ณผ ์ฐ์ ์์ ๋ฐ์ดํฐ๋ก ๋ณํํ๋ sub-mode๋ค.
$ARGUMENTS๋ก sub-mode๋ฅผ ๋ฐ๋๋ค: generate(Mermaid gantt) / rice(RICE ์ ์ ๊ณ์ฐ) / prioritize(Now/Next/Later ์ฌ๋ถ๋ฅ). ๋ฏธ์ง์ ์ fail loud + sub-mode ๋ชฉ๋ก.
| sub-mode | ์
๋ ฅ | ์ถ๋ ฅ |
|---|
| generate | PRD ยง6 | docs/ROADMAP.md (Mermaid gantt) |
| rice | ๋ฐฑ๋ก๊ทธ ํญ๋ชฉ | docs/rice-scores.md |
| prioritize | RICE ๊ฒฐ๊ณผ | PRD ยง6 Now/Next/Later ๊ฐฑ์ ์ ์ |
Rule 5 ์ค์ ๊ฒฝ๊ณ
| ์์
| LLM | ๊ทผ๊ฑฐ |
|---|
| Mermaid gantt ์ฝ๋ ์์ฑ | โ
| ์์ฐ์ด โ ๊ตฌ์กฐํ ์ฝ๋ ๋ณํ |
| RICE ์์น ๊ณ์ฐ | โ ๊ฒฐ์ ๋ก | Reach ร Impact ร Confidence รท Effort ๊ณต์ |
| ์ฐ์ ์์ ์ฌ๋ถ๋ฅ ๊ธฐ์ค | โ ๊ฒฐ์ ๋ก | RICE ์ ์ ์๊ณ์น lookup |
RICE ๊ณต์ (๊ฒฐ์ ๋ก )
RICE = (Reach ร Impact ร Confidence) / Effort
Reach: ์๊ฐ ์ํฅ๋ฐ๋ ์ ์ ์ (PM ์
๋ ฅ)
Impact: 0.25(์ต์) / 0.5(๋ฎ์) / 1(์ค๊ฐ) / 2(๋์) / 3(๋๊ท๋ชจ)
Confidence: 50%(๋ฎ์) / 80%(์ค๊ฐ) / 100%(๋์)
Effort: ์ฌ๋-์ฃผ(person-week) ๋จ์
Instructions (--mode roadmap)
sub-mode: generate
harness/PRD.md ๋๋ docs/PRD.md ยง6 ์ฝ๊ธฐ โ Now/Next/Later ํญ๋ชฉ ํ์ฑ (๊ฒฐ์ ๋ก grep). ยง6 ๋ถ์ฌ โ fail loud.
- ๊ฐ ํญ๋ชฉ์ ์์ ๊ธฐ๊ฐ์ PRD ๋๋ backlog์์ ์ฝ๊ธฐ
- Mermaid gantt ๋ค์ด์ด๊ทธ๋จ ์์ฑ (LLM):
- Now = ํ์ฌ~4์ฃผ
- Next = 4~12์ฃผ
- Later = 12์ฃผ+
- docs/ROADMAP.md ์ ์ฅ (๊ธฐ์กด ํ์ผ ์์ผ๋ฉด diff ๊ธฐ๋ฐ ์
๋ฐ์ดํธ ์ ์)
sub-mode: rice
- ๋ฐฑ๋ก๊ทธ ํญ๋ชฉ ํ์ฑ (harness/backlog.md ๋๋ $ARGUMENTS)
- ๊ฐ ํญ๋ชฉ์ ๋ํด Reach/Impact/Confidence/Effort๋ฅผ PM์๊ฒ ๋ฌผ์ด๋ด (AskUserQuestion)
- RICE ์ ์ ๊ณต์์ผ๋ก ๊ณ์ฐ (๊ฒฐ์ ๋ก โ LLM ์กฐ์ 0)
- docs/rice-scores.md ์ ์ฅ
sub-mode: prioritize
- docs/rice-scores.md ๋ก๋ โ RICE ์ ์ ๊ธฐ์ค ์ ๋ ฌ (๊ฒฐ์ ๋ก )
- ์๊ณ์น ๊ธฐ์ค ๋ถ๋ฅ (๊ฒฐ์ ๋ก lookup):
- RICE > 50: Now ํ๋ณด
- RICE 20-50: Next ํ๋ณด
- RICE < 20: Later ํ๋ณด
- ํ์ฌ PRD ยง6 Now/Next/Later์ ๋น๊ต โ ๋ถ์ผ์น ํญ๋ชฉ ํ์
- PRD ยง6 ๊ฐฑ์ ์ ์ (ํ์ธ ๊ฒ์ดํธ ํ ๋ฐ์)
Quality Gate (--mode roadmap)
Instructions
You are helping write a complete Unified PRD for: $ARGUMENTS
Phase 1 โ Section 1-3 (์ฌ๋ยท๋ฌธ์ ยท๊ฐ์น)
- Section 1: ICPยทํ๋ฅด์๋ โ
discover/customer-reach (beachhead 5-criteria; ๋ถ์ฌ ์ ICP 1์ค + ํ๋ฅด์๋ 2~3๊ฐ ์ง์ ์์ฑ)
- Section 2: JTBDยทSwitch 4 Forces โ
discover/customer-reach (๋ถ์ฌ ์ Push/Pull/Anxiety/Habit 4 Forces๋ก 1~3๊ฐ Job ์ง์ ์์ฑ)
- Section 3: ํต์ฌ ๋ฌธ์ + 10๋ฐฐ ๊ฐ์น (์ ๋)
๐ Checkpoint 1: User ๊ฒ์ฆ โ "ICPยทJTBDยท๋ฌธ์ ๊ฐ 5๋ช
์ฌ๋ ์ธํฐ๋ทฐ์ ๊ทธ๋๋ก ์ธ ์ ์๋๊ฐ?"
Phase 2 โ Section 4-6 (๊ฒฐ์ ยท๋ฒ์)
- Section 4: ๊ฒฐ์ ์ต์
๋งคํธ๋ฆญ์ค โ
discover/assumptions --mode build-or-buy + architect/orchestration + discover/hitl (๋ถ์ฌ ์ ์ต์
2๊ฐ ร 5๊ฐ ๊ฒฐ์ ํญ๋ชฉ ์ง์ ์์ฑ)
- Section 5: ์ ์ธ์ฌํญ โ
hplan/exclusions ์๋ ์ธ์ฉ
- Section 6: Now/Next/Later โ
discover/cost-sim (cogs p50/p90)
๐ Checkpoint 2: User ๊ฒ์ฆ โ "MVP๊ฐ 60์ผ ์์ ๊ฐ๋ฅํ๊ฐ? cogs๊ฐ 1์ธ ๋น๋ ๊ฐ๋น ๊ฐ๋ฅํ๊ฐ?"
Phase 3 โ Section 7-11 (์์ด์ ํธยท์คํ ์ฌ์)
- Section 7: Role + Anti-Goals โ
deliver/agent-setup (๋ถ์ฌ ์ Anti-Goals 3๊ฐ ์ง์ ์์ฑ)
- Section 8: Tools & Integrations + ํธ์ถ ์ ํ mandatory
- Section 9: 3-tier Memory (Working / Long-term / Procedural)
- Section 10: Trigger & Execution Flow Step-by-Step
- Section 11: Output Specification + ์ค์ ์์ 1๊ฐ
- Section 11 ๋ณด๊ฐ (UI ์์ผ๋ฉด):
deliver/respect --mode brief ํธ์ถ โ RESPECT.md ๋์์ธ ์๊ทธ๋์ฒ commit (3์ด ๋ฃฐ / ๋ค์ ํ๋ / social proof)
์ผ๋ฐ SaaS (LLM ์์ด์ ํธ ์์) ์ด๋ฉด Section 7-11์ "N/A โ ์ผ๋ฐ SaaS" ๊ฐ๋จ ํ๊ธฐ ๊ฐ๋ฅ
์ฌ์ฉ์ ์ธํฐํ์ด์ค๊ฐ ์๋ ๋ฐฑ์๋ ์์ด์ ํธ๋ฉด ๋์์ธ ์๊ทธ๋์ฒ๋ "N/A โ ๋ฐฑ์๋๋ง" ๋ช
์
Phase 4 โ Section 12-14 (์งํยท๊ฐ์คยท์คํจ)
- Section 12: Dual-axis OKR โ
operate/metrics-design --step okr (cost KR mandatory)
- Section 13: Top-3 ๊ฐ์ค โ
discover/assumptions + 2-day experiment
- Section 14: ์คํจ ๋ชจ๋ (4๊ฐ ์ด์) + HITL ํธ๋ฆฌ๊ฑฐ
Phase 5 โ PRD ํตํฉ & TK ์ธ์ฉ & QA Pool ์ ์ฅ
operate/pm-engine ์ฟผ๋ฆฌ๋ก ๊ด๋ จ TK-NNN 3~5๊ฐ ์ธ์ฉ (๊ฐ ์น์
ํ๋จ์ ์๋)
- ยง15 QA Pool ๊ฒฐ์ ๋ก ๋งคํ ์คํ โ
harness/QA_POOL.json ์ ์ฅ
harness/PERSONA_SPECS.json ์กด์ฌ ์ ํ๋ฅด์๋ ์์ค ์ฐ๊ฒฐ, ์์ผ๋ฉด "ํ๋ฅด์๋ ์์" ๋ช
์
- Quality Gate 19๊ฐ ํญ๋ชฉ (15 ์น์
+ ๋์์ธ ์๊ทธ๋์ฒ + ยง15 QA Pool + ์ผ๊ด์ฑ + TK ์ธ์ฉ) ๋ชจ๋ ํต๊ณผ ํ์ธ (
references/test-cases.md์ ๋์ผ ์ฐ์)
docs/PRD.md์ ์ ์ฅ
Further Reading
- Marty Cagan, INSPIRED โ Discovery before delivery
- Bob Moesta, Demand-Side Sales โ Switch Interview / JTBD
- Sean Ellis, Hacking Growth โ 40% PMF Rule
- Marc Andreessen, Pmarchive 2007 โ "The Only Thing That Matters" PMF
Contextual Knowledge (auto-loaded)
Good Example
!cat examples/good-01.md 2>/dev/null || echo ""
Bad Example
!cat examples/bad-01.md 2>/dev/null || echo ""
Domain Context
!cat context/domain.md 2>/dev/null || echo ""
Test Cases
!cat references/test-cases.md 2>/dev/null || echo ""
Troubleshooting
!cat references/troubleshooting.md 2>/dev/null || echo ""