LogoSkills

product:develop

Stage 6: Development โ€” Iterate through Stories in an Epic, executing the 13-step development cycle

ํ•ญ๋ชฉ๋‚ด์šฉ
Invoke/product:develop
Categorypipeline
Complexityhigh
MCP Serverszenhub

/product:develop โ€” ์‹ค์ œ๋กœ "๋งŒ๋“œ๋Š”" ๋‹จ๊ณ„#

ํŒŒ์ดํ”„๋ผ์ธ 6๋‹จ๊ณ„(Development). Epic ์•ˆ์— ๋‚˜๋ˆ  ๋‘” ์ž‘์—…(Story)์„ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด, ์ฝ”๋“œ ์ž‘์„ฑ๋ถ€ํ„ฐ ๋ฆฌ๋ทฐยท๋ณ‘ํ•ฉ๊นŒ์ง€ ์ •ํ•ด์ง„ ์ ˆ์ฐจ๋กœ ์‹ค์ œ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

ํ•œ๋งˆ๋””๋กœ#

์„ค๊ณ„๋„์™€ ์ž‘์—… ๋ชฉ๋ก์ด ๋‹ค ์ค€๋น„๋œ ๋’ค, ํ˜„์žฅ ์ธ๋ถ€๋“ค์ด ์‹ค์ œ๋กœ ๋ฒฝ๋Œ์„ ์Œ“์•„ ์ง‘์„ ์ง“๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์ž‘์—… ๋ชฉ๋ก(Story)์„ ํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ์™€, ์ฝ”๋“œ๋ฅผ ์งœ๊ณ  ๊ฒ€์‚ฌํ•˜๊ณ  ํ•ฉ์น˜๋Š” 13๋‹จ๊ณ„ ์ ˆ์ฐจ๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ยท์–ธ์ œ ์“ฐ๋‚˜์š”#

  • Epic(์ž‘์—… ๋ฌถ์Œ)๊ณผ ๊ทธ ์•ˆ์˜ Story(๊ฐœ๋ณ„ ์ž‘์—…)๊ฐ€ ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ, ์ด์ œ ์‹ค์ œ ๊ตฌํ˜„๋งŒ ๋‚จ์•˜์„ ๋•Œ
  • ํŠน์ • Epic ์ „์ฒด๋‚˜ ๊ฐœ๋ณ„ ์ด์Šˆ ํ•˜๋‚˜๋ฅผ ์ง์ ‘ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹ถ์„ ๋•Œ

๐Ÿ‘‰ ๊ฑด๋„ˆ๋›ฐ๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค: ์ด ๋‹จ๊ณ„๊ฐ€ ๊ณง ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ํ•ต์‹ฌ ์ž‘์—…์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ์•ž ๋‹จ๊ณ„(Epic Creation)๊ฐ€ ๋๋‚˜ ZenHub์— Epic๊ณผ Story๊ฐ€ ๋“ฑ๋ก๋ผ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌด์—‡์„ ํ•ด์ฃผ๋‚˜์š”#

  • ์‹ค์ œ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ โ€” Story๋งˆ๋‹ค ๋ธŒ๋žœ์น˜๋ฅผ ๋”ฐ์„œ ์ž‘์—…ํ•˜๊ณ , PR(์ฝ”๋“œ ๋ฆฌ๋ทฐ ์š”์ฒญ)์„ ๊ฑฐ์ณ ๋ณ‘ํ•ฉ(merge)๊นŒ์ง€ ๋งˆ์นฉ๋‹ˆ๋‹ค.
  • ์™„๋ฃŒ๋œ Story ๋ชฉ๋ก โ€” .pipeline/{slug}.yaml ํŒŒ์ผ์— ์–ด๋–ค Story๊ฐ€ ๋๋‚ฌ๋Š”์ง€ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์“ฐ๋‚˜์š”#

# Epic ์ „์ฒด๋ฅผ ํ•œ ๋ฒˆ์— ๊ฐœ๋ฐœ
/product:develop --epic 42

# ์ด์Šˆ ํ•˜๋‚˜๋งŒ ๊ฐœ๋ฐœ
/product:develop --issue 1810

# ํŒŒ์ดํ”„๋ผ์ธ ๋งฅ๋ฝ์—์„œ ์ž๋™ ์ง„ํ–‰ (Epic ๋ฒˆํ˜ธ ์ž๋™ ์ธ์‹)
/product:develop

# ์„œ๋กœ ๋…๋ฆฝ์ ์ธ Story๋“ค์„ ๋™์‹œ์— ๊ฐœ๋ฐœ (Agent Teams ํ•„์š”)
/product:develop --epic 42 --parallel

