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.
Files changed (291) hide show
  1. package/LICENSE +21 -0
  2. package/README.es.md +518 -0
  3. package/README.ja.md +519 -0
  4. package/README.ko.md +518 -0
  5. package/README.md +520 -0
  6. package/README.zh-CN.md +518 -0
  7. package/README.zh-TW.md +518 -0
  8. package/SKILL.md +244 -0
  9. package/commands/product-build.md +13 -0
  10. package/commands/product-dev.md +21 -0
  11. package/commands/product-full.md +13 -0
  12. package/commands/product-prd.md +14 -0
  13. package/commands/product-quick.md +13 -0
  14. package/commands/product-report.md +12 -0
  15. package/commands/product-revision.md +13 -0
  16. package/i18n/en/SKILL.md +245 -0
  17. package/i18n/en/commands/product-build.md +13 -0
  18. package/i18n/en/commands/product-dev.md +21 -0
  19. package/i18n/en/commands/product-full.md +13 -0
  20. package/i18n/en/commands/product-prd.md +14 -0
  21. package/i18n/en/commands/product-quick.md +13 -0
  22. package/i18n/en/commands/product-report.md +12 -0
  23. package/i18n/en/commands/product-revision.md +13 -0
  24. package/i18n/en/references/00-opportunity-check.md +44 -0
  25. package/i18n/en/references/01-strategy.md +90 -0
  26. package/i18n/en/references/02a-persona.md +57 -0
  27. package/i18n/en/references/02b-jtbd.md +125 -0
  28. package/i18n/en/references/02c-ost-journey.md +65 -0
  29. package/i18n/en/references/03-define.md +118 -0
  30. package/i18n/en/references/04a-prfaq.md +112 -0
  31. package/i18n/en/references/04b-solutions.md +269 -0
  32. package/i18n/en/references/04c-mvp.md +21 -0
  33. package/i18n/en/references/05a-northstar-aha.md +93 -0
  34. package/i18n/en/references/05b-pmf-gtm.md +102 -0
  35. package/i18n/en/references/05c-validation-spec.md +117 -0
  36. package/i18n/en/references/06-html-report.md +128 -0
  37. package/i18n/en/references/07a-handoff-core.md +152 -0
  38. package/i18n/en/references/07b-tasks-tickets.md +215 -0
  39. package/i18n/en/references/07c-architecture-setup.md +197 -0
  40. package/i18n/en/references/08-security-checklist.md +221 -0
  41. package/i18n/en/references/rules-build.md +152 -0
  42. package/i18n/en/references/rules-change-propagation.md +74 -0
  43. package/i18n/en/references/rules-commands.md +98 -0
  44. package/i18n/en/references/rules-context.md +291 -0
  45. package/i18n/en/references/rules-custom.md +63 -0
  46. package/i18n/en/references/rules-document-tools.md +126 -0
  47. package/i18n/en/references/rules-end-of-flow.md +150 -0
  48. package/i18n/en/references/rules-export-document.md +346 -0
  49. package/i18n/en/references/rules-file-integration.md +65 -0
  50. package/i18n/en/references/rules-full.md +66 -0
  51. package/i18n/en/references/rules-import-document.md +261 -0
  52. package/i18n/en/references/rules-product-type.md +14 -0
  53. package/i18n/en/references/rules-progress.md +60 -0
  54. package/i18n/en/references/rules-quick.md +29 -0
  55. package/i18n/en/references/rules-revision.md +64 -0
  56. package/i18n/es/SKILL.md +245 -0
  57. package/i18n/es/commands/product-build.md +13 -0
  58. package/i18n/es/commands/product-dev.md +21 -0
  59. package/i18n/es/commands/product-full.md +13 -0
  60. package/i18n/es/commands/product-prd.md +14 -0
  61. package/i18n/es/commands/product-quick.md +13 -0
  62. package/i18n/es/commands/product-report.md +12 -0
  63. package/i18n/es/commands/product-revision.md +13 -0
  64. package/i18n/es/references/00-opportunity-check.md +44 -0
  65. package/i18n/es/references/01-strategy.md +90 -0
  66. package/i18n/es/references/02a-persona.md +57 -0
  67. package/i18n/es/references/02b-jtbd.md +125 -0
  68. package/i18n/es/references/02c-ost-journey.md +65 -0
  69. package/i18n/es/references/03-define.md +118 -0
  70. package/i18n/es/references/04a-prfaq.md +114 -0
  71. package/i18n/es/references/04b-solutions.md +269 -0
  72. package/i18n/es/references/04c-mvp.md +21 -0
  73. package/i18n/es/references/05a-northstar-aha.md +93 -0
  74. package/i18n/es/references/05b-pmf-gtm.md +102 -0
  75. package/i18n/es/references/05c-validation-spec.md +117 -0
  76. package/i18n/es/references/06-html-report.md +138 -0
  77. package/i18n/es/references/07a-handoff-core.md +152 -0
  78. package/i18n/es/references/07b-tasks-tickets.md +215 -0
  79. package/i18n/es/references/07c-architecture-setup.md +197 -0
  80. package/i18n/es/references/08-security-checklist.md +221 -0
  81. package/i18n/es/references/rules-build.md +152 -0
  82. package/i18n/es/references/rules-change-propagation.md +74 -0
  83. package/i18n/es/references/rules-commands.md +98 -0
  84. package/i18n/es/references/rules-context.md +291 -0
  85. package/i18n/es/references/rules-custom.md +63 -0
  86. package/i18n/es/references/rules-document-tools.md +126 -0
  87. package/i18n/es/references/rules-end-of-flow.md +150 -0
  88. package/i18n/es/references/rules-export-document.md +346 -0
  89. package/i18n/es/references/rules-file-integration.md +65 -0
  90. package/i18n/es/references/rules-full.md +66 -0
  91. package/i18n/es/references/rules-import-document.md +261 -0
  92. package/i18n/es/references/rules-product-type.md +14 -0
  93. package/i18n/es/references/rules-progress.md +60 -0
  94. package/i18n/es/references/rules-quick.md +29 -0
  95. package/i18n/es/references/rules-revision.md +64 -0
  96. package/i18n/ja/SKILL.md +245 -0
  97. package/i18n/ja/commands/product-build.md +13 -0
  98. package/i18n/ja/commands/product-dev.md +21 -0
  99. package/i18n/ja/commands/product-full.md +13 -0
  100. package/i18n/ja/commands/product-prd.md +14 -0
  101. package/i18n/ja/commands/product-quick.md +13 -0
  102. package/i18n/ja/commands/product-report.md +12 -0
  103. package/i18n/ja/commands/product-revision.md +13 -0
  104. package/i18n/ja/references/00-opportunity-check.md +44 -0
  105. package/i18n/ja/references/01-strategy.md +90 -0
  106. package/i18n/ja/references/02a-persona.md +57 -0
  107. package/i18n/ja/references/02b-jtbd.md +125 -0
  108. package/i18n/ja/references/02c-ost-journey.md +65 -0
  109. package/i18n/ja/references/03-define.md +118 -0
  110. package/i18n/ja/references/04a-prfaq.md +111 -0
  111. package/i18n/ja/references/04b-solutions.md +269 -0
  112. package/i18n/ja/references/04c-mvp.md +21 -0
  113. package/i18n/ja/references/05a-northstar-aha.md +93 -0
  114. package/i18n/ja/references/05b-pmf-gtm.md +102 -0
  115. package/i18n/ja/references/05c-validation-spec.md +117 -0
  116. package/i18n/ja/references/06-html-report.md +126 -0
  117. package/i18n/ja/references/07a-handoff-core.md +152 -0
  118. package/i18n/ja/references/07b-tasks-tickets.md +215 -0
  119. package/i18n/ja/references/07c-architecture-setup.md +197 -0
  120. package/i18n/ja/references/08-security-checklist.md +221 -0
  121. package/i18n/ja/references/rules-build.md +152 -0
  122. package/i18n/ja/references/rules-change-propagation.md +74 -0
  123. package/i18n/ja/references/rules-commands.md +98 -0
  124. package/i18n/ja/references/rules-context.md +291 -0
  125. package/i18n/ja/references/rules-custom.md +63 -0
  126. package/i18n/ja/references/rules-document-tools.md +126 -0
  127. package/i18n/ja/references/rules-end-of-flow.md +150 -0
  128. package/i18n/ja/references/rules-export-document.md +346 -0
  129. package/i18n/ja/references/rules-file-integration.md +65 -0
  130. package/i18n/ja/references/rules-full.md +66 -0
  131. package/i18n/ja/references/rules-import-document.md +261 -0
  132. package/i18n/ja/references/rules-product-type.md +14 -0
  133. package/i18n/ja/references/rules-progress.md +60 -0
  134. package/i18n/ja/references/rules-quick.md +29 -0
  135. package/i18n/ja/references/rules-revision.md +64 -0
  136. package/i18n/ko/SKILL.md +245 -0
  137. package/i18n/ko/commands/product-build.md +13 -0
  138. package/i18n/ko/commands/product-dev.md +21 -0
  139. package/i18n/ko/commands/product-full.md +13 -0
  140. package/i18n/ko/commands/product-prd.md +14 -0
  141. package/i18n/ko/commands/product-quick.md +13 -0
  142. package/i18n/ko/commands/product-report.md +12 -0
  143. package/i18n/ko/commands/product-revision.md +13 -0
  144. package/i18n/ko/references/00-opportunity-check.md +44 -0
  145. package/i18n/ko/references/01-strategy.md +90 -0
  146. package/i18n/ko/references/02a-persona.md +57 -0
  147. package/i18n/ko/references/02b-jtbd.md +125 -0
  148. package/i18n/ko/references/02c-ost-journey.md +65 -0
  149. package/i18n/ko/references/03-define.md +118 -0
  150. package/i18n/ko/references/04a-prfaq.md +112 -0
  151. package/i18n/ko/references/04b-solutions.md +269 -0
  152. package/i18n/ko/references/04c-mvp.md +21 -0
  153. package/i18n/ko/references/05a-northstar-aha.md +93 -0
  154. package/i18n/ko/references/05b-pmf-gtm.md +102 -0
  155. package/i18n/ko/references/05c-validation-spec.md +117 -0
  156. package/i18n/ko/references/06-html-report.md +126 -0
  157. package/i18n/ko/references/07a-handoff-core.md +152 -0
  158. package/i18n/ko/references/07b-tasks-tickets.md +215 -0
  159. package/i18n/ko/references/07c-architecture-setup.md +197 -0
  160. package/i18n/ko/references/08-security-checklist.md +221 -0
  161. package/i18n/ko/references/rules-build.md +152 -0
  162. package/i18n/ko/references/rules-change-propagation.md +74 -0
  163. package/i18n/ko/references/rules-commands.md +98 -0
  164. package/i18n/ko/references/rules-context.md +291 -0
  165. package/i18n/ko/references/rules-custom.md +63 -0
  166. package/i18n/ko/references/rules-document-tools.md +126 -0
  167. package/i18n/ko/references/rules-end-of-flow.md +150 -0
  168. package/i18n/ko/references/rules-export-document.md +346 -0
  169. package/i18n/ko/references/rules-file-integration.md +65 -0
  170. package/i18n/ko/references/rules-full.md +66 -0
  171. package/i18n/ko/references/rules-import-document.md +261 -0
  172. package/i18n/ko/references/rules-product-type.md +14 -0
  173. package/i18n/ko/references/rules-progress.md +60 -0
  174. package/i18n/ko/references/rules-quick.md +29 -0
  175. package/i18n/ko/references/rules-revision.md +64 -0
  176. package/i18n/zh-CN/SKILL.md +245 -0
  177. package/i18n/zh-CN/commands/product-build.md +13 -0
  178. package/i18n/zh-CN/commands/product-dev.md +21 -0
  179. package/i18n/zh-CN/commands/product-full.md +13 -0
  180. package/i18n/zh-CN/commands/product-prd.md +14 -0
  181. package/i18n/zh-CN/commands/product-quick.md +13 -0
  182. package/i18n/zh-CN/commands/product-report.md +12 -0
  183. package/i18n/zh-CN/commands/product-revision.md +13 -0
  184. package/i18n/zh-CN/references/00-opportunity-check.md +44 -0
  185. package/i18n/zh-CN/references/01-strategy.md +90 -0
  186. package/i18n/zh-CN/references/02a-persona.md +57 -0
  187. package/i18n/zh-CN/references/02b-jtbd.md +125 -0
  188. package/i18n/zh-CN/references/02c-ost-journey.md +65 -0
  189. package/i18n/zh-CN/references/03-define.md +118 -0
  190. package/i18n/zh-CN/references/04a-prfaq.md +106 -0
  191. package/i18n/zh-CN/references/04b-solutions.md +269 -0
  192. package/i18n/zh-CN/references/04c-mvp.md +21 -0
  193. package/i18n/zh-CN/references/05a-northstar-aha.md +93 -0
  194. package/i18n/zh-CN/references/05b-pmf-gtm.md +102 -0
  195. package/i18n/zh-CN/references/05c-validation-spec.md +117 -0
  196. package/i18n/zh-CN/references/06-html-report.md +123 -0
  197. package/i18n/zh-CN/references/07a-handoff-core.md +152 -0
  198. package/i18n/zh-CN/references/07b-tasks-tickets.md +215 -0
  199. package/i18n/zh-CN/references/07c-architecture-setup.md +197 -0
  200. package/i18n/zh-CN/references/08-security-checklist.md +221 -0
  201. package/i18n/zh-CN/references/rules-build.md +152 -0
  202. package/i18n/zh-CN/references/rules-change-propagation.md +74 -0
  203. package/i18n/zh-CN/references/rules-commands.md +98 -0
  204. package/i18n/zh-CN/references/rules-context.md +291 -0
  205. package/i18n/zh-CN/references/rules-custom.md +63 -0
  206. package/i18n/zh-CN/references/rules-document-tools.md +126 -0
  207. package/i18n/zh-CN/references/rules-end-of-flow.md +150 -0
  208. package/i18n/zh-CN/references/rules-export-document.md +346 -0
  209. package/i18n/zh-CN/references/rules-file-integration.md +65 -0
  210. package/i18n/zh-CN/references/rules-full.md +66 -0
  211. package/i18n/zh-CN/references/rules-import-document.md +261 -0
  212. package/i18n/zh-CN/references/rules-product-type.md +14 -0
  213. package/i18n/zh-CN/references/rules-progress.md +60 -0
  214. package/i18n/zh-CN/references/rules-quick.md +29 -0
  215. package/i18n/zh-CN/references/rules-revision.md +64 -0
  216. package/i18n/zh-TW/SKILL.md +244 -0
  217. package/i18n/zh-TW/commands/product-build.md +13 -0
  218. package/i18n/zh-TW/commands/product-dev.md +21 -0
  219. package/i18n/zh-TW/commands/product-full.md +13 -0
  220. package/i18n/zh-TW/commands/product-prd.md +14 -0
  221. package/i18n/zh-TW/commands/product-quick.md +13 -0
  222. package/i18n/zh-TW/commands/product-report.md +12 -0
  223. package/i18n/zh-TW/commands/product-revision.md +13 -0
  224. package/i18n/zh-TW/references/00-opportunity-check.md +44 -0
  225. package/i18n/zh-TW/references/01-strategy.md +90 -0
  226. package/i18n/zh-TW/references/02a-persona.md +57 -0
  227. package/i18n/zh-TW/references/02b-jtbd.md +125 -0
  228. package/i18n/zh-TW/references/02c-ost-journey.md +65 -0
  229. package/i18n/zh-TW/references/03-define.md +118 -0
  230. package/i18n/zh-TW/references/04a-prfaq.md +106 -0
  231. package/i18n/zh-TW/references/04b-solutions.md +269 -0
  232. package/i18n/zh-TW/references/04c-mvp.md +21 -0
  233. package/i18n/zh-TW/references/05a-northstar-aha.md +93 -0
  234. package/i18n/zh-TW/references/05b-pmf-gtm.md +102 -0
  235. package/i18n/zh-TW/references/05c-validation-spec.md +117 -0
  236. package/i18n/zh-TW/references/06-html-report.md +123 -0
  237. package/i18n/zh-TW/references/07a-handoff-core.md +152 -0
  238. package/i18n/zh-TW/references/07b-tasks-tickets.md +215 -0
  239. package/i18n/zh-TW/references/07c-architecture-setup.md +197 -0
  240. package/i18n/zh-TW/references/08-security-checklist.md +221 -0
  241. package/i18n/zh-TW/references/rules-build.md +152 -0
  242. package/i18n/zh-TW/references/rules-change-propagation.md +74 -0
  243. package/i18n/zh-TW/references/rules-commands.md +98 -0
  244. package/i18n/zh-TW/references/rules-context.md +291 -0
  245. package/i18n/zh-TW/references/rules-custom.md +63 -0
  246. package/i18n/zh-TW/references/rules-document-tools.md +126 -0
  247. package/i18n/zh-TW/references/rules-end-of-flow.md +150 -0
  248. package/i18n/zh-TW/references/rules-export-document.md +346 -0
  249. package/i18n/zh-TW/references/rules-file-integration.md +65 -0
  250. package/i18n/zh-TW/references/rules-full.md +66 -0
  251. package/i18n/zh-TW/references/rules-import-document.md +261 -0
  252. package/i18n/zh-TW/references/rules-product-type.md +14 -0
  253. package/i18n/zh-TW/references/rules-progress.md +60 -0
  254. package/i18n/zh-TW/references/rules-quick.md +29 -0
  255. package/i18n/zh-TW/references/rules-revision.md +64 -0
  256. package/install.sh +418 -0
  257. package/package.json +41 -0
  258. package/references/00-opportunity-check.md +44 -0
  259. package/references/01-strategy.md +90 -0
  260. package/references/02a-persona.md +57 -0
  261. package/references/02b-jtbd.md +125 -0
  262. package/references/02c-ost-journey.md +65 -0
  263. package/references/03-define.md +118 -0
  264. package/references/04a-prfaq.md +106 -0
  265. package/references/04b-solutions.md +269 -0
  266. package/references/04c-mvp.md +21 -0
  267. package/references/05a-northstar-aha.md +93 -0
  268. package/references/05b-pmf-gtm.md +102 -0
  269. package/references/05c-validation-spec.md +117 -0
  270. package/references/06-html-report.md +123 -0
  271. package/references/07a-handoff-core.md +152 -0
  272. package/references/07b-tasks-tickets.md +215 -0
  273. package/references/07c-architecture-setup.md +197 -0
  274. package/references/08-security-checklist.md +221 -0
  275. package/references/rules-build.md +152 -0
  276. package/references/rules-change-propagation.md +74 -0
  277. package/references/rules-commands.md +98 -0
  278. package/references/rules-context.md +291 -0
  279. package/references/rules-custom.md +63 -0
  280. package/references/rules-document-tools.md +126 -0
  281. package/references/rules-end-of-flow.md +150 -0
  282. package/references/rules-export-document.md +346 -0
  283. package/references/rules-file-integration.md +65 -0
  284. package/references/rules-full.md +66 -0
  285. package/references/rules-import-document.md +261 -0
  286. package/references/rules-product-type.md +14 -0
  287. package/references/rules-progress.md +60 -0
  288. package/references/rules-quick.md +29 -0
  289. package/references/rules-revision.md +64 -0
  290. package/references/templates/prd-style.css +464 -0
  291. package/references/templates/report-style.css +114 -0
