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,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
+ # [產品名稱] — 開發任務清單
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` 已建立(只有 key 名稱,沒有實際值)
22
+ - [ ] **T0.2** 設定 linter + formatter
23
+ - 驗收:lint 通過無錯誤
24
+ - [ ] **T0.3** 建立資料庫 + 執行初始 migration
25
+ - 驗收:資料庫可連接,基礎 table 已建立
26
+ - [ ] **T0.4** 建立基礎路由結構
27
+ - 驗收:所有主要頁面路由可訪問(回傳空白頁面即可)
28
+
29
+ ## Phase 1:核心流程(Aha Moment 路徑)
30
+ > 目標:讓用戶可以走完從進入到 Aha Moment 的最短路徑
31
+ > 對應 User Story:[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
+ > 目標:補全 MVP 範圍中所有 P0 功能
48
+ > 對應 User Story:[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
+ - [ ] 安全性 Headers 已設定(CSP、X-Frame-Options、HSTS 等)
65
+ - [ ] CORS 政策已配置(不使用 wildcard *)
66
+ - [ ] 敏感 API 端點有 Rate Limiting
67
+ - [ ] API 錯誤回應不洩漏內部資訊
68
+ - [ ] **T3.5** 響應式設計(如果是 Web)
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
+ > 以下為未來自動開票功能的預留接口設計,目前版本僅產出 TICKETS.md 供 PM 手動開票。
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 功能轉換為 Task 的規則:
177
+
178
+ ### Phase 劃分原則
179
+
180
+ ```
181
+ Phase 0:專案骨架(所有模式都必須有)
182
+ → 初始化、linter、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 個 Task:
211
+ US-001: 身為新用戶,我想要註冊帳號,以便開始使用
212
+ → T1.1: 註冊頁面 UI
213
+ → T1.2: 註冊 API + 資料驗證
214
+ → T1.3: Email 驗證流程(如果 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 整合,轉為建表 SQL 或 ORM Model 定義]
15
+
16
+ ### ER 關係圖
17
+
18
+ [Mermaid erDiagram]
19
+
20
+ ### 關鍵 Table 說明
21
+
22
+ | Table | 說明 | 關鍵欄位 | 索引建議 |
23
+ |-------|------|---------|---------|
24
+ | | | | |
25
+
26
+ ## API 設計
27
+
28
+ [根據 User Story 和功能規格,定義 RESTful API endpoints 或 GraphQL schema]
29
+
30
+ ### Endpoints 清單
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
+ | 允許的 Origins | [生產域名, localhost:port] | 不使用 wildcard * |
54
+ | 允許的 Methods | GET, POST, PUT, DELETE | 依 API 實際需求 |
55
+ | 允許的 Headers | Content-Type, Authorization | |
56
+ | Credentials | true/false | 依認證方式決定 |
57
+
58
+ ### 安全性 Headers
59
+
60
+ [根據產品需求,從 references/08-security-checklist.md §5 選擇適用的 Headers]
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
+ - 日誌規範:不記錄密碼、Token、個人資料
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 與作業系統
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 "❌ 需要安裝 [runtime]"; 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. 啟動開發伺服器:[start command]"
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 → 開發任務清單(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
+ ```
@@ -0,0 +1,221 @@
1
+ # 安全性檢查清單
2
+
3
+ > 在產出開發交接包前載入。確保產品規劃階段已考慮關鍵安全性需求,避免安全性成為事後補救。
4
+
5
+ ## 🔐 安全架構快速檢查
6
+
7
+ 在產出開發交接包前,必須逐項確認以下安全性面向。每個面向標記 ✅(已在規劃中涵蓋)或 ❌(需要補充)。
8
+
9
+ ### 1. 認證與授權(Authentication & Authorization)
10
+
11
+ ```
12
+ | 檢查項目 | 狀態 | 備註 |
13
+ |---------|------|------|
14
+ | 認證方式已確定(JWT / Session / OAuth / Passkey) | | |
15
+ | Token 儲存方式安全(HttpOnly Cookie,非 localStorage) | | |
16
+ | Token 過期與刷新機制已設計 | | |
17
+ | 密碼儲存使用 bcrypt / argon2(不用 MD5/SHA) | | |
18
+ | 權限模型已定義(RBAC / ABAC / 簡單角色) | | |
19
+ | API 端點都有對應的授權檢查 | | |
20
+ | 登入失敗有暴力破解防護(鎖定 / 漸進延遲) | | |
21
+ ```
22
+
23
+ **JWT 最佳實踐(如果選用 JWT):**
24
+ - 使用短效 Access Token(15-30 分鐘)+ 長效 Refresh Token
25
+ - Refresh Token 存放在 HttpOnly Secure Cookie
26
+ - 實作 Token Revocation(登出時使 Refresh Token 失效)
27
+ - 不在 JWT payload 中存放敏感資訊
28
+
29
+ ### 2. CORS 政策(Cross-Origin Resource Sharing)
30
+
31
+ ```
32
+ | 檢查項目 | 狀態 | 備註 |
33
+ |---------|------|------|
34
+ | 已定義允許的 Origin 清單(不使用 *) | | |
35
+ | 僅允許必要的 HTTP Methods | | |
36
+ | 已設定 Access-Control-Allow-Credentials | | |
37
+ | Preflight 快取時間合理(Access-Control-Max-Age) | | |
38
+ ```
39
+
40
+ **CORS 配置模板:**
41
+ ```
42
+ 允許的 Origins:
43
+ - 生產環境:https://[your-domain.com]
44
+ - 開發環境:http://localhost:[port]
45
+
46
+ 允許的 Methods:GET, POST, PUT, DELETE, PATCH
47
+ 允許的 Headers:Content-Type, Authorization
48
+ Credentials:true(如果使用 Cookie 認證)
49
+ Max-Age:86400(24 小時)
50
+ ```
51
+
52
+ ### 3. 輸入驗證與消毒(Input Validation & Sanitization)
53
+
54
+ ```
55
+ | 檢查項目 | 狀態 | 備註 |
56
+ |---------|------|------|
57
+ | 所有 API 輸入都有 Server-side 驗證 | | |
58
+ | 使用參數化查詢(Parameterized Query)防 SQL Injection | | |
59
+ | 使用者輸入經過 Output Encoding 後才渲染到 HTML(防 XSS) | | |
60
+ | 檔案上傳有類型 / 大小限制 | | |
61
+ | URL / Redirect 目標有白名單驗證(防 Open Redirect) | | |
62
+ ```
63
+
64
+ **驗證原則:**
65
+ - 前端驗證是 UX,後端驗證是安全性 — 兩者都需要,但後端驗證不可省略
66
+ - 使用 Schema Validation Library(如 Zod、Joi、Pydantic)統一驗證邏輯
67
+ - 拒絕不符合預期格式的輸入,不要試圖「修復」用戶輸入
68
+
69
+ ### 4. CSRF 防護(Cross-Site Request Forgery)
70
+
71
+ ```
72
+ | 檢查項目 | 狀態 | 備註 |
73
+ |---------|------|------|
74
+ | 變更操作使用 POST/PUT/DELETE(非 GET) | | |
75
+ | 實作 CSRF Token 或使用 SameSite Cookie | | |
76
+ | 關鍵操作有二次確認機制 | | |
77
+ ```
78
+
79
+ ### 5. 安全性 Headers
80
+
81
+ ```
82
+ | Header | 用途 | 建議值 |
83
+ |--------|------|--------|
84
+ | Content-Security-Policy (CSP) | 防 XSS、資料注入 | default-src 'self'; script-src 'self' |
85
+ | X-Content-Type-Options | 防 MIME Sniffing | nosniff |
86
+ | X-Frame-Options | 防 Clickjacking | DENY 或 SAMEORIGIN |
87
+ | Strict-Transport-Security (HSTS) | 強制 HTTPS | max-age=31536000; includeSubDomains |
88
+ | X-XSS-Protection | 瀏覽器 XSS 過濾 | 0(依賴 CSP 更可靠) |
89
+ | Referrer-Policy | 控制 Referrer 資訊 | strict-origin-when-cross-origin |
90
+ | Permissions-Policy | 限制瀏覽器功能 | camera=(), microphone=(), geolocation=() |
91
+ ```
92
+
93
+ ### 6. API 安全與 Rate Limiting
94
+
95
+ ```
96
+ | 檢查項目 | 狀態 | 備註 |
97
+ |---------|------|------|
98
+ | API 有全域 Rate Limiting(如 100 req/min/IP) | | |
99
+ | 敏感端點有更嚴格的限制(登入 5 req/min、註冊 3 req/min) | | |
100
+ | API 錯誤回應不洩漏內部資訊(堆疊追蹤、SQL 語句) | | |
101
+ | API Versioning 策略已確定(/api/v1/) | | |
102
+ | 大量資料端點有分頁(Pagination)限制 | | |
103
+ ```
104
+
105
+ **Rate Limiting 設計建議:**
106
+ ```
107
+ | 端點類型 | 建議限制 | 識別方式 |
108
+ |---------|---------|---------|
109
+ | 一般 API | 100 req/min | IP + User ID |
110
+ | 登入/註冊 | 5 req/min | IP |
111
+ | 密碼重設 | 3 req/hour | IP + Email |
112
+ | 檔案上傳 | 10 req/min | User ID |
113
+ | 搜尋/查詢 | 30 req/min | IP + User ID |
114
+ ```
115
+
116
+ ### 7. 防爬蟲與 Bot 防護
117
+
118
+ ```
119
+ | 檢查項目 | 狀態 | 備註 |
120
+ |---------|------|------|
121
+ | robots.txt 已配置(限制敏感路徑) | | |
122
+ | 關鍵表單有 Bot 防護(reCAPTCHA / hCaptcha / Honeypot) | | |
123
+ | API 有 User-Agent 檢查(可選) | | |
124
+ | 敏感操作有行為分析(可選,進階) | | |
125
+ ```
126
+
127
+ **分層防護策略:**
128
+ 1. **基礎層**:Rate Limiting + robots.txt — 所有產品都應該有
129
+ 2. **標準層**:+ CAPTCHA(註冊/登入)+ Honeypot 欄位 — B2C 產品建議
130
+ 3. **進階層**:+ 行為分析 + IP 信譽 + Device Fingerprint — 高風險產品
131
+
132
+ ### 8. 敏感資料保護
133
+
134
+ ```
135
+ | 檢查項目 | 狀態 | 備註 |
136
+ |---------|------|------|
137
+ | 敏感資料在傳輸中加密(HTTPS/TLS) | | |
138
+ | 敏感資料在儲存時加密(如需要) | | |
139
+ | 密鑰和 Secrets 不存在程式碼中 | | |
140
+ | .env 和敏感檔案已加入 .gitignore | | |
141
+ | 日誌不記錄密碼、Token、信用卡號等 | | |
142
+ | 有明確的資料保留與刪除政策(GDPR 如適用) | | |
143
+ ```
144
+
145
+ **Secrets 管理建議:**
146
+ - 開發環境:`.env` 檔案(不進版控)+ `.env.example`(只有 key 名稱,沒有值)
147
+ - 生產環境:使用平台提供的環境變數管理(Vercel Environment Variables / Railway Variables / AWS Secrets Manager)
148
+ - 不要在 commit message、PR description、issue 中提及 secrets
149
+
150
+ ### 9. .gitignore 安全模板
151
+
152
+ ```gitignore
153
+ # 環境變數與密鑰
154
+ .env
155
+ .env.local
156
+ .env.*.local
157
+ *.pem
158
+ *.key
159
+
160
+ # 產品規劃進度(可能包含敏感商業資訊)
161
+ .product-playbook-progress.md
162
+
163
+ # IDE 與作業系統
164
+ .idea/
165
+ .vscode/
166
+ *.swp
167
+ .DS_Store
168
+ Thumbs.db
169
+
170
+ # 依賴
171
+ node_modules/
172
+ __pycache__/
173
+ *.pyc
174
+ venv/
175
+
176
+ # 建置產出
177
+ dist/
178
+ build/
179
+ .next/
180
+ ```
181
+
182
+ ---
183
+
184
+ ## 🏷️ OWASP Top 10 快速對照
185
+
186
+ | # | 風險 | 本產品是否相關 | 對應檢查項 |
187
+ |---|------|-------------|-----------|
188
+ | A01 | Broken Access Control | [是/否] | §1 認證與授權 |
189
+ | A02 | Cryptographic Failures | [是/否] | §8 敏感資料保護 |
190
+ | A03 | Injection(SQL / XSS / Command) | [是/否] | §3 輸入驗證 |
191
+ | A04 | Insecure Design | [是/否] | 整體架構設計 |
192
+ | A05 | Security Misconfiguration | [是/否] | §5 Headers + §2 CORS |
193
+ | A06 | Vulnerable Components | [是/否] | 依賴管理(npm audit / pip audit) |
194
+ | A07 | Authentication Failures | [是/否] | §1 認證與授權 |
195
+ | A08 | Data Integrity Failures | [是/否] | §3 輸入驗證 + §8 資料保護 |
196
+ | A09 | Logging & Monitoring Failures | [是/否] | §8 日誌規範 |
197
+ | A10 | SSRF (Server-Side Request Forgery) | [是/否] | §3 URL 白名單驗證 |
198
+
199
+ ---
200
+
201
+ ## 📎 本檔案的整合時機
202
+
203
+ | 觸發情境 | 整合動作 |
204
+ |---------|---------|
205
+ | 產出開發交接包前 | 執行安全性快速檢查,將結果整合進 CLAUDE.md 的「風險警示」和 ARCHITECTURE.md 的「安全架構」段落 |
206
+ | 產出 PRD 時 | 將安全性相關檢查結果整合進 PRD §6「技術考量 → 安全性要求」 |
207
+ | Pre-mortem 步驟 | 提示使用者考慮安全性失敗情境 |
208
+ | 改版模式 S1 | 提示使用者提供既有產品的安全現況 |
209
+
210
+ ## 品質自檢
211
+
212
+ ```
213
+ | 檢查項目 | ✅/❌ |
214
+ |---------|------|
215
+ | 認證方式已明確選定,不是留空的「待確認」 | |
216
+ | 至少 3 個安全性 Headers 已規劃 | |
217
+ | Rate Limiting 策略已針對產品特性調整(不是直接複製模板) | |
218
+ | .gitignore 已包含所有敏感檔案 | |
219
+ | OWASP Top 10 中標記為「相關」的項目都有對應措施 | |
220
+ | 安全性措施的複雜度與產品階段匹配(MVP 不需要完美安全性,但基礎不可少) | |
221
+ ```