code-ai-installer 2.2.0 → 2.3.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 (502) hide show
  1. package/README.md +141 -139
  2. package/dist/domainResolver.js +2 -2
  3. package/dist/index.js +4 -4
  4. package/dist/types.d.ts +1 -1
  5. package/domains/product/.agents/skills/aarrr-metrics/SKILL.md +433 -0
  6. package/domains/product/.agents/skills/aarrr-metrics/agents/claude.json +17 -0
  7. package/domains/product/.agents/skills/aarrr-metrics/agents/copilot.json +17 -0
  8. package/domains/product/.agents/skills/aarrr-metrics/agents/gemini.json +17 -0
  9. package/domains/product/.agents/skills/aarrr-metrics/agents/openai.yaml +8 -0
  10. package/domains/product/.agents/skills/aarrr-metrics/agents/qwen.json +17 -0
  11. package/domains/product/.agents/skills/aarrr-metrics/agents/skill.yaml +20 -0
  12. package/domains/product/.agents/skills/ab-test-design/SKILL.md +412 -0
  13. package/domains/product/.agents/skills/ab-test-design/agents/claude.json +17 -0
  14. package/domains/product/.agents/skills/ab-test-design/agents/copilot.json +17 -0
  15. package/domains/product/.agents/skills/ab-test-design/agents/gemini.json +17 -0
  16. package/domains/product/.agents/skills/ab-test-design/agents/openai.yaml +8 -0
  17. package/domains/product/.agents/skills/ab-test-design/agents/qwen.json +17 -0
  18. package/domains/product/.agents/skills/ab-test-design/agents/skill.yaml +20 -0
  19. package/domains/product/.agents/skills/acceptance-criteria/SKILL.md +406 -0
  20. package/domains/product/.agents/skills/acceptance-criteria/agents/claude.json +17 -0
  21. package/domains/product/.agents/skills/acceptance-criteria/agents/copilot.json +17 -0
  22. package/domains/product/.agents/skills/acceptance-criteria/agents/gemini.json +17 -0
  23. package/domains/product/.agents/skills/acceptance-criteria/agents/openai.yaml +8 -0
  24. package/domains/product/.agents/skills/acceptance-criteria/agents/qwen.json +17 -0
  25. package/domains/product/.agents/skills/acceptance-criteria/agents/skill.yaml +20 -0
  26. package/domains/product/.agents/skills/assumption-mapping/SKILL.md +307 -0
  27. package/domains/product/.agents/skills/assumption-mapping/agents/claude.json +17 -0
  28. package/domains/product/.agents/skills/assumption-mapping/agents/copilot.json +17 -0
  29. package/domains/product/.agents/skills/assumption-mapping/agents/gemini.json +17 -0
  30. package/domains/product/.agents/skills/assumption-mapping/agents/openai.yaml +8 -0
  31. package/domains/product/.agents/skills/assumption-mapping/agents/qwen.json +17 -0
  32. package/domains/product/.agents/skills/assumption-mapping/agents/skill.yaml +20 -0
  33. package/domains/product/.agents/skills/board/SKILL.md +420 -0
  34. package/domains/product/.agents/skills/board/agents/claude.json +16 -0
  35. package/domains/product/.agents/skills/board/agents/copilot.json +16 -0
  36. package/domains/product/.agents/skills/board/agents/gemini.json +16 -0
  37. package/domains/product/.agents/skills/board/agents/openai.yaml +8 -0
  38. package/domains/product/.agents/skills/board/agents/qwen.json +16 -0
  39. package/domains/product/.agents/skills/board/agents/skill.yaml +19 -0
  40. package/domains/product/.agents/skills/design-brief/SKILL.md +418 -0
  41. package/domains/product/.agents/skills/design-brief/agents/claude.json +16 -0
  42. package/domains/product/.agents/skills/design-brief/agents/copilot.json +16 -0
  43. package/domains/product/.agents/skills/design-brief/agents/gemini.json +16 -0
  44. package/domains/product/.agents/skills/design-brief/agents/openai.yaml +8 -0
  45. package/domains/product/.agents/skills/design-brief/agents/qwen.json +16 -0
  46. package/domains/product/.agents/skills/design-brief/agents/skill.yaml +19 -0
  47. package/domains/product/.agents/skills/epic-breakdown/SKILL.md +420 -0
  48. package/domains/product/.agents/skills/epic-breakdown/agents/claude.json +16 -0
  49. package/domains/product/.agents/skills/epic-breakdown/agents/copilot.json +16 -0
  50. package/domains/product/.agents/skills/epic-breakdown/agents/gemini.json +16 -0
  51. package/domains/product/.agents/skills/epic-breakdown/agents/openai.yaml +8 -0
  52. package/domains/product/.agents/skills/epic-breakdown/agents/qwen.json +16 -0
  53. package/domains/product/.agents/skills/epic-breakdown/agents/skill.yaml +19 -0
  54. package/domains/product/.agents/skills/gates/SKILL.md +446 -0
  55. package/domains/product/.agents/skills/gates/agents/claude.json +16 -0
  56. package/domains/product/.agents/skills/gates/agents/copilot.json +16 -0
  57. package/domains/product/.agents/skills/gates/agents/gemini.json +16 -0
  58. package/domains/product/.agents/skills/gates/agents/openai.yaml +8 -0
  59. package/domains/product/.agents/skills/gates/agents/qwen.json +16 -0
  60. package/domains/product/.agents/skills/gates/agents/skill.yaml +19 -0
  61. package/domains/product/.agents/skills/gtm-brief/SKILL.md +585 -0
  62. package/domains/product/.agents/skills/gtm-brief/agents/claude.json +17 -0
  63. package/domains/product/.agents/skills/gtm-brief/agents/copilot.json +17 -0
  64. package/domains/product/.agents/skills/gtm-brief/agents/gemini.json +17 -0
  65. package/domains/product/.agents/skills/gtm-brief/agents/openai.yaml +8 -0
  66. package/domains/product/.agents/skills/gtm-brief/agents/qwen.json +17 -0
  67. package/domains/product/.agents/skills/gtm-brief/agents/skill.yaml +20 -0
  68. package/domains/product/.agents/skills/handoff/SKILL.md +429 -0
  69. package/domains/product/.agents/skills/handoff/agents/claude.json +16 -0
  70. package/domains/product/.agents/skills/handoff/agents/copilot.json +16 -0
  71. package/domains/product/.agents/skills/handoff/agents/gemini.json +16 -0
  72. package/domains/product/.agents/skills/handoff/agents/openai.yaml +8 -0
  73. package/domains/product/.agents/skills/handoff/agents/qwen.json +16 -0
  74. package/domains/product/.agents/skills/handoff/agents/skill.yaml +19 -0
  75. package/domains/product/.agents/skills/html-pdf-report/SKILL.md +939 -0
  76. package/domains/product/.agents/skills/html-pdf-report/agents/claude.json +17 -0
  77. package/domains/product/.agents/skills/html-pdf-report/agents/copilot.json +17 -0
  78. package/domains/product/.agents/skills/html-pdf-report/agents/gemini.json +17 -0
  79. package/domains/product/.agents/skills/html-pdf-report/agents/openai.yaml +8 -0
  80. package/domains/product/.agents/skills/html-pdf-report/agents/qwen.json +17 -0
  81. package/domains/product/.agents/skills/html-pdf-report/agents/skill.yaml +20 -0
  82. package/domains/product/.agents/skills/hypothesis-template/SKILL.md +469 -0
  83. package/domains/product/.agents/skills/hypothesis-template/agents/claude.json +16 -0
  84. package/domains/product/.agents/skills/hypothesis-template/agents/copilot.json +16 -0
  85. package/domains/product/.agents/skills/hypothesis-template/agents/gemini.json +16 -0
  86. package/domains/product/.agents/skills/hypothesis-template/agents/openai.yaml +8 -0
  87. package/domains/product/.agents/skills/hypothesis-template/agents/qwen.json +16 -0
  88. package/domains/product/.agents/skills/hypothesis-template/agents/skill.yaml +19 -0
  89. package/domains/product/.agents/skills/jtbd-canvas/SKILL.md +258 -0
  90. package/domains/product/.agents/skills/jtbd-canvas/agents/claude.json +17 -0
  91. package/domains/product/.agents/skills/jtbd-canvas/agents/copilot.json +17 -0
  92. package/domains/product/.agents/skills/jtbd-canvas/agents/gemini.json +17 -0
  93. package/domains/product/.agents/skills/jtbd-canvas/agents/openai.yaml +8 -0
  94. package/domains/product/.agents/skills/jtbd-canvas/agents/qwen.json +17 -0
  95. package/domains/product/.agents/skills/jtbd-canvas/agents/skill.yaml +20 -0
  96. package/domains/product/.agents/skills/kano-model/SKILL.md +355 -0
  97. package/domains/product/.agents/skills/kano-model/agents/claude.json +16 -0
  98. package/domains/product/.agents/skills/kano-model/agents/copilot.json +16 -0
  99. package/domains/product/.agents/skills/kano-model/agents/gemini.json +16 -0
  100. package/domains/product/.agents/skills/kano-model/agents/openai.yaml +8 -0
  101. package/domains/product/.agents/skills/kano-model/agents/qwen.json +16 -0
  102. package/domains/product/.agents/skills/kano-model/agents/skill.yaml +19 -0
  103. package/domains/product/.agents/skills/launch-checklist/SKILL.md +419 -0
  104. package/domains/product/.agents/skills/launch-checklist/agents/claude.json +16 -0
  105. package/domains/product/.agents/skills/launch-checklist/agents/copilot.json +16 -0
  106. package/domains/product/.agents/skills/launch-checklist/agents/gemini.json +16 -0
  107. package/domains/product/.agents/skills/launch-checklist/agents/openai.yaml +8 -0
  108. package/domains/product/.agents/skills/launch-checklist/agents/qwen.json +16 -0
  109. package/domains/product/.agents/skills/launch-checklist/agents/skill.yaml +19 -0
  110. package/domains/product/.agents/skills/moscow-prioritization/SKILL.md +392 -0
  111. package/domains/product/.agents/skills/moscow-prioritization/agents/claude.json +16 -0
  112. package/domains/product/.agents/skills/moscow-prioritization/agents/copilot.json +16 -0
  113. package/domains/product/.agents/skills/moscow-prioritization/agents/gemini.json +16 -0
  114. package/domains/product/.agents/skills/moscow-prioritization/agents/openai.yaml +8 -0
  115. package/domains/product/.agents/skills/moscow-prioritization/agents/qwen.json +16 -0
  116. package/domains/product/.agents/skills/moscow-prioritization/agents/skill.yaml +19 -0
  117. package/domains/product/.agents/skills/north-star-metric/SKILL.md +301 -0
  118. package/domains/product/.agents/skills/north-star-metric/agents/claude.json +17 -0
  119. package/domains/product/.agents/skills/north-star-metric/agents/copilot.json +17 -0
  120. package/domains/product/.agents/skills/north-star-metric/agents/gemini.json +17 -0
  121. package/domains/product/.agents/skills/north-star-metric/agents/openai.yaml +8 -0
  122. package/domains/product/.agents/skills/north-star-metric/agents/qwen.json +17 -0
  123. package/domains/product/.agents/skills/north-star-metric/agents/skill.yaml +20 -0
  124. package/domains/product/.agents/skills/okr-framework/SKILL.md +284 -0
  125. package/domains/product/.agents/skills/okr-framework/agents/claude.json +16 -0
  126. package/domains/product/.agents/skills/okr-framework/agents/copilot.json +16 -0
  127. package/domains/product/.agents/skills/okr-framework/agents/gemini.json +16 -0
  128. package/domains/product/.agents/skills/okr-framework/agents/openai.yaml +8 -0
  129. package/domains/product/.agents/skills/okr-framework/agents/qwen.json +16 -0
  130. package/domains/product/.agents/skills/okr-framework/agents/skill.yaml +19 -0
  131. package/domains/product/.agents/skills/opportunity-solution-tree/SKILL.md +456 -0
  132. package/domains/product/.agents/skills/opportunity-solution-tree/agents/claude.json +17 -0
  133. package/domains/product/.agents/skills/opportunity-solution-tree/agents/copilot.json +17 -0
  134. package/domains/product/.agents/skills/opportunity-solution-tree/agents/gemini.json +17 -0
  135. package/domains/product/.agents/skills/opportunity-solution-tree/agents/openai.yaml +8 -0
  136. package/domains/product/.agents/skills/opportunity-solution-tree/agents/qwen.json +17 -0
  137. package/domains/product/.agents/skills/opportunity-solution-tree/agents/skill.yaml +20 -0
  138. package/domains/product/.agents/skills/prd-template/SKILL.md +490 -0
  139. package/domains/product/.agents/skills/prd-template/agents/claude.json +17 -0
  140. package/domains/product/.agents/skills/prd-template/agents/copilot.json +17 -0
  141. package/domains/product/.agents/skills/prd-template/agents/gemini.json +17 -0
  142. package/domains/product/.agents/skills/prd-template/agents/openai.yaml +8 -0
  143. package/domains/product/.agents/skills/prd-template/agents/qwen.json +17 -0
  144. package/domains/product/.agents/skills/prd-template/agents/skill.yaml +20 -0
  145. package/domains/product/.agents/skills/problem-statement/SKILL.md +312 -0
  146. package/domains/product/.agents/skills/problem-statement/agents/claude.json +16 -0
  147. package/domains/product/.agents/skills/problem-statement/agents/copilot.json +16 -0
  148. package/domains/product/.agents/skills/problem-statement/agents/gemini.json +16 -0
  149. package/domains/product/.agents/skills/problem-statement/agents/openai.yaml +8 -0
  150. package/domains/product/.agents/skills/problem-statement/agents/qwen.json +16 -0
  151. package/domains/product/.agents/skills/problem-statement/agents/skill.yaml +19 -0
  152. package/domains/product/.agents/skills/product-roadmap/SKILL.md +304 -0
  153. package/domains/product/.agents/skills/product-roadmap/agents/claude.json +17 -0
  154. package/domains/product/.agents/skills/product-roadmap/agents/copilot.json +17 -0
  155. package/domains/product/.agents/skills/product-roadmap/agents/gemini.json +17 -0
  156. package/domains/product/.agents/skills/product-roadmap/agents/openai.yaml +8 -0
  157. package/domains/product/.agents/skills/product-roadmap/agents/qwen.json +17 -0
  158. package/domains/product/.agents/skills/product-roadmap/agents/skill.yaml +20 -0
  159. package/domains/product/.agents/skills/product-vision/SKILL.md +394 -0
  160. package/domains/product/.agents/skills/product-vision/agents/claude.json +16 -0
  161. package/domains/product/.agents/skills/product-vision/agents/copilot.json +16 -0
  162. package/domains/product/.agents/skills/product-vision/agents/gemini.json +16 -0
  163. package/domains/product/.agents/skills/product-vision/agents/openai.yaml +8 -0
  164. package/domains/product/.agents/skills/product-vision/agents/qwen.json +16 -0
  165. package/domains/product/.agents/skills/product-vision/agents/skill.yaml +19 -0
  166. package/domains/product/.agents/skills/release-notes/SKILL.md +499 -0
  167. package/domains/product/.agents/skills/release-notes/agents/claude.json +17 -0
  168. package/domains/product/.agents/skills/release-notes/agents/copilot.json +17 -0
  169. package/domains/product/.agents/skills/release-notes/agents/gemini.json +17 -0
  170. package/domains/product/.agents/skills/release-notes/agents/openai.yaml +8 -0
  171. package/domains/product/.agents/skills/release-notes/agents/qwen.json +17 -0
  172. package/domains/product/.agents/skills/release-notes/agents/skill.yaml +20 -0
  173. package/domains/product/.agents/skills/report-design/SKILL.md +708 -0
  174. package/domains/product/.agents/skills/report-design/agents/claude.json +17 -0
  175. package/domains/product/.agents/skills/report-design/agents/copilot.json +17 -0
  176. package/domains/product/.agents/skills/report-design/agents/gemini.json +17 -0
  177. package/domains/product/.agents/skills/report-design/agents/openai.yaml +8 -0
  178. package/domains/product/.agents/skills/report-design/agents/qwen.json +17 -0
  179. package/domains/product/.agents/skills/report-design/agents/skill.yaml +20 -0
  180. package/domains/product/.agents/skills/rice-scoring/SKILL.md +251 -0
  181. package/domains/product/.agents/skills/rice-scoring/agents/claude.json +16 -0
  182. package/domains/product/.agents/skills/rice-scoring/agents/copilot.json +16 -0
  183. package/domains/product/.agents/skills/rice-scoring/agents/gemini.json +16 -0
  184. package/domains/product/.agents/skills/rice-scoring/agents/openai.yaml +8 -0
  185. package/domains/product/.agents/skills/rice-scoring/agents/qwen.json +16 -0
  186. package/domains/product/.agents/skills/rice-scoring/agents/skill.yaml +19 -0
  187. package/domains/product/.agents/skills/saas-metrics/SKILL.md +404 -0
  188. package/domains/product/.agents/skills/saas-metrics/agents/claude.json +21 -0
  189. package/domains/product/.agents/skills/saas-metrics/agents/copilot.json +21 -0
  190. package/domains/product/.agents/skills/saas-metrics/agents/gemini.json +21 -0
  191. package/domains/product/.agents/skills/saas-metrics/agents/openai.yaml +8 -0
  192. package/domains/product/.agents/skills/saas-metrics/agents/qwen.json +21 -0
  193. package/domains/product/.agents/skills/saas-metrics/agents/skill.yaml +24 -0
  194. package/domains/product/.agents/skills/session-prompt-generator/SKILL.md +450 -0
  195. package/domains/product/.agents/skills/session-prompt-generator/agents/claude.json +16 -0
  196. package/domains/product/.agents/skills/session-prompt-generator/agents/copilot.json +16 -0
  197. package/domains/product/.agents/skills/session-prompt-generator/agents/gemini.json +16 -0
  198. package/domains/product/.agents/skills/session-prompt-generator/agents/openai.yaml +8 -0
  199. package/domains/product/.agents/skills/session-prompt-generator/agents/qwen.json +16 -0
  200. package/domains/product/.agents/skills/session-prompt-generator/agents/skill.yaml +19 -0
  201. package/domains/product/.agents/skills/user-flow/SKILL.md +476 -0
  202. package/domains/product/.agents/skills/user-flow/agents/claude.json +16 -0
  203. package/domains/product/.agents/skills/user-flow/agents/copilot.json +16 -0
  204. package/domains/product/.agents/skills/user-flow/agents/gemini.json +16 -0
  205. package/domains/product/.agents/skills/user-flow/agents/openai.yaml +8 -0
  206. package/domains/product/.agents/skills/user-flow/agents/qwen.json +16 -0
  207. package/domains/product/.agents/skills/user-flow/agents/skill.yaml +19 -0
  208. package/domains/product/.agents/skills/user-interview-script/SKILL.md +298 -0
  209. package/domains/product/.agents/skills/user-interview-script/agents/claude.json +18 -0
  210. package/domains/product/.agents/skills/user-interview-script/agents/copilot.json +18 -0
  211. package/domains/product/.agents/skills/user-interview-script/agents/gemini.json +18 -0
  212. package/domains/product/.agents/skills/user-interview-script/agents/openai.yaml +8 -0
  213. package/domains/product/.agents/skills/user-interview-script/agents/qwen.json +18 -0
  214. package/domains/product/.agents/skills/user-interview-script/agents/skill.yaml +21 -0
  215. package/domains/product/.agents/skills/user-story/SKILL.md +385 -0
  216. package/domains/product/.agents/skills/user-story/agents/claude.json +17 -0
  217. package/domains/product/.agents/skills/user-story/agents/copilot.json +17 -0
  218. package/domains/product/.agents/skills/user-story/agents/gemini.json +17 -0
  219. package/domains/product/.agents/skills/user-story/agents/openai.yaml +8 -0
  220. package/domains/product/.agents/skills/user-story/agents/qwen.json +17 -0
  221. package/domains/product/.agents/skills/user-story/agents/skill.yaml +20 -0
  222. package/domains/product/.agents/skills/wsjf-scoring/SKILL.md +315 -0
  223. package/domains/product/.agents/skills/wsjf-scoring/agents/claude.json +17 -0
  224. package/domains/product/.agents/skills/wsjf-scoring/agents/copilot.json +17 -0
  225. package/domains/product/.agents/skills/wsjf-scoring/agents/gemini.json +17 -0
  226. package/domains/product/.agents/skills/wsjf-scoring/agents/openai.yaml +8 -0
  227. package/domains/product/.agents/skills/wsjf-scoring/agents/qwen.json +17 -0
  228. package/domains/product/.agents/skills/wsjf-scoring/agents/skill.yaml +20 -0
  229. package/domains/product/.agents/workflows/product-pipeline-rules.md +340 -0
  230. package/domains/product/.agents/workflows/quick-pm.md +292 -0
  231. package/domains/product/.agents/workflows/shape-prioritize.md +263 -0
  232. package/domains/product/.agents/workflows/ship-right-thing.md +242 -0
  233. package/domains/product/.agents/workflows/spec.md +229 -0
  234. package/domains/product/AGENTS.md +149 -0
  235. package/domains/product/AGENTS.yaml +77 -0
  236. package/domains/product/CONTEXT.md +40 -0
  237. package/domains/product/agents/conductor.md +517 -0
  238. package/domains/product/agents/data_analyst.md +557 -0
  239. package/domains/product/agents/designer.md +443 -0
  240. package/domains/product/agents/discovery.md +547 -0
  241. package/domains/product/agents/layouter.md +613 -0
  242. package/domains/product/agents/mediator.md +514 -0
  243. package/domains/product/agents/orchestrator.claude.json +10 -0
  244. package/domains/product/agents/orchestrator.copilot.json +10 -0
  245. package/domains/product/agents/orchestrator.gemini.json +10 -0
  246. package/domains/product/agents/orchestrator.openai.yaml +8 -0
  247. package/domains/product/agents/orchestrator.qwen.json +10 -0
  248. package/domains/product/agents/pm.md +544 -0
  249. package/domains/product/agents/product_strategist.md +502 -0
  250. package/domains/product/agents/tech_lead.md +546 -0
  251. package/domains/product/agents/ux_designer.md +439 -0
  252. package/domains/product/domain.json +5 -0
  253. package/domains/product/locales/en/.agents/skills/aarrr-metrics/SKILL.md +433 -0
  254. package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/claude.json +17 -0
  255. package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/copilot.json +17 -0
  256. package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/gemini.json +17 -0
  257. package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/openai.yaml +8 -0
  258. package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/qwen.json +17 -0
  259. package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/skill.yaml +20 -0
  260. package/domains/product/locales/en/.agents/skills/ab-test-design/SKILL.md +412 -0
  261. package/domains/product/locales/en/.agents/skills/ab-test-design/agents/claude.json +16 -0
  262. package/domains/product/locales/en/.agents/skills/ab-test-design/agents/copilot.json +16 -0
  263. package/domains/product/locales/en/.agents/skills/ab-test-design/agents/gemini.json +16 -0
  264. package/domains/product/locales/en/.agents/skills/ab-test-design/agents/openai.yaml +8 -0
  265. package/domains/product/locales/en/.agents/skills/ab-test-design/agents/qwen.json +16 -0
  266. package/domains/product/locales/en/.agents/skills/ab-test-design/agents/skill.yaml +19 -0
  267. package/domains/product/locales/en/.agents/skills/acceptance-criteria/SKILL.md +406 -0
  268. package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/claude.json +16 -0
  269. package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/copilot.json +16 -0
  270. package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/gemini.json +16 -0
  271. package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/openai.yaml +8 -0
  272. package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/qwen.json +16 -0
  273. package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/skill.yaml +19 -0
  274. package/domains/product/locales/en/.agents/skills/assumption-mapping/SKILL.md +307 -0
  275. package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/claude.json +15 -0
  276. package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/copilot.json +15 -0
  277. package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/gemini.json +15 -0
  278. package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/openai.yaml +8 -0
  279. package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/qwen.json +15 -0
  280. package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/skill.yaml +18 -0
  281. package/domains/product/locales/en/.agents/skills/board/SKILL.md +420 -0
  282. package/domains/product/locales/en/.agents/skills/board/agents/claude.json +15 -0
  283. package/domains/product/locales/en/.agents/skills/board/agents/copilot.json +15 -0
  284. package/domains/product/locales/en/.agents/skills/board/agents/gemini.json +15 -0
  285. package/domains/product/locales/en/.agents/skills/board/agents/openai.yaml +8 -0
  286. package/domains/product/locales/en/.agents/skills/board/agents/qwen.json +15 -0
  287. package/domains/product/locales/en/.agents/skills/board/agents/skill.yaml +18 -0
  288. package/domains/product/locales/en/.agents/skills/design-brief/SKILL.md +418 -0
  289. package/domains/product/locales/en/.agents/skills/design-brief/agents/claude.json +15 -0
  290. package/domains/product/locales/en/.agents/skills/design-brief/agents/copilot.json +15 -0
  291. package/domains/product/locales/en/.agents/skills/design-brief/agents/gemini.json +15 -0
  292. package/domains/product/locales/en/.agents/skills/design-brief/agents/openai.yaml +8 -0
  293. package/domains/product/locales/en/.agents/skills/design-brief/agents/qwen.json +15 -0
  294. package/domains/product/locales/en/.agents/skills/design-brief/agents/skill.yaml +18 -0
  295. package/domains/product/locales/en/.agents/skills/epic-breakdown/SKILL.md +420 -0
  296. package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/claude.json +15 -0
  297. package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/copilot.json +15 -0
  298. package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/gemini.json +15 -0
  299. package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/openai.yaml +8 -0
  300. package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/qwen.json +15 -0
  301. package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/skill.yaml +18 -0
  302. package/domains/product/locales/en/.agents/skills/gates/SKILL.md +446 -0
  303. package/domains/product/locales/en/.agents/skills/gates/agents/claude.json +16 -0
  304. package/domains/product/locales/en/.agents/skills/gates/agents/copilot.json +16 -0
  305. package/domains/product/locales/en/.agents/skills/gates/agents/gemini.json +16 -0
  306. package/domains/product/locales/en/.agents/skills/gates/agents/openai.yaml +8 -0
  307. package/domains/product/locales/en/.agents/skills/gates/agents/qwen.json +16 -0
  308. package/domains/product/locales/en/.agents/skills/gates/agents/skill.yaml +19 -0
  309. package/domains/product/locales/en/.agents/skills/gtm-brief/SKILL.md +585 -0
  310. package/domains/product/locales/en/.agents/skills/gtm-brief/agents/claude.json +17 -0
  311. package/domains/product/locales/en/.agents/skills/gtm-brief/agents/copilot.json +17 -0
  312. package/domains/product/locales/en/.agents/skills/gtm-brief/agents/gemini.json +17 -0
  313. package/domains/product/locales/en/.agents/skills/gtm-brief/agents/openai.yaml +8 -0
  314. package/domains/product/locales/en/.agents/skills/gtm-brief/agents/qwen.json +17 -0
  315. package/domains/product/locales/en/.agents/skills/gtm-brief/agents/skill.yaml +20 -0
  316. package/domains/product/locales/en/.agents/skills/handoff/SKILL.md +429 -0
  317. package/domains/product/locales/en/.agents/skills/handoff/agents/claude.json +15 -0
  318. package/domains/product/locales/en/.agents/skills/handoff/agents/copilot.json +15 -0
  319. package/domains/product/locales/en/.agents/skills/handoff/agents/gemini.json +15 -0
  320. package/domains/product/locales/en/.agents/skills/handoff/agents/openai.yaml +8 -0
  321. package/domains/product/locales/en/.agents/skills/handoff/agents/qwen.json +15 -0
  322. package/domains/product/locales/en/.agents/skills/handoff/agents/skill.yaml +18 -0
  323. package/domains/product/locales/en/.agents/skills/html-pdf-report/SKILL.md +939 -0
  324. package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/claude.json +17 -0
  325. package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/copilot.json +17 -0
  326. package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/gemini.json +17 -0
  327. package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/openai.yaml +8 -0
  328. package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/qwen.json +17 -0
  329. package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/skill.yaml +20 -0
  330. package/domains/product/locales/en/.agents/skills/hypothesis-template/SKILL.md +469 -0
  331. package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/claude.json +15 -0
  332. package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/copilot.json +15 -0
  333. package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/gemini.json +15 -0
  334. package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/openai.yaml +8 -0
  335. package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/qwen.json +15 -0
  336. package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/skill.yaml +18 -0
  337. package/domains/product/locales/en/.agents/skills/jtbd-canvas/SKILL.md +257 -0
  338. package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/claude.json +16 -0
  339. package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/copilot.json +16 -0
  340. package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/gemini.json +16 -0
  341. package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/openai.yaml +8 -0
  342. package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/qwen.json +16 -0
  343. package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/skill.yaml +19 -0
  344. package/domains/product/locales/en/.agents/skills/kano-model/SKILL.md +355 -0
  345. package/domains/product/locales/en/.agents/skills/kano-model/agents/claude.json +15 -0
  346. package/domains/product/locales/en/.agents/skills/kano-model/agents/copilot.json +15 -0
  347. package/domains/product/locales/en/.agents/skills/kano-model/agents/gemini.json +15 -0
  348. package/domains/product/locales/en/.agents/skills/kano-model/agents/openai.yaml +8 -0
  349. package/domains/product/locales/en/.agents/skills/kano-model/agents/qwen.json +15 -0
  350. package/domains/product/locales/en/.agents/skills/kano-model/agents/skill.yaml +18 -0
  351. package/domains/product/locales/en/.agents/skills/launch-checklist/SKILL.md +419 -0
  352. package/domains/product/locales/en/.agents/skills/launch-checklist/agents/claude.json +15 -0
  353. package/domains/product/locales/en/.agents/skills/launch-checklist/agents/copilot.json +15 -0
  354. package/domains/product/locales/en/.agents/skills/launch-checklist/agents/gemini.json +15 -0
  355. package/domains/product/locales/en/.agents/skills/launch-checklist/agents/openai.yaml +8 -0
  356. package/domains/product/locales/en/.agents/skills/launch-checklist/agents/qwen.json +15 -0
  357. package/domains/product/locales/en/.agents/skills/launch-checklist/agents/skill.yaml +18 -0
  358. package/domains/product/locales/en/.agents/skills/moscow-prioritization/SKILL.md +392 -0
  359. package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/claude.json +16 -0
  360. package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/copilot.json +16 -0
  361. package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/gemini.json +16 -0
  362. package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/openai.yaml +8 -0
  363. package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/qwen.json +16 -0
  364. package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/skill.yaml +19 -0
  365. package/domains/product/locales/en/.agents/skills/north-star-metric/SKILL.md +301 -0
  366. package/domains/product/locales/en/.agents/skills/north-star-metric/agents/claude.json +16 -0
  367. package/domains/product/locales/en/.agents/skills/north-star-metric/agents/copilot.json +16 -0
  368. package/domains/product/locales/en/.agents/skills/north-star-metric/agents/gemini.json +16 -0
  369. package/domains/product/locales/en/.agents/skills/north-star-metric/agents/openai.yaml +8 -0
  370. package/domains/product/locales/en/.agents/skills/north-star-metric/agents/qwen.json +16 -0
  371. package/domains/product/locales/en/.agents/skills/north-star-metric/agents/skill.yaml +19 -0
  372. package/domains/product/locales/en/.agents/skills/okr-framework/SKILL.md +284 -0
  373. package/domains/product/locales/en/.agents/skills/okr-framework/agents/claude.json +16 -0
  374. package/domains/product/locales/en/.agents/skills/okr-framework/agents/copilot.json +16 -0
  375. package/domains/product/locales/en/.agents/skills/okr-framework/agents/gemini.json +16 -0
  376. package/domains/product/locales/en/.agents/skills/okr-framework/agents/openai.yaml +8 -0
  377. package/domains/product/locales/en/.agents/skills/okr-framework/agents/qwen.json +16 -0
  378. package/domains/product/locales/en/.agents/skills/okr-framework/agents/skill.yaml +19 -0
  379. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/SKILL.md +456 -0
  380. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/claude.json +16 -0
  381. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/copilot.json +16 -0
  382. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/gemini.json +16 -0
  383. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/openai.yaml +8 -0
  384. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/qwen.json +16 -0
  385. package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/skill.yaml +19 -0
  386. package/domains/product/locales/en/.agents/skills/prd-template/SKILL.md +490 -0
  387. package/domains/product/locales/en/.agents/skills/prd-template/agents/claude.json +16 -0
  388. package/domains/product/locales/en/.agents/skills/prd-template/agents/copilot.json +16 -0
  389. package/domains/product/locales/en/.agents/skills/prd-template/agents/gemini.json +16 -0
  390. package/domains/product/locales/en/.agents/skills/prd-template/agents/openai.yaml +8 -0
  391. package/domains/product/locales/en/.agents/skills/prd-template/agents/qwen.json +16 -0
  392. package/domains/product/locales/en/.agents/skills/prd-template/agents/skill.yaml +19 -0
  393. package/domains/product/locales/en/.agents/skills/problem-statement/SKILL.md +312 -0
  394. package/domains/product/locales/en/.agents/skills/problem-statement/agents/claude.json +15 -0
  395. package/domains/product/locales/en/.agents/skills/problem-statement/agents/copilot.json +15 -0
  396. package/domains/product/locales/en/.agents/skills/problem-statement/agents/gemini.json +15 -0
  397. package/domains/product/locales/en/.agents/skills/problem-statement/agents/openai.yaml +8 -0
  398. package/domains/product/locales/en/.agents/skills/problem-statement/agents/qwen.json +15 -0
  399. package/domains/product/locales/en/.agents/skills/problem-statement/agents/skill.yaml +18 -0
  400. package/domains/product/locales/en/.agents/skills/product-roadmap/SKILL.md +305 -0
  401. package/domains/product/locales/en/.agents/skills/product-roadmap/agents/claude.json +16 -0
  402. package/domains/product/locales/en/.agents/skills/product-roadmap/agents/copilot.json +16 -0
  403. package/domains/product/locales/en/.agents/skills/product-roadmap/agents/gemini.json +16 -0
  404. package/domains/product/locales/en/.agents/skills/product-roadmap/agents/openai.yaml +8 -0
  405. package/domains/product/locales/en/.agents/skills/product-roadmap/agents/qwen.json +16 -0
  406. package/domains/product/locales/en/.agents/skills/product-roadmap/agents/skill.yaml +19 -0
  407. package/domains/product/locales/en/.agents/skills/product-vision/SKILL.md +395 -0
  408. package/domains/product/locales/en/.agents/skills/product-vision/agents/claude.json +15 -0
  409. package/domains/product/locales/en/.agents/skills/product-vision/agents/copilot.json +15 -0
  410. package/domains/product/locales/en/.agents/skills/product-vision/agents/gemini.json +15 -0
  411. package/domains/product/locales/en/.agents/skills/product-vision/agents/openai.yaml +8 -0
  412. package/domains/product/locales/en/.agents/skills/product-vision/agents/qwen.json +15 -0
  413. package/domains/product/locales/en/.agents/skills/product-vision/agents/skill.yaml +18 -0
  414. package/domains/product/locales/en/.agents/skills/release-notes/SKILL.md +499 -0
  415. package/domains/product/locales/en/.agents/skills/release-notes/agents/claude.json +16 -0
  416. package/domains/product/locales/en/.agents/skills/release-notes/agents/copilot.json +16 -0
  417. package/domains/product/locales/en/.agents/skills/release-notes/agents/gemini.json +16 -0
  418. package/domains/product/locales/en/.agents/skills/release-notes/agents/openai.yaml +8 -0
  419. package/domains/product/locales/en/.agents/skills/release-notes/agents/qwen.json +16 -0
  420. package/domains/product/locales/en/.agents/skills/release-notes/agents/skill.yaml +19 -0
  421. package/domains/product/locales/en/.agents/skills/report-design/SKILL.md +708 -0
  422. package/domains/product/locales/en/.agents/skills/report-design/agents/claude.json +17 -0
  423. package/domains/product/locales/en/.agents/skills/report-design/agents/copilot.json +17 -0
  424. package/domains/product/locales/en/.agents/skills/report-design/agents/gemini.json +17 -0
  425. package/domains/product/locales/en/.agents/skills/report-design/agents/openai.yaml +8 -0
  426. package/domains/product/locales/en/.agents/skills/report-design/agents/qwen.json +17 -0
  427. package/domains/product/locales/en/.agents/skills/report-design/agents/skill.yaml +20 -0
  428. package/domains/product/locales/en/.agents/skills/rice-scoring/SKILL.md +251 -0
  429. package/domains/product/locales/en/.agents/skills/rice-scoring/agents/claude.json +16 -0
  430. package/domains/product/locales/en/.agents/skills/rice-scoring/agents/copilot.json +16 -0
  431. package/domains/product/locales/en/.agents/skills/rice-scoring/agents/gemini.json +16 -0
  432. package/domains/product/locales/en/.agents/skills/rice-scoring/agents/openai.yaml +8 -0
  433. package/domains/product/locales/en/.agents/skills/rice-scoring/agents/qwen.json +16 -0
  434. package/domains/product/locales/en/.agents/skills/rice-scoring/agents/skill.yaml +19 -0
  435. package/domains/product/locales/en/.agents/skills/saas-metrics/SKILL.md +404 -0
  436. package/domains/product/locales/en/.agents/skills/saas-metrics/agents/claude.json +21 -0
  437. package/domains/product/locales/en/.agents/skills/saas-metrics/agents/copilot.json +21 -0
  438. package/domains/product/locales/en/.agents/skills/saas-metrics/agents/gemini.json +21 -0
  439. package/domains/product/locales/en/.agents/skills/saas-metrics/agents/openai.yaml +8 -0
  440. package/domains/product/locales/en/.agents/skills/saas-metrics/agents/qwen.json +21 -0
  441. package/domains/product/locales/en/.agents/skills/saas-metrics/agents/skill.yaml +24 -0
  442. package/domains/product/locales/en/.agents/skills/session-prompt-generator/SKILL.md +450 -0
  443. package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/claude.json +16 -0
  444. package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/copilot.json +16 -0
  445. package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/gemini.json +16 -0
  446. package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/openai.yaml +8 -0
  447. package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/qwen.json +16 -0
  448. package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/skill.yaml +19 -0
  449. package/domains/product/locales/en/.agents/skills/user-flow/SKILL.md +476 -0
  450. package/domains/product/locales/en/.agents/skills/user-flow/agents/claude.json +15 -0
  451. package/domains/product/locales/en/.agents/skills/user-flow/agents/copilot.json +15 -0
  452. package/domains/product/locales/en/.agents/skills/user-flow/agents/gemini.json +15 -0
  453. package/domains/product/locales/en/.agents/skills/user-flow/agents/openai.yaml +8 -0
  454. package/domains/product/locales/en/.agents/skills/user-flow/agents/qwen.json +15 -0
  455. package/domains/product/locales/en/.agents/skills/user-flow/agents/skill.yaml +18 -0
  456. package/domains/product/locales/en/.agents/skills/user-interview-script/SKILL.md +297 -0
  457. package/domains/product/locales/en/.agents/skills/user-interview-script/agents/claude.json +17 -0
  458. package/domains/product/locales/en/.agents/skills/user-interview-script/agents/copilot.json +17 -0
  459. package/domains/product/locales/en/.agents/skills/user-interview-script/agents/gemini.json +17 -0
  460. package/domains/product/locales/en/.agents/skills/user-interview-script/agents/openai.yaml +8 -0
  461. package/domains/product/locales/en/.agents/skills/user-interview-script/agents/qwen.json +17 -0
  462. package/domains/product/locales/en/.agents/skills/user-interview-script/agents/skill.yaml +20 -0
  463. package/domains/product/locales/en/.agents/skills/user-story/SKILL.md +385 -0
  464. package/domains/product/locales/en/.agents/skills/user-story/agents/claude.json +16 -0
  465. package/domains/product/locales/en/.agents/skills/user-story/agents/copilot.json +16 -0
  466. package/domains/product/locales/en/.agents/skills/user-story/agents/gemini.json +16 -0
  467. package/domains/product/locales/en/.agents/skills/user-story/agents/openai.yaml +8 -0
  468. package/domains/product/locales/en/.agents/skills/user-story/agents/qwen.json +16 -0
  469. package/domains/product/locales/en/.agents/skills/user-story/agents/skill.yaml +19 -0
  470. package/domains/product/locales/en/.agents/skills/wsjf-scoring/SKILL.md +315 -0
  471. package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/claude.json +17 -0
  472. package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/copilot.json +17 -0
  473. package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/gemini.json +17 -0
  474. package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/openai.yaml +8 -0
  475. package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/qwen.json +17 -0
  476. package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/skill.yaml +20 -0
  477. package/domains/product/locales/en/.agents/workflows/product-pipeline-rules.md +340 -0
  478. package/domains/product/locales/en/.agents/workflows/quick-pm.md +292 -0
  479. package/domains/product/locales/en/.agents/workflows/shape-prioritize.md +263 -0
  480. package/domains/product/locales/en/.agents/workflows/ship-right-thing.md +242 -0
  481. package/domains/product/locales/en/.agents/workflows/spec.md +229 -0
  482. package/domains/product/locales/en/AGENTS.md +149 -0
  483. package/domains/product/locales/en/AGENTS.yaml +78 -0
  484. package/domains/product/locales/en/CONTEXT.md +40 -0
  485. package/domains/product/locales/en/agents/conductor.md +518 -0
  486. package/domains/product/locales/en/agents/data_analyst.md +557 -0
  487. package/domains/product/locales/en/agents/designer.md +443 -0
  488. package/domains/product/locales/en/agents/discovery.md +547 -0
  489. package/domains/product/locales/en/agents/layouter.md +613 -0
  490. package/domains/product/locales/en/agents/mediator.md +514 -0
  491. package/domains/product/locales/en/agents/orchestrator.claude.json +10 -0
  492. package/domains/product/locales/en/agents/orchestrator.copilot.json +10 -0
  493. package/domains/product/locales/en/agents/orchestrator.gemini.json +10 -0
  494. package/domains/product/locales/en/agents/orchestrator.openai.yaml +8 -0
  495. package/domains/product/locales/en/agents/orchestrator.qwen.json +10 -0
  496. package/domains/product/locales/en/agents/pm.md +544 -0
  497. package/domains/product/locales/en/agents/product_strategist.md +502 -0
  498. package/domains/product/locales/en/agents/tech_lead.md +546 -0
  499. package/domains/product/locales/en/agents/ux_designer.md +439 -0
  500. package/domains/product/locales/en/prompt-examples.md +77 -0
  501. package/domains/product/prompt-examples.md +77 -0
  502. package/package.json +2 -2
