LogoSkills

/cc-product:breakdown — 설계를 "할 일 목록"으로 쪼개는 단계

5단계: Issue Breakdown — ZenHub Initiative/Project/Epic/Feature-Bug-Task/Sub-task 생성(규모 자동 추론), 우선순위 검토, 파이프라인 정렬, sprint planning

/cc-product:breakdown — 설계를 "할 일 목록"으로 쪼개는 단계#

항목내용
실행 명령/cc-product:breakdown
분류파이프라인
난이도●●○ 보통
MCP 서버zenhub

파이프라인 5단계(Issue Breakdown). 설계 결과물을 ZenHub의 Project·Epic·Feature/Bug/Task 같은 실제 작업 단위로 쪼개고, 우선순위에 따라 진행 순서까지 정리합니다. 어디까지 계층을 만들지는 설계 규모를 보고 자동으로 정합니다.

한마디로#

큰 설계도를 보고 "실제로 누가, 무엇을, 어떤 순서로 만들지"를 카드 한 장씩 끊어 정리하는 단계입니다. 이사 계획서를 보고 "큰 짐 옮기기 → 가구 배치 → 정리"처럼 할 일을 쪼개고 급한 순서대로 줄 세우는 것과 같아요.

누가·언제 쓰나요#

  • 설계(Design) 단계가 끝나서, 이제 개발할 작업(이슈)을 만들어야 하는 경우
  • 아키텍처·UX 설계 문서를 실제로 손댈 수 있는 작은 작업 단위로 나누고 싶을 때
  • 여러 기능이 묶인 프로젝트라서, Epic들을 감싸는 상위 Project 단위가 필요할 때

👉 준비가 안 되면 진행할 수 없어요: 설계(Design) 단계가 끝나고(Solutioning Gate 통과), 아키텍처 문서·UX 명세가 있어야 시작됩니다.

무엇을 해주나요#

ZenHub에 작업 이슈들이 만들어지고, 그 결과가 파일에도 기록됩니다. 설계 규모를 보고 어디까지 계층을 만들지 자동으로 판단합니다 — 작은 범위면 Epic 없이 Feature/Bug/Task만, 여러 기능을 아우르면 Project까지.

  • ZenHub Project — 여러 Epic을 감싸는 상위 묶음 (자동 추론되거나 --project-level로 만들 때, 이슈 번호 기록)
  • ZenHub Epic — 기능 단위의 큰 작업 덩어리 (이슈 번호 기록, 범위가 작으면 생략될 수 있음)
  • 연결된 작업 항목들 — Epic 아래(또는 Epic 생략 시 최상위) 실제로 개발할 작은 작업 카드 목록, 성격에 따라 Feature/Bug/Task로 분류 (이슈 번호 목록)
  • 우선순위 표.claude/docs/{feature}/zenhub/priority.md 에 정리
  • 상태 파일 기록.pipeline/{slug}.yaml 에 Project/Epic 번호 기록
  • 기획 문서 PR — 여기까지 파이프라인이 만든 문서(조사·명세·기획·설계 문서 + 우선순위 표 + 상태 파일)를 PR 로 올려 기본 브랜치에 머지합니다. 이 단계 전까지 그 문서들은 작업하던 컴퓨터 한 대에만 있었고, 다음 개발 단계는 문서가 없는 기준점에서 갈라져 나갔습니다

어떻게 쓰나요#

# 기본 — 설계 결과 규모에 맞춰 계층 자동 생성
/cc-product:breakdown

# 이번 스프린트에 배정
/cc-product:breakdown --sprint current

# 특정 기능·엔티티 지정
/cc-product:breakdown --feature community --entity Post

# 상위 Project 이슈를 먼저 만들고 Epic들을 하위로 연결 (자동 추론을 명시적으로 오버라이드)
/cc-product:breakdown --project-level

# 기존 Project 이슈에 Epic 연결
/cc-product:breakdown --parent-project 1024

# Epic 없이 Feature/Bug/Task만 생성하도록 강제 (작은 범위 오버라이드)
/cc-product:breakdown --no-epic

우선순위 검토와 파이프라인 정렬을 건너뛰고 싶으면 --no-sort를 덧붙이세요.