--epic(Epic ๋ฒˆํ˜ธ) ๋˜๋Š” --issue(์ด์Šˆ ๋ฒˆํ˜ธ) ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ˜๋“œ์‹œ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธ‰ํ•  ๋•Œ๋Š” --skip-review(๋ฆฌ๋ทฐ ๊ฑด๋„ˆ๋›ฐ๊ธฐ)๋‚˜ --skip-tests(ํ…Œ์ŠคํŠธ ๊ฑด๋„ˆ๋›ฐ๊ธฐ)๋ฅผ ๋ถ™์ผ ์ˆ˜ ์žˆ๊ณ , --parallel์€ ๋…๋ฆฝ์ ์ธ ์ž‘์—…์„ ์—ฌ๋Ÿฌ ํŒ€์ด ๋‚˜๋ˆ  ๋™์‹œ์— ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค(Agent Teams ํ™˜๊ฒฝ ํ•„์š”).

์•ˆ์—์„œ ๋ฌด์Šจ ์ผ์ด ๋ฒŒ์–ด์ง€๋‚˜์š”#

Epic ์•ˆ์˜ Story๋“ค์„ ํ•˜๋‚˜์”ฉ, ๋˜๋Š” ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ ์ •ํ•ด์ง„ ๊ฐœ๋ฐœ ์ ˆ์ฐจ๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

  1. ํ•  ์ผ ๋ชฉ๋ก ์ •๋ฆฌ โ€” ZenHub์—์„œ Epic ์•ˆ์˜ Story ๋ชฉ๋ก์„ ๊ฐ€์ ธ์™€ ์˜์กด ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•˜๊ณ , ์ด๋ฏธ ๋๋‚œ ๊ฒƒ์€ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.
  2. ํ•œ ๊ฑด์”ฉ ๊ตฌํ˜„ โ€” ๊ฐ Story๋งˆ๋‹ค โ‘  ์ƒ์„ธ ๋ถ„์„ยท๊ตฌํ˜„ ๊ณ„ํš โ†’ โ‘ก ์ฝ”๋“œ ์ž‘์„ฑ๋ถ€ํ„ฐ ๊ฒ€์‚ฌยท๋ณ‘ํ•ฉ๊นŒ์ง€์˜ 13๋‹จ๊ณ„ ๊ฐœ๋ฐœ ์‚ฌ์ดํด ์‹คํ–‰ โ†’ โ‘ข ๊ตฌํ˜„ ํ’ˆ์งˆยท์„ค๊ณ„ ์ค€์ˆ˜ ๊ฒ€ํ† ๋ฅผ ์ฐจ๋ก€๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋™์‹œ ์ง„ํ–‰(์„ ํƒ) โ€” --parallel์„ ์“ฐ๋ฉด ์„œ๋กœ ๊ฒน์น˜์ง€ ์•Š๋Š” ํŒŒ์ผ์„ ๋‹ค๋ฃจ๋Š” Story๋“ค์„ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด, ์‚ฌ์šฉ์ž ์Šน์ธ์„ ๋ฐ›์€ ๋’ค ์—ฌ๋Ÿฌ ํŒ€์ด ๋™์‹œ์— ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ์„œ๋กœ ์˜์กดํ•˜๋Š” ์ž‘์—…์€ ์ค„์„ ์„ธ์›Œ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  4. ํ’ˆ์งˆ ํ†ต๊ณผ ํ™•์ธ โ€” Story๋งˆ๋‹ค ๋ฆฐํŠธยทํ…Œ์ŠคํŠธยท์ฝ”๋“œ ๋ฆฌ๋ทฐยท๋ธŒ๋žœ์น˜ ๊ทœ์น™(Implementation Gate)์„ ํ†ต๊ณผํ–ˆ๋Š”์ง€ ์ ๊ฒ€ํ•˜๊ณ , ์ง„ํ–‰ ์ƒํ™ฉ์„ ํŒŒ์ผ์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

๋๋‚˜๋ฉด ๋ชจ๋“  Story๊ฐ€ ๋ณ‘ํ•ฉ๋˜๊ณ  ํ’ˆ์งˆ ๊ฒ€์‚ฌ๋ฅผ ํ†ต๊ณผํ•œ ๋’ค, ๋‹ค์Œ ๋‹จ๊ณ„์ธ ์ถœ์‹œ(/product:launch) ๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค. ์ž‘์—…์ด ๊ธธ์–ด ๋Œ€ํ™”๊ฐ€ ๋Š˜์–ด๋‚ฌ๋‹ค๋ฉด ๋Œ€ํ™”๋ฅผ ๋น„์šฐ๊ณ (/clear) ์ƒˆ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค โ€” ๊ฒฐ๊ณผ๋Š” ํŒŒ์ผ์— ๋‚จ์•„ ์žˆ์–ด ์‚ฌ๋ผ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.


โš™๏ธ ์ƒ์„ธ ์˜ต์…˜ยท์‹คํ–‰ ๋ช…์„ธ (๊ฐœ๋ฐœ์ž / AI ์—์ด์ „ํŠธ์šฉ)

Triggers#

  • When starting development after Epic Creation completion
  • When implementation of a specific Epic or Issue is needed

Usage#

# Full Epic development
/product:develop --epic 42

