product-playbook 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.es.md +518 -0
- package/README.ja.md +519 -0
- package/README.ko.md +518 -0
- package/README.md +520 -0
- package/README.zh-CN.md +518 -0
- package/README.zh-TW.md +518 -0
- package/SKILL.md +244 -0
- package/commands/product-build.md +13 -0
- package/commands/product-dev.md +21 -0
- package/commands/product-full.md +13 -0
- package/commands/product-prd.md +14 -0
- package/commands/product-quick.md +13 -0
- package/commands/product-report.md +12 -0
- package/commands/product-revision.md +13 -0
- package/i18n/en/SKILL.md +245 -0
- package/i18n/en/commands/product-build.md +13 -0
- package/i18n/en/commands/product-dev.md +21 -0
- package/i18n/en/commands/product-full.md +13 -0
- package/i18n/en/commands/product-prd.md +14 -0
- package/i18n/en/commands/product-quick.md +13 -0
- package/i18n/en/commands/product-report.md +12 -0
- package/i18n/en/commands/product-revision.md +13 -0
- package/i18n/en/references/00-opportunity-check.md +44 -0
- package/i18n/en/references/01-strategy.md +90 -0
- package/i18n/en/references/02a-persona.md +57 -0
- package/i18n/en/references/02b-jtbd.md +125 -0
- package/i18n/en/references/02c-ost-journey.md +65 -0
- package/i18n/en/references/03-define.md +118 -0
- package/i18n/en/references/04a-prfaq.md +112 -0
- package/i18n/en/references/04b-solutions.md +269 -0
- package/i18n/en/references/04c-mvp.md +21 -0
- package/i18n/en/references/05a-northstar-aha.md +93 -0
- package/i18n/en/references/05b-pmf-gtm.md +102 -0
- package/i18n/en/references/05c-validation-spec.md +117 -0
- package/i18n/en/references/06-html-report.md +128 -0
- package/i18n/en/references/07a-handoff-core.md +152 -0
- package/i18n/en/references/07b-tasks-tickets.md +215 -0
- package/i18n/en/references/07c-architecture-setup.md +197 -0
- package/i18n/en/references/08-security-checklist.md +221 -0
- package/i18n/en/references/rules-build.md +152 -0
- package/i18n/en/references/rules-change-propagation.md +74 -0
- package/i18n/en/references/rules-commands.md +98 -0
- package/i18n/en/references/rules-context.md +291 -0
- package/i18n/en/references/rules-custom.md +63 -0
- package/i18n/en/references/rules-document-tools.md +126 -0
- package/i18n/en/references/rules-end-of-flow.md +150 -0
- package/i18n/en/references/rules-export-document.md +346 -0
- package/i18n/en/references/rules-file-integration.md +65 -0
- package/i18n/en/references/rules-full.md +66 -0
- package/i18n/en/references/rules-import-document.md +261 -0
- package/i18n/en/references/rules-product-type.md +14 -0
- package/i18n/en/references/rules-progress.md +60 -0
- package/i18n/en/references/rules-quick.md +29 -0
- package/i18n/en/references/rules-revision.md +64 -0
- package/i18n/es/SKILL.md +245 -0
- package/i18n/es/commands/product-build.md +13 -0
- package/i18n/es/commands/product-dev.md +21 -0
- package/i18n/es/commands/product-full.md +13 -0
- package/i18n/es/commands/product-prd.md +14 -0
- package/i18n/es/commands/product-quick.md +13 -0
- package/i18n/es/commands/product-report.md +12 -0
- package/i18n/es/commands/product-revision.md +13 -0
- package/i18n/es/references/00-opportunity-check.md +44 -0
- package/i18n/es/references/01-strategy.md +90 -0
- package/i18n/es/references/02a-persona.md +57 -0
- package/i18n/es/references/02b-jtbd.md +125 -0
- package/i18n/es/references/02c-ost-journey.md +65 -0
- package/i18n/es/references/03-define.md +118 -0
- package/i18n/es/references/04a-prfaq.md +114 -0
- package/i18n/es/references/04b-solutions.md +269 -0
- package/i18n/es/references/04c-mvp.md +21 -0
- package/i18n/es/references/05a-northstar-aha.md +93 -0
- package/i18n/es/references/05b-pmf-gtm.md +102 -0
- package/i18n/es/references/05c-validation-spec.md +117 -0
- package/i18n/es/references/06-html-report.md +138 -0
- package/i18n/es/references/07a-handoff-core.md +152 -0
- package/i18n/es/references/07b-tasks-tickets.md +215 -0
- package/i18n/es/references/07c-architecture-setup.md +197 -0
- package/i18n/es/references/08-security-checklist.md +221 -0
- package/i18n/es/references/rules-build.md +152 -0
- package/i18n/es/references/rules-change-propagation.md +74 -0
- package/i18n/es/references/rules-commands.md +98 -0
- package/i18n/es/references/rules-context.md +291 -0
- package/i18n/es/references/rules-custom.md +63 -0
- package/i18n/es/references/rules-document-tools.md +126 -0
- package/i18n/es/references/rules-end-of-flow.md +150 -0
- package/i18n/es/references/rules-export-document.md +346 -0
- package/i18n/es/references/rules-file-integration.md +65 -0
- package/i18n/es/references/rules-full.md +66 -0
- package/i18n/es/references/rules-import-document.md +261 -0
- package/i18n/es/references/rules-product-type.md +14 -0
- package/i18n/es/references/rules-progress.md +60 -0
- package/i18n/es/references/rules-quick.md +29 -0
- package/i18n/es/references/rules-revision.md +64 -0
- package/i18n/ja/SKILL.md +245 -0
- package/i18n/ja/commands/product-build.md +13 -0
- package/i18n/ja/commands/product-dev.md +21 -0
- package/i18n/ja/commands/product-full.md +13 -0
- package/i18n/ja/commands/product-prd.md +14 -0
- package/i18n/ja/commands/product-quick.md +13 -0
- package/i18n/ja/commands/product-report.md +12 -0
- package/i18n/ja/commands/product-revision.md +13 -0
- package/i18n/ja/references/00-opportunity-check.md +44 -0
- package/i18n/ja/references/01-strategy.md +90 -0
- package/i18n/ja/references/02a-persona.md +57 -0
- package/i18n/ja/references/02b-jtbd.md +125 -0
- package/i18n/ja/references/02c-ost-journey.md +65 -0
- package/i18n/ja/references/03-define.md +118 -0
- package/i18n/ja/references/04a-prfaq.md +111 -0
- package/i18n/ja/references/04b-solutions.md +269 -0
- package/i18n/ja/references/04c-mvp.md +21 -0
- package/i18n/ja/references/05a-northstar-aha.md +93 -0
- package/i18n/ja/references/05b-pmf-gtm.md +102 -0
- package/i18n/ja/references/05c-validation-spec.md +117 -0
- package/i18n/ja/references/06-html-report.md +126 -0
- package/i18n/ja/references/07a-handoff-core.md +152 -0
- package/i18n/ja/references/07b-tasks-tickets.md +215 -0
- package/i18n/ja/references/07c-architecture-setup.md +197 -0
- package/i18n/ja/references/08-security-checklist.md +221 -0
- package/i18n/ja/references/rules-build.md +152 -0
- package/i18n/ja/references/rules-change-propagation.md +74 -0
- package/i18n/ja/references/rules-commands.md +98 -0
- package/i18n/ja/references/rules-context.md +291 -0
- package/i18n/ja/references/rules-custom.md +63 -0
- package/i18n/ja/references/rules-document-tools.md +126 -0
- package/i18n/ja/references/rules-end-of-flow.md +150 -0
- package/i18n/ja/references/rules-export-document.md +346 -0
- package/i18n/ja/references/rules-file-integration.md +65 -0
- package/i18n/ja/references/rules-full.md +66 -0
- package/i18n/ja/references/rules-import-document.md +261 -0
- package/i18n/ja/references/rules-product-type.md +14 -0
- package/i18n/ja/references/rules-progress.md +60 -0
- package/i18n/ja/references/rules-quick.md +29 -0
- package/i18n/ja/references/rules-revision.md +64 -0
- package/i18n/ko/SKILL.md +245 -0
- package/i18n/ko/commands/product-build.md +13 -0
- package/i18n/ko/commands/product-dev.md +21 -0
- package/i18n/ko/commands/product-full.md +13 -0
- package/i18n/ko/commands/product-prd.md +14 -0
- package/i18n/ko/commands/product-quick.md +13 -0
- package/i18n/ko/commands/product-report.md +12 -0
- package/i18n/ko/commands/product-revision.md +13 -0
- package/i18n/ko/references/00-opportunity-check.md +44 -0
- package/i18n/ko/references/01-strategy.md +90 -0
- package/i18n/ko/references/02a-persona.md +57 -0
- package/i18n/ko/references/02b-jtbd.md +125 -0
- package/i18n/ko/references/02c-ost-journey.md +65 -0
- package/i18n/ko/references/03-define.md +118 -0
- package/i18n/ko/references/04a-prfaq.md +112 -0
- package/i18n/ko/references/04b-solutions.md +269 -0
- package/i18n/ko/references/04c-mvp.md +21 -0
- package/i18n/ko/references/05a-northstar-aha.md +93 -0
- package/i18n/ko/references/05b-pmf-gtm.md +102 -0
- package/i18n/ko/references/05c-validation-spec.md +117 -0
- package/i18n/ko/references/06-html-report.md +126 -0
- package/i18n/ko/references/07a-handoff-core.md +152 -0
- package/i18n/ko/references/07b-tasks-tickets.md +215 -0
- package/i18n/ko/references/07c-architecture-setup.md +197 -0
- package/i18n/ko/references/08-security-checklist.md +221 -0
- package/i18n/ko/references/rules-build.md +152 -0
- package/i18n/ko/references/rules-change-propagation.md +74 -0
- package/i18n/ko/references/rules-commands.md +98 -0
- package/i18n/ko/references/rules-context.md +291 -0
- package/i18n/ko/references/rules-custom.md +63 -0
- package/i18n/ko/references/rules-document-tools.md +126 -0
- package/i18n/ko/references/rules-end-of-flow.md +150 -0
- package/i18n/ko/references/rules-export-document.md +346 -0
- package/i18n/ko/references/rules-file-integration.md +65 -0
- package/i18n/ko/references/rules-full.md +66 -0
- package/i18n/ko/references/rules-import-document.md +261 -0
- package/i18n/ko/references/rules-product-type.md +14 -0
- package/i18n/ko/references/rules-progress.md +60 -0
- package/i18n/ko/references/rules-quick.md +29 -0
- package/i18n/ko/references/rules-revision.md +64 -0
- package/i18n/zh-CN/SKILL.md +245 -0
- package/i18n/zh-CN/commands/product-build.md +13 -0
- package/i18n/zh-CN/commands/product-dev.md +21 -0
- package/i18n/zh-CN/commands/product-full.md +13 -0
- package/i18n/zh-CN/commands/product-prd.md +14 -0
- package/i18n/zh-CN/commands/product-quick.md +13 -0
- package/i18n/zh-CN/commands/product-report.md +12 -0
- package/i18n/zh-CN/commands/product-revision.md +13 -0
- package/i18n/zh-CN/references/00-opportunity-check.md +44 -0
- package/i18n/zh-CN/references/01-strategy.md +90 -0
- package/i18n/zh-CN/references/02a-persona.md +57 -0
- package/i18n/zh-CN/references/02b-jtbd.md +125 -0
- package/i18n/zh-CN/references/02c-ost-journey.md +65 -0
- package/i18n/zh-CN/references/03-define.md +118 -0
- package/i18n/zh-CN/references/04a-prfaq.md +106 -0
- package/i18n/zh-CN/references/04b-solutions.md +269 -0
- package/i18n/zh-CN/references/04c-mvp.md +21 -0
- package/i18n/zh-CN/references/05a-northstar-aha.md +93 -0
- package/i18n/zh-CN/references/05b-pmf-gtm.md +102 -0
- package/i18n/zh-CN/references/05c-validation-spec.md +117 -0
- package/i18n/zh-CN/references/06-html-report.md +123 -0
- package/i18n/zh-CN/references/07a-handoff-core.md +152 -0
- package/i18n/zh-CN/references/07b-tasks-tickets.md +215 -0
- package/i18n/zh-CN/references/07c-architecture-setup.md +197 -0
- package/i18n/zh-CN/references/08-security-checklist.md +221 -0
- package/i18n/zh-CN/references/rules-build.md +152 -0
- package/i18n/zh-CN/references/rules-change-propagation.md +74 -0
- package/i18n/zh-CN/references/rules-commands.md +98 -0
- package/i18n/zh-CN/references/rules-context.md +291 -0
- package/i18n/zh-CN/references/rules-custom.md +63 -0
- package/i18n/zh-CN/references/rules-document-tools.md +126 -0
- package/i18n/zh-CN/references/rules-end-of-flow.md +150 -0
- package/i18n/zh-CN/references/rules-export-document.md +346 -0
- package/i18n/zh-CN/references/rules-file-integration.md +65 -0
- package/i18n/zh-CN/references/rules-full.md +66 -0
- package/i18n/zh-CN/references/rules-import-document.md +261 -0
- package/i18n/zh-CN/references/rules-product-type.md +14 -0
- package/i18n/zh-CN/references/rules-progress.md +60 -0
- package/i18n/zh-CN/references/rules-quick.md +29 -0
- package/i18n/zh-CN/references/rules-revision.md +64 -0
- package/i18n/zh-TW/SKILL.md +244 -0
- package/i18n/zh-TW/commands/product-build.md +13 -0
- package/i18n/zh-TW/commands/product-dev.md +21 -0
- package/i18n/zh-TW/commands/product-full.md +13 -0
- package/i18n/zh-TW/commands/product-prd.md +14 -0
- package/i18n/zh-TW/commands/product-quick.md +13 -0
- package/i18n/zh-TW/commands/product-report.md +12 -0
- package/i18n/zh-TW/commands/product-revision.md +13 -0
- package/i18n/zh-TW/references/00-opportunity-check.md +44 -0
- package/i18n/zh-TW/references/01-strategy.md +90 -0
- package/i18n/zh-TW/references/02a-persona.md +57 -0
- package/i18n/zh-TW/references/02b-jtbd.md +125 -0
- package/i18n/zh-TW/references/02c-ost-journey.md +65 -0
- package/i18n/zh-TW/references/03-define.md +118 -0
- package/i18n/zh-TW/references/04a-prfaq.md +106 -0
- package/i18n/zh-TW/references/04b-solutions.md +269 -0
- package/i18n/zh-TW/references/04c-mvp.md +21 -0
- package/i18n/zh-TW/references/05a-northstar-aha.md +93 -0
- package/i18n/zh-TW/references/05b-pmf-gtm.md +102 -0
- package/i18n/zh-TW/references/05c-validation-spec.md +117 -0
- package/i18n/zh-TW/references/06-html-report.md +123 -0
- package/i18n/zh-TW/references/07a-handoff-core.md +152 -0
- package/i18n/zh-TW/references/07b-tasks-tickets.md +215 -0
- package/i18n/zh-TW/references/07c-architecture-setup.md +197 -0
- package/i18n/zh-TW/references/08-security-checklist.md +221 -0
- package/i18n/zh-TW/references/rules-build.md +152 -0
- package/i18n/zh-TW/references/rules-change-propagation.md +74 -0
- package/i18n/zh-TW/references/rules-commands.md +98 -0
- package/i18n/zh-TW/references/rules-context.md +291 -0
- package/i18n/zh-TW/references/rules-custom.md +63 -0
- package/i18n/zh-TW/references/rules-document-tools.md +126 -0
- package/i18n/zh-TW/references/rules-end-of-flow.md +150 -0
- package/i18n/zh-TW/references/rules-export-document.md +346 -0
- package/i18n/zh-TW/references/rules-file-integration.md +65 -0
- package/i18n/zh-TW/references/rules-full.md +66 -0
- package/i18n/zh-TW/references/rules-import-document.md +261 -0
- package/i18n/zh-TW/references/rules-product-type.md +14 -0
- package/i18n/zh-TW/references/rules-progress.md +60 -0
- package/i18n/zh-TW/references/rules-quick.md +29 -0
- package/i18n/zh-TW/references/rules-revision.md +64 -0
- package/install.sh +418 -0
- package/package.json +41 -0
- package/references/00-opportunity-check.md +44 -0
- package/references/01-strategy.md +90 -0
- package/references/02a-persona.md +57 -0
- package/references/02b-jtbd.md +125 -0
- package/references/02c-ost-journey.md +65 -0
- package/references/03-define.md +118 -0
- package/references/04a-prfaq.md +106 -0
- package/references/04b-solutions.md +269 -0
- package/references/04c-mvp.md +21 -0
- package/references/05a-northstar-aha.md +93 -0
- package/references/05b-pmf-gtm.md +102 -0
- package/references/05c-validation-spec.md +117 -0
- package/references/06-html-report.md +123 -0
- package/references/07a-handoff-core.md +152 -0
- package/references/07b-tasks-tickets.md +215 -0
- package/references/07c-architecture-setup.md +197 -0
- package/references/08-security-checklist.md +221 -0
- package/references/rules-build.md +152 -0
- package/references/rules-change-propagation.md +74 -0
- package/references/rules-commands.md +98 -0
- package/references/rules-context.md +291 -0
- package/references/rules-custom.md +63 -0
- package/references/rules-document-tools.md +126 -0
- package/references/rules-end-of-flow.md +150 -0
- package/references/rules-export-document.md +346 -0
- package/references/rules-file-integration.md +65 -0
- package/references/rules-full.md +66 -0
- package/references/rules-import-document.md +261 -0
- package/references/rules-product-type.md +14 -0
- package/references/rules-progress.md +60 -0
- package/references/rules-quick.md +29 -0
- package/references/rules-revision.md +64 -0
- package/references/templates/prd-style.css +464 -0
- package/references/templates/report-style.css +114 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# HTML 제품 기획 보고서 출력
|
|
2
|
+
|
|
3
|
+
사용자가 "보고서를 만들어 주세요"라고 말하거나 마지막 단계 내용이 맞다고 확인할 때 트리거됩니다.
|
|
4
|
+
|
|
5
|
+
## 디자인 사양
|
|
6
|
+
|
|
7
|
+
**모던 디자인 스타일**을 사용하세요 — 단일 HTML 파일(CSS와 JS 완전 인라인), 오프라인 열람 보장.
|
|
8
|
+
|
|
9
|
+
**전체 스타일:**
|
|
10
|
+
- 그라데이션 배경 Hero 섹션 (모드, 독자, 날짜 라벨 포함)
|
|
11
|
+
- 카드 기반 레이아웃 (둥근 모서리 + 그림자), 각 섹션이 독립적 정보 카드
|
|
12
|
+
- 명확한 타이포그래피 계층과 편안한 가독성 간격
|
|
13
|
+
- 반응형 디자인, 모바일에서 부드러운 읽기
|
|
14
|
+
|
|
15
|
+
**색상 체계:**
|
|
16
|
+
- 주요: 딥 블루 `#1a1a2e` → `#16213e` → `#0f3460`
|
|
17
|
+
- 액센트: `#e94560` 또는 `#533483`
|
|
18
|
+
- 콘텐츠 영역 배경: `#f8f9fa`, 카드: 흰색 + `box-shadow`
|
|
19
|
+
|
|
20
|
+
**폰트:** Google Fonts CDN에서 Noto Sans KR을 먼저 로드, 시스템 폰트로 폴백:
|
|
21
|
+
```css
|
|
22
|
+
/* <head>에 */
|
|
23
|
+
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700&display=swap');
|
|
24
|
+
|
|
25
|
+
/* CSS에 */
|
|
26
|
+
font-family: "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, sans-serif;
|
|
27
|
+
```
|
|
28
|
+
> 이것이 유일한 허용된 외부 CDN 의존성입니다. Google Fonts를 사용할 수 없어도 페이지는 정상 렌더링됩니다.
|
|
29
|
+
|
|
30
|
+
## 페이지 구조 (완료된 단계를 기반으로 동적 렌더링)
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
34
|
+
│ Hero 섹션 (제품명, 원라이너, 모드, 독자, 날짜) │
|
|
35
|
+
├──────────────────────────────────────────────────────────────┤
|
|
36
|
+
│ 목차 네비게이션 (고정, 완료된 것만 표시) │
|
|
37
|
+
├──────────────────────────────────────────────────────────────┤
|
|
38
|
+
│ 🧭 전략 섹션 (완료된 경우) │
|
|
39
|
+
│ ├─ Strategy Blocks 계층 다이어그램 │
|
|
40
|
+
│ ├─ Rumelt의 좋은 전략의 핵심 (진단/방침/행동) │
|
|
41
|
+
│ └─ Shreyas의 제품 업무 3단계 │
|
|
42
|
+
│ ✅ 기회 점검 섹션 (완료된 경우) │
|
|
43
|
+
│ 🔍 디스커버리 섹션 (완료된 경우) │
|
|
44
|
+
│ ├─ Persona 테이블 (카드 스타일 테이블) │
|
|
45
|
+
│ ├─ Persona 카드 (Persona당 하나) │
|
|
46
|
+
│ ├─ JTBD 분석표 (4가지 유형) │
|
|
47
|
+
│ ├─ Opportunity Solution Tree (시각적 트리) │
|
|
48
|
+
│ └─ User Journey Map (개요 + 아코디언 상세) │
|
|
49
|
+
│ 🎯 Define 섹션 (완료된 경우) │
|
|
50
|
+
│ ├─ 페인포인트 요약 테이블 │
|
|
51
|
+
│ ├─ April Dunford 포지셔닝 프레임워크 카드 │
|
|
52
|
+
│ ├─ HMW 질문 카드 (JTBD 유형 태그 포함) │
|
|
53
|
+
│ └─ 기회 평가 테이블 (기회비용 관점) │
|
|
54
|
+
│ 💡 Develop 섹션 (완료된 경우) │
|
|
55
|
+
│ ├─ PR-FAQ 카드 (보도자료 형식 시뮬레이션) │
|
|
56
|
+
│ ├─ 솔루션 아이디에이션 (3열 병렬 카드) │
|
|
57
|
+
│ ├─ Pre-mortem 리스크 테이블 (높음/중간 리스크 색상 코딩) │
|
|
58
|
+
│ ├─ GEM 매트릭스 + Impact/Effort 사분면 차트 │
|
|
59
|
+
│ ├─ RICE 우선순위 테이블 (완료된 경우) │
|
|
60
|
+
│ ├─ User Story 테이블 (완료된 경우) │
|
|
61
|
+
│ └─ MVP 범위 (3열 카드 + Not Doing List) │
|
|
62
|
+
│ 🚀 Deliver 섹션 (완료된 경우) │
|
|
63
|
+
│ ├─ Aha Moment 정의 카드 (눈에 띄게 표시) │
|
|
64
|
+
│ ├─ North Star Metric 카드 │
|
|
65
|
+
│ ├─ 3계층 시그널 지표 테이블 │
|
|
66
|
+
│ ├─ PMF 수준 평가 (4단계 시각화 + 현재 위치 표시) │
|
|
67
|
+
│ ├─ GTM 전략 (채널 선택 + 첫 100명 사용자 계획, │
|
|
68
|
+
│ │ 완료된 경우) │
|
|
69
|
+
│ ├─ 비즈니스 모델 & 프라이싱 (수익 모델 + 가격 전략, │
|
|
70
|
+
│ │ 완료된 경우) │
|
|
71
|
+
│ ├─ 가설 검증 계획 테이블 (완료된 경우) │
|
|
72
|
+
│ └─ 제품 스펙 요약 (3섹션 구조: │
|
|
73
|
+
│ 의사결정 요약 / 실행 경계 / 심층 참조) │
|
|
74
|
+
│ ⭐ 최적 진입점 분석 (전체 로직 체인 시각화) │
|
|
75
|
+
├──────────────────────────────────────────────────────────────┤
|
|
76
|
+
│ 푸터: 출력 날짜 + 모드 + 프레임워크 출처 │
|
|
77
|
+
└──────────────────────────────────────────────────────────────┘
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## 섹션 디자인 세부사항
|
|
81
|
+
|
|
82
|
+
**테이블 스타일링:** 지브라 스트라이프, 어두운 헤더, 둥근 모서리, 호버 하이라이트
|
|
83
|
+
|
|
84
|
+
**Persona 카드:** Persona당 하나의 카드, 페인포인트는 빨간 왼쪽 보더, JTBD는 파란/보라 색상 블록으로 강조
|
|
85
|
+
|
|
86
|
+
**Opportunity Solution Tree:** CSS 또는 경량 SVG로 트리 구조 그리기, 목표 → 기회 → 솔루션 계층을 명확히 표시
|
|
87
|
+
|
|
88
|
+
**PMF 수준 차트:** 프로그레스 바 또는 단계 다이어그램으로 4단계 표시, 사용자의 현재 위치 마킹
|
|
89
|
+
|
|
90
|
+
**PR-FAQ 카드:** 보도자료 형식 시뮬레이션, 헤드라인, 서브타이틀, 리드 문단 — 실제 문서처럼 보이게
|
|
91
|
+
|
|
92
|
+
**Pre-mortem 리스크 테이블:** 높은 리스크 항목은 빨간 경고, 중간 리스크는 노란색
|
|
93
|
+
|
|
94
|
+
**최적 진입점 로직 체인:** 전체 추론 체인 시각화, 각 노드는 작은 카드, 화살표로 연결
|
|
95
|
+
|
|
96
|
+
## 인터랙티브 효과
|
|
97
|
+
|
|
98
|
+
- `scroll-behavior: smooth` — 목차 클릭 시 부드러운 스크롤
|
|
99
|
+
- Intersection Observer — 스크롤 중 현재 섹션을 목차에서 하이라이트
|
|
100
|
+
- 카드 호버 마이크로 리프트 (`transform: translateY(-2px)` + `transition`)
|
|
101
|
+
- 아코디언 확장/축소 (User Journey Map 단계, `<details>/<summary>`)
|
|
102
|
+
- `@media print` — 인쇄 시 인터랙티브 요소 숨기기, 테이블 잘림 방지
|
|
103
|
+
|
|
104
|
+
## 중요 참고사항
|
|
105
|
+
|
|
106
|
+
- 모든 CSS와 JS는 HTML에 인라인 — Google Fonts CDN의 Noto Sans KR 외 외부 의존성 없음
|
|
107
|
+
- 완료되지 않은 단계는 빈 섹션으로 렌더링하지 마세요 — 그냥 건너뛰기
|
|
108
|
+
- Hero 섹션에 "모드"와 "독자"를 표시하여 독자가 문서의 맥락을 즉시 이해하도록
|
|
109
|
+
- 페이지가 매우 길 수 있음 — 목차 네비게이션이 빠른 이동에 필수
|
|
110
|
+
|
|
111
|
+
## 프레임워크 출처 및 추가 참고자료 (푸터)
|
|
112
|
+
|
|
113
|
+
| 사상가 | 핵심 기여 | 출처 |
|
|
114
|
+
|--------|---------|------|
|
|
115
|
+
| Teresa Torres | Continuous Discovery, Opportunity Solution Tree | Lenny's Podcast + *Continuous Discovery Habits* |
|
|
116
|
+
| Shreyas Doshi | LNO Framework, Pre-mortem, 제품 업무 3단계, 기회비용 사고 | Lenny's Podcast Ep.3 |
|
|
117
|
+
| Gibson Biddle | DHM Model, GEM 우선순위 | Lenny's Podcast |
|
|
118
|
+
| April Dunford | 포지셔닝 프레임워크 | Lenny's Podcast + *Obviously Awesome* |
|
|
119
|
+
| Todd Jackson | 4단계 PMF 프레임워크, Four P's | Lenny's Podcast (First Round Capital) |
|
|
120
|
+
| Richard Rumelt | 좋은 전략 / 나쁜 전략, 좋은 전략의 핵심 | Lenny's Podcast + *Good Strategy Bad Strategy* |
|
|
121
|
+
| Marty Cagan | Empowered Teams, Product Discovery | Lenny's Podcast + *Inspired*, *Empowered* |
|
|
122
|
+
| Chandra Janakiraman | Strategy Blocks | Lenny's Newsletter (Headspace / Meta) |
|
|
123
|
+
| Clayton Christensen | Jobs to Be Done | *Competing Against Luck* |
|
|
124
|
+
| Amazon | Working Backwards / PR-FAQ | *Working Backwards* |
|
|
125
|
+
| Sean Ellis | Sean Ellis Score, ICE Scoring | *Hacking Growth* |
|
|
126
|
+
| Lenny Rachitsky | Shape / Ship / Synchronize, North Star 사고 | Lenny's Newsletter + Podcast |
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# 개발 핸드오프 — 핵심 핸드오프 패키지
|
|
2
|
+
|
|
3
|
+
> 사용자가 "개발 시작", "개발 핸드오프 패키지를 만들어 주세요", "프로젝트를 설정해 주세요", "Claude Code에 연결해 주세요"라고 말할 때 트리거됩니다.
|
|
4
|
+
> 이 파일을 읽고, 전체 제품 기획 프로세스의 산출물을 통합하여, Claude Code CLI에서 직접 사용할 수 있는 개발 핸드오프 패키지를 생성하세요.
|
|
5
|
+
|
|
6
|
+
## 환경 제약 및 핸드오프 전략
|
|
7
|
+
|
|
8
|
+
**핵심 사실: Claude Chat / Cowork과 Claude Code는 별도의 실행 환경이며 — Chat 내에서 Claude Code를 실행할 수 없습니다.**
|
|
9
|
+
|
|
10
|
+
따라서 핸드오프 전략은: **구조화된 개발 핸드오프 패키지(파일 세트)를 작성**하고, 사용자가 다운로드하여 프로젝트 폴더에 배치한 후, Claude Code에서 단일 프롬프트로 전체 개발 워크플로우를 시작할 수 있도록 합니다.
|
|
11
|
+
|
|
12
|
+
핸드오프 방법은 사용자의 환경에 따라 달라집니다:
|
|
13
|
+
|
|
14
|
+
| 사용자 환경 | 핸드오프 방법 |
|
|
15
|
+
|-----------|------------|
|
|
16
|
+
| **Claude Chat (Web/App)** | 다운로드용 zip 파일 작성; 사용자가 프로젝트 디렉토리에 압축 해제 후 Claude Code 열기 |
|
|
17
|
+
| **Claude Cowork (Desktop)** | 위와 동일하지만, 사용자가 지정한 로컬 경로에 직접 파일 쓰기 가능 |
|
|
18
|
+
| **이미 Claude Code에 있는 경우** | 프로젝트 디렉토리에 모든 파일을 직접 생성 (이 시나리오에서는 이 스킬이 CLAUDE.md에서 참조될 가능성이 높음) |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 개발 핸드오프 패키지 구성
|
|
23
|
+
|
|
24
|
+
다음 파일 세트를 프로젝트 루트에 배치하여 작성하세요:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
[project-name]/
|
|
28
|
+
├── .gitignore # 버전 관리 제외 (.env, 시크릿, 진행 파일 등 — 템플릿은 references/07c-architecture-setup.md)
|
|
29
|
+
├── CLAUDE.md # Claude Code의 프로젝트 메모리: 제품 컨텍스트 + 개발 가이드라인
|
|
30
|
+
├── TASKS.md # 기능 분해 + Phase 마일스톤 + Task별 인수 기준
|
|
31
|
+
├── TICKETS.md # 티켓 내용: 티켓별 제목, 설명, 인수 기준 — PM이 직접 티켓 생성 가능
|
|
32
|
+
├── docs/
|
|
33
|
+
│ ├── PRD.md # 전체 PRD (04-develop.md 출력 형식에서 통합)
|
|
34
|
+
│ ├── ARCHITECTURE.md # 기술 아키텍처: 디렉토리 구조 + DB schema + API endpoints + 보안 아키텍처
|
|
35
|
+
│ └── PRODUCT-SPEC.md # 제품 스펙 요약 (05-deliver.md → 4.6에서 통합)
|
|
36
|
+
└── scripts/
|
|
37
|
+
└── setup.sh # 원클릭 초기화 스크립트 (디렉토리 생성 + 의존성 설치)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 📄 CLAUDE.md 템플릿
|
|
43
|
+
|
|
44
|
+
CLAUDE.md는 Claude Code의 프로젝트 메모리 파일입니다 — Claude Code가 매 시작 시 자동으로 읽습니다. 다음을 포함해야 합니다:
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
# [제품명] — 프로젝트 가이드
|
|
48
|
+
|
|
49
|
+
## 제품 컨텍스트
|
|
50
|
+
|
|
51
|
+
**원라이너**: [PR-FAQ 헤드라인]
|
|
52
|
+
**타겟 사용자**: [Persona 한 문장]
|
|
53
|
+
**핵심 JTBD**: [타겟 고객]이 [Job 맥락]에서 [Job]을 하고 싶어한다
|
|
54
|
+
**Aha Moment**: 사용자가 [행동]을 완료하면 핵심 가치를 경험
|
|
55
|
+
**North Star Metric**: [지표명 + 정의]
|
|
56
|
+
|
|
57
|
+
## 기술 스택
|
|
58
|
+
|
|
59
|
+
- **프론트엔드**: [프레임워크 + 버전]
|
|
60
|
+
- **백엔드**: [프레임워크 + 버전]
|
|
61
|
+
- **데이터베이스**: [유형 + 버전]
|
|
62
|
+
- **배포**: [플랫폼]
|
|
63
|
+
- **패키지 매니저**: [도구]
|
|
64
|
+
|
|
65
|
+
## 개발 가이드라인
|
|
66
|
+
|
|
67
|
+
- [언어]로 개발
|
|
68
|
+
- [스타일 가이드 / 린트 규칙] 준수
|
|
69
|
+
- 커밋 메시지 형식: `[type]: [description]` (type: feat / fix / refactor / docs / test)
|
|
70
|
+
- 브랜치 전략: [main / develop / feature-xxx]
|
|
71
|
+
- 모든 기능은 User Story 번호를 참조해야 함 (TASKS.md 참조)
|
|
72
|
+
|
|
73
|
+
## MVP 경계
|
|
74
|
+
|
|
75
|
+
**필수 (P0)**:
|
|
76
|
+
- [기능 1]
|
|
77
|
+
- [기능 2]
|
|
78
|
+
- [기능 3]
|
|
79
|
+
|
|
80
|
+
**명시적 제외**:
|
|
81
|
+
- [제외 1] — 이유: [근거]
|
|
82
|
+
- [제외 2] — 이유: [근거]
|
|
83
|
+
|
|
84
|
+
## 핵심 의사결정 로그
|
|
85
|
+
|
|
86
|
+
| 결정 | 선택 | 근거 | 날짜 |
|
|
87
|
+
|------|------|------|------|
|
|
88
|
+
| [예: 데이터베이스 선택] | [PostgreSQL] | [관계형 쿼리 + JSON 지원 필요] | [날짜] |
|
|
89
|
+
|
|
90
|
+
## 리스크 알림 (Pre-mortem 기반)
|
|
91
|
+
|
|
92
|
+
- ⚠️ [리스크 1]: [예방 조치]
|
|
93
|
+
- ⚠️ [리스크 2]: [예방 조치]
|
|
94
|
+
|
|
95
|
+
## 보안 참고사항
|
|
96
|
+
|
|
97
|
+
> 전체 보안 체크리스트는 `references/08-security-checklist.md` 참조. 아래는 이 제품의 핵심 보안 결정:
|
|
98
|
+
|
|
99
|
+
- 인증: [JWT / Session / OAuth]
|
|
100
|
+
- CORS 정책: [허용 오리진]
|
|
101
|
+
- Rate Limiting: [전략 요약]
|
|
102
|
+
- 민감한 데이터: [처리 방법]
|
|
103
|
+
|
|
104
|
+
## 개발 워크플로우
|
|
105
|
+
|
|
106
|
+
`TASKS.md`의 Phase 순서를 따르세요. 각 Phase 완료 후:
|
|
107
|
+
1. 모든 Task 인수 기준이 통과하는지 확인
|
|
108
|
+
2. 사용자에게 다음 Phase로 진행할지 물어보기
|
|
109
|
+
3. 아키텍처 관련 질문이 있으면 `docs/ARCHITECTURE.md` 참조
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 기술 스택 확인 플로우
|
|
115
|
+
|
|
116
|
+
핸드오프 패키지를 작성하기 전에, 기술 스택을 확인해야 합니다. 사용자가 지정하지 않은 경우, 다음 순서로 질문하세요:
|
|
117
|
+
|
|
118
|
+
### 필수 질문 (모든 산출물에 영향)
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
1. 어떤 유형의 애플리케이션인가요?
|
|
122
|
+
□ 웹 앱 (브라우저)
|
|
123
|
+
□ 모바일 앱 (iOS / Android / 크로스 플랫폼)
|
|
124
|
+
□ 데스크톱 앱
|
|
125
|
+
□ API / 백엔드 서비스
|
|
126
|
+
□ CLI 도구
|
|
127
|
+
□ 기타
|
|
128
|
+
|
|
129
|
+
2. 선호하는 기술 스택이 있나요?
|
|
130
|
+
(없다면, 제품 특성에 맞게 추천해 드리겠습니다)
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### 추천 로직 (사용자가 지정하지 않은 경우)
|
|
134
|
+
|
|
135
|
+
| 애플리케이션 유형 | 추천 스택 | 근거 |
|
|
136
|
+
|-----------------|----------|------|
|
|
137
|
+
| 웹 앱 (빠른 MVP 검증) | Next.js + Tailwind + Supabase | 풀스택 원스톱, 쉬운 배포, 내장 Auth |
|
|
138
|
+
| 웹 앱 (복잡한 백엔드 로직) | React + Node.js/Express + PostgreSQL | 높은 유연성, 성숙한 생태계 |
|
|
139
|
+
| 웹 앱 (Python 팀) | React + FastAPI/Django + PostgreSQL | Python 생태계, Django에 내장 Admin |
|
|
140
|
+
| 모바일 앱 (크로스 플랫폼) | React Native / Flutter | 단일 코드베이스로 양 플랫폼 커버 |
|
|
141
|
+
| API 서비스 | FastAPI / Express / Go | 경량, 고성능 |
|
|
142
|
+
|
|
143
|
+
> Claude는 추천 시 근거를 설명하고, 사용자가 추천을 무시할 수 있음을 알려야 합니다.
|
|
144
|
+
|
|
145
|
+
### 선택 사항 (제품 니즈에 따른 후속 질문)
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
3. 사용자 인증이 필요한가요? (Auth 접근 방식 선택에 영향)
|
|
149
|
+
4. 실시간 요구사항이 있나요? (WebSocket / SSE)
|
|
150
|
+
5. 파일 업로드/처리가 필요한가요? (스토리지 선택에 영향)
|
|
151
|
+
6. 어디에 배포할 계획인가요? (Vercel / Railway / AWS / 자체 호스팅)
|
|
152
|
+
```
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# 개발 핸드오프 — TASKS.md + TICKETS.md
|
|
2
|
+
|
|
3
|
+
## 📄 TASKS.md 템플릿
|
|
4
|
+
|
|
5
|
+
기능 분해 핵심 원칙:
|
|
6
|
+
- MVP 필수 기능(P0 기능)에서 시작
|
|
7
|
+
- 각 Task는 User Story에 매핑
|
|
8
|
+
- Phase 간 명확한 의존성: Phase N+1은 Phase N 산출물에 의존
|
|
9
|
+
- 각 Task에 Claude Code가 자체 검증 가능한 인수 기준 포함
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
12
|
+
# [제품명] — 개발 Task 목록
|
|
13
|
+
|
|
14
|
+
## Phase 0: 프로젝트 초기화
|
|
15
|
+
> 목표: 실행 가능한 빈 프로젝트 스켈레톤 구축
|
|
16
|
+
|
|
17
|
+
- [ ] **T0.1** 프로젝트 초기화 (`scripts/setup.sh` 또는 수동)
|
|
18
|
+
- 인수:
|
|
19
|
+
- [ ] `npm run dev` / `python manage.py runserver` 또는 동등 명령이 성공적으로 시작됨
|
|
20
|
+
- [ ] `.gitignore` 생성됨, `.env`, `.env.local`, `node_modules/`, `.product-playbook-progress.md` 등 민감 파일 포함
|
|
21
|
+
- [ ] `.env.example` 생성됨 (키 이름만, 실제 값 없음)
|
|
22
|
+
- [ ] **T0.2** 린터 + 포매터 설정
|
|
23
|
+
- 인수: lint가 에러 없이 통과
|
|
24
|
+
- [ ] **T0.3** 데이터베이스 설정 + 초기 마이그레이션 실행
|
|
25
|
+
- 인수: 데이터베이스 연결 가능, 기본 테이블 생성됨
|
|
26
|
+
- [ ] **T0.4** 기본 라우팅 구조 설정
|
|
27
|
+
- 인수: 모든 주요 페이지 라우트 접근 가능 (빈 페이지 반환도 괜찮음)
|
|
28
|
+
|
|
29
|
+
## Phase 1: 핵심 플로우 (Aha Moment 경로)
|
|
30
|
+
> 목표: 사용자가 진입부터 Aha Moment까지 최단 경로를 완료하도록
|
|
31
|
+
> 대응 User Stories: [US-001, US-002, ...]
|
|
32
|
+
|
|
33
|
+
- [ ] **T1.1** [기능명]
|
|
34
|
+
- User Story: [Persona]로서 나는 [행동]을 하고 싶어서 [가치]를 얻고 싶다
|
|
35
|
+
- 인수 기준:
|
|
36
|
+
- [ ] [구체적 테스트 가능 조건 1]
|
|
37
|
+
- [ ] [구체적 테스트 가능 조건 2]
|
|
38
|
+
- 기술 참고: [필요한 API / 서드파티 서비스 / 특수 로직]
|
|
39
|
+
|
|
40
|
+
- [ ] **T1.2** [기능명]
|
|
41
|
+
- User Story: ...
|
|
42
|
+
- 인수 기준: ...
|
|
43
|
+
|
|
44
|
+
> **Phase 1 완료 체크포인트**: 사용자가 [Aha Moment 행동]을 완료할 수 있음. 그렇지 않으면 Phase 2로 넘어가지 마세요.
|
|
45
|
+
|
|
46
|
+
## Phase 2: MVP 완성
|
|
47
|
+
> 목표: Phase 1에서 다루지 않은 나머지 P0 기능 채우기
|
|
48
|
+
> 대응 User Stories: [US-003, US-004, ...]
|
|
49
|
+
|
|
50
|
+
- [ ] **T2.1** [기능명]
|
|
51
|
+
- ...
|
|
52
|
+
|
|
53
|
+
> **Phase 2 완료 체크포인트**: 모든 P0 User Story 인수 기준 통과.
|
|
54
|
+
|
|
55
|
+
## Phase 3: 품질 & 경험
|
|
56
|
+
> 목표: 에러 처리, 엣지 케이스, 로딩 상태, 기본 보안
|
|
57
|
+
|
|
58
|
+
- [ ] **T3.1** 글로벌 에러 처리
|
|
59
|
+
- [ ] **T3.2** 폼 유효성 검증 + 엣지 케이스
|
|
60
|
+
- [ ] **T3.3** 로딩 상태 + 빈 상태
|
|
61
|
+
- [ ] **T3.4** 보안 점검 (`references/08-security-checklist.md`에 따라 각 항목 검증)
|
|
62
|
+
- 인수:
|
|
63
|
+
- [ ] OWASP Top 10 관련 항목 대응 (입력 유효성 검증, 인증, XSS 방어, CSRF 방어)
|
|
64
|
+
- [ ] 보안 헤더 설정 (CSP, X-Frame-Options, HSTS 등)
|
|
65
|
+
- [ ] CORS 정책 설정 (와일드카드 * 사용 금지)
|
|
66
|
+
- [ ] 민감한 API 엔드포인트에 rate limiting 적용
|
|
67
|
+
- [ ] API 에러 응답에 내부 정보 노출 없음
|
|
68
|
+
- [ ] **T3.5** 반응형 디자인 (웹인 경우)
|
|
69
|
+
|
|
70
|
+
## Phase 4: 배포
|
|
71
|
+
> 목표: 외부 사용자가 접근 가능하도록
|
|
72
|
+
|
|
73
|
+
- [ ] **T4.1** 환경 변수 관리
|
|
74
|
+
- [ ] **T4.2** 배포 설정
|
|
75
|
+
- [ ] **T4.3** 기본 모니터링 + 로깅
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 📄 TICKETS.md 템플릿
|
|
81
|
+
|
|
82
|
+
TICKETS.md는 TASKS.md의 기능 분해를 가져와, 프로젝트 관리 도구에서 직접 티켓을 생성할 수 있는 구조화된 내용을 작성합니다. 각 티켓에는 PM이 필요한 모든 정보가 포함됩니다.
|
|
83
|
+
|
|
84
|
+
> **디자인 목표**: PM이 각 티켓의 내용을 Jira / Asana / Linear 등 도구에 직접 복사하여 티켓을 생성할 수 있습니다. 향후 버전은 API를 통한 자동 티켓 생성을 지원할 예정입니다.
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
# [제품명] — 티켓 목록
|
|
88
|
+
|
|
89
|
+
> 생성일: [타임스탬프]
|
|
90
|
+
> 대응 TASKS.md 버전: [버전/타임스탬프]
|
|
91
|
+
> 총: [N]개 티켓
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 티켓 개요
|
|
96
|
+
|
|
97
|
+
| 티켓 # | 제목 | Phase | 우선순위 | 예상 시간 | 의존성 |
|
|
98
|
+
|--------|------|-------|---------|----------|--------|
|
|
99
|
+
| TKT-001 | [제목] | Phase 0 | P0 | [X]h | — |
|
|
100
|
+
| TKT-002 | [제목] | Phase 1 | P0 | [X]h | TKT-001 |
|
|
101
|
+
| ... | | | | | |
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## TKT-001: [제목]
|
|
106
|
+
|
|
107
|
+
**Phase**: Phase 0 — 프로젝트 초기화
|
|
108
|
+
**대응 Task**: T0.1
|
|
109
|
+
**우선순위**: P0
|
|
110
|
+
**예상 시간**: [X]시간
|
|
111
|
+
**의존성**: 없음
|
|
112
|
+
**담당자**: [역할/팀, 예: 백엔드 엔지니어]
|
|
113
|
+
|
|
114
|
+
### 설명
|
|
115
|
+
|
|
116
|
+
[이 티켓이 달성하는 것을 1-3 문단으로 설명, 비즈니스 맥락과 기술 목표 포함]
|
|
117
|
+
|
|
118
|
+
### User Story
|
|
119
|
+
|
|
120
|
+
[Persona]로서 나는 [행동]을 하고 싶어서 [가치]를 얻고 싶다
|
|
121
|
+
|
|
122
|
+
### 인수 기준
|
|
123
|
+
|
|
124
|
+
- [ ] [구체적 테스트 가능 조건 1]
|
|
125
|
+
- [ ] [구체적 테스트 가능 조건 2]
|
|
126
|
+
- [ ] [구체적 테스트 가능 조건 3]
|
|
127
|
+
|
|
128
|
+
### 기술 참고
|
|
129
|
+
|
|
130
|
+
- [구현 고려사항]
|
|
131
|
+
- [필요한 API / 서드파티 서비스]
|
|
132
|
+
- [관련 파일 경로 또는 모듈]
|
|
133
|
+
|
|
134
|
+
### 제안 라벨
|
|
135
|
+
|
|
136
|
+
`[Phase 0]` `[backend]` `[setup]`
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## TKT-002: [제목]
|
|
141
|
+
|
|
142
|
+
[동일 형식, 각 티켓에 대해 확장]
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 티켓 규칙
|
|
146
|
+
|
|
147
|
+
1. **티켓-Task 매핑**: TASKS.md의 각 Task는 하나의 티켓에 매핑 (TKT-001 ↔ T0.1); 지나치게 큰 Task는 여러 티켓으로 분할 가능
|
|
148
|
+
2. **우선순위 상속**: Phase 0-1은 기본 P0, Phase 2는 기본 P1, Phase 3-4는 기본 P2 — RICE 점수에 따라 조정 가능
|
|
149
|
+
3. **의존성**: 티켓 간 의존성을 명시적으로 표시하여 엔지니어가 단계를 건너뛰지 않도록
|
|
150
|
+
4. **예상 시간**: Task 세분화 원칙(1-4시간)에 기반하여 합리적인 추정 제공
|
|
151
|
+
5. **제안 라벨**: Phase, 기술 도메인(frontend / backend / database / infra), 기능 모듈 포함
|
|
152
|
+
|
|
153
|
+
### 프로젝트 관리 도구 통합 (예약)
|
|
154
|
+
|
|
155
|
+
> 다음은 향후 자동 티켓 생성을 위한 예약 인터페이스 설계입니다. 현재 버전은 PM이 수동으로 티켓을 생성하기 위한 TICKETS.md만 작성합니다.
|
|
156
|
+
|
|
157
|
+
TICKETS.md의 구조화된 형식은 향후 API 임포트를 위해 다음 필드를 예약합니다:
|
|
158
|
+
|
|
159
|
+
| 필드 | Jira 매핑 | Asana 매핑 | Linear 매핑 |
|
|
160
|
+
|------|----------|-----------|------------|
|
|
161
|
+
| 티켓 # | Issue Key | Task ID | Issue ID |
|
|
162
|
+
| 제목 | Summary | Task Name | Title |
|
|
163
|
+
| 설명 | Description | Description | Description |
|
|
164
|
+
| 우선순위 | Priority | Custom Field | Priority |
|
|
165
|
+
| 예상 시간 | Story Points / Time Estimate | Custom Field | Estimate |
|
|
166
|
+
| 의존성 | Linked Issues | Dependencies | Relations |
|
|
167
|
+
| 라벨 | Labels + Components | Tags | Labels |
|
|
168
|
+
| Phase | Epic | Section | Project |
|
|
169
|
+
| 담당자 | Assignee | Assignee | Assignee |
|
|
170
|
+
| 인수 기준 | Acceptance Criteria (Description) | Subtasks | Sub-issues |
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 기능 분해 로직
|
|
175
|
+
|
|
176
|
+
MVP 기능을 Tasks로 변환하는 규칙:
|
|
177
|
+
|
|
178
|
+
### Phase 분할 원칙
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
Phase 0: 프로젝트 스켈레톤 (모든 모드에 필수)
|
|
182
|
+
→ 초기화, 린터, DB, 기본 라우팅
|
|
183
|
+
|
|
184
|
+
Phase 1: Aha Moment까지의 최단 경로 (가장 중요)
|
|
185
|
+
→ 사용자 진입부터 Aha Moment까지의 최소 기능
|
|
186
|
+
→ 이 경로 상의 P0 기능만 포함
|
|
187
|
+
|
|
188
|
+
Phase 2: MVP 완성
|
|
189
|
+
→ Phase 1에서 다루지 않은 나머지 P0 기능 채우기
|
|
190
|
+
→ 부차적 플로우, 지원 페이지
|
|
191
|
+
|
|
192
|
+
Phase 3: 품질 & 경험
|
|
193
|
+
→ 에러 처리, 엣지 케이스, 로딩/빈 상태
|
|
194
|
+
→ 기본 보안, 반응형 디자인
|
|
195
|
+
|
|
196
|
+
Phase 4: 배포
|
|
197
|
+
→ 환경 변수, 배포 설정, 모니터링
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Task 세분화 원칙
|
|
201
|
+
|
|
202
|
+
- 각 Task는 **1-4시간** 내에 완료 가능해야 함
|
|
203
|
+
- 너무 큰 경우 → 서브 Task로 분할 (T1.1a, T1.1b)
|
|
204
|
+
- 너무 작은 경우 → 관련 Task로 병합
|
|
205
|
+
- 각 Task는 최소 하나의 테스트 가능한 인수 기준 보유
|
|
206
|
+
|
|
207
|
+
### User Story → Task 매핑
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
단일 User Story는 1-3개의 Tasks에 매핑될 수 있음:
|
|
211
|
+
US-001: 새 사용자로서 나는 계정을 등록하고 싶어서 제품을 사용할 수 있다
|
|
212
|
+
→ T1.1: 등록 페이지 UI
|
|
213
|
+
→ T1.2: 등록 API + 데이터 유효성 검증
|
|
214
|
+
→ T1.3: 이메일 인증 플로우 (MVP에 필요한 경우)
|
|
215
|
+
```
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# 개발 핸드오프 — ARCHITECTURE.md + setup.sh
|
|
2
|
+
|
|
3
|
+
## 📄 ARCHITECTURE.md 템플릿
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# [제품명] — 기술 아키텍처
|
|
7
|
+
|
|
8
|
+
## 디렉토리 구조
|
|
9
|
+
|
|
10
|
+
[기술 스택에 맞는 디렉토리 구조 생성]
|
|
11
|
+
|
|
12
|
+
## 데이터베이스 설계
|
|
13
|
+
|
|
14
|
+
[PRD의 DB Schema에서 통합 — CREATE TABLE SQL 또는 ORM 모델 정의로 변환]
|
|
15
|
+
|
|
16
|
+
### ER 다이어그램
|
|
17
|
+
|
|
18
|
+
[Mermaid erDiagram]
|
|
19
|
+
|
|
20
|
+
### 주요 테이블 설명
|
|
21
|
+
|
|
22
|
+
| 테이블 | 설명 | 핵심 필드 | 인덱스 권장사항 |
|
|
23
|
+
|--------|------|----------|--------------|
|
|
24
|
+
| | | | |
|
|
25
|
+
|
|
26
|
+
## API 설계
|
|
27
|
+
|
|
28
|
+
[User Stories와 기능 상세를 기반으로 RESTful API 엔드포인트 또는 GraphQL 스키마 정의]
|
|
29
|
+
|
|
30
|
+
### 엔드포인트 목록
|
|
31
|
+
|
|
32
|
+
| 메서드 | 경로 | 설명 | 대응 Task |
|
|
33
|
+
|--------|------|------|----------|
|
|
34
|
+
| GET | /api/v1/[resource] | [설명] | T1.1 |
|
|
35
|
+
| POST | /api/v1/[resource] | [설명] | T1.2 |
|
|
36
|
+
|
|
37
|
+
### 인증
|
|
38
|
+
|
|
39
|
+
[JWT / Session / OAuth 등]
|
|
40
|
+
|
|
41
|
+
## 서드파티 서비스
|
|
42
|
+
|
|
43
|
+
| 서비스 | 용도 | 대응 기능 |
|
|
44
|
+
|--------|------|----------|
|
|
45
|
+
| | | |
|
|
46
|
+
|
|
47
|
+
## 보안 아키텍처
|
|
48
|
+
|
|
49
|
+
### CORS 설정
|
|
50
|
+
|
|
51
|
+
| 설정 | 값 | 비고 |
|
|
52
|
+
|------|---|------|
|
|
53
|
+
| 허용 오리진 | [프로덕션 도메인, localhost:port] | 와일드카드 * 사용 금지 |
|
|
54
|
+
| 허용 메서드 | GET, POST, PUT, DELETE | 실제 API 니즈 기반 |
|
|
55
|
+
| 허용 헤더 | Content-Type, Authorization | |
|
|
56
|
+
| Credentials | true/false | 인증 방식에 따라 |
|
|
57
|
+
|
|
58
|
+
### 보안 헤더
|
|
59
|
+
|
|
60
|
+
[제품 요구사항에 맞게 references/08-security-checklist.md §5에서 해당 헤더 선택]
|
|
61
|
+
|
|
62
|
+
### Rate Limiting 전략
|
|
63
|
+
|
|
64
|
+
| 엔드포인트 유형 | 제한 | 식별 방법 |
|
|
65
|
+
|---------------|------|----------|
|
|
66
|
+
| 일반 API | [X] req/min | IP + User ID |
|
|
67
|
+
| 로그인/등록 | [X] req/min | IP |
|
|
68
|
+
| 파일 업로드 | [X] req/min | User ID |
|
|
69
|
+
|
|
70
|
+
### 민감한 데이터 처리
|
|
71
|
+
|
|
72
|
+
- 시크릿 관리: [.env + 플랫폼 환경 변수 / Secrets Manager]
|
|
73
|
+
- 로깅 규칙: 비밀번호, 토큰, 개인 데이터는 절대 로그하지 않음
|
|
74
|
+
- 데이터 암호화: [전송 중 TLS / 저장 시 암호화 요구사항]
|
|
75
|
+
|
|
76
|
+
> 전체 보안 체크리스트는 `references/08-security-checklist.md` 참조
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 📄 .gitignore 템플릿
|
|
82
|
+
|
|
83
|
+
```gitignore
|
|
84
|
+
# 환경 변수 및 시크릿
|
|
85
|
+
.env
|
|
86
|
+
.env.local
|
|
87
|
+
.env.*.local
|
|
88
|
+
*.pem
|
|
89
|
+
*.key
|
|
90
|
+
|
|
91
|
+
# 제품 기획 진행 상황 (민감한 비즈니스 정보 포함 가능)
|
|
92
|
+
.product-playbook-progress.md
|
|
93
|
+
|
|
94
|
+
# IDE 및 OS
|
|
95
|
+
.idea/
|
|
96
|
+
.vscode/
|
|
97
|
+
*.swp
|
|
98
|
+
.DS_Store
|
|
99
|
+
Thumbs.db
|
|
100
|
+
|
|
101
|
+
# 의존성
|
|
102
|
+
node_modules/
|
|
103
|
+
__pycache__/
|
|
104
|
+
*.pyc
|
|
105
|
+
venv/
|
|
106
|
+
|
|
107
|
+
# 빌드 출력
|
|
108
|
+
dist/
|
|
109
|
+
build/
|
|
110
|
+
.next/
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 📄 setup.sh 템플릿
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
#!/bin/bash
|
|
119
|
+
# [제품명] — 프로젝트 초기화 스크립트
|
|
120
|
+
# 사용법: chmod +x scripts/setup.sh && ./scripts/setup.sh
|
|
121
|
+
|
|
122
|
+
set -e
|
|
123
|
+
|
|
124
|
+
echo "🚀 [제품명] 초기화 중..."
|
|
125
|
+
|
|
126
|
+
# ===== 사전 요구사항 확인 =====
|
|
127
|
+
command -v [node/python/etc] >/dev/null 2>&1 || { echo "❌ [런타임]이 필요합니다"; exit 1; }
|
|
128
|
+
|
|
129
|
+
# ===== 의존성 설치 =====
|
|
130
|
+
echo "📦 의존성 설치 중..."
|
|
131
|
+
[npm install / pip install -r requirements.txt / etc]
|
|
132
|
+
|
|
133
|
+
# ===== 환경 설정 =====
|
|
134
|
+
if [ ! -f .env ]; then
|
|
135
|
+
echo "📝 .env 파일 생성 중..."
|
|
136
|
+
cp .env.example .env
|
|
137
|
+
echo "⚠️ .env를 편집하여 필요한 환경 변수를 입력해 주세요"
|
|
138
|
+
fi
|
|
139
|
+
|
|
140
|
+
# ===== 데이터베이스 초기화 =====
|
|
141
|
+
echo "🗄️ 데이터베이스 초기화 중..."
|
|
142
|
+
[migration commands]
|
|
143
|
+
|
|
144
|
+
echo ""
|
|
145
|
+
echo "✅ 초기화 완료!"
|
|
146
|
+
echo ""
|
|
147
|
+
echo "다음 단계:"
|
|
148
|
+
echo " 1. .env를 편집하여 환경 변수 입력"
|
|
149
|
+
echo " 2. 개발 서버 시작: [시작 명령]"
|
|
150
|
+
echo " 3. 개발 시작: claude \"CLAUDE.md와 TASKS.md를 읽고, Phase 1 실행 시작\""
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 사용자 가이드 텍스트
|
|
156
|
+
|
|
157
|
+
### Claude Chat / Cowork에서
|
|
158
|
+
|
|
159
|
+
핸드오프 패키지 작성 후 다음 가이드를 표시하세요:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
📦 개발 핸드오프 패키지가 준비되었습니다! 다음 파일들이 포함됩니다:
|
|
163
|
+
|
|
164
|
+
CLAUDE.md → Claude Code의 프로젝트 메모리 (제품 컨텍스트 + 기술 사양)
|
|
165
|
+
TASKS.md → 개발 Task 목록 (4 Phase, 총 [N]개 Task)
|
|
166
|
+
TICKETS.md → 티켓 목록 ([N]개 티켓, Jira/Asana/Linear에서 바로 생성 가능)
|
|
167
|
+
docs/PRD.md → 전체 PRD
|
|
168
|
+
docs/ARCHITECTURE.md → 기술 아키텍처 (DB schema + API + 디렉토리 구조)
|
|
169
|
+
docs/PRODUCT-SPEC.md → 제품 스펙 요약
|
|
170
|
+
scripts/setup.sh → 원클릭 초기화 스크립트
|
|
171
|
+
|
|
172
|
+
🔗 개발 시작 방법:
|
|
173
|
+
|
|
174
|
+
1. 다운로드하여 프로젝트 폴더에 압축 해제
|
|
175
|
+
2. 터미널을 열고 프로젝트 폴더로 이동
|
|
176
|
+
3. Claude Code 실행:
|
|
177
|
+
$ claude
|
|
178
|
+
4. Claude Code에게 시작 명령:
|
|
179
|
+
> CLAUDE.md와 TASKS.md를 읽고, Phase 0 실행 시작
|
|
180
|
+
|
|
181
|
+
💡 팁:
|
|
182
|
+
- Claude Code는 자동으로 CLAUDE.md를 읽으므로, 이미 전체 제품 컨텍스트를 알고 있습니다
|
|
183
|
+
- 각 Phase 완료 후, 다음 Phase로 진행할지 물어봅니다
|
|
184
|
+
- 기능 범위를 조정하려면 TASKS.md를 직접 편집하세요
|
|
185
|
+
- CLAUDE.md의 "명시적 제외" 목록이 Claude Code가 범위 밖으로 개발하는 것을 방지합니다
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### 출력 전 최종 확인
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
개발 핸드오프 패키지를 작성하기 전에 몇 가지 확인이 필요합니다:
|
|
192
|
+
|
|
193
|
+
1. 기술 스택: [확인됨 / 확인 필요]
|
|
194
|
+
2. 제품명 (프로젝트 폴더 이름용): [확인됨 / 확인 필요]
|
|
195
|
+
3. 다른 기술 제약이나 선호사항이 있나요?
|
|
196
|
+
- 예: 특정 ORM 사용 필수, 특정 브라우저 지원, 기존 CI/CD 등
|
|
197
|
+
```
|