안에서 무슨 일이 벌어지나요#

설계 문서를 읽어 규모를 판단하고, 작업을 쪼개 우선순위대로 줄 세운 뒤 검수까지 마칩니다.

  1. 계층 스케일 추론 — 설계 문서 규모(여러 Epic 필요/시스템 전체 개편/단일 기능 등)를 보고 Initiative~Epic 중 어디를 최상위로 만들지, 혹은 Epic 없이 Feature/Bug/Task만 만들지 자동으로 정합니다. --initiative-level/--project-level/--no-epic 같은 명시적 플래그가 있으면 항상 그것이 우선합니다.
  2. 우선순위 먼저 매기기 — 만들 Epic·작업 항목마다 의존성·사업 가치·위험·작업량을 따져 p0/p1/p2 등급을 정합니다. (등급 라벨은 생성 후 바꿀 수 없어 가장 먼저 합니다.) 추론된 계층과 우선순위 표를 사용자에게 함께 보여주고 확인받습니다.
  3. Project·Epic 만들기 — 필요하면 여러 기능을 감싸는 Project 이슈를 만들고, 아키텍처 문서를 바탕으로 Epic을 만들어 설계 결과물을 연결합니다. (범위가 작으면 이 단계는 생략됩니다.)
  4. 작업 항목 쓰기 — UX 명세에서 화면 단위 Feature를, 아키텍처에서 기술 Task를, 결함 보고에서 Bug를 뽑아내고, 성격에 맞는 실제 타입(Feature/Bug/Task)으로 생성합니다. Feature는 BDD 시나리오를 합격 기준으로 붙이고, Bug/Task는 재현 절차·완료 정의 템플릿을 씁니다. 스프린트도 배정합니다.
  5. PM 검수 — 작업량(Story Point) 추정, 라벨링, 의존성·합격 기준 완성도를 점검합니다.
  6. 파이프라인 정렬 — 우선순위대로 작업 항목을 배치합니다. (P0는 Sprint Backlog, P1은 Product Backlog, P2는 Icebox 식으로.)
  7. Planning Gate 통과 확인 — 계층 구조·포인트·라벨·의존성·파이프라인 배치가 모두 맞는지 최종 확인합니다.
  8. 기획 문서 PR 올리고 머지 — 지금까지 만들어진 문서를 모아 PR 을 만들고 기본 브랜치에 합칩니다. 게이트를 통과한 시점이라 문서가 더 흔들리지 않고, 바로 다음 개발 단계가 브랜치를 딸 때 그 문서가 이미 기준점에 들어 있게 됩니다. 이미 올려 둔 PR 이 있으면 새로 만들지 않습니다.

끝나면 다음은?#

작업 이슈들이 ZenHub에 만들어지고 결과가 파일로 기록된 뒤, 다음 단계인 개발(/cc-product:develop) 로 넘어갑니다. 작업이 길어 대화가 늘어났다면 대화를 비우고(/clear) 새로 시작하는 것을 권장합니다 — 결과는 파일에 남아 있어 사라지지 않습니다.


⚙️ 상세 옵션·실행 명세 (개발자 / AI 에이전트용)

Triggers#

  • When creating development issues after Design stage completion
  • When splitting architecture/UX specs into actionable work units
  • When the pipeline covers multiple features → create a Project-level issue wrapping the Epics (auto-inferred, or forced via --project-level)
  • When the scope is small enough that no Epic wrapper is warranted (auto-inferred, or forced via --no-epic)

Usage#

/cc-product:breakdown
/cc-product:breakdown --sprint current
/cc-product:breakdown --feature community --entity Post
/cc-product:breakdown --project-level                       # Project 이슈 생성 후 Epic들을 하위로 연결 (자동 추론 오버라이드)
/cc-product:breakdown --parent-project 1024                  # 기존 Project 이슈에 Epic 연결
/cc-product:breakdown --no-epic                               # Epic 생략, Feature/Bug/Task만 생성 (자동 추론 오버라이드)

Options#

