| name | product-planner |
| description | Use after /office-hours when the problem is defined but the plan and scope are not yet ready. Judges readiness through discovery, product, and engineering lenses. Returns a readiness verdict (ready / revise / park) + concrete gaps to close before implementation starts. |
Product Planner
๋ฌธ์ ์ ์๋ ๋๋ฌ๋๋ฐ (office-hours ์ดํ) ์์ง PRD / Plan ์ด ๋ถ์ํ ๋จ๊ณ๋ฅผ
์ ๊ทธ๋ skill.
์ธ์ ์ฐ๋๊ฐ
/office-hours ์ดํ "์ด ๋ฌธ์ ๋ ํ ๊ฐ์น๊ฐ ์๋ค" ๊ฐ ๊ฒฐ์ ๋จ
PRD.md ์ด์์ด ์์ง๋ง acceptance criteria ๊ฐ ๋ชจํธ
Plan.md ์ฐ๊ธฐ ์ , ๋๋ ์ด ๋ค "์ด ์ ๋๋ฉด scope_lock ํด๋ ๋ ๊น?" ํ๋จ ํ์
- ๋ฒ์๊ฐ ์ฝ๊ฒ ์ปค์ง ์ ์๋ ๊ธฐ๋ฅ (์: ์ธ์ฆ, ๊ฒฐ์ , ๋ฐ์ดํฐ ๋ชจ๋ธ)
์ธ์ ์ฐ์ง ์๋๊ฐ
- ๋ฌธ์ ์ ์ ์์ฒด๊ฐ ํ๋ค๋ฆผ โ ๋จผ์
/office-hours ๋ก ๋์๊ฐ๊ธฐ
- trivial tier (๋จ์ผ ํ์ผ, 2-3 ์ค ์์ )
- ์ด๋ฏธ
runtime.json โ gates.plan_reviewed == true
๋ฐฉ์ (์๋ก ๋ฒ์ )
gstack/Manta ์ ๋ค๋ฉด ๋ ์ฆ๋ฅผ ์๋ก ํ๊ฒฝ์ ๋ง๊ฒ 3๊ฐ๋ก ๋จ์ํ:
1. Discovery lens โ "์ฌ์ฉ์ ๋ฌธ์ ๊ฐ ์ ๋ง ์ด๊ฑฐ ๋ง๋?"
- PRD ๊ฐ ์ฃผ์ฅํ๋ ์ฌ์ฉ์ ์๋๋ฆฌ์ค๊ฐ ์ค์ ๋ก 1๋ช
์ด์์๊ฒ ๊ด์ฐฐ ๋๋๊ฐ?
- ์ฌ์ฉ์๊ฐ ์ง๊ธ ์ด๋ป๊ฒ ์ฐํ ํ๊ณ ์๋? (์๋ / ๋ค๋ฅธ ๋๊ตฌ / ํฌ๊ธฐ)
- ๋น์ ์ด "์ฌ์ฉ์" ๋ผ๋ฉด, ์ด ๊ธฐ๋ฅ ๋์ ๋ค๋ฅธ ๊ฒ ์ ๋ง๋ค์ด๋ฌ๋ผ๊ณ ํ์ ๊ฐ๋ฅ์ฑ์?
2. Product lens โ "์ด๊ฒ 10x ์ธ๊ฐ, 1.1x ์ธ๊ฐ?"
- Acceptance criteria ๊ฐ ์ธก์ ๊ฐ๋ฅ ํ ์ซ์/์ํ๋ก ์ ํ ์๋?
- "OK" / "๋์ถฉ ์ข์" ๊ฐ์ ์ ๋งค ๊ธฐ์ค์ด ์์ผ๋ฉด reject
- ์ด ๊ธฐ๋ฅ์ด ์ฌ์ฉ์ ์ํฌํ๋ก์์ ๋ช ๋จ๊ณ๋ฅผ ์ค์ด๊ฑฐ๋ ์๋ก ๊ฐ๋ฅํ๊ฒ ํ๋?
- 1.1x ์์ค์ด๋ฉด โ park verdict (์ง๊ธ ์ ํด๋ ๋จ)
3. Engineering lens โ "์ง๊ธ ์ํ๋ก ๊ตฌํ ์์ํ๋ฉด ๋ญ๊ฐ ํฐ์ง๋?"
- In-scope / Out-of-scope ํ์ผ์ด Plan.md ์ ๋ช
์ ๋๋?
- Milestone ์ด ๋
๋ฆฝ ๊ฒ์ฆ ๊ฐ๋ฅ ํ ๋จ์๋ก ์ชผ๊ฐ์ก๋?
- Rollback ๊ณํ์ด ์๋ (ํ milestone ์คํจ ์ ๋๋๋ฆด ๋ฐฉ๋ฒ)?
- Tier ๋ถ๋ฅ (
size_check.py ๊ธฐ์ค) ์ Plan ์ self-assessment ๊ฐ ์ผ์นํ๋?
- high-risk ๊ฒฝ๋ก (auth/security/payment/migration) ํฌํจ๋๋ฉด ๋ช
์?
์ถ๋ ฅ ํ์
# Product Planner Verdict โ <date>
## Readiness: ready | revise | park
## Discovery lens
- ์ฌ์ฉ์ ๊ด์ฐฐ ์ฆ๊ฑฐ: <๊ตฌ์ฒด>
- ํ์ฌ ์ฐํ๋ฒ: <๊ตฌ์ฒด>
- Gaps: <์์ผ๋ฉด list, ์์ผ๋ฉด "none">
## Product lens
- 10x claim: <์ 10x ์ธ์ง ๋๋ "1.1x, park ๊ถ์ฅ">
- Acceptance criteria ๊ตฌ์ฒด์ฑ: high / medium / low
- Gaps: <list>
## Engineering lens
- In/Out scope ๋ช
์: yes / no
- Milestone ์ชผ๊ฐ๊ธฐ: good / weak
- Rollback ๊ณํ: yes / no / n/a
- Tier ์ ํ์ฑ: <match / mismatch>
- Gaps: <list>
## Close-before-scope-lock list
๊ตฌํ ์์ ์ ์ ๋ฐ๋์ ํด๊ฒฐํ ๊ฒ:
1. ...
2. ...
## Next gate
- If ready โ `runtime_gate.py lock-scope` + `runtime_gate.py review-plan`
- If revise โ ์ close list ๋ฅผ PRD.md / Plan.md ์ ๋ฐ์ ํ ์ฌํ๊ฐ
- If park โ Documentation.md ์ "parked: <reason>" ๊ธฐ๋ก ํ ๋ค๋ฅธ ์์
์ผ๋ก
๊ฐ๋๋ ์ผ
- "์ถฉ๋ถํด ๋ณด์ธ๋ค" ๊ธ์ง โ lens 3๊ฐ ๋ชจ๋ ๊ตฌ์ฒด ๊ทผ๊ฑฐ ๋๋ gap ๋ช
์
- park verdict ๋ ํฌ๊ธฐ๊ฐ ์๋๋ผ "์ง๊ธ ์๋" โ Documentation.md ์ ์ด์ ๊ธฐ๋ก
- ์๋ก ํ๊ฒฝ์์๋ ์ด skill ์ด
/office-hours ์ /plan-eng-review ์ฌ์ด์ ์์ฐ์ค๋ฌ์ด ์ฐ๊ฒฐ๊ณ ๋ฆฌ
๋จผ์ ์ฝ์ ๊ฒ
Prompt.md, PRD.md, (์์ผ๋ฉด) Plan.md ์ด์
ETHOS.md โ ๋ฌด๋์ง์ง ์๋ ์ฒ ํ
CLAUDE.md โ ์ด์ ํ๋ฒ
templates/PRD.md, templates/Plan.md โ ์์ ๊ธฐ์ค