| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| Invoke | /bmad:plan-technical-review |
| Category | workflow |
| Complexity | medium |
/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#
| Parameter | Required | Description | Example |
|---|---|---|---|
plan_path |
โ ๏ธ | Plan ๋ฌธ์ ๊ฒฝ๋ก (์์ผ๋ฉด ์ต๊ทผ 7์ผ ๋ด ๋ฌธ์ ์๋ ํ์) | docs/prd-community.md |
Options#
| Option | Default | Description |
|---|---|---|
--skip-scope | false | Scope ๋ถ์ ๊ฑด๋๋ฐ๊ธฐ (์๊ท๋ชจ ๋ณ๊ฒฝ ์) |
--verbose | false | ์์ธ ๋ถ์ ๊ฒฐ๊ณผ ์ถ๋ ฅ |
Execution Flow#
Phase 1: Plan Document Loading#
-
๋ฌธ์ ํ์:
docs/prd-*.md๋๋docs/tech-spec-*.md์ค ์ต๊ทผ 7์ผ ๋ด ํ์ผ ๊ฒ์- 1๊ฐ ๋งค์น: ์๋ ์ฌ์ฉ
- ๋ณต์ ๋งค์น: ์ฌ์ฉ์ ์ ํ ์์ฒญ
- 0๊ฐ ๋งค์น:
/project:plan๋จผ์ ์คํ ์๋ด
- ๋ฌธ์ ํ์ฑ: ์ ๋ชฉ, ์๊ตฌ์ฌํญ, ๊ธฐ์ ๊ณ ๋ ค์ฌํญ, 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 layers | NO_SPLIT โ ๋จ์ผ PR ์ ํฉ |
| 30-60 files ๋๋ 3 layers | CONSIDER_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 Split | PASS |
| With Risks ๋๋ Medium Risk ๋๋ Consider Split | NEEDS_ATTENTION โ ์ฌ์ฉ์ ํ์ธ ํ ์งํ |
| Not Feasible ๋๋ High Risk | BLOCKED โ ์์ ํ ์ฌ๊ฒํ ํ์ |
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#
- Non-blocking by default: NEEDS_ATTENTION์ ์ฌ์ฉ์ ํ์ธ ํ ์งํ ๊ฐ๋ฅ (BLOCKED๋ง ์ฐจ๋จ)
- Evidence-based: Grep/Glob์ผ๋ก ๊ธฐ์กด ์ฝ๋๋ฅผ ์ค์ ํ์ธํ์ฌ ํ๋จ
- No false positives: ๋ถํ์คํ ๋ฆฌ์คํฌ๋ MEDIUM์ผ๋ก ๋ถ๋ฅ, HIGH๋ ๋ช ํํ ๊ทผ๊ฑฐ ํ์
- Scope > ๋ถํ ๊ฐ์ ๊ธ์ง: ๋ฌด๋ฆฌํ ๋ถํ ๋ณด๋ค ํฐ ๋จ์ผ PR์ด ๋์ ์ ์์. ์์ฌ์ค๋ฌ์ฐ๋ฉด NO_SPLIT
- ๋
๋ฆฝ ์คํ ๊ฐ๋ฅ: ํ์ดํ๋ผ์ธ ์์ด๋ ๋
๋ฆฝ์ ์ผ๋ก
/bmad:plan-technical-reviewํธ์ถ ๊ฐ๋ฅ
Related Commands#
/project:planโ Plan ๋ฌธ์ ์์ฑ/project:designโ ๋ค์ ์คํ ์ด์ง (Design)/bmad:review --persona architectโ ์ํคํ ์ฒ ๋จ๋ ๋ฆฌ๋ทฐ/spec:evaluateโ ์คํ ํ๊ฐ (Specification ๋จ๊ณ)