# Single issue development
/product:develop --issue 1810

# Auto from pipeline context
/product:develop

# Parallel development of independent Stories (Agent Teams)
/product:develop --epic 42 --parallel

Parameters#

ParameterRequiredDescriptionExample
--epicโœ…*Epic number42
--issueโœ…*Single issue number1810

*Either epic or issue is required. In pipeline context, epic number is automatically referenced.

Options#

OptionDefaultDescription
--parallelfalseParallel execution of independent Stories (requires Agent Teams)
--skip-reviewfalseSkip code review (urgent)
--skip-testsfalseSkip tests (urgent)

Prerequisites#

  • Epic Creation stage completed (Planning Gate passed)
  • ZenHub Epic and Stories exist
  • For --parallel: CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 environment variable required

Execution Flow#

Epic Mode (--epic)#

0. Agent Teams Prerequisite Check (for --parallel)

if --parallel:
  Check helpers.md#Check-Agent-Teams-Available
  if teams_available = false:
    โš  Agent Teams not available. Falling back to sequential mode.
    โ†’ Auto-switch to sequential processing

1. Story List Retrieval

  • Fetch Story list within Epic from ZenHub
  • Sort by dependency order
  • Check status (skip already completed Stories)

2-A. Sequential Execution (default)

For each Story:

a. Story implementation preparation (cc-product: /product:dev-story)

  • Story detailed analysis
  • Implementation plan creation
  • Required files/components identification

b. 13-step development cycle (cc-dev-cycle: /dev:run {issue_number})

  • Steps 1-12 sequential execution

c. Implementation review (cc-product: Flutter/Backend Dev persona)

  • Implementation quality verification
  • Architecture compliance check

2-B. Parallel Execution (--parallel, when Agent Teams active)

Phase 1: Dependency Analysis + File Ownership Boundary Analysis

1. Build Story dependency graph
   - Check each Story ' s dependencies field
   - Identify blocking relationships

2. File ownership boundary analysis
   - Map Story โ†’ source directory from architecture docs
   - Detect overlapping file areas
   - If overlap found โ†’ move those Stories to sequential queue

3. Identify independent Story groups (max 3 teams)
   โ”Œโ”€ Group A: [STORY-001, STORY-003] โ€” independent file areas
   โ”œโ”€ Group B: [STORY-002]            โ€” independent file areas
   โ””โ”€ Sequential Queue: [STORY-004]   โ€” depends on STORY-001

Phase 2: User Approval (plan confirmation)

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘  Parallel Development Plan                                     โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘                                                                โ•‘
โ•‘  Parallel Teams (Agent Teams):                                 โ•‘
โ•‘    Team 1: STORY-001, STORY-003                                โ•‘
โ•‘      โ””โ”€ Files: lib/src/feature/author/                         โ•‘
โ•‘    Team 2: STORY-002                                           โ•‘
โ•‘      โ””โ”€ Files: lib/src/feature/book/                           โ•‘
โ•‘                                                                โ•‘
โ•‘  Sequential Queue (dependencies):                              โ•‘
โ•‘    STORY-004 (depends on STORY-001)                            โ•‘
โ•‘                                                                โ•‘
โ•‘  Estimated teammates: 2                                        โ•‘
โ•‘                                                                โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

Proceed with this plan? (y/n)

Phase 3: Delegate to /product:team-dev

Independent Story groups โ†’ delegate to /product:team-dev
  - helpers.md#Spawn-BMAD-Teammate (developer role)
  - helpers.md#Create-Team-Task-List
  - Pass file ownership boundaries to each teammate
  - Separate branches per teammate

After completion, Lead performs integration verification:
  - helpers.md#Collect-Team-Results
  - helpers.md#Team-Quality-Gate

Phase 4: Sequential Queue Processing

Stories with dependencies execute sequentially after parallel work completes:
  for story in sequential_queue:
    /dev:run {story.issue_number}

3. Progress Tracking

  • Update .pipeline/{slug}.yaml on each Story completion
  • Record failed Stories

Single Issue Mode (--issue)#

  • Directly execute cc-dev-cycle 13 steps
  • Update pipeline state

Implementation Gate#

BMAD Implementation Gate verification (per Story):

  • Lint passed (dart analyze, dcm analyze)
  • Tests passed
  • Code review passed
  • Branch naming convention followed

Artifacts#

  • Implementation code (per Story: branch โ†’ PR โ†’ merge)
  • Completed Story list in .pipeline/{slug}.yaml

After Completion#

  • Verify all Stories completed
  • Verify Implementation Gate passed
  • Update .pipeline/{slug}.yaml state
  • Present context-clear handoff:
โœ… Development stage complete (all Implementation Gates PASSED).
  {completed_count}/{total_count} Stories merged.

**Option 1 (Recommended)**: Clear context and continue to Launch
  /clear
  Then run: /product:launch

**Option 2**: Continue in current context
  Proceed directly to /product:launch