OptionDefaultDescription
--sprintNoneSprint assignment (current, next, number)
--featureslugFeature name (snake_case)
--entityAuto-inferredEntity name (PascalCase)
--initiative-levelAuto-inferredCreate an Initiative-level issue (one level above Project) and link the Project (or Epic, if no --project-level) as a child. Explicit flag always overrides the Hierarchy Scale Inference (Phase 0)
--parent-initiativeNoneExisting Initiative issue number to link under
--project-levelAuto-inferredCreate a Project-level issue (title from .pipeline/{slug}.yaml) and link Epics as children. Explicit flag always overrides the Hierarchy Scale Inference (Phase 0)
--parent-projectNoneExisting Project issue number to link Epics under
--no-epicAuto-inferredSkip the Epic level entirely — create Feature/Bug/Task (+ Sub-task) directly. Explicit flag always overrides the Hierarchy Scale Inference (Phase 0)
--no-sortoffSkip priority review/pipeline sorting

Initiative/Project issue type availability is checked dynamically via getIssueTypes() — if the workspace has no Initiative/Project type, falls back to the next level down (Project, then Epic) top-level, with a warning. When none of --initiative-level/--project-level/--no-epic is given, Phase 0's Hierarchy Scale Inference decides the top-level anchor from the design artifacts' scope — this replaces the old "Epic is always created" default.

Prerequisites#

  • Design stage completed (Solutioning Gate passed)
  • Architecture Doc, UX Spec artifacts exist

Execution Flow#

Phase 0: Hierarchy Scale Inference + Priority Review (before creation)#

