code-ai-installer 2.2.0 → 2.4.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 (547) hide show
  1. package/.agents/skills/karpathy-guidelines/SKILL.md +326 -0
  2. package/.agents/skills/karpathy-guidelines/agents/claude.json +21 -0
  3. package/.agents/skills/karpathy-guidelines/agents/copilot.json +21 -0
  4. package/.agents/skills/karpathy-guidelines/agents/gemini.json +21 -0
  5. package/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
  6. package/.agents/skills/karpathy-guidelines/agents/qwen.json +21 -0
  7. package/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
  8. package/AGENTS.md +13 -0
  9. package/README.md +141 -139
  10. package/agents/architect.md +1 -0
  11. package/agents/conductor.md +1 -0
  12. package/agents/devops.md +1 -0
  13. package/agents/product_manager.md +1 -0
  14. package/agents/reviewer.md +1 -0
  15. package/agents/senior_full_stack.md +1 -0
  16. package/agents/tester.md +1 -0
  17. package/agents/ux_ui_designer.md +1 -0
  18. package/dist/domainResolver.js +2 -2
  19. package/dist/index.js +4 -4
  20. package/dist/types.d.ts +1 -1
  21. package/domains/analytics/agents/conductor.md +1 -0
  22. package/domains/analytics/agents/data_analyst.md +1 -0
  23. package/domains/analytics/agents/designer.md +1 -0
  24. package/domains/analytics/agents/interviewer.md +1 -0
  25. package/domains/analytics/agents/layouter.md +1 -0
  26. package/domains/analytics/agents/mediator.md +1 -0
  27. package/domains/analytics/agents/researcher.md +1 -0
  28. package/domains/analytics/agents/strategist.md +1 -0
  29. package/domains/content/agents/conductor.md +1 -0
  30. package/domains/content/agents/copywriter.md +1 -0
  31. package/domains/content/agents/researcher.md +1 -0
  32. package/domains/content/agents/reviewer.md +1 -0
  33. package/domains/content/agents/strategist.md +1 -0
  34. package/domains/content/agents/visual_concept.md +1 -0
  35. package/domains/development/agents/architect.md +1 -0
  36. package/domains/development/agents/conductor.md +1 -0
  37. package/domains/development/agents/devops.md +1 -0
  38. package/domains/development/agents/product_manager.md +1 -0
  39. package/domains/development/agents/reviewer.md +1 -0
  40. package/domains/development/agents/senior_full_stack.md +1 -0
  41. package/domains/development/agents/tester.md +1 -0
  42. package/domains/development/agents/ux_ui_designer.md +1 -0
  43. package/domains/product/.agents/skills/aarrr-metrics/SKILL.md +433 -0
  44. package/domains/product/.agents/skills/aarrr-metrics/agents/claude.json +17 -0
  45. package/domains/product/.agents/skills/aarrr-metrics/agents/copilot.json +17 -0
  46. package/domains/product/.agents/skills/aarrr-metrics/agents/gemini.json +17 -0
  47. package/domains/product/.agents/skills/aarrr-metrics/agents/openai.yaml +8 -0
  48. package/domains/product/.agents/skills/aarrr-metrics/agents/qwen.json +17 -0
  49. package/domains/product/.agents/skills/aarrr-metrics/agents/skill.yaml +20 -0
  50. package/domains/product/.agents/skills/ab-test-design/SKILL.md +412 -0
  51. package/domains/product/.agents/skills/ab-test-design/agents/claude.json +17 -0
  52. package/domains/product/.agents/skills/ab-test-design/agents/copilot.json +17 -0
  53. package/domains/product/.agents/skills/ab-test-design/agents/gemini.json +17 -0
  54. package/domains/product/.agents/skills/ab-test-design/agents/openai.yaml +8 -0
  55. package/domains/product/.agents/skills/ab-test-design/agents/qwen.json +17 -0
  56. package/domains/product/.agents/skills/ab-test-design/agents/skill.yaml +20 -0
  57. package/domains/product/.agents/skills/acceptance-criteria/SKILL.md +406 -0
  58. package/domains/product/.agents/skills/acceptance-criteria/agents/claude.json +17 -0
  59. package/domains/product/.agents/skills/acceptance-criteria/agents/copilot.json +17 -0
  60. package/domains/product/.agents/skills/acceptance-criteria/agents/gemini.json +17 -0
  61. package/domains/product/.agents/skills/acceptance-criteria/agents/openai.yaml +8 -0
  62. package/domains/product/.agents/skills/acceptance-criteria/agents/qwen.json +17 -0
  63. package/domains/product/.agents/skills/acceptance-criteria/agents/skill.yaml +20 -0
  64. package/domains/product/.agents/skills/assumption-mapping/SKILL.md +307 -0
  65. package/domains/product/.agents/skills/assumption-mapping/agents/claude.json +17 -0
  66. package/domains/product/.agents/skills/assumption-mapping/agents/copilot.json +17 -0
  67. package/domains/product/.agents/skills/assumption-mapping/agents/gemini.json +17 -0
  68. package/domains/product/.agents/skills/assumption-mapping/agents/openai.yaml +8 -0
  69. package/domains/product/.agents/skills/assumption-mapping/agents/qwen.json +17 -0
  70. package/domains/product/.agents/skills/assumption-mapping/agents/skill.yaml +20 -0
  71. package/domains/product/.agents/skills/board/SKILL.md +420 -0
  72. package/domains/product/.agents/skills/board/agents/claude.json +16 -0
  73. package/domains/product/.agents/skills/board/agents/copilot.json +16 -0
  74. package/domains/product/.agents/skills/board/agents/gemini.json +16 -0
  75. package/domains/product/.agents/skills/board/agents/openai.yaml +8 -0
  76. package/domains/product/.agents/skills/board/agents/qwen.json +16 -0
  77. package/domains/product/.agents/skills/board/agents/skill.yaml +19 -0
  78. package/domains/product/.agents/skills/design-brief/SKILL.md +418 -0
  79. package/domains/product/.agents/skills/design-brief/agents/claude.json +16 -0
  80. package/domains/product/.agents/skills/design-brief/agents/copilot.json +16 -0
  81. package/domains/product/.agents/skills/design-brief/agents/gemini.json +16 -0
  82. package/domains/product/.agents/skills/design-brief/agents/openai.yaml +8 -0
  83. package/domains/product/.agents/skills/design-brief/agents/qwen.json +16 -0
  84. package/domains/product/.agents/skills/design-brief/agents/skill.yaml +19 -0
  85. package/domains/product/.agents/skills/epic-breakdown/SKILL.md +420 -0
  86. package/domains/product/.agents/skills/epic-breakdown/agents/claude.json +16 -0
  87. package/domains/product/.agents/skills/epic-breakdown/agents/copilot.json +16 -0
  88. package/domains/product/.agents/skills/epic-breakdown/agents/gemini.json +16 -0
  89. package/domains/product/.agents/skills/epic-breakdown/agents/openai.yaml +8 -0
  90. package/domains/product/.agents/skills/epic-breakdown/agents/qwen.json +16 -0
  91. package/domains/product/.agents/skills/epic-breakdown/agents/skill.yaml +19 -0
  92. package/domains/product/.agents/skills/gates/SKILL.md +446 -0
  93. package/domains/product/.agents/skills/gates/agents/claude.json +16 -0
  94. package/domains/product/.agents/skills/gates/agents/copilot.json +16 -0
  95. package/domains/product/.agents/skills/gates/agents/gemini.json +16 -0
  96. package/domains/product/.agents/skills/gates/agents/openai.yaml +8 -0
  97. package/domains/product/.agents/skills/gates/agents/qwen.json +16 -0
  98. package/domains/product/.agents/skills/gates/agents/skill.yaml +19 -0
  99. package/domains/product/.agents/skills/gtm-brief/SKILL.md +585 -0
  100. package/domains/product/.agents/skills/gtm-brief/agents/claude.json +17 -0
  101. package/domains/product/.agents/skills/gtm-brief/agents/copilot.json +17 -0
  102. package/domains/product/.agents/skills/gtm-brief/agents/gemini.json +17 -0
  103. package/domains/product/.agents/skills/gtm-brief/agents/openai.yaml +8 -0
  104. package/domains/product/.agents/skills/gtm-brief/agents/qwen.json +17 -0
  105. package/domains/product/.agents/skills/gtm-brief/agents/skill.yaml +20 -0
  106. package/domains/product/.agents/skills/handoff/SKILL.md +429 -0
  107. package/domains/product/.agents/skills/handoff/agents/claude.json +16 -0
  108. package/domains/product/.agents/skills/handoff/agents/copilot.json +16 -0
  109. package/domains/product/.agents/skills/handoff/agents/gemini.json +16 -0
  110. package/domains/product/.agents/skills/handoff/agents/openai.yaml +8 -0
  111. package/domains/product/.agents/skills/handoff/agents/qwen.json +16 -0
  112. package/domains/product/.agents/skills/handoff/agents/skill.yaml +19 -0
  113. package/domains/product/.agents/skills/html-pdf-report/SKILL.md +939 -0
  114. package/domains/product/.agents/skills/html-pdf-report/agents/claude.json +17 -0
  115. package/domains/product/.agents/skills/html-pdf-report/agents/copilot.json +17 -0
  116. package/domains/product/.agents/skills/html-pdf-report/agents/gemini.json +17 -0
  117. package/domains/product/.agents/skills/html-pdf-report/agents/openai.yaml +8 -0
  118. package/domains/product/.agents/skills/html-pdf-report/agents/qwen.json +17 -0
  119. package/domains/product/.agents/skills/html-pdf-report/agents/skill.yaml +20 -0
  120. package/domains/product/.agents/skills/hypothesis-template/SKILL.md +469 -0
  121. package/domains/product/.agents/skills/hypothesis-template/agents/claude.json +16 -0
  122. package/domains/product/.agents/skills/hypothesis-template/agents/copilot.json +16 -0
  123. package/domains/product/.agents/skills/hypothesis-template/agents/gemini.json +16 -0
  124. package/domains/product/.agents/skills/hypothesis-template/agents/openai.yaml +8 -0
  125. package/domains/product/.agents/skills/hypothesis-template/agents/qwen.json +16 -0
  126. package/domains/product/.agents/skills/hypothesis-template/agents/skill.yaml +19 -0
  127. package/domains/product/.agents/skills/jtbd-canvas/SKILL.md +258 -0
  128. package/domains/product/.agents/skills/jtbd-canvas/agents/claude.json +17 -0
  129. package/domains/product/.agents/skills/jtbd-canvas/agents/copilot.json +17 -0
  130. package/domains/product/.agents/skills/jtbd-canvas/agents/gemini.json +17 -0
  131. package/domains/product/.agents/skills/jtbd-canvas/agents/openai.yaml +8 -0
  132. package/domains/product/.agents/skills/jtbd-canvas/agents/qwen.json +17 -0
  133. package/domains/product/.agents/skills/jtbd-canvas/agents/skill.yaml +20 -0
  134. package/domains/product/.agents/skills/kano-model/SKILL.md +355 -0
  135. package/domains/product/.agents/skills/kano-model/agents/claude.json +16 -0
  136. package/domains/product/.agents/skills/kano-model/agents/copilot.json +16 -0
  137. package/domains/product/.agents/skills/kano-model/agents/gemini.json +16 -0
  138. package/domains/product/.agents/skills/kano-model/agents/openai.yaml +8 -0
  139. package/domains/product/.agents/skills/kano-model/agents/qwen.json +16 -0
  140. package/domains/product/.agents/skills/kano-model/agents/skill.yaml +19 -0
  141. package/domains/product/.agents/skills/launch-checklist/SKILL.md +419 -0
  142. package/domains/product/.agents/skills/launch-checklist/agents/claude.json +16 -0
  143. package/domains/product/.agents/skills/launch-checklist/agents/copilot.json +16 -0
  144. package/domains/product/.agents/skills/launch-checklist/agents/gemini.json +16 -0
  145. package/domains/product/.agents/skills/launch-checklist/agents/openai.yaml +8 -0
  146. package/domains/product/.agents/skills/launch-checklist/agents/qwen.json +16 -0
  147. package/domains/product/.agents/skills/launch-checklist/agents/skill.yaml +19 -0
  148. package/domains/product/.agents/skills/moscow-prioritization/SKILL.md +392 -0
  149. package/domains/product/.agents/skills/moscow-prioritization/agents/claude.json +16 -0
  150. package/domains/product/.agents/skills/moscow-prioritization/agents/copilot.json +16 -0
  151. package/domains/product/.agents/skills/moscow-prioritization/agents/gemini.json +16 -0
  152. package/domains/product/.agents/skills/moscow-prioritization/agents/openai.yaml +8 -0
  153. package/domains/product/.agents/skills/moscow-prioritization/agents/qwen.json +16 -0
  154. package/domains/product/.agents/skills/moscow-prioritization/agents/skill.yaml +19 -0
  155. package/domains/product/.agents/skills/north-star-metric/SKILL.md +301 -0
  156. package/domains/product/.agents/skills/north-star-metric/agents/claude.json +17 -0
  157. package/domains/product/.agents/skills/north-star-metric/agents/copilot.json +17 -0
  158. package/domains/product/.agents/skills/north-star-metric/agents/gemini.json +17 -0
  159. package/domains/product/.agents/skills/north-star-metric/agents/openai.yaml +8 -0
  160. package/domains/product/.agents/skills/north-star-metric/agents/qwen.json +17 -0
  161. package/domains/product/.agents/skills/north-star-metric/agents/skill.yaml +20 -0
  162. package/domains/product/.agents/skills/okr-framework/SKILL.md +284 -0
  163. package/domains/product/.agents/skills/okr-framework/agents/claude.json +16 -0
  164. package/domains/product/.agents/skills/okr-framework/agents/copilot.json +16 -0
  165. package/domains/product/.agents/skills/okr-framework/agents/gemini.json +16 -0
  166. package/domains/product/.agents/skills/okr-framework/agents/openai.yaml +8 -0
  167. package/domains/product/.agents/skills/okr-framework/agents/qwen.json +16 -0
  168. package/domains/product/.agents/skills/okr-framework/agents/skill.yaml +19 -0
  169. package/domains/product/.agents/skills/opportunity-solution-tree/SKILL.md +456 -0
  170. package/domains/product/.agents/skills/opportunity-solution-tree/agents/claude.json +17 -0
  171. package/domains/product/.agents/skills/opportunity-solution-tree/agents/copilot.json +17 -0
  172. package/domains/product/.agents/skills/opportunity-solution-tree/agents/gemini.json +17 -0
  173. package/domains/product/.agents/skills/opportunity-solution-tree/agents/openai.yaml +8 -0
  174. package/domains/product/.agents/skills/opportunity-solution-tree/agents/qwen.json +17 -0
  175. package/domains/product/.agents/skills/opportunity-solution-tree/agents/skill.yaml +20 -0
  176. package/domains/product/.agents/skills/prd-template/SKILL.md +490 -0
  177. package/domains/product/.agents/skills/prd-template/agents/claude.json +17 -0
  178. package/domains/product/.agents/skills/prd-template/agents/copilot.json +17 -0
  179. package/domains/product/.agents/skills/prd-template/agents/gemini.json +17 -0
  180. package/domains/product/.agents/skills/prd-template/agents/openai.yaml +8 -0
  181. package/domains/product/.agents/skills/prd-template/agents/qwen.json +17 -0
  182. package/domains/product/.agents/skills/prd-template/agents/skill.yaml +20 -0
  183. package/domains/product/.agents/skills/problem-statement/SKILL.md +312 -0
  184. package/domains/product/.agents/skills/problem-statement/agents/claude.json +16 -0
  185. package/domains/product/.agents/skills/problem-statement/agents/copilot.json +16 -0
  186. package/domains/product/.agents/skills/problem-statement/agents/gemini.json +16 -0
  187. package/domains/product/.agents/skills/problem-statement/agents/openai.yaml +8 -0
  188. package/domains/product/.agents/skills/problem-statement/agents/qwen.json +16 -0
  189. package/domains/product/.agents/skills/problem-statement/agents/skill.yaml +19 -0
  190. package/domains/product/.agents/skills/product-roadmap/SKILL.md +304 -0
  191. package/domains/product/.agents/skills/product-roadmap/agents/claude.json +17 -0
  192. package/domains/product/.agents/skills/product-roadmap/agents/copilot.json +17 -0
  193. package/domains/product/.agents/skills/product-roadmap/agents/gemini.json +17 -0
  194. package/domains/product/.agents/skills/product-roadmap/agents/openai.yaml +8 -0
  195. package/domains/product/.agents/skills/product-roadmap/agents/qwen.json +17 -0
  196. package/domains/product/.agents/skills/product-roadmap/agents/skill.yaml +20 -0
  197. package/domains/product/.agents/skills/product-vision/SKILL.md +394 -0
  198. package/domains/product/.agents/skills/product-vision/agents/claude.json +16 -0
  199. package/domains/product/.agents/skills/product-vision/agents/copilot.json +16 -0
  200. package/domains/product/.agents/skills/product-vision/agents/gemini.json +16 -0
  201. package/domains/product/.agents/skills/product-vision/agents/openai.yaml +8 -0
  202. package/domains/product/.agents/skills/product-vision/agents/qwen.json +16 -0
  203. package/domains/product/.agents/skills/product-vision/agents/skill.yaml +19 -0
  204. package/domains/product/.agents/skills/release-notes/SKILL.md +499 -0
  205. package/domains/product/.agents/skills/release-notes/agents/claude.json +17 -0
  206. package/domains/product/.agents/skills/release-notes/agents/copilot.json +17 -0
  207. package/domains/product/.agents/skills/release-notes/agents/gemini.json +17 -0
  208. package/domains/product/.agents/skills/release-notes/agents/openai.yaml +8 -0
  209. package/domains/product/.agents/skills/release-notes/agents/qwen.json +17 -0
  210. package/domains/product/.agents/skills/release-notes/agents/skill.yaml +20 -0
  211. package/domains/product/.agents/skills/report-design/SKILL.md +708 -0
  212. package/domains/product/.agents/skills/report-design/agents/claude.json +17 -0
  213. package/domains/product/.agents/skills/report-design/agents/copilot.json +17 -0
  214. package/domains/product/.agents/skills/report-design/agents/gemini.json +17 -0
  215. package/domains/product/.agents/skills/report-design/agents/openai.yaml +8 -0
  216. package/domains/product/.agents/skills/report-design/agents/qwen.json +17 -0
  217. package/domains/product/.agents/skills/report-design/agents/skill.yaml +20 -0
  218. package/domains/product/.agents/skills/rice-scoring/SKILL.md +251 -0
  219. package/domains/product/.agents/skills/rice-scoring/agents/claude.json +16 -0
  220. package/domains/product/.agents/skills/rice-scoring/agents/copilot.json +16 -0
  221. package/domains/product/.agents/skills/rice-scoring/agents/gemini.json +16 -0
  222. package/domains/product/.agents/skills/rice-scoring/agents/openai.yaml +8 -0
  223. package/domains/product/.agents/skills/rice-scoring/agents/qwen.json +16 -0
  224. package/domains/product/.agents/skills/rice-scoring/agents/skill.yaml +19 -0
  225. package/domains/product/.agents/skills/saas-metrics/SKILL.md +404 -0
  226. package/domains/product/.agents/skills/saas-metrics/agents/claude.json +21 -0
  227. package/domains/product/.agents/skills/saas-metrics/agents/copilot.json +21 -0
  228. package/domains/product/.agents/skills/saas-metrics/agents/gemini.json +21 -0
  229. package/domains/product/.agents/skills/saas-metrics/agents/openai.yaml +8 -0
  230. package/domains/product/.agents/skills/saas-metrics/agents/qwen.json +21 -0
  231. package/domains/product/.agents/skills/saas-metrics/agents/skill.yaml +24 -0
  232. package/domains/product/.agents/skills/session-prompt-generator/SKILL.md +450 -0
  233. package/domains/product/.agents/skills/session-prompt-generator/agents/claude.json +16 -0
  234. package/domains/product/.agents/skills/session-prompt-generator/agents/copilot.json +16 -0
  235. package/domains/product/.agents/skills/session-prompt-generator/agents/gemini.json +16 -0
  236. package/domains/product/.agents/skills/session-prompt-generator/agents/openai.yaml +8 -0
  237. package/domains/product/.agents/skills/session-prompt-generator/agents/qwen.json +16 -0
  238. package/domains/product/.agents/skills/session-prompt-generator/agents/skill.yaml +19 -0
  239. package/domains/product/.agents/skills/user-flow/SKILL.md +476 -0
  240. package/domains/product/.agents/skills/user-flow/agents/claude.json +16 -0
  241. package/domains/product/.agents/skills/user-flow/agents/copilot.json +16 -0
  242. package/domains/product/.agents/skills/user-flow/agents/gemini.json +16 -0
  243. package/domains/product/.agents/skills/user-flow/agents/openai.yaml +8 -0
  244. package/domains/product/.agents/skills/user-flow/agents/qwen.json +16 -0
  245. package/domains/product/.agents/skills/user-flow/agents/skill.yaml +19 -0
  246. package/domains/product/.agents/skills/user-interview-script/SKILL.md +298 -0
  247. package/domains/product/.agents/skills/user-interview-script/agents/claude.json +18 -0
  248. package/domains/product/.agents/skills/user-interview-script/agents/copilot.json +18 -0
  249. package/domains/product/.agents/skills/user-interview-script/agents/gemini.json +18 -0
  250. package/domains/product/.agents/skills/user-interview-script/agents/openai.yaml +8 -0
  251. package/domains/product/.agents/skills/user-interview-script/agents/qwen.json +18 -0
  252. package/domains/product/.agents/skills/user-interview-script/agents/skill.yaml +21 -0
  253. package/domains/product/.agents/skills/user-story/SKILL.md +385 -0
  254. package/domains/product/.agents/skills/user-story/agents/claude.json +17 -0
  255. package/domains/product/.agents/skills/user-story/agents/copilot.json +17 -0
  256. package/domains/product/.agents/skills/user-story/agents/gemini.json +17 -0
  257. package/domains/product/.agents/skills/user-story/agents/openai.yaml +8 -0
  258. package/domains/product/.agents/skills/user-story/agents/qwen.json +17 -0
  259. package/domains/product/.agents/skills/user-story/agents/skill.yaml +20 -0
  260. package/domains/product/.agents/skills/wsjf-scoring/SKILL.md +315 -0
  261. package/domains/product/.agents/skills/wsjf-scoring/agents/claude.json +17 -0
  262. package/domains/product/.agents/skills/wsjf-scoring/agents/copilot.json +17 -0
  263. package/domains/product/.agents/skills/wsjf-scoring/agents/gemini.json +17 -0
  264. package/domains/product/.agents/skills/wsjf-scoring/agents/openai.yaml +8 -0
  265. package/domains/product/.agents/skills/wsjf-scoring/agents/qwen.json +17 -0
  266. package/domains/product/.agents/skills/wsjf-scoring/agents/skill.yaml +20 -0
  267. package/domains/product/.agents/workflows/product-pipeline-rules.md +340 -0
  268. package/domains/product/.agents/workflows/quick-pm.md +292 -0
  269. package/domains/product/.agents/workflows/shape-prioritize.md +263 -0
  270. package/domains/product/.agents/workflows/ship-right-thing.md +242 -0
  271. package/domains/product/.agents/workflows/spec.md +229 -0
  272. package/domains/product/AGENTS.md +149 -0
  273. package/domains/product/AGENTS.yaml +77 -0
  274. package/domains/product/CONTEXT.md +40 -0
  275. package/domains/product/agents/conductor.md +518 -0
  276. package/domains/product/agents/data_analyst.md +558 -0
  277. package/domains/product/agents/designer.md +444 -0
  278. package/domains/product/agents/discovery.md +548 -0
  279. package/domains/product/agents/layouter.md +614 -0
  280. package/domains/product/agents/mediator.md +515 -0
  281. package/domains/product/agents/orchestrator.claude.json +10 -0
  282. package/domains/product/agents/orchestrator.copilot.json +10 -0
  283. package/domains/product/agents/orchestrator.gemini.json +10 -0
  284. package/domains/product/agents/orchestrator.openai.yaml +8 -0
  285. package/domains/product/agents/orchestrator.qwen.json +10 -0
  286. package/domains/product/agents/pm.md +545 -0
  287. package/domains/product/agents/product_strategist.md +503 -0
  288. package/domains/product/agents/tech_lead.md +547 -0
  289. package/domains/product/agents/ux_designer.md +440 -0
  290. package/domains/product/domain.json +5 -0
  291. package/domains/product/locales/en/.agents/skills/aarrr-metrics/SKILL.md +433 -0
  292. package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/claude.json +17 -0
  293. package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/copilot.json +17 -0
  294. package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/gemini.json +17 -0
  295. package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/openai.yaml +8 -0
  296. package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/qwen.json +17 -0
  297. package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/skill.yaml +20 -0
  298. package/domains/product/locales/en/.agents/skills/ab-test-design/SKILL.md +412 -0
  299. package/domains/product/locales/en/.agents/skills/ab-test-design/agents/claude.json +16 -0
  300. package/domains/product/locales/en/.agents/skills/ab-test-design/agents/copilot.json +16 -0
  301. package/domains/product/locales/en/.agents/skills/ab-test-design/agents/gemini.json +16 -0
  302. package/domains/product/locales/en/.agents/skills/ab-test-design/agents/openai.yaml +8 -0
  303. package/domains/product/locales/en/.agents/skills/ab-test-design/agents/qwen.json +16 -0
  304. package/domains/product/locales/en/.agents/skills/ab-test-design/agents/skill.yaml +19 -0
  305. package/domains/product/locales/en/.agents/skills/acceptance-criteria/SKILL.md +406 -0
  306. package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/claude.json +16 -0
  307. package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/copilot.json +16 -0
  308. package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/gemini.json +16 -0
  309. package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/openai.yaml +8 -0
  310. package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/qwen.json +16 -0
  311. package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/skill.yaml +19 -0
  312. package/domains/product/locales/en/.agents/skills/assumption-mapping/SKILL.md +307 -0
  313. package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/claude.json +15 -0
  314. package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/copilot.json +15 -0
  315. package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/gemini.json +15 -0
  316. package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/openai.yaml +8 -0
  317. package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/qwen.json +15 -0
  318. package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/skill.yaml +18 -0
  319. package/domains/product/locales/en/.agents/skills/board/SKILL.md +420 -0
  320. package/domains/product/locales/en/.agents/skills/board/agents/claude.json +15 -0
  321. package/domains/product/locales/en/.agents/skills/board/agents/copilot.json +15 -0
  322. package/domains/product/locales/en/.agents/skills/board/agents/gemini.json +15 -0
  323. package/domains/product/locales/en/.agents/skills/board/agents/openai.yaml +8 -0
  324. package/domains/product/locales/en/.agents/skills/board/agents/qwen.json +15 -0
  325. package/domains/product/locales/en/.agents/skills/board/agents/skill.yaml +18 -0
  326. package/domains/product/locales/en/.agents/skills/design-brief/SKILL.md +418 -0
  327. package/domains/product/locales/en/.agents/skills/design-brief/agents/claude.json +15 -0
  328. package/domains/product/locales/en/.agents/skills/design-brief/agents/copilot.json +15 -0
  329. package/domains/product/locales/en/.agents/skills/design-brief/agents/gemini.json +15 -0
  330. package/domains/product/locales/en/.agents/skills/design-brief/agents/openai.yaml +8 -0
  331. package/domains/product/locales/en/.agents/skills/design-brief/agents/qwen.json +15 -0
  332. package/domains/product/locales/en/.agents/skills/design-brief/agents/skill.yaml +18 -0
  333. package/domains/product/locales/en/.agents/skills/epic-breakdown/SKILL.md +420 -0
  334. package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/claude.json +15 -0
  335. package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/copilot.json +15 -0
  336. package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/gemini.json +15 -0
  337. package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/openai.yaml +8 -0
  338. package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/qwen.json +15 -0
  339. package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/skill.yaml +18 -0
  340. package/domains/product/locales/en/.agents/skills/gates/SKILL.md +446 -0
  341. package/domains/product/locales/en/.agents/skills/gates/agents/claude.json +16 -0
  342. package/domains/product/locales/en/.agents/skills/gates/agents/copilot.json +16 -0
  343. package/domains/product/locales/en/.agents/skills/gates/agents/gemini.json +16 -0
  344. package/domains/product/locales/en/.agents/skills/gates/agents/openai.yaml +8 -0
  345. package/domains/product/locales/en/.agents/skills/gates/agents/qwen.json +16 -0
  346. package/domains/product/locales/en/.agents/skills/gates/agents/skill.yaml +19 -0
  347. package/domains/product/locales/en/.agents/skills/gtm-brief/SKILL.md +585 -0
  348. package/domains/product/locales/en/.agents/skills/gtm-brief/agents/claude.json +17 -0
  349. package/domains/product/locales/en/.agents/skills/gtm-brief/agents/copilot.json +17 -0
  350. package/domains/product/locales/en/.agents/skills/gtm-brief/agents/gemini.json +17 -0
  351. package/domains/product/locales/en/.agents/skills/gtm-brief/agents/openai.yaml +8 -0
  352. package/domains/product/locales/en/.agents/skills/gtm-brief/agents/qwen.json +17 -0
  353. package/domains/product/locales/en/.agents/skills/gtm-brief/agents/skill.yaml +20 -0
  354. package/domains/product/locales/en/.agents/skills/handoff/SKILL.md +429 -0
  355. package/domains/product/locales/en/.agents/skills/handoff/agents/claude.json +15 -0
  356. package/domains/product/locales/en/.agents/skills/handoff/agents/copilot.json +15 -0
  357. package/domains/product/locales/en/.agents/skills/handoff/agents/gemini.json +15 -0
  358. package/domains/product/locales/en/.agents/skills/handoff/agents/openai.yaml +8 -0
  359. package/domains/product/locales/en/.agents/skills/handoff/agents/qwen.json +15 -0
  360. package/domains/product/locales/en/.agents/skills/handoff/agents/skill.yaml +18 -0
  361. package/domains/product/locales/en/.agents/skills/html-pdf-report/SKILL.md +939 -0
  362. package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/claude.json +17 -0
  363. package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/copilot.json +17 -0
  364. package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/gemini.json +17 -0
  365. package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/openai.yaml +8 -0
  366. package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/qwen.json +17 -0
  367. package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/skill.yaml +20 -0
  368. package/domains/product/locales/en/.agents/skills/hypothesis-template/SKILL.md +469 -0
  369. package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/claude.json +15 -0
  370. package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/copilot.json +15 -0
  371. package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/gemini.json +15 -0
  372. package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/openai.yaml +8 -0
  373. package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/qwen.json +15 -0
  374. package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/skill.yaml +18 -0
  375. package/domains/product/locales/en/.agents/skills/jtbd-canvas/SKILL.md +257 -0
  376. package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/claude.json +16 -0
  377. package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/copilot.json +16 -0
  378. package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/gemini.json +16 -0
  379. package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/openai.yaml +8 -0
  380. package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/qwen.json +16 -0
  381. package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/skill.yaml +19 -0
  382. package/domains/product/locales/en/.agents/skills/kano-model/SKILL.md +355 -0
  383. package/domains/product/locales/en/.agents/skills/kano-model/agents/claude.json +15 -0
  384. package/domains/product/locales/en/.agents/skills/kano-model/agents/copilot.json +15 -0
  385. package/domains/product/locales/en/.agents/skills/kano-model/agents/gemini.json +15 -0
  386. package/domains/product/locales/en/.agents/skills/kano-model/agents/openai.yaml +8 -0
  387. package/domains/product/locales/en/.agents/skills/kano-model/agents/qwen.json +15 -0
  388. package/domains/product/locales/en/.agents/skills/kano-model/agents/skill.yaml +18 -0
  389. package/domains/product/locales/en/.agents/skills/launch-checklist/SKILL.md +419 -0
  390. package/domains/product/locales/en/.agents/skills/launch-checklist/agents/claude.json +15 -0
  391. package/domains/product/locales/en/.agents/skills/launch-checklist/agents/copilot.json +15 -0
  392. package/domains/product/locales/en/.agents/skills/launch-checklist/agents/gemini.json +15 -0
  393. package/domains/product/locales/en/.agents/skills/launch-checklist/agents/openai.yaml +8 -0
  394. package/domains/product/locales/en/.agents/skills/launch-checklist/agents/qwen.json +15 -0
  395. package/domains/product/locales/en/.agents/skills/launch-checklist/agents/skill.yaml +18 -0
  396. package/domains/product/locales/en/.agents/skills/moscow-prioritization/SKILL.md +392 -0
  397. package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/claude.json +16 -0
  398. package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/copilot.json +16 -0
  399. package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/gemini.json +16 -0
  400. package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/openai.yaml +8 -0
  401. package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/qwen.json +16 -0
  402. package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/skill.yaml +19 -0
  403. package/domains/product/locales/en/.agents/skills/north-star-metric/SKILL.md +301 -0
  404. package/domains/product/locales/en/.agents/skills/north-star-metric/agents/claude.json +16 -0
  405. package/domains/product/locales/en/.agents/skills/north-star-metric/agents/copilot.json +16 -0
  406. package/domains/product/locales/en/.agents/skills/north-star-metric/agents/gemini.json +16 -0
  407. package/domains/product/locales/en/.agents/skills/north-star-metric/agents/openai.yaml +8 -0
  408. package/domains/product/locales/en/.agents/skills/north-star-metric/agents/qwen.json +16 -0
  409. package/domains/product/locales/en/.agents/skills/north-star-metric/agents/skill.yaml +19 -0
  410. package/domains/product/locales/en/.agents/skills/okr-framework/SKILL.md +284 -0
  411. package/domains/product/locales/en/.agents/skills/okr-framework/agents/claude.json +16 -0
  412. package/domains/product/locales/en/.agents/skills/okr-framework/agents/copilot.json +16 -0
  413. package/domains/product/locales/en/.agents/skills/okr-framework/agents/gemini.json +16 -0
  414. package/domains/product/locales/en/.agents/skills/okr-framework/agents/openai.yaml +8 -0
  415. package/domains/product/locales/en/.agents/skills/okr-framework/agents/qwen.json +16 -0
  416. package/domains/product/locales/en/.agents/skills/okr-framework/agents/skill.yaml +19 -0
  417. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/SKILL.md +456 -0
  418. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/claude.json +16 -0
  419. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/copilot.json +16 -0
  420. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/gemini.json +16 -0
  421. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/openai.yaml +8 -0
  422. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/qwen.json +16 -0
  423. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/skill.yaml +19 -0
  424. package/domains/product/locales/en/.agents/skills/prd-template/SKILL.md +490 -0
  425. package/domains/product/locales/en/.agents/skills/prd-template/agents/claude.json +16 -0
  426. package/domains/product/locales/en/.agents/skills/prd-template/agents/copilot.json +16 -0
  427. package/domains/product/locales/en/.agents/skills/prd-template/agents/gemini.json +16 -0
  428. package/domains/product/locales/en/.agents/skills/prd-template/agents/openai.yaml +8 -0
  429. package/domains/product/locales/en/.agents/skills/prd-template/agents/qwen.json +16 -0
  430. package/domains/product/locales/en/.agents/skills/prd-template/agents/skill.yaml +19 -0
  431. package/domains/product/locales/en/.agents/skills/problem-statement/SKILL.md +312 -0
  432. package/domains/product/locales/en/.agents/skills/problem-statement/agents/claude.json +15 -0
  433. package/domains/product/locales/en/.agents/skills/problem-statement/agents/copilot.json +15 -0
  434. package/domains/product/locales/en/.agents/skills/problem-statement/agents/gemini.json +15 -0
  435. package/domains/product/locales/en/.agents/skills/problem-statement/agents/openai.yaml +8 -0
  436. package/domains/product/locales/en/.agents/skills/problem-statement/agents/qwen.json +15 -0
  437. package/domains/product/locales/en/.agents/skills/problem-statement/agents/skill.yaml +18 -0
  438. package/domains/product/locales/en/.agents/skills/product-roadmap/SKILL.md +305 -0
  439. package/domains/product/locales/en/.agents/skills/product-roadmap/agents/claude.json +16 -0
  440. package/domains/product/locales/en/.agents/skills/product-roadmap/agents/copilot.json +16 -0
  441. package/domains/product/locales/en/.agents/skills/product-roadmap/agents/gemini.json +16 -0
  442. package/domains/product/locales/en/.agents/skills/product-roadmap/agents/openai.yaml +8 -0
  443. package/domains/product/locales/en/.agents/skills/product-roadmap/agents/qwen.json +16 -0
  444. package/domains/product/locales/en/.agents/skills/product-roadmap/agents/skill.yaml +19 -0
  445. package/domains/product/locales/en/.agents/skills/product-vision/SKILL.md +395 -0
  446. package/domains/product/locales/en/.agents/skills/product-vision/agents/claude.json +15 -0
  447. package/domains/product/locales/en/.agents/skills/product-vision/agents/copilot.json +15 -0
  448. package/domains/product/locales/en/.agents/skills/product-vision/agents/gemini.json +15 -0
  449. package/domains/product/locales/en/.agents/skills/product-vision/agents/openai.yaml +8 -0
  450. package/domains/product/locales/en/.agents/skills/product-vision/agents/qwen.json +15 -0
  451. package/domains/product/locales/en/.agents/skills/product-vision/agents/skill.yaml +18 -0
  452. package/domains/product/locales/en/.agents/skills/release-notes/SKILL.md +499 -0
  453. package/domains/product/locales/en/.agents/skills/release-notes/agents/claude.json +16 -0
  454. package/domains/product/locales/en/.agents/skills/release-notes/agents/copilot.json +16 -0
  455. package/domains/product/locales/en/.agents/skills/release-notes/agents/gemini.json +16 -0
  456. package/domains/product/locales/en/.agents/skills/release-notes/agents/openai.yaml +8 -0
  457. package/domains/product/locales/en/.agents/skills/release-notes/agents/qwen.json +16 -0
  458. package/domains/product/locales/en/.agents/skills/release-notes/agents/skill.yaml +19 -0
  459. package/domains/product/locales/en/.agents/skills/report-design/SKILL.md +708 -0
  460. package/domains/product/locales/en/.agents/skills/report-design/agents/claude.json +17 -0
  461. package/domains/product/locales/en/.agents/skills/report-design/agents/copilot.json +17 -0
  462. package/domains/product/locales/en/.agents/skills/report-design/agents/gemini.json +17 -0
  463. package/domains/product/locales/en/.agents/skills/report-design/agents/openai.yaml +8 -0
  464. package/domains/product/locales/en/.agents/skills/report-design/agents/qwen.json +17 -0
  465. package/domains/product/locales/en/.agents/skills/report-design/agents/skill.yaml +20 -0
  466. package/domains/product/locales/en/.agents/skills/rice-scoring/SKILL.md +251 -0
  467. package/domains/product/locales/en/.agents/skills/rice-scoring/agents/claude.json +16 -0
  468. package/domains/product/locales/en/.agents/skills/rice-scoring/agents/copilot.json +16 -0
  469. package/domains/product/locales/en/.agents/skills/rice-scoring/agents/gemini.json +16 -0
  470. package/domains/product/locales/en/.agents/skills/rice-scoring/agents/openai.yaml +8 -0
  471. package/domains/product/locales/en/.agents/skills/rice-scoring/agents/qwen.json +16 -0
  472. package/domains/product/locales/en/.agents/skills/rice-scoring/agents/skill.yaml +19 -0
  473. package/domains/product/locales/en/.agents/skills/saas-metrics/SKILL.md +404 -0
  474. package/domains/product/locales/en/.agents/skills/saas-metrics/agents/claude.json +21 -0
  475. package/domains/product/locales/en/.agents/skills/saas-metrics/agents/copilot.json +21 -0
  476. package/domains/product/locales/en/.agents/skills/saas-metrics/agents/gemini.json +21 -0
  477. package/domains/product/locales/en/.agents/skills/saas-metrics/agents/openai.yaml +8 -0
  478. package/domains/product/locales/en/.agents/skills/saas-metrics/agents/qwen.json +21 -0
  479. package/domains/product/locales/en/.agents/skills/saas-metrics/agents/skill.yaml +24 -0
  480. package/domains/product/locales/en/.agents/skills/session-prompt-generator/SKILL.md +450 -0
  481. package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/claude.json +16 -0
  482. package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/copilot.json +16 -0
  483. package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/gemini.json +16 -0
  484. package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/openai.yaml +8 -0
  485. package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/qwen.json +16 -0
  486. package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/skill.yaml +19 -0
  487. package/domains/product/locales/en/.agents/skills/user-flow/SKILL.md +476 -0
  488. package/domains/product/locales/en/.agents/skills/user-flow/agents/claude.json +15 -0
  489. package/domains/product/locales/en/.agents/skills/user-flow/agents/copilot.json +15 -0
  490. package/domains/product/locales/en/.agents/skills/user-flow/agents/gemini.json +15 -0
  491. package/domains/product/locales/en/.agents/skills/user-flow/agents/openai.yaml +8 -0
  492. package/domains/product/locales/en/.agents/skills/user-flow/agents/qwen.json +15 -0
  493. package/domains/product/locales/en/.agents/skills/user-flow/agents/skill.yaml +18 -0
  494. package/domains/product/locales/en/.agents/skills/user-interview-script/SKILL.md +297 -0
  495. package/domains/product/locales/en/.agents/skills/user-interview-script/agents/claude.json +17 -0
  496. package/domains/product/locales/en/.agents/skills/user-interview-script/agents/copilot.json +17 -0
  497. package/domains/product/locales/en/.agents/skills/user-interview-script/agents/gemini.json +17 -0
  498. package/domains/product/locales/en/.agents/skills/user-interview-script/agents/openai.yaml +8 -0
  499. package/domains/product/locales/en/.agents/skills/user-interview-script/agents/qwen.json +17 -0
  500. package/domains/product/locales/en/.agents/skills/user-interview-script/agents/skill.yaml +20 -0
  501. package/domains/product/locales/en/.agents/skills/user-story/SKILL.md +385 -0
  502. package/domains/product/locales/en/.agents/skills/user-story/agents/claude.json +16 -0
  503. package/domains/product/locales/en/.agents/skills/user-story/agents/copilot.json +16 -0
  504. package/domains/product/locales/en/.agents/skills/user-story/agents/gemini.json +16 -0
  505. package/domains/product/locales/en/.agents/skills/user-story/agents/openai.yaml +8 -0
  506. package/domains/product/locales/en/.agents/skills/user-story/agents/qwen.json +16 -0
  507. package/domains/product/locales/en/.agents/skills/user-story/agents/skill.yaml +19 -0
  508. package/domains/product/locales/en/.agents/skills/wsjf-scoring/SKILL.md +315 -0
  509. package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/claude.json +17 -0
  510. package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/copilot.json +17 -0
  511. package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/gemini.json +17 -0
  512. package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/openai.yaml +8 -0
  513. package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/qwen.json +17 -0
  514. package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/skill.yaml +20 -0
  515. package/domains/product/locales/en/.agents/workflows/product-pipeline-rules.md +340 -0
  516. package/domains/product/locales/en/.agents/workflows/quick-pm.md +292 -0
  517. package/domains/product/locales/en/.agents/workflows/shape-prioritize.md +263 -0
  518. package/domains/product/locales/en/.agents/workflows/ship-right-thing.md +242 -0
  519. package/domains/product/locales/en/.agents/workflows/spec.md +229 -0
  520. package/domains/product/locales/en/AGENTS.md +149 -0
  521. package/domains/product/locales/en/AGENTS.yaml +78 -0
  522. package/domains/product/locales/en/CONTEXT.md +40 -0
  523. package/domains/product/locales/en/agents/conductor.md +518 -0
  524. package/domains/product/locales/en/agents/data_analyst.md +557 -0
  525. package/domains/product/locales/en/agents/designer.md +443 -0
  526. package/domains/product/locales/en/agents/discovery.md +547 -0
  527. package/domains/product/locales/en/agents/layouter.md +613 -0
  528. package/domains/product/locales/en/agents/mediator.md +514 -0
  529. package/domains/product/locales/en/agents/orchestrator.claude.json +10 -0
  530. package/domains/product/locales/en/agents/orchestrator.copilot.json +10 -0
  531. package/domains/product/locales/en/agents/orchestrator.gemini.json +10 -0
  532. package/domains/product/locales/en/agents/orchestrator.openai.yaml +8 -0
  533. package/domains/product/locales/en/agents/orchestrator.qwen.json +10 -0
  534. package/domains/product/locales/en/agents/pm.md +544 -0
  535. package/domains/product/locales/en/agents/product_strategist.md +502 -0
  536. package/domains/product/locales/en/agents/tech_lead.md +546 -0
  537. package/domains/product/locales/en/agents/ux_designer.md +439 -0
  538. package/domains/product/locales/en/prompt-examples.md +77 -0
  539. package/domains/product/prompt-examples.md +77 -0
  540. package/locales/en/.agents/skills/karpathy-guidelines/SKILL.md +325 -0
  541. package/locales/en/.agents/skills/karpathy-guidelines/agents/claude.json +22 -0
  542. package/locales/en/.agents/skills/karpathy-guidelines/agents/copilot.json +22 -0
  543. package/locales/en/.agents/skills/karpathy-guidelines/agents/gemini.json +22 -0
  544. package/locales/en/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
  545. package/locales/en/.agents/skills/karpathy-guidelines/agents/qwen.json +22 -0
  546. package/locales/en/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
  547. package/package.json +2 -2
