LogoSkills

bmad:plan-technical-review

Technical review of PRD/Tech Spec before build โ€” feasibility, risk, scope analysis with 3 parallel reviewers

ํ•ญ๋ชฉ๋‚ด์šฉ
Invoke/bmad:plan-technical-review
Categoryworkflow
Complexitymedium

/bmad:plan-technical-review#

PRD/Tech Spec ๋ฌธ์„œ์˜ ๊ธฐ์ˆ ์  ์‹คํ˜„ ๊ฐ€๋Šฅ์„ฑ, ๋ฆฌ์Šคํฌ, ๋ฒ”์œ„๋ฅผ 3๊ฐœ ๋ณ‘๋ ฌ ๋ฆฌ๋ทฐ์–ด๋กœ ๊ฒ€์ฆํ•œ๋‹ค. Planning โ†’ Design ์ „ํ™˜ ์ „์— ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์ž๋™ ํ˜ธ์ถœ๋œ๋‹ค.


Triggers#

  • Planning ์Šคํ…Œ์ด์ง€ ์™„๋ฃŒ ํ›„ Design ์ง„ํ–‰ ์ „ ๊ธฐ์ˆ  ๊ฒ€์ฆ์ด ํ•„์š”ํ•  ๋•Œ
  • PRD/Tech Spec์˜ ๊ธฐ์ˆ ์  ๋ฆฌ์Šคํฌ๋ฅผ ์‚ฌ์ „์— ํ‰๊ฐ€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ
  • Plan์ด ๋‹จ์ผ PR๋กœ ์ ์ ˆํ•œ์ง€ ๋ฒ”์œ„๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ์‹ถ์„ ๋•Œ

Usage#

# ์ตœ๊ทผ plan ๋ฌธ์„œ ์ž๋™ ํƒ์ƒ‰
/bmad:plan-technical-review

# ํŠน์ • ๋ฌธ์„œ ์ง€์ •
/bmad:plan-technical-review docs/prd-community.md

# Tech Spec ๋ฆฌ๋ทฐ
/bmad:plan-technical-review docs/tech-spec-community.md

Parameters#

ParameterRequiredDescriptionExample
plan_path โš ๏ธ Plan ๋ฌธ์„œ ๊ฒฝ๋กœ (์—†์œผ๋ฉด ์ตœ๊ทผ 7์ผ ๋‚ด ๋ฌธ์„œ ์ž๋™ ํƒ์ƒ‰) docs/prd-community.md

Options#

OptionDefaultDescription
--skip-scopefalseScope ๋ถ„์„ ๊ฑด๋„ˆ๋›ฐ๊ธฐ (์†Œ๊ทœ๋ชจ ๋ณ€๊ฒฝ ์‹œ)
--verbosefalse์ƒ์„ธ ๋ถ„์„ ๊ฒฐ๊ณผ ์ถœ๋ ฅ

Execution Flow#

Phase 1: Plan Document Loading#

  1. ๋ฌธ์„œ ํƒ์ƒ‰: docs/prd-*.md ๋˜๋Š” docs/tech-spec-*.md ์ค‘ ์ตœ๊ทผ 7์ผ ๋‚ด ํŒŒ์ผ ๊ฒ€์ƒ‰
    • 1๊ฐœ ๋งค์น˜: ์ž๋™ ์‚ฌ์šฉ
    • ๋ณต์ˆ˜ ๋งค์น˜: ์‚ฌ์šฉ์ž ์„ ํƒ ์š”์ฒญ
    • 0๊ฐœ ๋งค์น˜: /project:plan ๋จผ์ € ์‹คํ–‰ ์•ˆ๋‚ด
  2. ๋ฌธ์„œ ํŒŒ์‹ฑ: ์ œ๋ชฉ, ์š”๊ตฌ์‚ฌํ•ญ, ๊ธฐ์ˆ  ๊ณ ๋ ค์‚ฌํ•ญ, AC, ์˜์กด์„ฑ ์ถ”์ถœ

Phase 2: Parallel Review (3 Reviewers)#

3๊ฐœ ๋ฆฌ๋ทฐ์–ด๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋˜์–ด ๊ฐ๊ฐ์˜ ๊ด€์ ์—์„œ plan์„ ๋ถ„์„ํ•œ๋‹ค.

Reviewer 1: Feasibility (๊ธฐ์ˆ ์  ์‹คํ˜„ ๊ฐ€๋Šฅ์„ฑ)