@@ -0,0 +1,126 @@
1
+ # 文件转换工具依赖管理
2
+
3
+ > 首次触发 `/export` 或 `/parse` 指令时载入。
4
+
5
+ ## 依赖层级
6
+
7
+ | 层级 | 工具 | 用途 | 安装方式 | 大小 |
8
+ |------|------|------|---------|------|
9
+ | **核心(零安装)** | Claude Read tool (Vision) | PDF 语意解析 | 内建 | 0 |
10
+ | **核心(零安装)** | Playwright MCP | PDF 渲染 | 内建 | 0 |
11
+ | **基础** | pymupdf (fitz) | PDF 文字提取 + 图片渲染 | `pip3 install --break-system-packages pymupdf` | ~23MB |
12
+ | **基础** | pikepdf | PDF 书签注入 + 元数据 | `pip3 install --break-system-packages pikepdf` | ~5MB |
13
+ | **扩充** | pandoc | DOCX / PPTX 转换 | `brew install pandoc` | ~50MB |
14
+ | **Fallback** | tesseract + chi_tra | 离线 OCR(Vision 不可用时) | `brew install tesseract tesseract-lang` | ~150MB |
15
+ | **进阶** | python-docx | 高品质 DOCX 产出 | `pip3 install --break-system-packages python-docx` | ~5MB |
16
+
17
+ ## 启动检测流程
18
+
19
+ 当使用者首次触发文件转换功能时,依以下顺序检测并按需安装:
20
+
21
+ ### 步骤 1:判断需要哪些工具
22
+
23
+ | 使用者操作 | 需要的工具 |
24
+ |-----------|-----------|
25
+ | `/export pdf` | pymupdf + pikepdf + Playwright MCP |
26
+ | `/export docx` 或 `/export pptx` | pandoc |
27
+ | `/parse [PDF 文件]` | pymupdf(+ Claude Vision 或 tesseract) |
28
+ | `/parse [DOCX/PPTX 文件]` | pandoc |
29
+
30
+ ### 步骤 2:检测已安装的工具
31
+
32
+ 执行以下 Bash 指令(静默检测,不显示输出):
33
+
34
+ ```bash
35
+ # pymupdf
36
+ python3 -c "import fitz; print(fitz.version)" 2>/dev/null && echo "pymupdf: OK" || echo "pymupdf: MISSING"
37
+
38
+ # pikepdf
39
+ python3 -c "import pikepdf; print(pikepdf.__version__)" 2>/dev/null && echo "pikepdf: OK" || echo "pikepdf: MISSING"
40
+
41
+ # pandoc
42
+ which pandoc >/dev/null 2>&1 && echo "pandoc: OK" || echo "pandoc: MISSING"
43
+
44
+ # tesseract(仅在明确需要时检测)
45
+ which tesseract >/dev/null 2>&1 && tesseract --list-langs 2>&1 | grep -q chi_tra && echo "tesseract: OK" || echo "tesseract: MISSING"
46
+ ```
47
+
48
+ ### 步骤 3:自动安装缺少的工具
49
+
50
+ 若检测到缺少的工具,显示以下讯息并自动安装:
51
+
52
+ ```
53
+ 📦 文件转换需要安装以下工具:
54
+ ☐ [工具名称]([用途],[大小])
55
+ ...
56
+ 正在安装,请稍候...
57
+ ```
58
+
59
+ 安装指令依序执行:
60
+
61
+ ```bash
62
+ # pymupdf + pikepdf(一次安装)
63
+ pip3 install --break-system-packages pymupdf pikepdf
64
+
65
+ # pandoc
66
+ brew install pandoc
67
+
68
+ # tesseract(仅在需要离线 OCR 时)
69
+ brew install tesseract tesseract-lang
70
+ ```
71
+
72
+ 安装完成后显示:
73
+ ```
74
+ ✅ 工具安装完成,继续执行...
75
+ ```
76
+
77
+ ### 步骤 4:检测 Playwright MCP
78
+
79
+ Playwright MCP 是 PDF 渲染的核心依赖。检测方式:
80
+
81
+ 1. 尝试呼叫 `mcp__plugin_playwright_playwright__browser_run_code`
82
+ 2. 若 MCP 可用 → 正常使用
83
+ 3. 若 MCP 不可用(未连线)→ 显示:
84
+
85
+ ```
86
+ ⚠️ Playwright MCP 未连线。PDF 渲染需要 Playwright 浏览器。
87
+ 请执行以下操作之一:
88
+ 1. 启动 Playwright MCP(推荐)
89
+ 2. 或输入 ! npx playwright install chromium 安装本地 Chromium
90
+ ```
91
+
92
+ **Playwright Fallback**(MCP 不可用时):
93
+
94
+ 若使用者安装了本地 Chromium,改用 Bash 执行 Node.js 脚本进行 PDF 渲染:
95
+ ```bash
96
+ node -e "
97
+ const { chromium } = require('playwright');
98
+ (async () => {
99
+ const browser = await chromium.launch();
100
+ const page = await browser.newPage();
101
+ await page.setContent(require('fs').readFileSync('/tmp/export.html', 'utf8'));
102
+ await page.pdf({ path: '${OUTPUT_PATH}', format: 'A4', printBackground: true,
103
+ margin: { top: '1.8cm', bottom: '1.8cm', left: '2cm', right: '2cm' } });
104
+ await browser.close();
105
+ })();
106
+ "
107
+ ```
108
+
109
+ ## 工具状态缓存
110
+
111
+ 首次检测结果记录在记忆中(避免每次重复检测):
112
+ - 在同一个对话 session 中,已确认安装的工具不再重复检测
113
+ - 若安装失败,记录错误讯息,下次触发时重试
114
+
115
+ ## 平台兼容性
116
+
117
+ | 平台 | pymupdf | pikepdf | pandoc | tesseract | Playwright |
118
+ |------|---------|---------|--------|-----------|------------|
119
+ | macOS (Homebrew) | ✅ pip3 | ✅ pip3 | ✅ brew | ✅ brew | ✅ MCP/npx |
120
+ | Linux (apt) | ✅ pip3 | ✅ pip3 | ✅ apt | ✅ apt | ✅ MCP/npx |
121
+ | Windows (WSL) | ✅ pip3 | ✅ pip3 | ✅ choco | ✅ choco | ✅ MCP/npx |
122
+
123
+ 根据使用者的操作系统自动选择对应的包管理器。检测方式:
124
+ ```bash
125
+ [[ "$(uname)" == "Darwin" ]] && echo "macOS" || echo "Linux"
126
+ ```
@@ -0,0 +1,150 @@
1
+ # 🏁 流程结束规则
2
+
3
+ > 所有步骤完成时载入。
4
+
5
+ ## ⛔ 结束条件检查
6
+
7
+ 产出最终整合内容前,必须先执行:
8
+
9
+ 1. 确认进度指示器中所有步骤都已标记 ✅
10
+ 2. 若有步骤被跳过(使用者明确要求),在最终产出中标记「⚠️ 已跳过」
11
+ 3. 若有步骤标记为 ⬜(未执行),不得进入最终产出
12
+ 4. **安全性快速检查**:若使用者将进入开发阶段(产出开发交接包),在最终产出中附上安全性提醒,并在产出开发交接包时自动读取 `references/08-security-checklist.md` 生成对应的安全架构段落
13
+
14
+ 违反此规则的行为:自行判断「剩下的步骤不重要」而跳过、将未完成的步骤标记为已完成、合并多个步骤一次产出。
15
+
16
+ ## 🔍 决策一致性检查
17
+
18
+ 在产出最终整合内容之前,扫描所有已完成的步骤,验证跨步骤的一致性:
19
+
20
+ ### 按模式检查项目
21
+
22
+ **🚀 快速模式**(3 步骤 — 检查 2 项交叉引用):
23
+ 1. JTBD ↔ PR-FAQ:PR-FAQ 是否针对与 JTBD 陈述相同的问题?
24
+ 2. PR-FAQ ↔ North Star:北极星指标是否衡量了 PR-FAQ 承诺的成果?
25
+
26
+ **📦 完整模式**(20 步骤 — 检查全部 7 项):
27
+ 1. 目标用户 — 在 JTBD、定位、PR-FAQ 和 North Star 中是否引用相同的人物画像?
28
+ 2. 核心问题 / JTBD — PR-FAQ 针对相同问题?MVP 是否解决?
29
+ 3. 定位 — 是否反映在 PR-FAQ 标题和解法方向中?
30
+ 4. 解法方向 — 选出的解法是否与 MVP 范围一致?
31
+ 5. MVP 范围 — 是否与 PR-FAQ 承诺一致?「不做」的项目是否被遵守?
32
+ 6. North Star Metric — 是否衡量 JTBD 成果?在 MVP 范围内是否可达成?
33
+ 7. Pre-mortem 风险 — 鉴于最终解法和 MVP,是否仍然相关?
34
+
35
+ **🔄 改版模式**(12 步骤 — 检查 4 项):
36
+ 1. 既有 JTBD ↔ 痛点 ↔ 定位:重新评估后是否一致?
37
+ 2. PR-FAQ ↔ MVP 范围:改版范围是否与 PR-FAQ 描述一致?
38
+ 3. North Star ↔ 改版前后:指标比较是否合乎逻辑?
39
+ 4. Pre-mortem 风险:对改版后的产品是否仍然相关?
40
+
41
+ **⚡ 直接实作模式**(7 步骤 — 检查 4 项):
42
+ 1. 问题陈述 ↔ PR-FAQ:是否针对相同问题?
43
+ 2. 解法方向 ↔ MVP 范围:选定解法是否与 MVP 一致?
44
+ 3. North Star ↔ MVP:指标在 MVP 范围内是否可达成?
45
+ 4. Pre-mortem 风险:对最终解法是否仍然相关?
46
+
47
+ **🔧 功能扩充模式**(4 步骤 — 检查 3 项):
48
+ 1. 问题 ↔ 选定解法:解法是否直接解决所述问题?
49
+ 2. 解法 ↔ 执行范围:范围是否正确实作选定解法?
50
+ 3. 风险评估:已识别的风险对执行范围是否仍然相关?
51
+
52
+ **✏️ 自订模式** — 仅检查用户实际执行的步骤之间的交叉引用。跳过未纳入自订选择的步骤检查。
53
+
54
+ ### 执行方式
55
+ 1. 将每个核心决策列为一行摘要(例如:「目标用户:早期创业公司创始人」)
56
+ 2. 检查步骤之间是否存在矛盾或过时的引用
57
+ 3. 若发现不一致:
58
+ - 显示:「⚠️ 一致性检查在最终产出前发现 [N] 个问题:」
59
+ - 列出每个问题及受影响的步骤
60
+ - 询问用户:「是否要在产出最终内容前修正这些问题,还是直接继续?」
61
+ 4. 若全部一致:
62
+ - 显示:「✅ 决策一致性检查通过 — 所有步骤已对齐。」
63
+ - 继续产出最终内容
64
+
65
+ ### 为什么需要这个检查
66
+ 在迭代规划过程中,用户可能修改上游决策(例如:更改 JTBD),而部分下游步骤仍保留过时的内容。此检查能在最终文件产出前捕捉这些落差,避免产出不一致的交付物。
67
+
68
+ ## 📦 产品上下文自动萃取
69
+
70
+ 所有步骤完成后、产出最终整合内容的同时,读取 `references/rules-context.md` Section 8 执行上下文萃取:
71
+
72
+ 1. **检查 `.product-context.md` 是否存在**
73
+ - 不存在 → 建立新文件
74
+ - 存在 → 依规则更新(Identity/Core Strategy 覆写,Decision History 追加,Architecture 合并,Insights 合并去重)
75
+
76
+ 2. **萃取内容**(依流程类型对应 `rules-context.md` Section 8 表格)
77
+
78
+ 3. **告知使用者**:在最终产出后显示:
79
+ 「✅ 产品上下文已更新至 `.product-context.md`,下次规划时将自动载入。」
80
+
81
+ 4. **版控提醒**(仅首次建立时):
82
+ 「⚠️ 建议将 `.product-context.md` 加入 `.gitignore`,此文件可能包含敏感的产品策略资讯。」
83
+
84
+ ## 最佳切入点分析(完整模式适用)
85
+
86
+ ```
87
+ [Persona 痛点] → [JTBD 陈述] → [OST 机会] → [HMW 问题]
88
+ → [定位(April Dunford)] → [PR-FAQ 验证] → [解法选定]
89
+ → [Aha Moment] → [北极星指标] → [PMF 等级判定]
90
+ ```
91
+
92
+ 分析要点:最值得解决的问题 / 核心 JTBD / 产品定位 / PMF 等级与下一里程碑 / 第一步行动 / Pre-mortem 风险警示
93
+
94
+ ## 各模式最终产出
95
+
96
+ | 模式 | 最后自动整合产出 |
97
+ |------|----------------|
98
+ | 🔧 功能扩充模式 | 功能开发规格:问题 → 选定解法 → 影响范围 → 执行范围 → 风险 |
99
+ | 🚀 快速模式 | 一页式方向摘要:问题 → 解法 → 成功定义 |
100
+ | 📦 完整模式 | 最佳切入点分析 + 产品规格摘要 |
101
+ | 🔄 改版模式 | 改版产品规格摘要:改版前后对照 + 改什么/不改什么 + 成功指标 |
102
+ | ✏️ 自订模式 | 产品规格摘要(未执行栏位标记「未执行」) |
103
+ | ⚡ 直接实作模式 | 工程师导向的执行摘要 |
104
+
105
+ ### 产出语言覆写
106
+
107
+ 使用者可以要求以不同于规划会议的语言产出文件:
108
+ - 「用日文产出 PR-FAQ」
109
+ - 「用西班牙文输出报告」
110
+ - 「用中文撰写 PRD」
111
+
112
+ 当收到语言覆写请求时:
113
+ 1. 以请求的语言生成产出内容
114
+ 2. 保持框架名称为英文(JTBD、PR-FAQ、North Star 等)
115
+ 3. 产出完成后回到规划会议的原始语言
116
+ 4. 注意:这仅影响产出文件的语言,不影响参考文件或规划流程
117
+
118
+ ## 延伸产出询问
119
+
120
+ 完成最终整合产出后,主动询问:
121
+
122
+ ```
123
+ 「企划内容已整合完成!需要我帮你产出以下文件吗?
124
+
125
+ □ 更新版 [文件类型](基于上传的源文件增量更新)← 仅在上传了源文件时显示
126
+ □ PDF 文件(专业排版,含书签导航,适合正式分享)
127
+ □ HTML 企划报告(互动式,适合线上分享)
128
+ □ Word 文件(适合协作编辑)
129
+ □ PRD 工程师交付包(含流程图、DB schema、UI wireframe)
130
+ □ 简报 PPTX(适合会议报告,产出后建议用 Keynote / PowerPoint 美化)
131
+ □ 开发交接包(CLAUDE.md + TASKS.md + TICKETS.md + 技术架构,可直接在 Claude Code 中开始开发)
132
+ □ 以上都要
133
+
134
+ 也可以说「不用」直接结束,或指定特定文件。
135
+ 也可以随时使用 /export [pdf|docx|pptx|html|md] 导出。」
136
+ ```
137
+
138
+ **选项显示规则**:
139
+ - 上传了源文件 → 「更新版 [文件类型]」列在最前,标注「(推荐)」
140
+ - 产出对象为工程师 → PRD 和开发交接包排前
141
+ - 产出对象为老板/高层 → PDF 和简报排前
142
+ - 产出对象为跨部门 → PDF、HTML 报告和简报都列出
143
+ - 快速模式 → 只问是否需要 PDF 或简报
144
+ - 产出对象为自己 → 开发交接包排第一位
145
+
146
+ **导出触发规则**:
147
+ - 使用者选择 PDF / Word / 简报 PPTX → 载入 `rules-export-document.md`
148
+ - 首次触发文件导出 → 先载入 `rules-document-tools.md` 检查并安装必要工具
149
+ - 使用者选择 HTML 企划报告 → 载入 `06-html-report.md`(现有规则)
150
+ - 使用者选择「以上都要」→ 依序执行各格式导出
@@ -0,0 +1,346 @@
1
+ # 多格式文件导出规则
2
+
3
+ > 使用者触发 `/export [format]` 或在流程结束后选择导出格式时载入。
4
+ > 首次使用时先载入 `rules-document-tools.md` 确认工具已安装。
5
+
6
+ ## 支持的导出格式
7
+
8
+ | 格式 | 指令 | 转换路径 | 工具 |
9
+ |------|------|---------|------|
10
+ | PDF | `/export pdf` | HTML+CSS → Playwright → pikepdf 书签 | Playwright MCP + pikepdf |
11
+ | DOCX | `/export docx` | MD → Pandoc | pandoc + reference.docx |
12
+ | PPTX | `/export pptx` | MD → Pandoc | pandoc |
13
+ | HTML | `/export html` | 已有 `06-html-report.md` 规则 | 内建 |
14
+ | Markdown | `/export md` | 直接输出 | 内建 |
15
+
16
+ ---
17
+
18
+ ## PDF 导出(核心流程)
19
+
20
+ ### 路径判断
21
+
22
+ PDF 导出有两条路径,根据来源内容自动选择:
23
+
24
+ | 来源 | 路径 | 原因 |
25
+ |------|------|------|
26
+ | 规划成果直接导出(PRD / 增量更新 / 规格书) | **路径 A:setContent** | 无外部 JS 依赖,可内嵌所有资源 |
27
+ | HTML 企划报告转 PDF(含 Mermaid 图表 / CDN 字体) | **路径 B:HTTP Server** | 需要载入外部 JS (mermaid.js) 和 CDN 字体 |
28
+
29
+ ### 路径 A:独立文件 → PDF(setContent)
30
+
31
+ 适用于:PRD、功能扩充增量更新、规格书、任何不含外部 JS 的内容。
32
+
33
+ **步骤 1:生成 HTML 内容**
34
+
35
+ Claude 读取 `references/templates/prd-style.css`,生成完整的 HTML 文件:
36
+
37
+ ```html
38
+ <!DOCTYPE html>
39
+ <html lang="zh-TW">
40
+ <head>
41
+ <meta charset="UTF-8">
42
+ <style>
43
+ /* 读取 prd-style.css 的完整内容,内嵌于此 */
44
+ </style>
45
+ </head>
46
+ <body>
47
+
48
+ <!-- 封面页 -->
49
+ <div class="cover-page">
50
+ <h1>[文件标题]</h1>
51
+ <div class="subtitle">[副标题或一句话描述]</div>
52
+ <div class="version-badge">[版本号]</div>
53
+ <div class="meta-info">
54
+ <strong>PM</strong> [PM 名称]<br>
55
+ <strong>日期</strong> [ISO 日期]<br>
56
+ <strong>状态</strong> [状态]
57
+ </div>
58
+ </div>
59
+
60
+ <!-- 图例(仅增量更新文件需要) -->
61
+ <div class="diff-legend">
62
+ <div class="diff-legend-item"><div class="diff-legend-swatch swatch-new"></div> 本次新增</div>
63
+ <div class="diff-legend-item"><div class="diff-legend-swatch swatch-upd"></div> 本次修改</div>
64
+ <div class="diff-legend-item"><div class="diff-legend-swatch swatch-unchanged"></div> 不变</div>
65
+ </div>
66
+
67
+ <!-- 目录页 -->
68
+ <div class="toc-page">
69
+ <h2>目录</h2>
70
+ <ul class="toc">
71
+ <!-- Claude 根据文件的 h2 标题自动生成目录项目 -->
72
+ <li>
73
+ <span class="toc-title">[章节名称]</span>
74
+ <span class="toc-dots"></span>
75
+ <span class="toc-page-num">[页码]</span>
76
+ </li>
77
+ </ul>
78
+ </div>
79
+
80
+ <!-- 正文内容 -->
81
+ [正文 HTML]
82
+
83
+ <!-- 页尾 -->
84
+ <div class="doc-footer">
85
+ [文件编码] [版本] | [日期] | Generated by Product Playbook
86
+ </div>
87
+
88
+ </body>
89
+ </html>
90
+ ```
91
+
92
+ **重要**:
93
+ - CSS 必须完全内嵌(不使用外部链接)
94
+ - 字体使用系统字体:`"PingFang TC", "Noto Sans TC", system-ui`(Playwright 会自动嵌入 PDF)
95
+ - 不包含任何 `<script>` 标签或外部资源引用
96
+ - 目录页码为预估值(生成 PDF 后可能需微调)
97
+
98
+ **步骤 2:Playwright 渲染 PDF**
99
+
100
+ 将 HTML 内容储存到 `/tmp/export-{timestamp}.html`,然后呼叫 Playwright MCP:
101
+
102
+ ```javascript
103
+ // mcp__plugin_playwright_playwright__browser_run_code
104
+ async (page) => {
105
+ const fs = require('fs');
106
+ const html = fs.readFileSync('/tmp/export-{timestamp}.html', 'utf8');
107
+ await page.setContent(html, { waitUntil: 'networkidle' });
108
+ await page.pdf({
109
+ path: '{output_path}',
110
+ format: 'A4',
111
+ margin: { top: '1.8cm', bottom: '1.8cm', left: '2cm', right: '2cm' },
112
+ printBackground: true,
113
+ displayHeaderFooter: true,
114
+ headerTemplate: '<div></div>',
115
+ footerTemplate: '<div style="font-size:8pt;color:#999;text-align:center;width:100%;">p.<span class="pageNumber"></span> / <span class="totalPages"></span></div>'
116
+ });
117
+ return 'PDF generated';
118
+ }
119
+ ```
120
+
121
+ > 注意:若 HTML 内容过大(>500KB),setContent 可能超时。此时改用路径 B(HTTP Server)。
122
+
123
+ **步骤 3:pikepdf 注入书签**
124
+
125
+ ```python
126
+ import pikepdf, re
127
+
128
+ pdf = pikepdf.open('{output_path}')
129
+
130
+ # 从 HTML 中提取 h2 标题作为书签
131
+ # Claude 在生成 HTML 时需记录每个 h2 对应的预估页码
132
+ bookmarks = [
133
+ # (标题, 页码索引 0-based)
134
+ ("修订纪录", 2),
135
+ ("User Story", 4),
136
+ ("开发架构说明", 6),
137
+ # ... 依实际内容生成
138
+ ]
139
+
140
+ with pdf.open_outline() as outline:
141
+ for title, page_idx in bookmarks:
142
+ page_idx = min(page_idx, len(pdf.pages) - 1)
143
+ outline.root.append(
144
+ pikepdf.OutlineItem(title, page_idx)
145
+ )
146
+
147
+ # 设定 PDF 元数据
148
+ with pdf.open_metadata() as meta:
149
+ meta['dc:title'] = '[文件标题]'
150
+ meta['dc:creator'] = ['[PM 名称]']
151
+ meta['pdf:Producer'] = 'Product Playbook + Playwright'
152
+
153
+ pdf.save('{output_path}')
154
+ ```
155
+
156
+ **步骤 4:通知使用者**
157
+
158
+ ```
159
+ ✅ PDF 已导出至:{output_path}
160
+ 📄 {页数} 页 | {文件大小}
161
+ 📑 含书签导航({书签数} 个章节)
162
+ ```
163
+
164
+ ### 路径 B:HTML 报告 → PDF(HTTP Server)
165
+
166
+ 适用于:含 Mermaid 图表、CDN 字体、互动元素的 HTML 报告。
167
+
168
+ **步骤 1:HTML 报告已生成**
169
+
170
+ HTML 报告由 `06-html-report.md` 规则生成,已存为 `/tmp/report-{timestamp}.html`。
171
+
172
+ **步骤 2:启动 HTTP Server**
173
+
174
+ ```bash
175
+ cd /tmp && python3 -m http.server 18899 &
176
+ echo $! # 记录 PID
177
+ ```
178
+
179
+ **步骤 3:Playwright 渲染**
180
+
181
+ ```javascript
182
+ // mcp__plugin_playwright_playwright__browser_run_code
183
+ async (page) => {
184
+ await page.goto('http://localhost:18899/report-{timestamp}.html', {
185
+ waitUntil: 'networkidle',
186
+ timeout: 30000
187
+ });
188
+ // 等待 Mermaid 图表渲染完成
189
+ await page.waitForTimeout(3000);
190
+ // 展开所有手风琴(<details>)元素
191
+ await page.evaluate(() => {
192
+ document.querySelectorAll('details').forEach(d => d.open = true);
193
+ });
194
+ await page.pdf({
195
+ path: '{output_path}',
196
+ format: 'A4',
197
+ margin: { top: '1.8cm', bottom: '1.8cm', left: '2cm', right: '2cm' },
198
+ printBackground: true,
199
+ displayHeaderFooter: true,
200
+ headerTemplate: '<div></div>',
201
+ footerTemplate: '<div style="font-size:8pt;color:#999;text-align:center;width:100%;">p.<span class="pageNumber"></span> / <span class="totalPages"></span></div>'
202
+ });
203
+ return 'PDF generated';
204
+ }
205
+ ```
206
+
207
+ **步骤 4:关闭 HTTP Server + pikepdf 书签**
208
+
209
+ ```bash
210
+ kill {SERVER_PID}
211
+ ```
212
+
213
+ 然后执行与路径 A 相同的 pikepdf 书签注入步骤。
214
+
215
+ ### Playwright MCP 不可用时的 Fallback
216
+
217
+ 若 Playwright MCP 未连线,使用 Node.js 直接执行:
218
+
219
+ ```bash
220
+ node -e "
221
+ const { chromium } = require('playwright');
222
+ const fs = require('fs');
223
+ (async () => {
224
+ const browser = await chromium.launch({ headless: true });
225
+ const page = await browser.newPage();
226
+ const html = fs.readFileSync('/tmp/export-{timestamp}.html', 'utf8');
227
+ await page.setContent(html, { waitUntil: 'networkidle' });
228
+ await page.pdf({
229
+ path: '${OUTPUT_PATH}',
230
+ format: 'A4',
231
+ printBackground: true,
232
+ margin: { top: '1.8cm', bottom: '1.8cm', left: '2cm', right: '2cm' }
233
+ });
234
+ await browser.close();
235
+ console.log('PDF generated');
236
+ })();
237
+ "
238
+ ```
239
+
240
+ ---
241
+
242
+ ## DOCX 导出
243
+
244
+ ### 步骤 1:生成 Markdown
245
+
246
+ Claude 将规划成果整理为干净的 Markdown 格式,存为 `/tmp/export-{timestamp}.md`。
247
+
248
+ ### 步骤 2:Pandoc 转换
249
+
250
+ ```bash
251
+ pandoc /tmp/export-{timestamp}.md \
252
+ -o "{output_path}" \
253
+ --from markdown \
254
+ --to docx \
255
+ --reference-doc="~/.claude/skills/product-playbook/references/templates/reference.docx" \
256
+ --toc \
257
+ --toc-depth=2
258
+ ```
259
+
260
+ 若无 reference.docx 模板,省略 `--reference-doc` 参数(使用 Pandoc 预设样式)。
261
+
262
+ ### 步骤 3:通知使用者
263
+
264
+ ```
265
+ ✅ Word 文件已导出至:{output_path}
266
+ 📄 含目录 | {文件大小}
267
+ ```
268
+
269
+ ---
270
+
271
+ ## PPTX 导出
272
+
273
+ ```bash
274
+ pandoc /tmp/export-{timestamp}.md \
275
+ -o "{output_path}" \
276
+ --from markdown \
277
+ --to pptx \
278
+ --slide-level=2
279
+ ```
280
+
281
+ > 提示:Pandoc PPTX 品质有限,建议使用者将 PPTX 当作大纲,再用 PowerPoint/Keynote 美化。
282
+
283
+ ---
284
+
285
+ ## 增量更新文件的特殊处理
286
+
287
+ 当导出的是 Feature Extension 或 Revision 模式的增量更新文件时:
288
+
289
+ ### Diff 视觉标记规则
290
+
291
+ 1. **`[NEW]` 标记的段落**:
292
+ - 使用 `<span class="new">NEW</span>` 标记
293
+ - 所在表格行加 `class="new-row"`
294
+ - 段落加 `class="diff-added"`
295
+
296
+ 2. **`[UPDATED]` 标记的段落**:
297
+ - 使用 `<span class="upd">UPDATED</span>` 标记
298
+ - 所在表格行加 `class="upd-row"`
299
+ - 若有原始内容,原始内容加 `class="diff-removed"`,新内容加 `class="diff-added"`
300
+
301
+ 3. **未变更的段落**:正常显示,不加任何特殊标记
302
+
303
+ 4. **文件开头加图例**:
304
+ ```html
305
+ <div class="diff-legend">
306
+ <div class="diff-legend-item">
307
+ <div class="diff-legend-swatch swatch-new"></div> 本次新增
308
+ </div>
309
+ <div class="diff-legend-item">
310
+ <div class="diff-legend-swatch swatch-upd"></div> 本次修改
311
+ </div>
312
+ <div class="diff-legend-item">
313
+ <div class="diff-legend-swatch swatch-unchanged"></div> 无标记 = 不变
314
+ </div>
315
+ </div>
316
+ ```
317
+
318
+ ---
319
+
320
+ ## 输出路径规则
321
+
322
+ 预设输出到 `~/Downloads/`,文件名格式:
323
+
324
+ ```
325
+ [文件编码] [文件标题] [版本].{ext}
326
+
327
+ 范例:
328
+ [D-221] 凯基个人虚拟帐号 v1.0.14 完整合并版.pdf
329
+ Product Planning Report - UPASS Virtual Account.docx
330
+ ```
331
+
332
+ 若使用者指定路径,使用使用者指定的路径。
333
+
334
+ ---
335
+
336
+ ## 品质检查清单
337
+
338
+ 导出前,Claude 自我检查:
339
+
340
+ - [ ] HTML 中无残留的 Markdown 语法(`**`, `##`, `|---|`)
341
+ - [ ] 所有表格的行数和列数与原始内容一致
342
+ - [ ] `[NEW]` / `[UPDATED]` 标记正确套用对应 CSS class
343
+ - [ ] 封面页资讯(标题、版本、PM、日期)正确
344
+ - [ ] 目录项目与正文 h2 标题一致
345
+ - [ ] CSS 完全内嵌(路径 A)或 CDN 可存取(路径 B)
346
+ - [ ] 书签数量与 h2 标题数量一致
@@ -0,0 +1,65 @@
1
+ # 📎 文件整合指引
2
+
3
+ > 使用者上传补充材料时载入。
4
+
5
+ ## 可直接处理的文件类型
6
+
7
+ | 文件类型 | 常见场景 | 整合方式 |
8
+ |---------|---------|---------|
9
+ | **图片** | 竞品截图、白板照片、用户旅程手绘图、App 界面截图、数据报表截图 | 辨识内容后整合到对应步骤 |
10
+ | **PDF** | 市场报告、内部文件、用户调研报告、旧版 PRD | 载入 `rules-import-document.md` 进行三层解析(pymupdf 直提 → Claude Vision 语意解析 → Tesseract fallback)。首次使用时载入 `rules-document-tools.md` 检查工具。 |
11
+ | **CSV / Excel** | 用户行为数据、留存数据、NPS 调查结果、销售数据 | 分析数据后用于量化评估 |
12
+ | **文字档** | 访谈逐字稿、既有需求文件、会议纪录 | 提取 Persona 线索、痛点、JTBD 证据 |
13
+ | **DOCX** | 既有 PRD、产品规格书、用户研究报告 | 载入 `rules-import-document.md`,使用 Pandoc 转 Markdown 后整合。首次使用时载入 `rules-document-tools.md` 检查工具。 |
14
+ | **PPTX** | 既有简报、产品介绍投影片 | 载入 `rules-import-document.md`,使用 Pandoc 转 Markdown 后整合。 |
15
+
16
+ ## 无法直接处理但可引导的
17
+
18
+ | 文件类型 | 引导方式 |
19
+ |---------|---------|
20
+ | **影片** | 请使用者描述关键场景,或提供逐字稿/字幕档 |
21
+ | **Figma / Sketch** | 请使用者截图后上传 |
22
+ | **Protobuf / Swagger** | 请使用者汇出为 JSON 或文字格式 |
23
+
24
+ ## 文件 → 步骤自动对应表
25
+
26
+ | 上传内容 | 自动对应步骤 | 整合动作 |
27
+ |---------|------------|---------|
28
+ | 竞品 App / 网站截图 | Positioning | 识别为「竞争替代品」,分析差异化 |
29
+ | 白板手绘流程图 | Journey Map / OST | 辨识流程后转化为结构化表格 |
30
+ | 用户访谈逐字稿 | Persona + JTBD | 提取痛点、现行做法、情绪反应、Job 陈述 |
31
+ | 用户行为数据(CSV) | 机会评估 + North Star + PMF | 用真实数据替代假设性评分 |
32
+ | NPS / 满意度调查 | PMF + Sean Ellis Score | 直接计算 Score;判断 PMF 等级 |
33
+ | 既有 PRD / 需求文件 | 改版模式 S1 + MVP | 提取既有功能清单和决策历史 |
34
+ | 市场报告 PDF | 机会评估 + Strategy | 提取市场规模、趋势、竞争格局 |
35
+ | 销售数据 | 商业模式 + GTM | 分析营收结构、客户分布、渠道效果 |
36
+ | App 界面截图 | Aha Moment + Journey | 分析当前体验路径 |
37
+
38
+ ## 整合规则
39
+
40
+ 1. **主动辨识**:先说明「我看到你上传了 [文件类型],我会把其中的 [关键资讯] 整合到 [步骤名称] 中。」
41
+ 2. **不覆盖已有产出**:将上传内容标记为「补充数据」并更新产出,同时触发变更传播规则
42
+ 3. **标记来源**:在产出中标注哪些内容来自上传文件(例如:「✦ 来自上传的用户调研报告」)
43
+ 4. **数据优先**:真实数据和先前假设有冲突时,以真实数据为准
44
+ 5. **跨步骤影响**:一份文件可能同时影响多个步骤,应一次性列出所有受影响的步骤
45
+
46
+ ## 📎 源文件识别与增量更新
47
+
48
+ 当用户在**功能扩展**或**改版模式**中上传文件时,判断该文件是否为「源文件」(应根据新规划产出进行增量更新的文件):
49
+
50
+ ### 识别条件
51
+ - 文件类型:PRD、产品规格书、架构文档、需求文档、设计文档
52
+ - 用户明确表示:「这是我们目前的 PRD」、「更新这份文档」、「在这份规格上扩展」等
53
+ - 在功能扩展或改版模式的 S1(上下文收集)阶段上传
54
+
55
+ ### 识别到源文件时
56
+ 1. 标记提示:「📎 检测到源文件——最终产出将基于此文件进行增量更新」
57
+ 2. 解析文档结构(章节标题、格式惯例、命名模式)
58
+ 3. 记录文档的格式与风格,确保产出一致性
59
+ 4. 在 S1 阶段,利用该文件预填已有系统背景(技术栈、模块、功能)
60
+
61
+ ### 增量产出规则(于最终产出阶段应用)
62
+ - 新内容插入对应章节,标记为 `[NEW]`
63
+ - 修改内容标记为 `[UPDATED]`,原始内容以注释方式保留
64
+ - 与新功能无关的章节保持不变
65
+ - 产出文档维持原始文件的格式、风格与命名惯例