Source: cc-dev (delegates to /cc-dev:zenhub:breakdown's Step 1.5/1.6 — see zenhub-integration-agent.md)

-1. Hierarchy scale inference

  • Explicit --initiative-level/--project-level/--no-epic always wins
  • Otherwise infer from the design artifacts' scope (multi-Epic signals → Project; multi-quarter/company-wide signals → Initiative; single small scope → no Epic wrapper)
  • With --project-level (or inferred project): derive Project title/scope from .pipeline/{slug}.yaml
  1. Priority scoring
    • Score every Epic/work item to be created: dependency (blocker) / business value / risk / effort
    • Assign tiers p0/p1/p2labels are immutable after creation, so this must precede Phase 1
    • Present the inferred hierarchy and the priority table to the user together for one confirmation
    • Write the table to .claude/docs/{feature}/zenhub/priority.md — this is the file config/pipeline.jsonstages.breakdown.artifacts declares, so it is produced here, not in Phase 3.5. --no-sort skips the pipeline placement (Phase 3.5), never this table

Phase 1: Initiative/Project/Epic Creation#

Source: cc-dev

  1. ZenHub Initiative creation (inferred, or --initiative-level; /cc-dev:zenhub:breakdown --initiative)
    • One Initiative issue wrapping the Project (or Epics directly, if no Project level)
  2. ZenHub Project creation (inferred, or --project-level; /cc-dev:zenhub:breakdown --project)
    • One Project issue wrapping all feature Epics
    • Goals, Epic list, and priority table in the Project description
    • Linked to the Initiative via parentIssueId when --initiative-level/--parent-initiative is used
  3. ZenHub Epic creation (/cc-dev:zenhub:breakdown; skipped when scale=no-epic)
    • Structure Epic based on Architecture Doc
    • Feature/Entity mapping
    • Link design artifacts in Epic description
    • Linked to the Project via parentIssueId when applicable

Phase 2: Work Item Writing#

Source: cc-product

  1. Individual work item writing (/cc-product:create-story)

    • Screen-based Feature items from UX Spec
    • Technical Task items from Architecture
    • Defect-driven Bug items where applicable
    • Type resolved per item (Feature/Bug/Task) — never hardcoded, see references/helpers.md → "Sync Story to ZenHub"
    • Connect BDD scenarios as Acceptance Criteria (Feature items); Bug/Task items use the repro/DoD template instead
    • Set dependency relationships
    • Apply Phase 0 priority labels at creation
  2. Sprint planning (/cc-product:sprint-planning)

    • Work item priority determination
    • Sprint assignment
    • Capacity planning

Phase 3: PM Review#

Source: cc-product (PM persona)

  1. Work item quality verification
    • Story point estimation
    • Labeling (type, scope, priority)
    • Dependency verification
    • Acceptance Criteria completeness check

Phase 3.5: Pipeline Sorting (skipped with --no-sort)#

Source: cc-dev (rules/zenhub-conventions.md → Priority Review and Pipeline Sorting)

  1. Priority-based pipeline placement
    • Project/Epic → Product Backlog
    • Work item P0 → Sprint Backlog (+ sprint assignment when --sprint)
    • Work item P0/P1 (no sprint) → Product Backlog, P2 → Icebox
    • Move in descending priority order (P0 → P1 → P2) — moveIssueToPipeline has no position param, so ordering is approximated by move sequence and recorded as a priority table in the Epic/Project body

Phase 4: Planning Gate#

BMAD Planning Gate verification:

  • Issue hierarchy is appropriate for the request scale (issue_hierarchy_structure)
  • Story points (story_point)
  • Labeling incl. priority tiers and resolved type (labeling)
  • Dependencies (dependencies)
  • Pipeline placement matches priority matrix (pipeline_sorting)

Phase 5: Planning Docs PR (after the gate, before Development)#

Source: cc-product (references/helpers.mdPublish Pipeline Docs PR — that block is the single definition of the protocol; nothing here restates its steps)

  1. Publish the pipeline's documents
    • Call the helper with stage_set = discovery, specification, planning, design, scaffold, breakdown and scope = planning. It collects each stage's declared artifacts plus .pipeline/{slug}.yaml, branches from the default branch, opens the PR and squash-merges it
    • scaffold is in the set but contributes nothing: its artifacts are source paths, and the helper keeps only docs/ · .claude/docs/ · .pipeline/ — scaffolded code reaches the repository through the Story PRs that implement it, not through a docs PR
    • Runs only after the Planning Gate passes (unmet(planning) == 0). Under L-gate-revise a failed gate re-runs this stage and overwrites the same artifact paths — publishing before the verdict would put a document on the default branch that the next attempt contradicts
    • Runs before Development for a mechanical reason: /cc-product:develop branches each Story off the default branch. If the documents are not there yet, every Story branch is cut from a base that lacks the very architecture/UX spec its DoD cites, and the documents reach the repository only by being dragged into an unrelated code PR — or not at all
    • Idempotent: an already-merged planning docs PR for this slug is detected and not re-created, so a re-run of /cc-product:breakdown does not open a second one
    • Degradation (no gh CLI, no remote, empty document set) is recorded and reported, never silent, and never blocks the Planning Gate result — the gate has already passed at this point

Documents produced after this point: the development stage's documents ride along with the code PR /cc-dev:run already opens (no separate publication), and /cc-product:launch publishes its own with the same helper. No pipeline document is left uncommitted at the end of the pipeline.

Artifacts#

  • ZenHub Initiative (issue number recorded, when inferred/--initiative-level)
  • ZenHub Project (issue number recorded, when inferred/--project-level)
  • ZenHub Epic (issue number recorded, unless scale=no-epic)
  • Linked work items — Feature/Bug/Task (issue number list)
  • Priority table (.claude/docs/{feature}/zenhub/priority.md)
  • Project/Epic numbers recorded in .pipeline/{slug}.yaml
  • Planning docs PR (docs/{slug}-planning → default branch, squash-merged) carrying the discovery~breakdown documents; its number recorded at stages.{stage}.docs_pr for each stage in the set

After Completion#

  • Verify Planning Gate passed
  • Record Project/Epic/work item numbers in state file
  • Verify the planning docs PR merged (or that its degradation is recorded at stages.{stage}.docs_pr with a reason) — Development must not start from a base whose missing documents nobody noticed
  • Present context-clear handoff:
Issue Breakdown stage complete (Planning Gate PASSED).
  Project #{project_number} (optional) / Epic #{epic_number} (optional) created with {item_count} work items (Feature ×{f}, Bug ×{b}, Task ×{t}).
  Pipeline sorting: P0 ×{n}Sprint Backlog, P1 ×{n}Product Backlog, P2 ×{n}Icebox
  Planning docs PR #{docs_pr_number} merged → {doc_count} documents are on {default_branch}

**Option 1 (Recommended)**: Clear context and continue to Development
  /clear
  Then run: /cc-product:develop {epic_number}

**Option 2**: Continue in current context
  Proceed directly to /cc-product:develop {epic_number}