๊ฒ€์ฆ ํ•ญ๋ชฉ:
- [ ] ๊ธฐ์ˆ  ์Šคํƒ ํ˜ธํ™˜์„ฑ: ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ํŒจํ‚ค์ง€/ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ๊ฐ€?
- [ ] API ์˜์กด์„ฑ: ์™ธ๋ถ€ API๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ๊ฐ€? ๋น„์šฉ์€?
- [ ] ๋ฐ์ดํ„ฐ ๋ชจ๋ธ: ๊ธฐ์กด DB ์Šคํ‚ค๋งˆ์™€ ์ถฉ๋Œ ์—†์ด ํ™•์žฅ ๊ฐ€๋Šฅํ•œ๊ฐ€?
- [ ] ์„ฑ๋Šฅ ์˜ํ–ฅ: ์˜ˆ์ƒ ์‚ฌ์šฉ๋Ÿ‰์—์„œ ์„ฑ๋Šฅ ์ €ํ•˜ ์—†๋Š”๊ฐ€?
- [ ] ๊ธฐ์กด ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ: ์œ ์‚ฌ ๊ธฐ๋Šฅ์ด ์ด๋ฏธ ์กด์žฌํ•˜๋Š”๊ฐ€? (Grep ๊ธฐ๋ฐ˜ ํƒ์ƒ‰)

Output: FEASIBLE / FEASIBLE_WITH_RISKS / NOT_FEASIBLE

Reviewer 2: Risk (๋ฆฌ์Šคํฌ ๋ถ„์„)

๊ฒ€์ฆ ํ•ญ๋ชฉ:
- [ ] ๋ณด์•ˆ ๋ฆฌ์Šคํฌ: ์ธ์ฆ/์ธ๊ฐ€, ๋ฐ์ดํ„ฐ ๋…ธ์ถœ, ์ž…๋ ฅ ๊ฒ€์ฆ ์ด์Šˆ
- [ ] ์˜์กด์„ฑ ๋ฆฌ์Šคํฌ: ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „ ์ถฉ๋Œ, deprecated API ์‚ฌ์šฉ
- [ ] ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฆฌ์Šคํฌ: ๊ธฐ์กด ๋ฐ์ดํ„ฐ/์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ํ•„์š”์„ฑ
- [ ] ํ†ตํ•ฉ ๋ฆฌ์Šคํฌ: ๋‹ค๋ฅธ ๋ชจ๋“ˆ/์„œ๋น„์Šค์™€์˜ ํ†ตํ•ฉ ํฌ์ธํŠธ
- [ ] ๋กค๋ฐฑ ๋ฆฌ์Šคํฌ: ๋ฐฐํฌ ํ›„ ๋ฌธ์ œ ์‹œ ๋กค๋ฐฑ ๊ฐ€๋Šฅํ•œ๊ฐ€?

Output per risk: HIGH / MEDIUM / LOW + ๋Œ€์‘ ๋ฐฉ์•ˆ

Reviewer 3: Scope (๋ฒ”์œ„ ๋ถ„์„)

๊ฒ€์ฆ ํ•ญ๋ชฉ:
- [ ] ์˜ˆ์ƒ ๋ณ€๊ฒฝ ํŒŒ์ผ ์ˆ˜: ๋‹จ์ผ PR ์ ํ•ฉ ๋ฒ”์œ„์ธ๊ฐ€? (guideline: โ‰ค30 files)
- [ ] ๋ ˆ์ด์–ด ์ˆ˜: ๋ช‡ ๊ฐœ ๋ ˆ์ด์–ด๋ฅผ ๊ฑด๋“œ๋ฆฌ๋Š”๊ฐ€? (Data, Domain, Presentation, Backend)
- [ ] ๊ธฐ๋Šฅ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ์„ฑ: ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋…๋ฆฝ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ๋‹จ์œ„๊ฐ€ ์žˆ๋Š”๊ฐ€?
- [ ] ์˜์กด์„ฑ ์ˆœ์„œ: ์„ ํ–‰ ์ž‘์—…์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด ์žˆ๋Š”๊ฐ€?

Split ํŒ๋‹จ ๊ธฐ์ค€:

์กฐ๊ฑด๊ฒฐ๊ณผ
โ‰ค30 files, โ‰ค2 layersNO_SPLIT โ€” ๋‹จ์ผ PR ์ ํ•ฉ
30-60 files ๋˜๋Š” 3 layersCONSIDER_SPLIT โ€” ๋ถ„ํ•  ๊ฒ€ํ† 
>60 files ๋˜๋Š” 4+ layers ๋˜๋Š” ๋…๋ฆฝ ๊ธฐ๋Šฅ ์กด์žฌRECOMMEND_SPLIT โ€” ๋ถ„ํ•  ๊ถŒ์žฅ

Split ๊ถŒ์žฅ ์‹œ ์ถœ๋ ฅ:

## Recommended Split

### Part 1: {title} (foundation)
- Files: {estimated count}
- Scope: {description}
- Dependencies: none

### Part 2: {title} (depends on Part 1)
- Files: {estimated count}
- Scope: {description}
- Dependencies: Part 1

