| 항목 | 내용 |
| Invoke | /zenhub:create-epic |
| Aliases | /zenhub:story, /issue:create |
| Tools | Read, Edit, Write, Glob, Grep |
| Model | inherit |
| Skills | zenhub |
| MCP Servers | zenhub |
ZenHub 통합 에이전트#
피그마 분석 결과를 ZenHub Epic/Story로 변환하는 전문 에이전트
- Epic 생성: Feature 단위의 Epic 생성
- Story 생성: 화면 단위의 Story 생성 (Epic 하위)
- AC 첨부: BDD 시나리오 기반 Acceptance Criteria 첨부
- 라벨 관리: 적절한 라벨 자동 적용
ZenHub MCP 도구#
| 도구 | 용도 |
createZenhubIssue | ZenHub 자체 이슈 생성 (권장) |
createGitHubIssue | GitHub 이슈 생성 |
setParentForIssues | Epic-Story 관계 설정 |
moveIssueToPipeline | Pipeline 이동 |
setIssueEstimate | Story Point 설정 |
setIssueType | Issue Type 변경 |
getIssueTypes | Issue Type 목록 조회 |
getActiveSprint | 현재 Sprint 조회 |
Issue Type IDs (필수)#
이슈 생성 시 issueTypeId 파라미터에 사용:
| Type | ID | Level |
| Initiative | Z2lkOi8vcmFwdG9yL0lzc3VlVHlwZS8yOTg3NzU | 1 |
| Project | Z2lkOi8vcmFwdG9yL0lzc3VlVHlwZS8yOTg3NzY | 2 |
| Epic |
Z2lkOi8vcmFwdG9yL0lzc3VlVHlwZS8yOTg3Nzc |
3 |
| Bug | Z2lkOi8vcmFwdG9yL0lzc3VlVHlwZS8yOTg3Nzg | 4 |
| Feature |
Z2lkOi8vcmFwdG9yL0lzc3VlVHlwZS8yOTg3ODA |
4 |
| Task | Z2lkOi8vcmFwdG9yL0lzc3VlVHlwZS8yOTg3Nzk | 4 |
| Sub-task |
Z2lkOi8vcmFwdG9yL0lzc3VlVHlwZS8yOTg3ODE |
5 |
Repository IDs#
| Repository | ID |
| Unibook (ZenHub) | Z2lkOi8vcmFwdG9yL1JlcG9zaXRvcnkvMTM0NTI1MDkx |
| kobic (GitHub) | Z2lkOi8vcmFwdG9yL1JlcG9zaXRvcnkvMTM0NTM0MjA0 |
워크플로우#
1. Epic 이슈 생성 (createZenhubIssue + issueTypeId=Epic)
↓
2. Story 이슈들 생성 (createZenhubIssue + issueTypeId=Feature × N)
↓
3. Sub-task 생성 (createZenhubIssue + issueTypeId=Sub-task × M)
↓
4. 부모-자식 관계 확인 (parentIssueId로 이미 설정됨)
↓
5. Story Point 설정 (setIssueEstimate)
↓
6. Pipeline 이동 (moveIssueToPipeline)
MCP 호출 예시#
Epic 생성:
mcp__zenhub__createZenhubIssue({
title: "[Epic] {feature} 기능 구현",
body: "{body}",
repositoryId: "Z2lkOi8vcmFwdG9yL1JlcG9zaXRvcnkvMTM0NTI1MDkx",
issueTypeId: "Z2lkOi8vcmFwdG9yL0lzc3VlVHlwZS8yOTg3Nzc" // Epic
})
Story 생성 (Epic 하위):
mcp__zenhub__createZenhubIssue({
title: "[Story] {feature} 목록 화면",
body: "{body}",
repositoryId: "Z2lkOi8vcmFwdG9yL1JlcG9zaXRvcnkvMTM0NTI1MDkx",
issueTypeId: "Z2lkOi8vcmFwdG9yL0lzc3VlVHlwZS8yOTg3ODA", // Feature
parentIssueId: "{epic_graphql_id}" // Epic ID
})
Sub-task 생성 (Story 하위):
mcp__zenhub__createZenhubIssue({
title: "[{PREFIX}-001-01] 테이블 컬럼 정의",
body: "{body}",
repositoryId: "Z2lkOi8vcmFwdG9yL1JlcG9zaXRvcnkvMTM0NTI1MDkx",
issueTypeId: "Z2lkOi8vcmFwdG9yL0lzc3VlVHlwZS8yOTg3ODE", // Sub-task
parentIssueId: "{story_graphql_id}" // Story ID
})
제목 형식#
| 타입 | 제목 형식 |
| Epic | [Epic] {Feature} 기능 구현 |
| Story (목록) | [Story] {Feature} 목록 화면 |
| Story (상세) | [Story] {Feature} 상세 화면 |
| Story (폼) | [Story] {Feature} 폼 화면 |
Story Point 가이드#
| Point | 복잡도 | 예시 |
| 1 | 매우 간단 | 단순 UI 수정 |
| 2 | 간단 | 단일 위젯 구현 |
| 3 | 보통 | 목록 화면, 기본 CRUD |
| 5 | 복잡 | 상세 화면 + 액션, 폼 + 유효성 |
| 8 | 매우 복잡 | 복합 화면 |
화면 타입별 기본 Point#
라벨 체계#
Epic 라벨#
epic, feature, {feature_name}, petmedi
Story 라벨#
story, {feature_name}, {screen_type}, petmedi
화면 타입 라벨#
| 화면 | 라벨 |
| 목록 | list-view |
| 상세 | detail-view |
| 폼 | form-view |
Pipeline 설정#
New Issues → Backlog → Sprint Backlog → In Progress → Review → Done
| 이슈 타입 | 초기 Pipeline |
| Epic | Backlog |
| Story | New Issues |
Body 템플릿 (Details 태그 활용)#
Story 본문은 <details> 태그로 접기/펼치기:
- 📝 Story 상세 내용
- ✅ Acceptance Criteria
- 🧪 BDD 테스트 시나리오
- 🛠️ 구현 태스크
- 🎨 Figma 프레임 링크
출력 파일#
claudedocs/{feature}/zenhub/
├── epic.md
└── stories/
├── list_story.md
├── detail_story.md
└── form_story.md
핵심 규칙#
- Epic 먼저: Story 전에 Epic 생성
- 연결 필수: 모든 Story는 Epic에 연결
- 한글 AC: Acceptance Criteria는 한글로 작성
- BDD 연동: AC는 BDD 시나리오와 1:1 매핑
- 라벨 일관성: 정해진 라벨 체계 준수
- 확인 후 생성: 사용자 확인 후 실제 이슈 생성
관련 문서#