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,66 @@
|
|
|
1
|
+
# 📦 完整模式步驟序列(共 20 步 + 最終產出)
|
|
2
|
+
|
|
3
|
+
> 此檔案為完整模式的權威步驟定義。由 SKILL.md 核心派發載入。
|
|
4
|
+
|
|
5
|
+
## 步驟序列
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Phase 0:前置
|
|
9
|
+
S1. 機會評估 + DHM → 讀取 references/00-opportunity-check.md
|
|
10
|
+
S2. Strategy Blocks + Rumelt 策略內核 → 讀取 references/01-strategy.md
|
|
11
|
+
|
|
12
|
+
Phase 1:Discovery
|
|
13
|
+
S3. Persona Table → 讀取 references/02a-persona.md
|
|
14
|
+
S4. Persona 卡片 → 讀取 references/02a-persona.md
|
|
15
|
+
S5. JTBD 分析 → 讀取 references/02b-jtbd.md
|
|
16
|
+
S6. 機會解法樹 OST → 讀取 references/02c-ost-journey.md
|
|
17
|
+
S7. User Journey Map → 讀取 references/02c-ost-journey.md
|
|
18
|
+
|
|
19
|
+
Phase 2:Define
|
|
20
|
+
S8. 痛點彙整表 → 讀取 references/03-define.md
|
|
21
|
+
S9. April Dunford 定位 → 讀取 references/03-define.md
|
|
22
|
+
S10. HMW 問題轉化 → 讀取 references/03-define.md
|
|
23
|
+
S11. 機會評估表 → 讀取 references/03-define.md
|
|
24
|
+
|
|
25
|
+
Phase 3:Develop
|
|
26
|
+
S12. PR-FAQ → 讀取 references/04a-prfaq.md
|
|
27
|
+
S13. 平行原型 → 讀取 references/04b-solutions.md
|
|
28
|
+
S14. Pre-mortem → 讀取 references/04b-solutions.md
|
|
29
|
+
S15. GEM + RICE 優先排序 → 讀取 references/04b-solutions.md
|
|
30
|
+
S16. User Story → 讀取 references/04b-solutions.md
|
|
31
|
+
S17. MVP + Not Doing List → 讀取 references/04c-mvp.md
|
|
32
|
+
|
|
33
|
+
Phase 4:Deliver
|
|
34
|
+
S18. North Star + 三層訊號 + Aha Moment → 讀取 references/05a-northstar-aha.md
|
|
35
|
+
S19. PMF 等級判定 + GTM 策略 + 商業模式 → 讀取 references/05b-pmf-gtm.md
|
|
36
|
+
S20. 假設驗證計畫 → 讀取 references/05c-validation-spec.md
|
|
37
|
+
────
|
|
38
|
+
最終產出 → 產品規格摘要(references/05c-validation-spec.md → 4.6)+ 最佳切入點分析
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
> 完整模式中 4.1 Empowered Teams 在產出對象為老闆/跨部門時加入 S18 之前,否則跳過。
|
|
42
|
+
|
|
43
|
+
## Reference 載入指示
|
|
44
|
+
|
|
45
|
+
進入各步驟時,僅讀取對應的 reference 檔案(不要預先全部載入):
|
|
46
|
+
|
|
47
|
+
| 步驟 | Reference 檔案 |
|
|
48
|
+
|------|---------------|
|
|
49
|
+
| S1 | `references/00-opportunity-check.md` |
|
|
50
|
+
| S2 | `references/01-strategy.md` |
|
|
51
|
+
| S3-S4 | `references/02a-persona.md` |
|
|
52
|
+
| S5 | `references/02b-jtbd.md` |
|
|
53
|
+
| S6-S7 | `references/02c-ost-journey.md` |
|
|
54
|
+
| S8-S11 | `references/03-define.md` |
|
|
55
|
+
| S12 | `references/04a-prfaq.md` |
|
|
56
|
+
| S13-S16 | `references/04b-solutions.md` |
|
|
57
|
+
| S17 | `references/04c-mvp.md` |
|
|
58
|
+
| S18 | `references/05a-northstar-aha.md` |
|
|
59
|
+
| S19 | `references/05b-pmf-gtm.md` |
|
|
60
|
+
| S20 + 最終產出 | `references/05c-validation-spec.md` |
|
|
61
|
+
|
|
62
|
+
## 最終產出格式
|
|
63
|
+
|
|
64
|
+
**最佳切入點分析**(完整邏輯鏈)+ **產品規格摘要**
|
|
65
|
+
|
|
66
|
+
完成後,依 `references/rules-end-of-flow.md` 執行流程結束規則。
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
# Document Import & Parsing Rules
|
|
2
|
+
|
|
3
|
+
> Loaded when the user uploads a PDF / DOCX / PPTX file, or triggers `/parse [file]`.
|
|
4
|
+
> On first use, load `rules-document-tools.md` first to confirm tools are installed.
|
|
5
|
+
> This rule works in conjunction with `rules-file-integration.md` — that file defines "when to trigger," this file defines "how to parse."
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Parsing Goal
|
|
10
|
+
|
|
11
|
+
Convert any format of input document into **structured Markdown** for use in subsequent flows:
|
|
12
|
+
- Feature Extension / Revision mode S1 context collection
|
|
13
|
+
- Incremental update source document baseline
|
|
14
|
+
- General document content extraction
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## PDF Parsing: Three-Layer Strategy + Per-Page Detection
|
|
19
|
+
|
|
20
|
+
### Overview
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
Input PDF
|
|
24
|
+
│
|
|
25
|
+
▼
|
|
26
|
+
pymupdf per-page text extraction (zero cost)
|
|
27
|
+
│
|
|
28
|
+
├── Page text > 30 characters → ✅ Convert directly to Markdown (Layer 1)
|
|
29
|
+
│
|
|
30
|
+
└── Page text ≤ 30 characters (blank / vector paths / scanned)
|
|
31
|
+
│
|
|
32
|
+
├── Default → Claude Vision semantic parsing (Layer 2)
|
|
33
|
+
│
|
|
34
|
+
└── Vision unavailable / Token budget insufficient → Tesseract OCR (Layer 3)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Step 1: Per-Page Type Detection
|
|
38
|
+
|
|
39
|
+
**Key principle**: Detect at the "page" level, not the entire document. A single PDF may mix digital text pages and scanned image pages.
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
import fitz # pymupdf
|
|
43
|
+
|
|
44
|
+
doc = fitz.open(pdf_path)
|
|
45
|
+
total_pages = len(doc)
|
|
46
|
+
page_results = {}
|
|
47
|
+
|
|
48
|
+
for i in range(total_pages):
|
|
49
|
+
page = doc[i]
|
|
50
|
+
text = page.get_text("text").strip()
|
|
51
|
+
|
|
52
|
+
if len(text) > 30:
|
|
53
|
+
# Layer 1: Digital text, extract directly
|
|
54
|
+
page_results[i] = {"type": "digital", "text": text}
|
|
55
|
+
else:
|
|
56
|
+
# Needs Vision or OCR
|
|
57
|
+
page_results[i] = {"type": "needs_vision", "text": None}
|
|
58
|
+
|
|
59
|
+
digital_count = sum(1 for p in page_results.values() if p["type"] == "digital")
|
|
60
|
+
vision_count = total_pages - digital_count
|
|
61
|
+
|
|
62
|
+
print(f"PDF analysis: {total_pages} pages, {digital_count} directly extractable, {vision_count} require visual parsing")
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Step 2: Large File Handling Strategy
|
|
66
|
+
|
|
67
|
+
| Condition | Strategy |
|
|
68
|
+
|-----------|----------|
|
|
69
|
+
| All pages are digital (vision_count = 0) | Extract all pages directly, zero cost |
|
|
70
|
+
| vision_count ≤ 20 | Read all pages needing visual parsing at once with Claude Vision |
|
|
71
|
+
| vision_count > 20 | Process in batches (≤ 20 pages each), merge results |
|
|
72
|
+
| Total pages > 50 and vision_count > 20 | Ask the user whether to parse the full document or specify a page range |
|
|
73
|
+
|
|
74
|
+
**Large file (>50 pages) user confirmation prompt**:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
📄 This PDF has {total_pages} pages:
|
|
78
|
+
• {digital_count} pages can be directly extracted (free)
|
|
79
|
+
• {vision_count} pages require visual parsing (consumes Vision tokens)
|
|
80
|
+
|
|
81
|
+
Please choose:
|
|
82
|
+
1️⃣ Full document parsing (complete but consumes more tokens)
|
|
83
|
+
2️⃣ Parse specific pages only (enter page ranges, e.g. 1-10,15,20-25)
|
|
84
|
+
3️⃣ Extract only directly extractable pages (skip scanned/vector pages)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Step 3: Layer 1 — pymupdf Direct Extraction
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
def extract_digital_pages(doc, page_results):
|
|
91
|
+
"""Extract all digital text pages"""
|
|
92
|
+
markdown_parts = []
|
|
93
|
+
for i, result in sorted(page_results.items()):
|
|
94
|
+
if result["type"] == "digital":
|
|
95
|
+
markdown_parts.append(f"<!-- Page {i+1} -->\n{result['text']}")
|
|
96
|
+
return "\n\n".join(markdown_parts)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Step 4: Layer 2 — Claude Vision Semantic Parsing
|
|
100
|
+
|
|
101
|
+
For `needs_vision` type pages, first render to PNG with pymupdf, then read with Claude's Read tool.
|
|
102
|
+
|
|
103
|
+
**Render to image**:
|
|
104
|
+
```python
|
|
105
|
+
def render_pages_to_png(doc, page_indices, dpi=300):
|
|
106
|
+
"""Render specified pages to PNG"""
|
|
107
|
+
output_files = []
|
|
108
|
+
for i in page_indices:
|
|
109
|
+
page = doc[i]
|
|
110
|
+
pix = page.get_pixmap(dpi=dpi)
|
|
111
|
+
output_path = f"/tmp/pdf-page-{i+1:04d}.png"
|
|
112
|
+
pix.save(output_path)
|
|
113
|
+
output_files.append((i, output_path))
|
|
114
|
+
return output_files
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Claude Vision parsing prompt**:
|
|
118
|
+
|
|
119
|
+
For each page requiring visual parsing (or batch), after reading the PNG with the Read tool, convert using the following prompt:
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
You are reading page {page_num}/{total_pages} of a PDF document.
|
|
123
|
+
Please convert the content of this page precisely into Markdown format.
|
|
124
|
+
|
|
125
|
+
Strict rules:
|
|
126
|
+
1. Tables → Markdown table (preserve all columns, rows, and alignment)
|
|
127
|
+
2. Headings → # / ## / ### corresponding to original level
|
|
128
|
+
3. Numbered lists → 1. 2. 3. (preserve original numbering)
|
|
129
|
+
4. Bullet points → - or •
|
|
130
|
+
5. Bold/Italic → **bold** / *italic*
|
|
131
|
+
6. Charts/Images → > [Chart: brief description]
|
|
132
|
+
7. Headers, footers, page numbers → Ignore
|
|
133
|
+
8. Numbers, dates, names, account numbers → Must be 100% accurate, do not guess
|
|
134
|
+
9. Do not add content not present in the original
|
|
135
|
+
10. Do not translate — preserve the original language
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
> **Why this is better than OCR**: Claude understands the "semantic structure" of tables (which row is the header, which columns are aligned), whereas Tesseract can only recognize characters one by one and then attempt to reconstruct tables with rules, which often fails.
|
|
139
|
+
|
|
140
|
+
### Step 5: Layer 3 — Tesseract OCR Fallback
|
|
141
|
+
|
|
142
|
+
Use only in the following situations:
|
|
143
|
+
- User explicitly requests token conservation
|
|
144
|
+
- Claude Vision is unavailable (API limitations, etc.)
|
|
145
|
+
- Offline environment
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
import subprocess
|
|
149
|
+
from PIL import Image
|
|
150
|
+
|
|
151
|
+
def ocr_page(png_path, lang="chi_tra+eng"):
|
|
152
|
+
"""Tesseract OCR single page"""
|
|
153
|
+
# macOS tesseract may not read PNG directly, convert to TIFF or use stdin
|
|
154
|
+
tiff_path = png_path.replace('.png', '.tiff')
|
|
155
|
+
Image.open(png_path).save(tiff_path)
|
|
156
|
+
|
|
157
|
+
result = subprocess.run(
|
|
158
|
+
['tesseract', 'stdin', 'stdout', '-l', lang],
|
|
159
|
+
stdin=open(tiff_path, 'rb'),
|
|
160
|
+
capture_output=True, text=True, timeout=120
|
|
161
|
+
)
|
|
162
|
+
return result.stdout
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Tesseract notes (from practical experience)**:
|
|
166
|
+
- On macOS, tesseract may not read PNG files directly — use `stdin` pipe or convert to TIFF first
|
|
167
|
+
- Recommended resolution: 300dpi
|
|
168
|
+
- `chi_tra+eng` language pack recognizes both Traditional Chinese and English simultaneously
|
|
169
|
+
- OCR results need post-processing: merge broken lines, repair table structure
|
|
170
|
+
|
|
171
|
+
### Step 6: Merge All Pages
|
|
172
|
+
|
|
173
|
+
```python
|
|
174
|
+
def merge_all_pages(digital_md, vision_md_list):
|
|
175
|
+
"""Merge all pages' Markdown in page order"""
|
|
176
|
+
all_pages = {}
|
|
177
|
+
# digital pages
|
|
178
|
+
for page_num, md in digital_md.items():
|
|
179
|
+
all_pages[page_num] = md
|
|
180
|
+
# vision/ocr pages
|
|
181
|
+
for page_num, md in vision_md_list.items():
|
|
182
|
+
all_pages[page_num] = md
|
|
183
|
+
|
|
184
|
+
# Sort by page number and merge
|
|
185
|
+
final_md = []
|
|
186
|
+
for i in sorted(all_pages.keys()):
|
|
187
|
+
final_md.append(all_pages[i])
|
|
188
|
+
|
|
189
|
+
return "\n\n---\n\n".join(final_md)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Step 7: Output and Notify User
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
📄 PDF parsing complete:
|
|
196
|
+
• Total pages: {total_pages}
|
|
197
|
+
• Direct extraction: {digital_count} pages (pymupdf)
|
|
198
|
+
• Visual parsing: {vision_count} pages (Claude Vision)
|
|
199
|
+
• Output: {output_path} (Markdown, {word_count} words)
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## DOCX Parsing
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
pandoc "{input_path}" -t markdown -o "/tmp/parsed-{timestamp}.md" --wrap=none
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**Post-processing**:
|
|
211
|
+
- Remove excess blank lines generated by Pandoc
|
|
212
|
+
- Verify table formatting is correct
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## PPTX Parsing
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
pandoc "{input_path}" -t markdown -o "/tmp/parsed-{timestamp}.md" --wrap=none
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
> Pandoc converts each slide into a `##` heading section.
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## HTML Parsing
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
pandoc "{input_path}" -f html -t markdown -o "/tmp/parsed-{timestamp}.md" --wrap=none
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Image Parsing
|
|
235
|
+
|
|
236
|
+
Use the Claude Read tool directly to read the image, then convert to Markdown using the Vision parsing prompt.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Coordination with rules-file-integration.md
|
|
241
|
+
|
|
242
|
+
When `rules-file-integration.md` detects the following scenarios, this rule is loaded:
|
|
243
|
+
|
|
244
|
+
| Scenario | Action |
|
|
245
|
+
|----------|--------|
|
|
246
|
+
| User uploads PDF during Feature Extension S1 | Load this rule → Parse PDF → Extract existing system context |
|
|
247
|
+
| User uploads old PRD during Revision S1 | Load this rule → Parse PDF → Use as revision baseline |
|
|
248
|
+
| User uses `/parse` command | Load this rule → Parse specified file → Output Markdown |
|
|
249
|
+
| User uploads market report PDF | Load this rule → Extract key information → Integrate into corresponding step |
|
|
250
|
+
|
|
251
|
+
### Source Document Identification
|
|
252
|
+
|
|
253
|
+
After parsing is complete, if the file is identified as a "source document" (PRD, spec, etc.), automatically mark it:
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
📎 Source document detected — final output will be an incremental update based on this file.
|
|
257
|
+
Document structure: {section_count} sections, {table_count} tables
|
|
258
|
+
Format conventions: [identified formatting characteristics]
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
The document structure is recorded for use by `rules-export-document.md` during final output.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# 🏢 B2B / B2C 差異化調整
|
|
2
|
+
|
|
3
|
+
> 確認產品類型後載入此檔案。Claude 自動在各框架中套用以下調整。
|
|
4
|
+
|
|
5
|
+
| 框架 | B2C 調整 | B2B 調整 |
|
|
6
|
+
|------|---------|---------|
|
|
7
|
+
| **Persona** | 以個人動機/習慣分群 | 區分「購買決策者」和「實際使用者」兩類 Persona;加入「組織規模」「採購流程」欄位 |
|
|
8
|
+
| **JTBD** | 聚焦個人情感性和社交性工作 | 加入「組織層級工作」:幫公司達成什麼目標?個人在組織中完成什麼工作? |
|
|
9
|
+
| **PMF 判斷** | 以 DAU/MAU、留存率、Sean Ellis Score 為主 | 以「付費客戶數 + 擴展率 + NPS」為主;Level 1 = 3-5 個付費客戶 |
|
|
10
|
+
| **Aha Moment** | 首次使用中體驗到核心價值 | 可能在 Onboarding/試用期才出現;需設計「Time-to-Value」指標 |
|
|
11
|
+
| **MVP** | 可以是一個完整的輕量產品 | 可能需要是一個 Pilot(針對特定客戶的客製化部署) |
|
|
12
|
+
| **GTM** | 以產品驅動增長(PLG)或社群為主 | 以銷售驅動或合作夥伴渠道為主 |
|
|
13
|
+
| **定價** | Freemium / Subscription / 按用量 | 年度合約 / 按座位 / 按用量 / 客製報價 |
|
|
14
|
+
| **North Star** | 用戶活躍度或核心動作完成次數 | ARR、Net Revenue Retention、Active Accounts |
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# 🔁 進度持久化與中斷恢復
|
|
2
|
+
|
|
3
|
+
> 使用者說「暫停」「存檔」或 skill 啟動時檢查進度時載入。
|
|
4
|
+
|
|
5
|
+
## 進度檔案格式
|
|
6
|
+
|
|
7
|
+
每完成一個步驟,在專案目錄下建立或更新 `.product-playbook-progress.md`:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
# Product Playbook 進度存檔
|
|
11
|
+
|
|
12
|
+
- 模式:[快速模式 / 完整模式 / ...]
|
|
13
|
+
- 產品類型:[B2C / B2B / ...]
|
|
14
|
+
- 產品描述:[使用者的產品描述]
|
|
15
|
+
- 當前進度:S[X] / S[Y]
|
|
16
|
+
- 最後更新:[時間戳]
|
|
17
|
+
|
|
18
|
+
## 已完成步驟
|
|
19
|
+
|
|
20
|
+
### S1:[步驟名稱] ✅
|
|
21
|
+
[該步驟的核心產出,保留足夠細節以便恢復時不需要重做]
|
|
22
|
+
|
|
23
|
+
### S2:[步驟名稱] ✅
|
|
24
|
+
[同上]
|
|
25
|
+
|
|
26
|
+
## 待執行步驟
|
|
27
|
+
- S3:[步驟名稱]
|
|
28
|
+
- S4:[步驟名稱]
|
|
29
|
+
- ...
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 功能擴充模式範例
|
|
33
|
+
```markdown
|
|
34
|
+
模式:功能擴充
|
|
35
|
+
步驟:S2/S4
|
|
36
|
+
S1:問題 + 現有系統情境 ✅
|
|
37
|
+
S2:三個平行解法 + AI 推薦 ▶️
|
|
38
|
+
S3:風險評估 ⬜
|
|
39
|
+
S4:執行範圍 ⬜
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 觸發規則
|
|
43
|
+
|
|
44
|
+
1. **自動儲存**:每個步驟完成並獲得使用者確認後,立即更新進度檔案
|
|
45
|
+
2. **啟動時檢查**:skill 觸發時,先檢查是否存在 `.product-playbook-progress.md`。若存在,顯示:
|
|
46
|
+
```
|
|
47
|
+
偵測到未完成的產品規劃進度([模式名稱],S[X]/S[Y]):
|
|
48
|
+
1️⃣ 繼續 — 從 S[X] 接續
|
|
49
|
+
2️⃣ 重新開始 — 清除舊進度,重頭來過
|
|
50
|
+
(輸入 1 或 2)
|
|
51
|
+
```
|
|
52
|
+
3. **暫停指令**:使用者說「暫停」「先做別的」「存檔」時,確認進度檔案已更新,回覆:「進度已存檔至 .product-playbook-progress.md(S[X]/S[Y])。下次在此專案啟動 skill 時會自動偵測。」
|
|
53
|
+
4. **完成時清理**:流程全部完成並產出最終文件後,詢問使用者是否刪除進度檔案
|
|
54
|
+
6. **版控提醒**:首次建立 `.product-playbook-progress.md` 時,提醒使用者:「⚠️ 建議將 `.product-playbook-progress.md` 加入 `.gitignore`,此檔案可能包含敏感的產品策略資訊。」
|
|
55
|
+
5. **中斷存檔**:當流程進行中偵測到無關 prompt 時(見 SKILL.md 流程中斷處理規則),即使當前步驟尚未完成,也必須存檔。存檔格式在當前步驟標記為 `🔶`(進行中)而非 `✅`,並保存已產出的部分內容:
|
|
56
|
+
```
|
|
57
|
+
### S[X]:[步驟名稱] 🔶(進行中,部分完成)
|
|
58
|
+
[已產出的部分內容]
|
|
59
|
+
⚠️ 此步驟尚未完成,恢復時需從此處繼續
|
|
60
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 🚀 快速模式步驟序列(共 3 步 + 最終產出)
|
|
2
|
+
|
|
3
|
+
> 此檔案為快速模式的權威步驟定義。由 SKILL.md 核心派發載入。
|
|
4
|
+
|
|
5
|
+
## 步驟序列
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
S1. JTBD 陳述 → 讀取 references/02b-jtbd.md
|
|
9
|
+
S2. PR-FAQ → 讀取 references/04a-prfaq.md
|
|
10
|
+
S3. North Star Metric + Aha Moment → 讀取 references/05a-northstar-aha.md
|
|
11
|
+
────
|
|
12
|
+
最終產出 → 一頁式方向摘要
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Reference 載入指示
|
|
16
|
+
|
|
17
|
+
進入各步驟時,讀取對應的 reference 檔案:
|
|
18
|
+
|
|
19
|
+
| 步驟 | Reference 檔案 |
|
|
20
|
+
|------|---------------|
|
|
21
|
+
| S1 | `references/02b-jtbd.md` |
|
|
22
|
+
| S2 | `references/04a-prfaq.md` |
|
|
23
|
+
| S3 | `references/05a-northstar-aha.md` |
|
|
24
|
+
|
|
25
|
+
## 最終產出格式
|
|
26
|
+
|
|
27
|
+
**一頁式方向摘要**:問題 → 解法 → 成功定義,三段式結構,適合快速簡報或同步用。
|
|
28
|
+
|
|
29
|
+
完成後,依 `references/rules-end-of-flow.md` 執行流程結束規則。快速模式只問是否需要簡報,不問 PRD 和開發交接包(內容不夠完整)。
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# 🔄 改版模式步驟序列(共 12 步 + 最終產出)
|
|
2
|
+
|
|
3
|
+
> 此檔案為改版模式的權威步驟定義。由 SKILL.md 核心派發載入。
|
|
4
|
+
|
|
5
|
+
## 步驟序列
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Phase 0:現況分析
|
|
9
|
+
S1. 既有產品現況回顧(用戶數據概覽 + 核心指標 + 已知問題 + 安全現況)
|
|
10
|
+
S2. 現有用戶 JTBD 重新檢驗(哪些 Job 做得好?哪些做不好?)
|
|
11
|
+
|
|
12
|
+
Phase 1:問題收斂
|
|
13
|
+
S3. 用戶痛點收集(留存/流失分析 + 用戶反饋彙整 + 行為數據)
|
|
14
|
+
S4. 痛點彙整表 → 讀取 references/03-define.md → 2.1
|
|
15
|
+
S5. Positioning 重新評估 → 讀取 references/03-define.md → 2.2(焦點:定位是否需要調整?)
|
|
16
|
+
S6. HMW 問題轉化 → 讀取 references/03-define.md → 2.3
|
|
17
|
+
S7. 機會評估表 → 讀取 references/03-define.md → 2.4
|
|
18
|
+
|
|
19
|
+
Phase 2:解法設計
|
|
20
|
+
S8. PR-FAQ → 讀取 references/04a-prfaq.md(描述改版後的體驗)
|
|
21
|
+
S9. Pre-mortem → 讀取 references/04b-solutions.md → 3.3
|
|
22
|
+
S10. MVP 範圍 + Not Doing List → 讀取 references/04c-mvp.md(焦點:改什麼 / 不改什麼)
|
|
23
|
+
|
|
24
|
+
Phase 3:驗證
|
|
25
|
+
S11. North Star + Aha Moment → 讀取 references/05a-northstar-aha.md(比較改版前後指標)
|
|
26
|
+
S12. 假設驗證計畫 → 讀取 references/05c-validation-spec.md
|
|
27
|
+
────
|
|
28
|
+
最終產出 → 產品規格摘要(改版版)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### S1 前置:產品上下文載入
|
|
32
|
+
|
|
33
|
+
進入 S1 前,讀取 `references/rules-context.md` 並檢查 `.product-context.md`:
|
|
34
|
+
|
|
35
|
+
- **有完整上下文(情境 1)**:自動帶入 PMF 等級、North Star、已知痛點、安全現況、近 3 筆 Decision History。S1 引導改為**差異式**:「上次評估時,你的 PMF 等級為 [X],北極星指標為 [Y]。目前這些有變化嗎?最新的 DAU/MAU 和留存率是多少?」— 已有的歷史決策和已知痛點不需要重新收集
|
|
36
|
+
- **無上下文(情境 2)**:觸發 Context Bootstrap(`rules-context.md` Section 4,Round 1 + 3),完成後再進入下方標準 S1 數據收集
|
|
37
|
+
- **部分上下文(情境 3)**:從 Decision History 帶入功能變更歷史(知道哪些模組被改過、有哪些風險被識別過),但需詢問整體產品策略和指標(之前只做過功能擴充,缺全局視角)
|
|
38
|
+
|
|
39
|
+
### S1 標準引導
|
|
40
|
+
|
|
41
|
+
> 改版模式的 S1 會主動詢問使用者提供既有產品數據:DAU/MAU、留存率、主要用戶反饋、過去版本的關鍵決策等。若 context 已預填部分答案,改為確認而非重新收集。
|
|
42
|
+
> S1 同時收集安全現況:現有認證/授權機制、已知安全漏洞或技術債、近期安全事件。這些資訊會影響改版的風險評估和 Pre-mortem。
|
|
43
|
+
|
|
44
|
+
### 快速路徑
|
|
45
|
+
|
|
46
|
+
當使用者在 S1 已提供充分數據(含用戶反饋、指標、痛點),S4-S7(痛點→定位→HMW→機會評估)可在單次對話中連續產出,中間只需一次確認而非四次。觸發條件:S3 收集到的痛點清單已有明確的優先級和數據支持。Hard Gate 規則不變 — 每個步驟的產出仍須完整呈現,只是確認節奏加快。
|
|
47
|
+
|
|
48
|
+
## Reference 載入指示
|
|
49
|
+
|
|
50
|
+
| 步驟 | Reference 檔案 |
|
|
51
|
+
|------|---------------|
|
|
52
|
+
| S1-S3 | 無需外部 reference(直接引導使用者提供數據) |
|
|
53
|
+
| S4-S7 | `references/03-define.md` |
|
|
54
|
+
| S8 | `references/04a-prfaq.md` |
|
|
55
|
+
| S9 | `references/04b-solutions.md` |
|
|
56
|
+
| S10 | `references/04c-mvp.md` |
|
|
57
|
+
| S11 | `references/05a-northstar-aha.md` |
|
|
58
|
+
| S12 + 最終產出 | `references/05c-validation-spec.md` |
|
|
59
|
+
|
|
60
|
+
## 最終產出格式
|
|
61
|
+
|
|
62
|
+
**改版產品規格摘要**:改版前後對照 + 改什麼/不改什麼 + 成功指標
|
|
63
|
+
|
|
64
|
+
完成後,依 `references/rules-end-of-flow.md` 執行流程結束規則。
|