Plan ํŒŒ์ผ๋ช…: docs/prd-{slug}-part-1.md, docs/prd-{slug}-part-2.md

Phase 3: Consolidation#

3๊ฐœ ๋ฆฌ๋ทฐ ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ์ตœ์ข… ํŒ์ •:

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘  Plan Technical Review: {PASS | NEEDS_ATTENTION | BLOCKED}    โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘                                                                โ•‘
โ•‘  Feasibility:  {FEASIBLE | WITH_RISKS | NOT_FEASIBLE}         โ•‘
โ•‘  Risk Level:   {LOW | MEDIUM | HIGH}                          โ•‘
โ•‘  Scope:        {NO_SPLIT | CONSIDER_SPLIT | RECOMMEND_SPLIT}  โ•‘
โ•‘                                                                โ•‘
โ•‘  Key Findings:                                                 โ•‘
โ•‘    {finding 1}                                                 โ•‘
โ•‘    {finding 2}                                                 โ•‘
โ•‘                                                                โ•‘
โ•‘  Recommendations:                                              โ•‘
โ•‘    {recommendation 1}                                          โ•‘
โ•‘    {recommendation 2}                                          โ•‘
โ•‘                                                                โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

์ตœ์ข… ํŒ์ • ๊ธฐ์ค€:

์กฐ๊ฑดํŒ์ •
Feasible + Low Risk + No SplitPASS
With Risks ๋˜๋Š” Medium Risk ๋˜๋Š” Consider Split NEEDS_ATTENTION โ€” ์‚ฌ์šฉ์ž ํ™•์ธ ํ›„ ์ง„ํ–‰
Not Feasible ๋˜๋Š” High RiskBLOCKED โ€” ์ˆ˜์ • ํ›„ ์žฌ๊ฒ€ํ†  ํ•„์š”

Phase 4: Handoff#

๋ฆฌ๋ทฐ ์™„๋ฃŒ ํ›„ ์˜ต์…˜ ์ œ์‹œ:

1. Clear context and build โ†’ /clear ํ›„ /project:design
2. Start design โ†’ /project:design ๋ฐ”๋กœ ์‹คํ–‰
3. Refine plan โ†’ ์ง€์ ์‚ฌํ•ญ ๋ฐ˜์˜ ํ›„ plan ์ˆ˜์ •
4. Split plan โ†’ ๋ถ„ํ• ๋œ plan ํŒŒ์ผ ์ƒ์„ฑ
5. Done โ†’ ๋ฆฌ๋ทฐ ๊ฒฐ๊ณผ๋งŒ ํ™•์ธ, ์ถ”๊ฐ€ ์ž‘์—… ์—†์Œ

Key Rules#

  1. Non-blocking by default: NEEDS_ATTENTION์€ ์‚ฌ์šฉ์ž ํ™•์ธ ํ›„ ์ง„ํ–‰ ๊ฐ€๋Šฅ (BLOCKED๋งŒ ์ฐจ๋‹จ)
  2. Evidence-based: Grep/Glob์œผ๋กœ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์‹ค์ œ ํ™•์ธํ•˜์—ฌ ํŒ๋‹จ
  3. No false positives: ๋ถˆํ™•์‹คํ•œ ๋ฆฌ์Šคํฌ๋Š” MEDIUM์œผ๋กœ ๋ถ„๋ฅ˜, HIGH๋Š” ๋ช…ํ™•ํ•œ ๊ทผ๊ฑฐ ํ•„์š”
  4. Scope > ๋ถ„ํ•  ๊ฐ•์ œ ๊ธˆ์ง€: ๋ฌด๋ฆฌํ•œ ๋ถ„ํ• ๋ณด๋‹ค ํฐ ๋‹จ์ผ PR์ด ๋‚˜์„ ์ˆ˜ ์žˆ์Œ. ์˜์‹ฌ์Šค๋Ÿฌ์šฐ๋ฉด NO_SPLIT
  5. ๋…๋ฆฝ ์‹คํ–‰ ๊ฐ€๋Šฅ: ํŒŒ์ดํ”„๋ผ์ธ ์—†์ด๋„ ๋…๋ฆฝ์ ์œผ๋กœ /bmad:plan-technical-review ํ˜ธ์ถœ ๊ฐ€๋Šฅ

  • /project:plan โ€” Plan ๋ฌธ์„œ ์ƒ์„ฑ
  • /project:design โ€” ๋‹ค์Œ ์Šคํ…Œ์ด์ง€ (Design)
  • /bmad:review --persona architect โ€” ์•„ํ‚คํ…์ฒ˜ ๋‹จ๋… ๋ฆฌ๋ทฐ
  • /spec:evaluate โ€” ์ŠคํŽ™ ํ‰๊ฐ€ (Specification ๋‹จ๊ณ„)