@@ -0,0 +1,613 @@
1
+ <!-- codex: reasoning=medium; note="Raise to high for complex visualizations (data-dense charts, interactive-like static) or accessibility-critical documents" -->
2
+
3
+ > [!CAUTION]
4
+ > **ОБЯЗАТЕЛЬНОЕ ПРАВИЛО: Self-Contained + Print-Ready.**
5
+ > Output **обязан** быть self-contained HTML (no external deps except CDN fonts / Chart.js / Mermaid opt.) и print-ready (page-break hints, @page rules).
6
+ > Content **не меняется** (это работа Designer / PM) — только HTML / CSS implementation.
7
+
8
+ # Agent: Layouter (Product Domain)
9
+
10
+ ## Назначение
11
+
12
+ Layouter — финальный агент продуктового пайплайна. Превращает Design Spec (от Designer)
13
+ и content (от PM / Mediator / Data Analyst / UX Designer / Tech Lead) в **self-contained
14
+ HTML + CSS**, пригодный для конвертации в PDF через browser print или puppeteer/playwright.
15
+ Output — PRD document и / или Product Review Deck как статичный document.
16
+
17
+ Заимствован из analytics-домена и специализирован для продуктовых outputs: PRD layout с
18
+ множеством секций и visualizations, Product Review Deck slide-style, print optimizations,
19
+ page breaks, TOC с anchors, semantic HTML.
20
+
21
+ Активен в Сессии 6 пайплайнов Full A/B (после Designer DS-01). В Spec — если Designer
22
+ генерировал design spec; иначе — markdown output минуя Layouter. В Quick — skip
23
+ (markdown deliverable).
24
+
25
+ Критерии качества работы Layouter: (1) self-containment — document open в browser без
26
+ broken references или missing assets, (2) print-ready — page breaks в правильных местах,
27
+ не ломают таблицы / callouts, (3) visual fidelity — соответствует Design Spec (typography,
28
+ colors, spacing), (4) accessibility — semantic HTML, proper headings, alt-text,
29
+ (5) file size reasonable (< 10 MB для PRD; < 5 MB для Deck).
30
+
31
+ > **Правила пайплайна:** Агент подчиняется `product-pipeline-rules.md`. Deliverable проверяется через `$gates` (LY-01 criteria). Все форматы — из стандартных скилов.
32
+
33
+ ## Входы
34
+
35
+ | Поле | Обязательно | Источник |
36
+ |------|:-----------:|----------|
37
+ | Design Spec (8 секций) | Да | Designer (DS-01) |
38
+ | PRD content (markdown) | Да | PM (session-5-handoff.md) |
39
+ | Strategy / Scope content | Да | Mediator (session-4-handoff.md) |
40
+ | Metric plan | Да | Data Analyst |
41
+ | UX content (flows, wireframes descriptions) | Условно (если UI есть) | UX Designer |
42
+ | Tech Brief | Да | Tech Lead |
43
+ | Discovery Brief | Да | Discovery (через handoffs) |
44
+ | Assets (logos, icons, reference images) | Опц. | Designer / пользователь |
45
+ | Handoff от Conductor | Да | Conductor |
46
+
47
+ ## Используемые skills
48
+
49
+ ### Обязательные (каждый раз)
50
+ - **`$html-pdf-report`** — HTML/CSS → PDF pipeline (print-ready, self-contained)
51
+ - **`$gates`** — проверка deliverable по LY-01 criteria
52
+ - **`$handoff`** — формирование handoff-конверта для Release Gate
53
+ - **`$board`** — обновление статуса LY-01
54
+
55
+ ### По контексту
56
+ - Нет других skills; Layouter — implementation-focused.
57
+
58
+ ## Ограничения (что Layouter НЕ делает)
59
+
60
+ - Не меняет content (это работа PM / Mediator / Data Analyst / UX / Tech Lead)
61
+ - Не меняет Design Spec (это Designer через Reverse Handoff)
62
+ - Не делает interactive features — только print-ready static output
63
+ - Не требует сложных external dependencies (кроме optionalных CDN: Inter font, Chart.js для interactive-style static charts, Mermaid для diagrams)
64
+ - Не выполняет final PDF generation (это browser print-to-PDF / puppeteer downstream); но готовит HTML так, чтобы PDF-generation тривиален
65
+ - Не принимает scope / strategy decisions
66
+ - Не тестирует product UI / accessibility — только document accessibility (semantic HTML, headings, alt-text)
67
+
68
+ ## Режимы работы
69
+
70
+ | Аспект | Full A Сессия 6 | Full B Сессия 6 | Spec |
71
+ |--------|-----------------|-----------------|------|
72
+ | Output types | PRD HTML + Product Review Deck HTML | PRD HTML + mini deck HTML | PRD HTML |
73
+ | Page count | 25-40 pages PRD + 15-20 slides Deck | 20-30 pages PRD + 10 slides deck | 10-20 pages PRD |
74
+ | Visualizations | Roadmap + metric tree + RICE + risk heatmap + flow summary | MoSCoW matrix + tradeoff map + epic breakdown + risk heatmap | Metric tree + flow summary + epic breakdown |
75
+ | Format | A4 portrait (PRD), 16:9 landscape (Deck) | A4 portrait (PRD), 16:9 (deck) | A4 portrait |
76
+ | Self-containment | Strict (embedded CSS, inline SVG) | Strict | Strict |
77
+ | Depth | 200-350 строк | 150-250 строк | 100-200 строк |
78
+
79
+ ## Протокол работы
80
+
81
+ ### Шаг 0 — Приём и валидация входов
82
+
83
+ 1. **Receive Acknowledgement** (`$handoff`):
84
+ ```
85
+ Handoff получен: DS-01 → LY-01
86
+ Режим: Full A S6 / Full B S6 / Spec
87
+ Артефакты: Design Spec ✅, PRD content ✅, Strategy / Scope ✅,
88
+ Metric Plan ✅, UX output ✅ (if UI), Tech Brief ✅, Discovery ✅
89
+ ```
90
+ 2. Обновить `$board`: LY-01 → [→] В работе.
91
+ 3. **Validate inputs:**
92
+ - Design Spec complete (8 sections)?
93
+ - PRD content — все user stories + AC присутствуют?
94
+ - Все cross-references валидны (metric tree → Strategy NSM, epic IDs → PRD stories)?
95
+ - Assets доступны (logos, reference images)?
96
+ - Content consistency: нет placeholder'ов / TODO / missing sections?
97
+ 4. Если gap — Reverse Handoff к соответствующему агенту.
98
+
99
+ ### Шаг 1 — HTML Skeleton
100
+
101
+ Через `$html-pdf-report`:
102
+
103
+ ```html
104
+ <!DOCTYPE html>
105
+ <html lang="ru" data-theme="light">
106
+ <head>
107
+ <meta charset="UTF-8">
108
+ <meta name="viewport" content="width=device-width, initial-scale=1">
109
+ <title>PRD — [Initiative]</title>
110
+ <style>
111
+ /* Embedded CSS (Шаг 2) */
112
+ </style>
113
+ </head>
114
+ <body>
115
+ <section class="title-page">...</section>
116
+ <nav class="toc">...</nav>
117
+ <section class="executive-summary">...</section>
118
+ <section class="discovery">...</section>
119
+ <section class="strategy">...</section>
120
+ <section class="prd-body">...</section>
121
+ <section class="ux-summary">...</section>
122
+ <section class="metric-plan">...</section>
123
+ <section class="tech-risks">...</section>
124
+ <section class="rollout">...</section>
125
+ <section class="appendices">...</section>
126
+ </body>
127
+ </html>
128
+ ```
129
+
130
+ Правила:
131
+ - Semantic HTML: `<section>`, `<nav>`, `<article>`, `<aside>`, `<figure>`.
132
+ - Heading hierarchy: `<h1>` для section titles, `<h2>` для subsections.
133
+ - Page break hints: `<section>` с `page-break-before: always` в CSS.
134
+ - Anchor IDs для TOC навигации: `<section id="discovery">`.
135
+ - Lang attribute: `ru` или `en` per locale.
136
+
137
+ ### Шаг 2 — CSS (Embedded)
138
+
139
+ Из Design Spec применить:
140
+
141
+ ```css
142
+ /* Typography (из Design Spec §2) */
143
+ :root {
144
+ --font-sans: 'Inter', system-ui, sans-serif;
145
+ --font-mono: 'Fira Code', monospace;
146
+
147
+ /* Colors (из Design Spec §3) */
148
+ --color-primary: #1A365D;
149
+ --color-secondary: #2C5282;
150
+ --color-accent-1: #B7791F;
151
+ --color-success: #38A169;
152
+ --color-warn: #DD6B20;
153
+ --color-danger: #C53030;
154
+ --color-neutral-50: #F7FAFC;
155
+ --color-neutral-200: #EDF2F7;
156
+ --color-neutral-400: #CBD5E0;
157
+ --color-neutral-600: #718096;
158
+ --color-neutral-800: #2D3748;
159
+ }
160
+
161
+ body {
162
+ font-family: var(--font-sans);
163
+ font-size: 12pt;
164
+ color: var(--color-neutral-800);
165
+ line-height: 1.5;
166
+ margin: 0;
167
+ }
168
+
169
+ h1 { font-size: 28pt; font-weight: 700; color: var(--color-primary); }
170
+ h2 { font-size: 22pt; font-weight: 600; color: var(--color-secondary); }
171
+ h3 { font-size: 16pt; font-weight: 600; color: var(--color-neutral-800); }
172
+
173
+ /* Spacing (8pt rhythm) */
174
+ .section { margin-bottom: 32px; }
175
+
176
+ /* Callouts */
177
+ .callout-info { background: var(--color-neutral-50); border-left: 4px solid var(--color-secondary); padding: 16px; }
178
+ .callout-warning { background: #FFFAEB; border-left: 4px solid var(--color-warn); padding: 16px; }
179
+ .callout-danger { background: #FEE; border-left: 4px solid var(--color-danger); padding: 16px; }
180
+
181
+ /* Status badges */
182
+ .badge-p0 { background: var(--color-danger); color: white; padding: 2px 8px; border-radius: 4px; font-size: 10pt; }
183
+ .badge-p1 { background: var(--color-warn); color: white; ...; }
184
+ .badge-p2 { background: var(--color-neutral-600); color: white; ...; }
185
+ .evidence-verified::before { content: '✅ '; }
186
+ .evidence-old::before { content: '⚠️ '; }
187
+ .evidence-assumed::before { content: '🔮 '; }
188
+
189
+ /* Tables */
190
+ table { width: 100%; border-collapse: collapse; margin-bottom: 24px; }
191
+ table th { background: var(--color-primary); color: white; padding: 8px; text-align: left; }
192
+ table tr:nth-child(even) { background: var(--color-neutral-50); }
193
+ table td { padding: 8px; border-bottom: 1px solid var(--color-neutral-200); }
194
+
195
+ /* Print optimizations */
196
+ @page {
197
+ size: A4;
198
+ margin: 24mm 20mm;
199
+ @bottom-center { content: counter(page) " / " counter(pages); font-size: 9pt; }
200
+ }
201
+
202
+ @media print {
203
+ section { page-break-before: always; }
204
+ .title-page { page-break-after: always; }
205
+ table, .callout-info, .callout-warning, .callout-danger { page-break-inside: avoid; }
206
+ tr { page-break-inside: avoid; }
207
+ h1, h2, h3 { page-break-after: avoid; }
208
+ }
209
+
210
+ /* Deck (16:9 landscape) — optional alt template */
211
+ body.deck { font-size: 18pt; }
212
+ body.deck .slide { page-break-after: always; min-height: 100vh; padding: 48px; display: flex; flex-direction: column; justify-content: center; }
213
+ ```
214
+
215
+ ### Шаг 3 — Table of Contents
216
+
217
+ TOC с page numbers (через CSS counters) или секционных anchors:
218
+
219
+ ```html
220
+ <nav class="toc">
221
+ <h2>Table of Contents</h2>
222
+ <ol>
223
+ <li><a href="#executive-summary">Executive Summary</a></li>
224
+ <li><a href="#discovery">Discovery</a>
225
+ <ol>
226
+ <li><a href="#discovery-jtbd">JTBD</a></li>
227
+ <li><a href="#discovery-problems">Problem Statements</a></li>
228
+ </ol>
229
+ </li>
230
+ <li><a href="#strategy">Strategy</a></li>
231
+ <!-- ... -->
232
+ </ol>
233
+ </nav>
234
+ ```
235
+
236
+ CSS для TOC с page numbers:
237
+ ```css
238
+ .toc a::after { content: leader('.') target-counter(attr(href), page); }
239
+ ```
240
+
241
+ ### Шаг 4 — Visualizations
242
+
243
+ **Roadmap (CSS Grid или SVG):**
244
+ ```html
245
+ <div class="roadmap">
246
+ <div class="roadmap-col">
247
+ <h3>Now (Q1 2027)</h3>
248
+ <ul class="roadmap-themes">
249
+ <li class="theme kano-must">Summary MVP</li>
250
+ <li class="theme kano-perf">Coaching Prompts</li>
251
+ <li class="theme kano-delighter">Admin Dashboard</li>
252
+ </ul>
253
+ </div>
254
+ <div class="roadmap-col">
255
+ <h3>Next (Q2 2027)</h3>
256
+ <ul class="roadmap-themes">...</ul>
257
+ </div>
258
+ <div class="roadmap-col">
259
+ <h3>Later (Q3+)</h3>
260
+ <ul class="roadmap-themes">...</ul>
261
+ </div>
262
+ </div>
263
+ ```
264
+
265
+ **Metric Tree (Mermaid):**
266
+ ```html
267
+ <div class="mermaid">
268
+ graph LR
269
+ NSM[NSM: 40% MAM × 4.0 rating]
270
+ NSM --> I1[Activation rate]
271
+ NSM --> I2[Retention W4]
272
+ NSM --> I3[Session frequency]
273
+ NSM --> G[Guardrails]
274
+ G --> G1[Churn]
275
+ G --> G2[NPS]
276
+ G --> G3[Support tickets]
277
+ G --> G4[p95 latency]
278
+ </div>
279
+ <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
280
+ <script>mermaid.initialize({ startOnLoad: true });</script>
281
+ ```
282
+
283
+ **Risk Heatmap (CSS Grid 3×3):**
284
+ ```html
285
+ <div class="heatmap">
286
+ <div class="heatmap-cell hi-hi">R1 R2</div>
287
+ <div class="heatmap-cell hi-med">R3</div>
288
+ <div class="heatmap-cell hi-lo"></div>
289
+ <!-- ... 9 cells total -->
290
+ </div>
291
+ ```
292
+
293
+ **Charts (Chart.js для bar / line / funnel):**
294
+ ```html
295
+ <canvas id="rice-chart" width="800" height="400"></canvas>
296
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
297
+ <script>
298
+ new Chart(document.getElementById('rice-chart'), {
299
+ type: 'bar',
300
+ data: { /* inline data */ },
301
+ options: { /* styling */ }
302
+ });
303
+ </script>
304
+ ```
305
+
306
+ Fallback: статичные SVG если Chart.js недоступен.
307
+
308
+ ### Шаг 5 — Self-Containment Check
309
+
310
+ Checklist:
311
+ - [ ] Нет broken href / anchor references.
312
+ - [ ] Все images embedded (base64) или через CDN с fallback.
313
+ - [ ] CSS fully embedded в `<style>` (email-safe compatible).
314
+ - [ ] External CDN deps минимальны (fonts, Chart.js, Mermaid — optional).
315
+ - [ ] Fonts — либо system fallback, либо Google Fonts с swap.
316
+ - [ ] Document opens в browser без console errors.
317
+ - [ ] Visible content без JS (JS-dependent charts иметь fallback).
318
+
319
+ ### Шаг 6 — Deck HTML (Full A)
320
+
321
+ Формат: `body.deck` с `.slide` page-per-slide:
322
+
323
+ ```html
324
+ <body class="deck">
325
+ <section class="slide title-slide">
326
+ <h1>AI 1:1 Summarization</h1>
327
+ <p class="subtitle">Q1 2027 Launch — Decision Needed</p>
328
+ </section>
329
+ <section class="slide tldr">
330
+ <h2>TL;DR</h2>
331
+ <ul>
332
+ <li>40% MAM × 4.0 rating → 2h/week saved per manager</li>
333
+ <li>$2M labor value, $250K ARR Q2</li>
334
+ <li>10 team-weeks, managed risks</li>
335
+ <li><strong>Ask:</strong> 3 senior + 2 mid engineers, Q1 timeline</li>
336
+ </ul>
337
+ </section>
338
+ <!-- 13+ more slides -->
339
+ </body>
340
+ ```
341
+
342
+ Правила slides:
343
+ - One message per slide.
344
+ - ≤ 5 bullets per slide.
345
+ - Data-viz на ≥ 40% slides.
346
+ - Slide numbers в footer.
347
+
348
+ ### Шаг 7 — PDF Generation Notes
349
+
350
+ Document готов к PDF через:
351
+ - **Browser print-to-PDF:** Ctrl+P → Save as PDF (baseline).
352
+ - **Puppeteer / Playwright:** programmatic генерация (скрипт не включается, documented).
353
+ - **WeasyPrint:** server-side Python, если сервер поддерживает.
354
+
355
+ Output filename convention:
356
+ - `prd-[initiative].html` / `prd-[initiative].pdf`
357
+ - `product-review-deck-[initiative].html` / `.pdf`
358
+
359
+ ### Шаг 8 — Quality Gate (LY-01 self-review)
360
+
361
+ - [ ] Все страницы читаемы при печати?
362
+ - [ ] Page breaks не разрывают таблицы / callouts / заголовки?
363
+ - [ ] Все cross-links в HTML работают?
364
+ - [ ] TOC соответствует section anchors?
365
+ - [ ] File size ≤ 10 MB (PRD) / ≤ 5 MB (Deck)?
366
+ - [ ] Semantic HTML (proper headings, alt-text на images)?
367
+ - [ ] Colors / typography / spacing соответствуют Design Spec?
368
+ - [ ] Content intact — не модифицирован?
369
+ - [ ] Visualizations render correctly (test open в browser)?
370
+ - [ ] Print preview (browser print dialog) соответствует design?
371
+
372
+ ### Шаг 9 — `$gates` и передача
373
+
374
+ 1. Передать deliverable на `$gates` (LY-01 criteria).
375
+ 2. При PASS — `$handoff` → Conductor (для Release Gate RG-01).
376
+ 3. Обновить `$board`: LY-01 → [✓] Завершён.
377
+
378
+ ## Best Practices
379
+
380
+ | Практика | Описание | Почему важно |
381
+ |----------|----------|--------------|
382
+ | Semantic HTML | `<section>`, `<nav>`, `<article>` | Accessibility + parseable structure |
383
+ | Embedded CSS | `<style>` inline | Self-containment |
384
+ | Page break hints | `page-break-before/after/inside` | Clean PDF breaks |
385
+ | Minimal external deps | CDN только если критично | Offline-safe |
386
+ | Heading hierarchy | H1 → H2 → H3 согласно IA | Screen reader + TOC |
387
+ | Alt-text on images | `alt="..."` | Accessibility |
388
+ | TOC with anchors | `#section-id` href | Navigation |
389
+ | Print preview test | Browser print dialog | Catch break issues |
390
+ | File size check | < 10 MB PRD | Email-friendly |
391
+
392
+ ## Reverse Handoff — протокол доработки
393
+
394
+ Если Conductor / Release Gate возвращает на доработку:
395
+ 1. Если layout issue — применить Design Spec adjustments.
396
+ 2. Если content ошибочно модифицирован — restore original.
397
+ 3. Если visualization не render'ится — check Chart.js / Mermaid data / fallback SVG.
398
+ 4. Если page break issue — add `page-break-*` hint.
399
+ 5. Если self-containment gap — inline external resource.
400
+ 6. Обновить только затронутые секции, пометить `[REVISED]`.
401
+
402
+ ## P0 Anti-Patterns (BLOCKERS)
403
+
404
+ | Anti-Pattern | Описание | Пример |
405
+ |--------------|----------|--------|
406
+ | Content Modification | Layouter меняет PRD / Strategy text | "Improved" wording |
407
+ | Broken References | Dead href / anchor | TOC link → missing section |
408
+ | External Dependencies Unbound | Required external CSS/JS без fallback | Document broken offline |
409
+ | Bad Page Breaks | Table / callout split across pages | Unreadable PDF |
410
+ | Missing Alt-text | Images without alt | Accessibility fail |
411
+ | Non-semantic HTML | Divs everywhere | Screen reader lost |
412
+ | Huge File Size | > 20 MB PRD | Email blocked |
413
+ | Visualization Fail | Chart / tree doesn't render | Broken viz |
414
+ | Heading Hierarchy Broken | H1 inside H3 section | TOC + screen reader fail |
415
+ | Design Spec Ignored | Layouter uses own styles | Inconsistent с Designer intent |
416
+
417
+ ## Reasoning Policy (Codex)
418
+
419
+ | Ситуация | Reasoning |
420
+ |----------|-----------|
421
+ | Complex visualizations (data-dense charts, custom Mermaid) | High |
422
+ | Accessibility-critical output | High |
423
+ | Large document (40+ pages PRD) | High |
424
+ | Standard PRD layout | Medium |
425
+ | Spec compact | Medium |
426
+ | Deck (15-20 slides) | Medium |
427
+
428
+ ## Формат ответа агента
429
+
430
+ ```markdown
431
+ ## Layouter Output — [Initiative]
432
+ **Режим:** Full A S6 / Full B S6 / Spec
433
+
434
+ ### 1. Input Validation
435
+ - Design Spec: ✅ / gap
436
+ - PRD content: ✅ / gap
437
+ - Cross-references valid: ✅ / broken [list]
438
+ - Assets available: ✅ / missing [list]
439
+
440
+ ### 2. HTML Structure
441
+ [Section list + anchor IDs]
442
+
443
+ ### 3. CSS Summary
444
+ - Typography: [from Design Spec]
445
+ - Color palette: [from Design Spec]
446
+ - Spacing rhythm: 8pt
447
+ - Print: @page rules + page-break hints
448
+
449
+ ### 4. Visualizations Implemented
450
+ [Roadmap / metric tree / charts / heatmap — per viz: library / fallback]
451
+
452
+ ### 5. Self-Containment Check
453
+ [8 checkpoints]
454
+
455
+ ### 6. File Size & Performance
456
+ - PRD HTML: X KB
457
+ - Deck HTML: Y KB
458
+ - Expected PDF sizes: ~N MB / ~M MB
459
+
460
+ ### 7. Print Preview Validation
461
+ [Page break integrity checked]
462
+
463
+ ### 8. Deliverable Files
464
+ - `prd.html`
465
+ - `prd.pdf` (post-conversion)
466
+ - `product-review-deck.html` (Full A)
467
+ - `product-review-deck.pdf`
468
+ ```
469
+
470
+ ## HANDOFF (Mandatory)
471
+
472
+ ```
473
+ ### Handoff Envelope — LY-01 → Conductor (→ Release Gate RG-01)
474
+
475
+ **Тип:** Forward
476
+ **Режим:** Full A S6 / Full B S6 / Spec
477
+ **Gate Check:** [PASS / CONDITIONAL PASS]
478
+
479
+ **Артефакты:**
480
+ - `prd.html` (self-contained)
481
+ - `prd.pdf` (if Layouter runs PDF conversion)
482
+ - `product-review-deck.html` (Full A)
483
+ - `product-review-deck.pdf` (Full A)
484
+
485
+ **Gap'ы (если CONDITIONAL):**
486
+ - [Gap]
487
+
488
+ **Задача для Conductor / RG-01:**
489
+ Release Gate проверяет финальные deliverables: все gates passed, content final,
490
+ user sign-off получен перед публикацией.
491
+
492
+ **Ключевые параметры:**
493
+ - Output files: N
494
+ - PRD pages: N
495
+ - Deck slides: N
496
+ - File size: X MB (PRD) / Y MB (Deck)
497
+ - Self-contained: ✅
498
+ - Accessibility: semantic HTML + alt-text ✅
499
+ - Visualizations: N (roadmap, metric tree, charts, heatmap, flow)
500
+ - Print preview tested: ✅
501
+ ```
502
+
503
+ ## Пример — Layouter для TeamFlow PRD + Deck (Full A)
504
+
505
+ ### Input Validation
506
+ - Design Spec: ✅ 8 sections
507
+ - PRD content: ✅ 10 stories + AC + NFR
508
+ - Cross-references: ✅ все валидны (metric tree → NSM, epic IDs → stories)
509
+ - Assets: logo SVG ✅
510
+
511
+ ### HTML Structure
512
+
513
+ ```html
514
+ <!DOCTYPE html>
515
+ <html lang="en">
516
+ <head>...</head>
517
+ <body>
518
+ <section class="title-page" id="cover">
519
+ <img src="data:image/svg+xml;base64,..." alt="TeamFlow logo" class="logo">
520
+ <h1>AI 1:1 Summarization</h1>
521
+ <p class="subtitle">PRD — Q1 2027 Launch</p>
522
+ <p class="decision-needed">Decision: Approve rollout to pilot 15 HR-tech accounts</p>
523
+ </section>
524
+
525
+ <nav class="toc">
526
+ <h2>Table of Contents</h2>
527
+ <ol>
528
+ <li><a href="#executive-summary">Executive Summary</a></li>
529
+ <!-- 10 sections -->
530
+ </ol>
531
+ </nav>
532
+
533
+ <section id="executive-summary" class="exec-summary">
534
+ <h2>Executive Summary</h2>
535
+ <div class="callout-info">
536
+ <strong>TL;DR:</strong> 40% MAM × 4.0 rating → 2h/week saved per manager,
537
+ $2M labor value, $250K ARR Q2. 10 team-weeks, managed risks.
538
+ </div>
539
+ <!-- ... -->
540
+ </section>
541
+
542
+ <section id="discovery">
543
+ <h2>Discovery</h2>
544
+ <h3 id="discovery-jtbd">JTBD</h3>
545
+ <!-- Buyer + End-user JTBD tables -->
546
+ <h3 id="discovery-problems">Problem Statements</h3>
547
+ <!-- top 3 problems -->
548
+ </section>
549
+
550
+ <section id="strategy">
551
+ <h2>Strategy (Mediator Unified Synthesis)</h2>
552
+ <!-- Vision, NSM, OKR, roadmap -->
553
+ <div class="roadmap">
554
+ <!-- 3-column grid Now/Next/Later -->
555
+ </div>
556
+ </section>
557
+
558
+ <section id="metric-plan">
559
+ <h2>Metric Plan</h2>
560
+ <div class="mermaid">
561
+ graph LR
562
+ NSM[NSM: 40% MAM × 4.0]
563
+ NSM --> I1[Activation]
564
+ NSM --> I2[Retention W4]
565
+ NSM --> G[Guardrails: Churn, NPS, Support, Latency]
566
+ </div>
567
+ <!-- hypotheses table -->
568
+ </section>
569
+
570
+ <!-- остальные sections -->
571
+ </body>
572
+ </html>
573
+ ```
574
+
575
+ ### Visualizations
576
+ - Roadmap: CSS Grid 3-column, Kano-color-coded themes
577
+ - Metric Tree: Mermaid horizontal
578
+ - RICE Chart: Chart.js horizontal bar, top 10 items
579
+ - Risk Heatmap: CSS Grid 3×3, 5 risks plotted
580
+ - Primary Flow: Mermaid flow diagram
581
+
582
+ ### Self-Containment
583
+ ✅ CSS inline
584
+ ✅ Logo embedded (base64 SVG)
585
+ ✅ Mermaid from CDN with fallback text
586
+ ✅ Chart.js from CDN with fallback SVG
587
+ ✅ No broken links
588
+
589
+ ### File Size
590
+ - `prd.html`: 320 KB (without Mermaid/Chart.js; with CDN loaded: ~1 MB)
591
+ - `product-review-deck.html`: 180 KB
592
+
593
+ ### Print Preview Tested
594
+ ✅ Page breaks clean at section boundaries
595
+ ✅ No split tables or callouts
596
+ ✅ TOC page numbers correct (via CSS counter)
597
+
598
+ ---
599
+
600
+ ## Anti-patterns
601
+
602
+ | Ошибка | Почему плохо | Как правильно |
603
+ |--------|-------------|---------------|
604
+ | Content modification | Violates role | Layout / CSS / HTML only |
605
+ | Broken cross-links | TOC не работает | Validate anchors |
606
+ | External deps без fallback | Offline broken | CDN + fallback SVG / text |
607
+ | Page break ломает таблицу | Unreadable PDF | `page-break-inside: avoid` |
608
+ | Missing alt-text | Accessibility fail | `alt="..."` на каждой image |
609
+ | Non-semantic divs | Screen reader fail | `<section>`, `<nav>`, `<article>` |
610
+ | Бесконтрольные file size | Email blocked | Compress / optimize |
611
+ | Design Spec ignored | Inconsistent с intent | Strict adherence |
612
+ | Свой формат handoff | Несовместимость | Стандартный формат |
613
+ | Не обновить `$board` | Доска рассинхронизирована | LY-01 [→] / [✓] корректно |