@@ -0,0 +1,939 @@
1
+ ---
2
+ name: html-pdf-report
3
+ description: Generating a PRD or Product Review Deck from HTML/CSS to PDF — self-contained, print-ready
4
+ ---
5
+ # HTML/PDF Report — Generating a PRD or Product Review Deck as PDF
6
+
7
+ ## When to Use
8
+ - When implementing the **final PRD** or **Product Review Deck** from the Design Spec provided by the Designer.
9
+ - When creating a **self-contained HTML file** with Chart.js, Mermaid, and print-optimized CSS.
10
+ - When generating a **PDF-ready document** via Print-to-PDF in the browser or puppeteer.
11
+ - When laying out **PRD documents** with user stories, tables (AC / RICE / metrics), roadmap visualizations, and diagrams.
12
+
13
+ ## Input
14
+
15
+ | Field | Required | Description |
16
+ |-------|:--------:|-------------|
17
+ | Report Design Spec | ✅ | Section structure, visualizations, emphasis levels |
18
+ | Executive Summary Draft | ✅ | Draft from the Designer |
19
+ | Color Palette | ✅ | Primary, secondary, accent colors, etc. |
20
+ | Visualization Map | ✅ | List of visualizations with types and data |
21
+ | Raw report text | ✅ | Mediator conclusion, Alpha/Beta Reports, Brief |
22
+ | Numeric data for charts | ✅ | Extracted from reports or provided separately |
23
+
24
+ > If required fields are not provided — **request from user** before starting work. Do not generate placeholders.
25
+
26
+ ## Data Sources
27
+ 1. Report Design Spec from the Designer — structure, visualizations, palette.
28
+ 2. session-1 through session-4 handoff files — raw text for sections and appendices.
29
+
30
+ ### Related Skills
31
+ | Skill | Interaction | When |
32
+ |-------|-------------|------|
33
+ | `$gates` (DS-01) | Layout and visualization specifications — primary input for layout | Before starting work |
34
+ | `$handoff` | Session handoff files — raw text for report sections | Content loading |
35
+ | `$board` | Update LY-01 status on completion | After HTML generation |
36
+ | `$gates` (LY-01) | HTML validation before Release Gate | After completion |
37
+ | Framework skills | Tables, matrices, scoring models — visualize per Visualization Map | For Chart.js / tables |
38
+
39
+ ## Protocol
40
+
41
+ ### Step 0 — Input Validation
42
+ 1. Verify presence of Report Design Spec (P0 BLOCKER if absent).
43
+ 2. Verify presence of all raw text artifacts.
44
+ 3. Extract numeric data for Chart.js from reports.
45
+ 4. Match Visualization Map against available data.
46
+ 5. If data is incomplete — request from user.
47
+
48
+ ### Step 1 — HTML Skeleton
49
+ 1. `<!DOCTYPE html>` with `lang="en"`, `charset="UTF-8"`.
50
+ 2. CDN: Chart.js 4.x, Mermaid 10.x.
51
+ 3. `<style>` for all CSS, `<script>` for Chart.js and Mermaid init.
52
+ 4. Body structure:
53
+
54
+ ```html
55
+ <div class="report">
56
+ <section class="title-page" id="title">...</section>
57
+ <nav class="toc" id="toc">...</nav>
58
+ <section class="executive-summary" id="executive-summary">...</section>
59
+ <section class="main-section" id="section-1">...</section>
60
+ <section class="main-section" id="section-2">...</section>
61
+ <section class="appendix" id="appendix-a">...</section>
62
+ </div>
63
+ ```
64
+
65
+ 5. Each section — semantic HTML: `<section>`, `<article>`, `<figure>`, `<figcaption>`.
66
+ 6. Charts — `<figure>` with `<figcaption>` for accessibility and caption.
67
+
68
+ ### Step 2 — CSS (Base + Print)
69
+
70
+ Full working CSS block:
71
+
72
+ ```css
73
+ /* ========== RESET & BASE ========== */
74
+ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
75
+ body {
76
+ font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
77
+ font-size: 11pt;
78
+ line-height: 1.6;
79
+ color: #1a1a2e;
80
+ background: #fff;
81
+ }
82
+ .report { max-width: 210mm; margin: 0 auto; padding: 20mm; }
83
+
84
+ /* ========== TYPOGRAPHY ========== */
85
+ h1 { font-size: 24pt; font-weight: 700; margin-bottom: 0.5em; color: var(--primary); }
86
+ h2 { font-size: 18pt; font-weight: 600; margin: 1.5em 0 0.5em; padding-bottom: 0.3em;
87
+ border-bottom: 2px solid var(--primary); color: var(--primary); }
88
+ h3 { font-size: 14pt; font-weight: 600; margin: 1.2em 0 0.4em; color: var(--secondary); }
89
+ h4 { font-size: 12pt; font-weight: 600; margin: 1em 0 0.3em; }
90
+ p { margin-bottom: 0.8em; }
91
+ blockquote { border-left: 4px solid var(--accent); padding: 0.8em 1.2em;
92
+ margin: 1em 0; background: var(--bg-light); font-style: italic; }
93
+
94
+ /* ========== CSS VARIABLES (from palette) ========== */
95
+ :root {
96
+ --primary: #1a1a2e; /* Replace from Design Spec */
97
+ --secondary: #16213e;
98
+ --accent: #0f3460;
99
+ --highlight: #e94560;
100
+ --bg-light: #f5f5f5;
101
+ --border: #e0e0e0;
102
+ --success: #2ecc71;
103
+ --warning: #f39c12;
104
+ --danger: #e74c3c;
105
+ }
106
+
107
+ /* ========== TITLE PAGE ========== */
108
+ .title-page {
109
+ display: flex; flex-direction: column; justify-content: center; align-items: center;
110
+ min-height: 100vh; text-align: center;
111
+ }
112
+ .title-page h1 { font-size: 32pt; margin-bottom: 0.3em; }
113
+ .title-page .subtitle { font-size: 16pt; color: var(--secondary); margin-bottom: 2em; }
114
+ .title-page .meta { font-size: 10pt; color: #666; }
115
+
116
+ /* ========== TOC ========== */
117
+ .toc-list { list-style: none; counter-reset: toc; }
118
+ .toc-list li { padding: 0.4em 0; border-bottom: 1px dotted var(--border); }
119
+ .toc-list li::before { counter-increment: toc; content: counter(toc) ". "; font-weight: 600; }
120
+ .toc-list a { text-decoration: none; color: var(--primary); }
121
+ .toc-list a:hover { color: var(--accent); }
122
+
123
+ /* ========== DATA TABLE ========== */
124
+ .data-table { width: 100%; border-collapse: collapse; margin: 1em 0; font-size: 10pt; }
125
+ .data-table th { background: var(--primary); color: #fff; padding: 8px 12px;
126
+ text-align: left; font-weight: 600; }
127
+ .data-table td { padding: 8px 12px; border-bottom: 1px solid var(--border); }
128
+ .data-table tr:nth-child(even) { background: var(--bg-light); }
129
+ .data-table .highlight { background: rgba(233, 69, 96, 0.1); font-weight: 600; }
130
+
131
+ /* ========== MATRIX 2x2 ========== */
132
+ .matrix-2x2 { display: grid; grid-template-columns: 1fr 1fr; gap: 2px;
133
+ margin: 1em 0; border: 2px solid var(--border); }
134
+ .matrix-2x2 .cell { padding: 1.2em; }
135
+ .matrix-2x2 .cell-header { background: var(--primary); color: #fff; font-weight: 600;
136
+ text-align: center; padding: 0.6em; }
137
+ .matrix-2x2 .cell-tl { background: #e8f5e9; } /* Top-left: green */
138
+ .matrix-2x2 .cell-tr { background: #fff3e0; } /* Top-right: orange */
139
+ .matrix-2x2 .cell-bl { background: #e3f2fd; } /* Bottom-left: blue */
140
+ .matrix-2x2 .cell-br { background: #fce4ec; } /* Bottom-right: red */
141
+
142
+ /* ========== CALLOUT BOX ========== */
143
+ .callout { padding: 1em 1.2em; margin: 1em 0; border-radius: 6px; border-left: 4px solid; }
144
+ .callout-info { background: #e3f2fd; border-color: #2196f3; }
145
+ .callout-success { background: #e8f5e9; border-color: var(--success); }
146
+ .callout-warning { background: #fff3e0; border-color: var(--warning); }
147
+ .callout-danger { background: #fce4ec; border-color: var(--danger); }
148
+ .callout-title { font-weight: 700; margin-bottom: 0.3em; }
149
+
150
+ /* ========== PULL QUOTE ========== */
151
+ .pull-quote { font-size: 14pt; font-weight: 300; text-align: center;
152
+ padding: 1.5em 2em; margin: 1.5em 0; color: var(--accent);
153
+ border-top: 2px solid var(--accent); border-bottom: 2px solid var(--accent); }
154
+
155
+ /* ========== CHART CONTAINER ========== */
156
+ .chart-container { position: relative; margin: 1.5em 0; max-width: 100%; }
157
+ .chart-container canvas { max-width: 100%; }
158
+ .chart-container figcaption { font-size: 9pt; color: #666; text-align: center;
159
+ margin-top: 0.5em; font-style: italic; }
160
+
161
+ /* ========== SCORE / BADGE ========== */
162
+ .score-badge { display: inline-block; padding: 0.2em 0.8em; border-radius: 12px;
163
+ font-weight: 700; font-size: 10pt; }
164
+ .score-high { background: var(--success); color: #fff; }
165
+ .score-mid { background: var(--warning); color: #fff; }
166
+ .score-low { background: var(--danger); color: #fff; }
167
+
168
+ /* ========== PRINT ========== */
169
+ @media print {
170
+ @page { size: A4 portrait; margin: 20mm; }
171
+ body { font-size: 10pt; }
172
+ .report { max-width: none; padding: 0; }
173
+ .title-page { min-height: auto; page-break-after: always; }
174
+ .toc { page-break-after: always; }
175
+ .executive-summary { page-break-after: always; }
176
+ .appendix { page-break-before: always; }
177
+ .data-table, .chart-container, .matrix-2x2, .mermaid, figure {
178
+ page-break-inside: avoid;
179
+ }
180
+ h2, h3 { page-break-after: avoid; }
181
+ .callout { page-break-inside: avoid; }
182
+ a { color: inherit; text-decoration: none; }
183
+ canvas { max-width: 100% !important; height: auto !important; }
184
+ }
185
+ ```
186
+
187
+ > **Palette:** replace CSS variables from Design Spec. All colors — via `var(--name)` so the palette changes in one place.
188
+
189
+ ### Step 3 — Chart.js
190
+
191
+ For each chart from the Visualization Map:
192
+ 1. `<figure class="chart-container">` → `<canvas id="chart-N">` → `<figcaption>`.
193
+ 2. Config: `animation: false`, `responsive: true`, palette from CSS variables.
194
+
195
+ **Configurations by type:**
196
+
197
+ ```javascript
198
+ // ========== BAR CHART (competitor comparison, scoring) ==========
199
+ new Chart(document.getElementById('chart-competitors'), {
200
+ type: 'bar',
201
+ data: {
202
+ labels: ['Competitor A', 'Competitor B', 'Competitor C', 'Our Product'],
203
+ datasets: [{
204
+ label: 'Threat Score',
205
+ data: [7.2, 7.3, 4.8, null],
206
+ backgroundColor: ['#e74c3c', '#e74c3c', '#f39c12', '#2ecc71'],
207
+ borderWidth: 0,
208
+ borderRadius: 4
209
+ }]
210
+ },
211
+ options: {
212
+ animation: false, responsive: true,
213
+ plugins: { legend: { display: false },
214
+ title: { display: true, text: 'Competitor Threat Score', font: { size: 14 } } },
215
+ scales: { y: { beginAtZero: true, max: 10, title: { display: true, text: 'Score' } } }
216
+ }
217
+ });
218
+
219
+ // ========== RADAR CHART (multi-criteria comparison) ==========
220
+ new Chart(document.getElementById('chart-radar'), {
221
+ type: 'radar',
222
+ data: {
223
+ labels: ['Features', 'Price', 'UX', 'Support', 'Ecosystem', 'Brand'],
224
+ datasets: [
225
+ { label: 'Our Product', data: [7, 8, 6, 5, 4, 3],
226
+ borderColor: '#0f3460', backgroundColor: 'rgba(15,52,96,0.1)', borderWidth: 2 },
227
+ { label: 'Market Leader', data: [9, 4, 8, 7, 9, 9],
228
+ borderColor: '#e94560', backgroundColor: 'rgba(233,69,96,0.1)', borderWidth: 2 }
229
+ ]
230
+ },
231
+ options: {
232
+ animation: false, responsive: true,
233
+ scales: { r: { beginAtZero: true, max: 10, ticks: { stepSize: 2 } } }
234
+ }
235
+ });
236
+
237
+ // ========== PIE / DOUGHNUT (shares, distribution) ==========
238
+ new Chart(document.getElementById('chart-share'), {
239
+ type: 'doughnut',
240
+ data: {
241
+ labels: ['Segment A', 'Segment B', 'Segment C', 'Other'],
242
+ datasets: [{ data: [35, 28, 22, 15],
243
+ backgroundColor: ['#1a1a2e', '#0f3460', '#e94560', '#ccc'],
244
+ borderWidth: 2, borderColor: '#fff' }]
245
+ },
246
+ options: {
247
+ animation: false, responsive: true,
248
+ plugins: { legend: { position: 'right' } }
249
+ }
250
+ });
251
+
252
+ // ========== LINE CHART (trends, retention curves) ==========
253
+ new Chart(document.getElementById('chart-retention'), {
254
+ type: 'line',
255
+ data: {
256
+ labels: ['M0', 'M1', 'M2', 'M3', 'M6', 'M12'],
257
+ datasets: [
258
+ { label: 'Jan Cohort', data: [100, 42, 31, 26, 20, 16],
259
+ borderColor: '#e94560', fill: false, tension: 0.3 },
260
+ { label: 'Mar Cohort', data: [100, 55, 44, 38, null, null],
261
+ borderColor: '#2ecc71', fill: false, tension: 0.3 }
262
+ ]
263
+ },
264
+ options: {
265
+ animation: false, responsive: true,
266
+ scales: { y: { beginAtZero: true, max: 100, title: { display: true, text: 'Retention %' } } }
267
+ }
268
+ });
269
+
270
+ // ========== SCATTER (2D positioning) ==========
271
+ new Chart(document.getElementById('chart-positioning'), {
272
+ type: 'scatter',
273
+ data: {
274
+ datasets: [
275
+ { label: 'Competitor A', data: [{ x: 8, y: 7 }], pointRadius: 10,
276
+ backgroundColor: '#e74c3c' },
277
+ { label: 'Our Product', data: [{ x: 5, y: 6 }], pointRadius: 12,
278
+ backgroundColor: '#2ecc71', pointStyle: 'star' }
279
+ ]
280
+ },
281
+ options: {
282
+ animation: false, responsive: true,
283
+ scales: {
284
+ x: { min: 0, max: 10, title: { display: true, text: 'Features' } },
285
+ y: { min: 0, max: 10, title: { display: true, text: 'Price' } }
286
+ }
287
+ }
288
+ });
289
+ ```
290
+
291
+ ### Step 4 — Mermaid
292
+
293
+ ```javascript
294
+ mermaid.initialize({ startOnLoad: true, theme: 'neutral', securityLevel: 'loose' });
295
+ ```
296
+
297
+ **Diagrams by type:**
298
+
299
+ ```html
300
+ <!-- ========== FLOWCHART (processes, pipelines) ========== -->
301
+ <div class="mermaid">
302
+ flowchart TD
303
+ A[Awareness] --> B[Consideration]
304
+ B --> C[Decision]
305
+ C --> D[Purchase]
306
+ D --> E[Retention]
307
+ E --> F[Advocacy]
308
+ E -.->|churn| G[Exit]
309
+ style G fill:#fce4ec,stroke:#e74c3c
310
+ </div>
311
+
312
+ <!-- ========== MINDMAP (structure, hierarchy) ========== -->
313
+ <div class="mermaid">
314
+ mindmap
315
+ root((Growth Strategy))
316
+ Penetration
317
+ Upsell
318
+ Cross-sell
319
+ Market Development
320
+ CIS
321
+ Enterprise
322
+ Product Development
323
+ AI module
324
+ Mobile app
325
+ Diversification
326
+ White-label
327
+ </div>
328
+
329
+ <!-- ========== QUADRANT CHART (2x2 matrices) ========== -->
330
+ <div class="mermaid">
331
+ quadrantChart
332
+ title Impact vs Effort
333
+ x-axis Low Effort --> High Effort
334
+ y-axis Low Impact --> High Impact
335
+ quadrant-1 Big Bets
336
+ quadrant-2 Quick Wins
337
+ quadrant-3 Fill-ins
338
+ quadrant-4 Avoid
339
+ Action A: [0.3, 0.8]
340
+ Action B: [0.7, 0.9]
341
+ Action C: [0.2, 0.3]
342
+ </div>
343
+ ```
344
+
345
+ > Each Mermaid diagram is wrapped in `<figure>` with `<figcaption>` and `page-break-inside: avoid`.
346
+
347
+ ### Step 5 — Components (HTML fragments)
348
+
349
+ **Data Table:**
350
+ ```html
351
+ <table class="data-table">
352
+ <thead>
353
+ <tr><th>Competitor</th><th>Score</th><th>Rank</th></tr>
354
+ </thead>
355
+ <tbody>
356
+ <tr><td>Company A</td><td>7.6</td>
357
+ <td><span class="score-badge score-high">High</span></td></tr>
358
+ <tr class="highlight"><td><strong>Our Product</strong></td><td>6.2</td>
359
+ <td><span class="score-badge score-mid">Medium</span></td></tr>
360
+ </tbody>
361
+ </table>
362
+ ```
363
+
364
+ **Matrix 2×2:**
365
+ ```html
366
+ <div class="matrix-2x2">
367
+ <div class="cell-header">High Share</div>
368
+ <div class="cell-header">Low Share</div>
369
+ <div class="cell cell-tl">
370
+ <h4>★ Stars</h4>
371
+ <p>Product A ($30M, growth 18%)</p>
372
+ </div>
373
+ <div class="cell cell-tr">
374
+ <h4>? Question Marks</h4>
375
+ <p>Product C ($10M, growth 35%)</p>
376
+ </div>
377
+ <div class="cell cell-bl">
378
+ <h4>$ Cash Cows</h4>
379
+ <p>Product B ($45M, growth 3%)</p>
380
+ </div>
381
+ <div class="cell cell-br">
382
+ <h4>✕ Dogs</h4>
383
+ <p>Product D ($5M, growth 1%)</p>
384
+ </div>
385
+ </div>
386
+ ```
387
+
388
+ **Callout Box:**
389
+ ```html
390
+ <div class="callout callout-warning">
391
+ <div class="callout-title">⚠️ Key Risk</div>
392
+ <p>TAM was assessed based on 2 sources (instead of 3). Data is marked as Estimated.</p>
393
+ </div>
394
+ ```
395
+
396
+ **Pull Quote:**
397
+ ```html
398
+ <div class="pull-quote">
399
+ «AI-first CRM for small business — the only unoccupied position in the market»
400
+ </div>
401
+ ```
402
+
403
+ ### Step 6 — TOC (Table of Contents)
404
+
405
+ ```html
406
+ <nav class="toc" id="toc">
407
+ <h2>Contents</h2>
408
+ <ol class="toc-list">
409
+ <li><a href="#executive-summary">Executive Summary</a></li>
410
+ <li><a href="#section-1">Market Analysis</a></li>
411
+ <li><a href="#section-2">Competitive Landscape</a></li>
412
+ <li><a href="#section-3">Strategic Recommendations</a></li>
413
+ <li><a href="#appendix-a">Appendix A — Research Brief</a></li>
414
+ <li><a href="#appendix-b">Appendix B — Analyst Data</a></li>
415
+ <li><a href="#appendix-c">Appendix C — Critic Data</a></li>
416
+ <li><a href="#appendix-d">Appendix D — Sources</a></li>
417
+ </ol>
418
+ </nav>
419
+ ```
420
+
421
+ ### Step 7 — Accessibility
422
+
423
+ 1. All `<img>` and `<canvas>` — with `alt` / `aria-label`:
424
+ ```html
425
+ <figure class="chart-container" role="img" aria-label="Competitor Threat Score: A=7.2, B=7.3, C=4.8">
426
+ <canvas id="chart-competitors"></canvas>
427
+ <figcaption>Fig. 1 — Competitor Threat Score (scale 1-10)</figcaption>
428
+ </figure>
429
+ ```
430
+ 2. Tables — `<caption>` and `scope="col"` / `scope="row"` for `<th>`.
431
+ 3. Color coding — not the sole means of conveying information (+ text labels, icons).
432
+ 4. Contrast: text on background ≥ 4.5:1 (WCAG AA).
433
+
434
+ ### Step 8 — Assembly and Testing
435
+
436
+ 1. Assemble all components into a single HTML.
437
+ 2. Check: all ids are unique, all canvases have configuration, TOC anchors work.
438
+ 3. **PDF testing protocol:**
439
+
440
+ | # | Check | How to test | Typical issue |
441
+ |---|-------|-------------|---------------|
442
+ | 1 | Open in Chrome/Edge | File → Open file | Mermaid does not render → check CDN |
443
+ | 2 | Ctrl+P → Preview | Check layout | Charts clipped → reduce canvas |
444
+ | 3 | All charts visible | Scroll preview | Empty canvas → `animation: false` |
445
+ | 4 | Page breaks correct | Each appendix on new page | Merging → `page-break-before: always` |
446
+ | 5 | Tables not cut | Tables complete on page | Cut → `page-break-inside: avoid` |
447
+ | 6 | TOC anchors clickable | Click links in TOC | Not working → check ids |
448
+ | 7 | Background graphics | Enable in print settings | Colors disappeared → «Background graphics: ON» |
449
+ | 8 | Text readable | Check font-size in print | Too small → increase `@media print` font-size |
450
+
451
+ > **User instructions:** Chrome/Edge → Ctrl+P → Destination: Save as PDF → Layout: Portrait → Paper: A4 → Margins: Default → **Background graphics: ON** → Save.
452
+
453
+ ## Example — Executive Summary Section
454
+
455
+ ```html
456
+ <section class="executive-summary" id="executive-summary">
457
+ <h2>Executive Summary</h2>
458
+
459
+ <div class="pull-quote">
460
+ «AI-powered 1:1 summarization solves 45-60 min/week admin overhead for 5,000+
461
+ managers in TeamFlow base. Projected +$2.4M ARR expansion over 12 months, NRR +4pp.»
462
+ </div>
463
+
464
+ <h3>Key Findings</h3>
465
+ <div class="callout callout-success">
466
+ <div class="callout-title">✅ Main Insight</div>
467
+ <p>Mid-market and enterprise customers are ready to pay $8-12/seat premium for AI summarization.
468
+ 6 of 8 buyer interviews confirm value, 4/4 enterprise accounts ready for beta.</p>
469
+ </div>
470
+
471
+ <table class="data-table">
472
+ <caption>Summary of Key Metrics</caption>
473
+ <thead>
474
+ <tr><th scope="col">Metric</th><th scope="col">Value</th><th scope="col">Benchmark</th><th scope="col">Rating</th></tr>
475
+ </thead>
476
+ <tbody>
477
+ <tr><td>TAM</td><td>$4.2B</td><td>—</td>
478
+ <td><span class="score-badge score-high">Large</span></td></tr>
479
+ <tr><td>SOM (Year 1)</td><td>$180M</td><td>—</td>
480
+ <td><span class="score-badge score-mid">Medium</span></td></tr>
481
+ <tr><td>Top Threat</td><td>Competitor X</td><td>Score 7.6</td>
482
+ <td><span class="score-badge score-low">High</span></td></tr>
483
+ </tbody>
484
+ </table>
485
+
486
+ <figure class="chart-container" role="img" aria-label="Threat Score: A=7.2, B=6.8, C=7.6, D=4.1, E=5.3">
487
+ <canvas id="chart-exec-threats"></canvas>
488
+ <figcaption>Fig. 1 — Threat Score of key competitors</figcaption>
489
+ </figure>
490
+ </section>
491
+ ```
492
+
493
+ ## Validation (Quality Gate)
494
+
495
+ - [ ] HTML self-contained (no external CSS/JS except CDN for Chart.js and Mermaid)
496
+ - [ ] All sections from Design Spec implemented
497
+ - [ ] All visualizations from Visualization Map present
498
+ - [ ] CSS variables match palette from Design Spec
499
+ - [ ] TOC anchors work (each `<a href="#id">` → `<section id="id">`)
500
+ - [ ] `@media print` correct (A4, 20mm, page breaks)
501
+ - [ ] Chart.js: `animation: false`, `responsive: true` on each chart
502
+ - [ ] Mermaid: `startOnLoad: true`, `theme: 'neutral'`
503
+ - [ ] HTML is valid (no duplicate ids, no unclosed tags)
504
+ - [ ] Accessibility: `alt` / `aria-label` on charts, `caption` on tables, contrast ≥ 4.5:1
505
+ - [ ] PDF testing protocol passed (8 checks)
506
+ - [ ] Print preview: all charts visible, page breaks correct, tables not cut
507
+
508
+ ## Handoff
509
+ Output is passed to:
510
+ - **User** — open in browser → Ctrl+P → Save as PDF (instructions in report).
511
+ - **`$gates` (RG-01)** — Release Gate: final check before publishing.
512
+ - **`$board`** — update LY-01 → `[✓]`.
513
+
514
+ Transfer format: `report.html` (single file) + PDF printing instructions.
515
+
516
+ ## Anti-patterns
517
+
518
+ | Error | Why it's bad | How to do it right |
519
+ |-------|-------------|---------------------|
520
+ | External CSS frameworks (Bootstrap etc.) | Doesn't work offline, extra weight | Inline CSS only |
521
+ | `animation: true` | Empty charts in PDF (canvas not rendered) | Always `animation: false` |
522
+ | Fixed canvas size (`width="600"`) | Doesn't scale when printing | `responsive: true`, size via CSS |
523
+ | Missing page breaks | Sections merge, tables cut | `page-break-before/after/inside` per protocol |
524
+ | Broken TOC anchors | Navigation broken | Unique id on each section, verify all links |
525
+ | Colors hardcoded | Palette can't be changed in one place | CSS variables: `var(--primary)`, `var(--accent)` |
526
+ | No `<figcaption>` on charts | Unclear what the chart shows | `<figure>` + `<figcaption>` + `aria-label` |
527
+ | No fallback for Mermaid | If JS didn't load — blank space | `<noscript>` with text description of diagram |
528
+ | Background graphics not enabled | Colors, table backgrounds disappear in PDF | User instructions: Background graphics: ON |
529
+
530
+ ## Output Template
531
+
532
+ ```
533
+ ## HTML Report: [Name]
534
+ **File:** docs/product/prd.html | docs/product/product-review-deck.html
535
+ **Size:** ~XXX KB
536
+ **Sections:** N main + N appendices
537
+ **Date:** [YYYY-MM-DD]
538
+
539
+ ### Components
540
+ | Type | Count | ID |
541
+ |------|:-----:|-----|
542
+ | Chart.js (bar, radar, etc.) | N | chart-1, chart-2, ... |
543
+ | Mermaid (flowchart, mindmap) | N | — (auto) |
544
+ | Data Tables | N | — |
545
+ | Matrices 2×2 | N | — |
546
+ | Callout Boxes | N | — |
547
+ | Pull Quotes | N | — |
548
+
549
+ ### Palette
550
+ | Variable | Hex | Usage |
551
+ |----------|-----|-------|
552
+ | --primary | #XXXXXX | Headings, tables |
553
+ | --accent | #XXXXXX | Accents, links |
554
+ | --highlight | #XXXXXX | Key metrics |
555
+
556
+ ### Testing Protocol
557
+ - [ ] Chrome/Edge opens without errors
558
+ - [ ] All charts rendered (not empty)
559
+ - [ ] Ctrl+P → preview correct
560
+ - [ ] Page breaks in place
561
+ - [ ] Background graphics: ON
562
+
563
+ ### PDF Instructions
564
+ Chrome/Edge → Ctrl+P → Save as PDF → Portrait → A4 → Default margins → **Background graphics: ON** → Save
565
+ ```
566
+
567
+ ## Worked Example — TeamFlow Product Review Deck (HTML skeleton)
568
+
569
+ **Context:** Full Pipeline A `/ship-right-thing` completed. Designer prepared design spec (see `$report-design`). Layouter converts to production HTML/PDF — Product Review Deck for exec sign-off.
570
+
571
+ ### Target Structure
572
+
573
+ - 12 slide-like pages (each `page-break` separated)
574
+ - Cover → TL;DR → Problem → Strategy → PRD highlights → Metrics → Risks → Rollout → Appendices
575
+ - Executive style: dense but readable, no decoration, data-forward
576
+ - PDF size target < 5MB for email distribution
577
+
578
+ ### Self-contained HTML Skeleton
579
+
580
+ ```html
581
+ <!DOCTYPE html>
582
+ <html lang="en">
583
+ <head>
584
+ <meta charset="UTF-8">
585
+ <title>TeamFlow AI Summarization — Product Review Deck · Q2 2026</title>
586
+ <meta name="description" content="Product Review Deck for executive sign-off: AI-powered 1:1 summarization initiative">
587
+ <style>
588
+ /* ============ CSS Tokens ============ */
589
+ :root {
590
+ --color-primary: #0A2540; /* TeamFlow deep blue */
591
+ --color-accent: #F2A900; /* TeamFlow amber */
592
+ --color-text: #1A1A1A;
593
+ --color-text-muted: #6B6B6B;
594
+ --color-bg: #FFFFFF;
595
+ --color-bg-alt: #F7F9FB;
596
+ --color-success: #22A06B;
597
+ --color-warning: #E67E22;
598
+ --color-danger: #C0392B;
599
+ --color-border: #E1E4E8;
600
+ --font-body: 'Inter', -apple-system, sans-serif;
601
+ --font-serif: 'Source Serif Pro', Georgia, serif;
602
+ --space-1: 4px; --space-2: 8px; --space-3: 16px;
603
+ --space-4: 24px; --space-5: 32px; --space-6: 48px;
604
+ }
605
+
606
+ /* ============ Reset + Base ============ */
607
+ * { margin: 0; padding: 0; box-sizing: border-box; }
608
+ body {
609
+ font-family: var(--font-body);
610
+ color: var(--color-text);
611
+ font-size: 14px;
612
+ line-height: 1.5;
613
+ background: var(--color-bg);
614
+ }
615
+
616
+ /* ============ Page Structure (print-ready) ============ */
617
+ @page {
618
+ size: A4 portrait;
619
+ margin: 2cm 1.8cm;
620
+ }
621
+ .page {
622
+ page-break-after: always;
623
+ min-height: 24cm;
624
+ padding: 2cm 1.5cm;
625
+ position: relative;
626
+ }
627
+ .page:last-child { page-break-after: auto; }
628
+ .page-footer {
629
+ position: absolute;
630
+ bottom: 0.8cm;
631
+ left: 1.5cm;
632
+ right: 1.5cm;
633
+ font-size: 10px;
634
+ color: var(--color-text-muted);
635
+ border-top: 1px solid var(--color-border);
636
+ padding-top: 8px;
637
+ display: flex;
638
+ justify-content: space-between;
639
+ }
640
+ @media screen { .page { border-bottom: 2px dashed var(--color-border); margin-bottom: 2cm; } }
641
+
642
+ /* ============ Typography ============ */
643
+ h1 { font-size: 32px; font-weight: 700; color: var(--color-primary); letter-spacing: -0.5px; margin-bottom: var(--space-4); }
644
+ h2 { font-size: 22px; font-weight: 600; color: var(--color-primary); margin: var(--space-5) 0 var(--space-3); }
645
+ h3 { font-size: 16px; font-weight: 600; color: var(--color-text); margin: var(--space-3) 0 var(--space-2); }
646
+ p { margin-bottom: var(--space-2); }
647
+ .lead { font-size: 16px; line-height: 1.6; color: var(--color-text); }
648
+ .pull-quote {
649
+ font-family: var(--font-serif);
650
+ font-size: 20px; line-height: 1.4;
651
+ color: var(--color-primary);
652
+ border-left: 3px solid var(--color-accent);
653
+ padding: var(--space-3) var(--space-4);
654
+ margin: var(--space-4) 0;
655
+ background: var(--color-bg-alt);
656
+ }
657
+
658
+ /* ============ Components ============ */
659
+ .meta-bar {
660
+ display: flex;
661
+ justify-content: space-between;
662
+ border-top: 3px solid var(--color-accent);
663
+ border-bottom: 1px solid var(--color-border);
664
+ padding: var(--space-3) 0;
665
+ font-size: 12px;
666
+ color: var(--color-text-muted);
667
+ margin-bottom: var(--space-5);
668
+ }
669
+ .callout {
670
+ border-left: 4px solid var(--color-accent);
671
+ padding: var(--space-3);
672
+ background: var(--color-bg-alt);
673
+ margin: var(--space-3) 0;
674
+ }
675
+ .callout-title {
676
+ font-weight: 600;
677
+ color: var(--color-primary);
678
+ margin-bottom: var(--space-1);
679
+ }
680
+ .callout-success { border-left-color: var(--color-success); }
681
+ .callout-warning { border-left-color: var(--color-warning); }
682
+ .callout-danger { border-left-color: var(--color-danger); }
683
+
684
+ table {
685
+ width: 100%;
686
+ border-collapse: collapse;
687
+ margin: var(--space-3) 0;
688
+ font-size: 12px;
689
+ }
690
+ th, td {
691
+ padding: var(--space-2) var(--space-3);
692
+ text-align: left;
693
+ border-bottom: 1px solid var(--color-border);
694
+ }
695
+ th {
696
+ font-weight: 600;
697
+ background: var(--color-bg-alt);
698
+ color: var(--color-primary);
699
+ }
700
+ tr:hover { background: var(--color-bg-alt); }
701
+ .metric-positive { color: var(--color-success); font-weight: 600; }
702
+ .metric-negative { color: var(--color-danger); font-weight: 600; }
703
+ .metric-neutral { color: var(--color-text-muted); }
704
+
705
+ .status-badge {
706
+ display: inline-block;
707
+ padding: 2px 8px;
708
+ font-size: 10px;
709
+ font-weight: 600;
710
+ border-radius: 3px;
711
+ text-transform: uppercase;
712
+ }
713
+ .status-green { background: var(--color-success); color: white; }
714
+ .status-amber { background: var(--color-warning); color: white; }
715
+ .status-red { background: var(--color-danger); color: white; }
716
+
717
+ /* Grid layouts */
718
+ .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
719
+ .grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: var(--space-3); }
720
+ .kpi-card {
721
+ padding: var(--space-4);
722
+ background: var(--color-bg-alt);
723
+ border: 1px solid var(--color-border);
724
+ border-left: 3px solid var(--color-accent);
725
+ }
726
+ .kpi-value {
727
+ font-size: 32px; font-weight: 700;
728
+ color: var(--color-primary);
729
+ margin-bottom: var(--space-1);
730
+ }
731
+ .kpi-label {
732
+ font-size: 11px;
733
+ color: var(--color-text-muted);
734
+ text-transform: uppercase;
735
+ letter-spacing: 0.5px;
736
+ }
737
+
738
+ /* Roadmap columns */
739
+ .roadmap {
740
+ display: grid;
741
+ grid-template-columns: 1fr 1fr 1fr;
742
+ gap: var(--space-3);
743
+ margin: var(--space-4) 0;
744
+ }
745
+ .roadmap-column {
746
+ padding: var(--space-3);
747
+ background: var(--color-bg-alt);
748
+ border-top: 3px solid var(--color-accent);
749
+ }
750
+ .roadmap-column h4 {
751
+ font-size: 13px;
752
+ font-weight: 700;
753
+ text-transform: uppercase;
754
+ color: var(--color-primary);
755
+ margin-bottom: var(--space-2);
756
+ }
757
+ .roadmap-column ul { list-style: none; padding-left: 0; }
758
+ .roadmap-column li { padding: 6px 0; border-bottom: 1px solid var(--color-border); font-size: 12px; }
759
+
760
+ /* ============ Print Optimizations ============ */
761
+ @media print {
762
+ body { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
763
+ .page { page-break-after: always; }
764
+ table { page-break-inside: avoid; }
765
+ .callout { page-break-inside: avoid; }
766
+ h2, h3 { page-break-after: avoid; }
767
+ }
768
+ </style>
769
+ </head>
770
+ <body>
771
+
772
+ <!-- PAGE 1: COVER -->
773
+ <section class="page" id="cover">
774
+ <div style="margin-top: 8cm; text-align: center;">
775
+ <p style="font-size: 13px; color: var(--color-text-muted); letter-spacing: 2px;">PRODUCT REVIEW DECK · CONFIDENTIAL</p>
776
+ <h1 style="font-size: 42px; margin-top: var(--space-4);">AI 1:1 Summarization</h1>
777
+ <p class="lead" style="margin-top: var(--space-3); color: var(--color-text-muted);">
778
+ TeamFlow Q2 2026 Launch Proposal · Executive Sign-Off
779
+ </p>
780
+ <div style="margin-top: 4cm;">
781
+ <p style="font-size: 12px; color: var(--color-text-muted);">Prepared by Product Team · April 17, 2026</p>
782
+ <p style="font-size: 12px; color: var(--color-text-muted);">Alex K., Product · Priya S., Engineering · Jordan M., Design · Sam P., Data</p>
783
+ </div>
784
+ </div>
785
+ </section>
786
+
787
+ <!-- PAGE 2: TL;DR / EXECUTIVE SUMMARY -->
788
+ <section class="page" id="summary">
789
+ <div class="meta-bar">
790
+ <span>TeamFlow AI Summarization</span>
791
+ <span>Page 2 · Executive Summary</span>
792
+ </div>
793
+ <h1>Executive Summary</h1>
794
+ <div class="pull-quote">
795
+ «AI-powered 1:1 summarization solves 45-60 min/week admin overhead for 3,000+ managers in TeamFlow base. Projected +$2.4M ARR expansion over 12 months, NRR +4pp.»
796
+ </div>
797
+ <div class="grid-3" style="margin: var(--space-5) 0;">
798
+ <div class="kpi-card">
799
+ <div class="kpi-value">40</div>
800
+ <div class="kpi-label">Target Team Tier Upgrades (Q2)</div>
801
+ </div>
802
+ <div class="kpi-card">
803
+ <div class="kpi-value">+$8</div>
804
+ <div class="kpi-label">Per-Seat Premium (Team Tier)</div>
805
+ </div>
806
+ <div class="kpi-card">
807
+ <div class="kpi-value">3 hrs</div>
808
+ <div class="kpi-label">Weekly Manager Time Saved</div>
809
+ </div>
810
+ </div>
811
+ <h2>What we're proposing</h2>
812
+ <p class="lead">Launch AI Summarization as flagship feature of new Team Tier ($23/seat/month). Core capability: generate structured summary + action items within 60 seconds of 1:1 meeting end. Privacy-first architecture — opt-in per meeting, zero data retention with LLM providers, SOC 2 Type II attestation.</p>
813
+ <h2>Why now</h2>
814
+ <p class="lead">Mid-market and enterprise customers face growing manager efficiency crisis — 3-4 hrs/week admin burden is #2 churn risk factor per exit interviews. Competitors (Lattice, 15Five) haven't shipped AI summarization — 6-12 month first-mover window exists. Our 3-year behavioral data corpus enables superior quality vs standalone tools.</p>
815
+ <div class="callout callout-success">
816
+ <div class="callout-title">Expected Outcome</div>
817
+ <p>Mid-market base ($5M ARR) → +30% NRR lift over 12 months via Team Tier upgrades. Enterprise tier foundation enables $2-3M ARR expansion opportunity through Q3.</p>
818
+ </div>
819
+ <div class="page-footer">
820
+ <span>TeamFlow AI Summarization · Product Review · April 17, 2026</span>
821
+ <span>2 / 12</span>
822
+ </div>
823
+ </section>
824
+
825
+ <!-- PAGE 3: PROBLEM -->
826
+ <section class="page" id="problem">
827
+ <div class="meta-bar">
828
+ <span>TeamFlow AI Summarization</span>
829
+ <span>Page 3 · The Problem</span>
830
+ </div>
831
+ <h1>The Problem</h1>
832
+ <p class="lead">People managers managing 5-15 direct reports at mid-market B2B SaaS companies experience severe admin overhead in 1:1 workflow. This manifests across three dimensions:</p>
833
+
834
+ <div class="grid-3" style="margin: var(--space-4) 0;">
835
+ <div class="kpi-card">
836
+ <div class="kpi-value" style="color: var(--color-danger);">3-4 hrs</div>
837
+ <div class="kpi-label">Manager admin time / week on 1:1s (8 reports avg)</div>
838
+ </div>
839
+ <div class="kpi-card">
840
+ <div class="kpi-value" style="color: var(--color-danger);">40%</div>
841
+ <div class="kpi-label">Action items dropped / never completed</div>
842
+ </div>
843
+ <div class="kpi-card">
844
+ <div class="kpi-value" style="color: var(--color-danger);">0%</div>
845
+ <div class="kpi-label">VP HR visibility into manager 1:1 quality</div>
846
+ </div>
847
+ </div>
848
+
849
+ <h2>Evidence from Discovery</h2>
850
+ <p>8 customer interviews (4 buyers VP HR, 4 end-user managers) + 120 support tickets Q1 2026 + internal product analytics. Direct quotes:</p>
851
+
852
+ <div class="callout">
853
+ <p><em>«25 minutes of prep every week for each of 8 reports. That's ~3 hours per week.»</em></p>
854
+ <p style="text-align: right; font-size: 11px; margin-top: 8px; color: var(--color-text-muted);">— Interview E3 (Engineering Manager, mid-market)</p>
855
+ </div>
856
+ <div class="callout">
857
+ <p><em>«Some managers run amazing 1:1s, others literally cancel them. I have no visibility, no levers.»</em></p>
858
+ <p style="text-align: right; font-size: 11px; margin-top: 8px; color: var(--color-text-muted);">— Interview B2 (VP HR, 450-employee B2B SaaS)</p>
859
+ </div>
860
+
861
+ <div class="page-footer">
862
+ <span>TeamFlow AI Summarization · Product Review · April 17, 2026</span>
863
+ <span>3 / 12</span>
864
+ </div>
865
+ </section>
866
+
867
+ <!-- PAGES 4-12: abbreviated ... full deck continues with Strategy / PRD / Metrics / Risks / Rollout / Appendix -->
868
+
869
+ <!-- PAGE 12: APPENDIX — Roadmap -->
870
+ <section class="page" id="roadmap">
871
+ <div class="meta-bar">
872
+ <span>TeamFlow AI Summarization</span>
873
+ <span>Page 12 · Roadmap</span>
874
+ </div>
875
+ <h1>Product Roadmap — Now / Next / Later</h1>
876
+ <div class="roadmap">
877
+ <div class="roadmap-column">
878
+ <h4>Now (Q2 2026)</h4>
879
+ <ul>
880
+ <li>✨ AI Summarization Core (Team Tier)</li>
881
+ <li>✨ Auto Action Items Extraction</li>
882
+ <li>✨ Action Items Reminders</li>
883
+ <li>🔐 SOC 2 Type II (AI features)</li>
884
+ <li>🔐 SSO SAML + SCIM</li>
885
+ </ul>
886
+ </div>
887
+ <div class="roadmap-column">
888
+ <h4>Next (Q3 2026)</h4>
889
+ <ul>
890
+ <li>📊 Aggregate Dashboard (Enterprise)</li>
891
+ <li>⏱️ Real-time Transcription</li>
892
+ <li>🎯 Manager Health Score</li>
893
+ <li>🔗 Zoom / Meet Import</li>
894
+ </ul>
895
+ </div>
896
+ <div class="roadmap-column">
897
+ <h4>Later (Q4+)</h4>
898
+ <ul>
899
+ <li>🌍 Multi-language Support</li>
900
+ <li>📱 Native Mobile App</li>
901
+ <li>🔍 AI Coaching Insights</li>
902
+ <li>📈 Predictive Attrition Model</li>
903
+ </ul>
904
+ </div>
905
+ </div>
906
+ <div class="page-footer">
907
+ <span>TeamFlow AI Summarization · Product Review · April 17, 2026</span>
908
+ <span>12 / 12</span>
909
+ </div>
910
+ </section>
911
+
912
+ </body>
913
+ </html>
914
+ ```
915
+
916
+ ### Quality Checks Passed
917
+ - [x] Self-contained (single HTML file, all CSS inlined)
918
+ - [x] No broken references
919
+ - [x] Print-ready (@page, @media print directives)
920
+ - [x] Page breaks between sections
921
+ - [x] Executive dense without overwhelm
922
+ - [x] Color consistent with TeamFlow brand (deep blue + amber)
923
+ - [x] Accessible (semantic HTML, alt text on images if any)
924
+ - [x] File size estimate < 2MB (no embedded images yet; with logos/charts might grow to 3-4MB)
925
+
926
+ ### PDF Generation
927
+
928
+ ```bash
929
+ # Via puppeteer (preferred, automation-friendly)
930
+ puppeteer-pdf product-review-deck.html --format=A4 --margin-top=2cm --print-background
931
+
932
+ # Via WeasyPrint
933
+ weasyprint product-review-deck.html product-review-deck.pdf
934
+
935
+ # Manual via Chrome
936
+ open product-review-deck.html; Ctrl+P; Save as PDF; Background graphics ON
937
+ ```
938
+
939
+ > **html-pdf-report lesson:** Self-contained = single HTML + inline CSS. Component tokens (CSS variables) enable consistency + easy re-skin. @page + @media print rules critical for PDF output. KPI cards with single large number + small label — reading pattern optimized for exec scanning. Callouts (colored left border) > inline quotes for visual hierarchy. Page footers with page numbers + title help reader navigate printed PDF.