pm-workflow-studio 0.1.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 (592) hide show
  1. package/.claude/CLAUDE.md +31 -0
  2. package/.claude/agents/demand-analyst.md +26 -0
  3. package/.claude/agents/dev-planner.md +22 -0
  4. package/.claude/agents/product-manager.md +25 -0
  5. package/.claude/agents/quality-reviewer.md +31 -0
  6. package/.claude/agents/tech-architect.md +22 -0
  7. package/.claude/agents/ui-designer.md +39 -0
  8. package/.claude/commands/pm-workflow/analyze.md +6 -0
  9. package/.claude/commands/pm-workflow/architect.md +6 -0
  10. package/.claude/commands/pm-workflow/deliver.md +6 -0
  11. package/.claude/commands/pm-workflow/design.md +6 -0
  12. package/.claude/commands/pm-workflow/help.md +6 -0
  13. package/.claude/commands/pm-workflow/init.md +8 -0
  14. package/.claude/commands/pm-workflow/plan.md +6 -0
  15. package/.claude/commands/pm-workflow/review.md +6 -0
  16. package/.claude/commands/pm-workflow/status.md +6 -0
  17. package/.claude/commands/pm-workflow.md +13 -0
  18. package/.claude/settings.json +15 -0
  19. package/.claude/skills/demand-analysis/SKILL.md +50 -0
  20. package/.claude/skills/demand-analysis/templates/handoff-prd.md +39 -0
  21. package/.claude/skills/demand-analysis/templates/prd.md +85 -0
  22. package/.claude/skills/dev-task-planning/SKILL.md +37 -0
  23. package/.claude/skills/dev-task-planning/templates/dev-tasks.md +54 -0
  24. package/.claude/skills/impeccable/SKILL.md +169 -0
  25. package/.claude/skills/impeccable/reference/adapt.md +190 -0
  26. package/.claude/skills/impeccable/reference/animate.md +175 -0
  27. package/.claude/skills/impeccable/reference/audit.md +133 -0
  28. package/.claude/skills/impeccable/reference/bolder.md +113 -0
  29. package/.claude/skills/impeccable/reference/brand.md +118 -0
  30. package/.claude/skills/impeccable/reference/clarify.md +174 -0
  31. package/.claude/skills/impeccable/reference/codex.md +105 -0
  32. package/.claude/skills/impeccable/reference/cognitive-load.md +106 -0
  33. package/.claude/skills/impeccable/reference/color-and-contrast.md +105 -0
  34. package/.claude/skills/impeccable/reference/colorize.md +154 -0
  35. package/.claude/skills/impeccable/reference/craft.md +123 -0
  36. package/.claude/skills/impeccable/reference/critique.md +236 -0
  37. package/.claude/skills/impeccable/reference/delight.md +302 -0
  38. package/.claude/skills/impeccable/reference/distill.md +111 -0
  39. package/.claude/skills/impeccable/reference/document.md +427 -0
  40. package/.claude/skills/impeccable/reference/extract.md +69 -0
  41. package/.claude/skills/impeccable/reference/harden.md +347 -0
  42. package/.claude/skills/impeccable/reference/heuristics-scoring.md +234 -0
  43. package/.claude/skills/impeccable/reference/interaction-design.md +195 -0
  44. package/.claude/skills/impeccable/reference/layout.md +141 -0
  45. package/.claude/skills/impeccable/reference/live.md +622 -0
  46. package/.claude/skills/impeccable/reference/motion-design.md +109 -0
  47. package/.claude/skills/impeccable/reference/onboard.md +234 -0
  48. package/.claude/skills/impeccable/reference/optimize.md +258 -0
  49. package/.claude/skills/impeccable/reference/overdrive.md +130 -0
  50. package/.claude/skills/impeccable/reference/personas.md +179 -0
  51. package/.claude/skills/impeccable/reference/polish.md +242 -0
  52. package/.claude/skills/impeccable/reference/product.md +62 -0
  53. package/.claude/skills/impeccable/reference/quieter.md +99 -0
  54. package/.claude/skills/impeccable/reference/responsive-design.md +114 -0
  55. package/.claude/skills/impeccable/reference/shape.md +165 -0
  56. package/.claude/skills/impeccable/reference/spatial-design.md +100 -0
  57. package/.claude/skills/impeccable/reference/teach.md +156 -0
  58. package/.claude/skills/impeccable/reference/typeset.md +124 -0
  59. package/.claude/skills/impeccable/reference/typography.md +159 -0
  60. package/.claude/skills/impeccable/reference/ux-writing.md +107 -0
  61. package/.claude/skills/impeccable/scripts/cleanup-deprecated.mjs +284 -0
  62. package/.claude/skills/impeccable/scripts/command-metadata.json +94 -0
  63. package/.claude/skills/impeccable/scripts/critique-storage.mjs +242 -0
  64. package/.claude/skills/impeccable/scripts/design-parser.mjs +820 -0
  65. package/.claude/skills/impeccable/scripts/detect-csp.mjs +198 -0
  66. package/.claude/skills/impeccable/scripts/detect.mjs +21 -0
  67. package/.claude/skills/impeccable/scripts/detector/browser/injected/index.mjs +1688 -0
  68. package/.claude/skills/impeccable/scripts/detector/cli/main.mjs +232 -0
  69. package/.claude/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +4030 -0
  70. package/.claude/skills/impeccable/scripts/detector/detect-antipatterns.mjs +43 -0
  71. package/.claude/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +251 -0
  72. package/.claude/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +420 -0
  73. package/.claude/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +954 -0
  74. package/.claude/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +174 -0
  75. package/.claude/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
  76. package/.claude/skills/impeccable/scripts/detector/findings.mjs +12 -0
  77. package/.claude/skills/impeccable/scripts/detector/node/file-system.mjs +198 -0
  78. package/.claude/skills/impeccable/scripts/detector/profile/profiler.mjs +166 -0
  79. package/.claude/skills/impeccable/scripts/detector/registry/antipatterns.mjs +278 -0
  80. package/.claude/skills/impeccable/scripts/detector/rules/checks.mjs +1948 -0
  81. package/.claude/skills/impeccable/scripts/detector/shared/color.mjs +124 -0
  82. package/.claude/skills/impeccable/scripts/detector/shared/constants.mjs +101 -0
  83. package/.claude/skills/impeccable/scripts/detector/shared/page.mjs +7 -0
  84. package/.claude/skills/impeccable/scripts/impeccable-paths.mjs +110 -0
  85. package/.claude/skills/impeccable/scripts/is-generated.mjs +69 -0
  86. package/.claude/skills/impeccable/scripts/live-accept.mjs +595 -0
  87. package/.claude/skills/impeccable/scripts/live-browser-session.js +123 -0
  88. package/.claude/skills/impeccable/scripts/live-browser.js +4860 -0
  89. package/.claude/skills/impeccable/scripts/live-complete.mjs +75 -0
  90. package/.claude/skills/impeccable/scripts/live-completion.mjs +18 -0
  91. package/.claude/skills/impeccable/scripts/live-inject.mjs +446 -0
  92. package/.claude/skills/impeccable/scripts/live-poll.mjs +200 -0
  93. package/.claude/skills/impeccable/scripts/live-resume.mjs +48 -0
  94. package/.claude/skills/impeccable/scripts/live-server.mjs +838 -0
  95. package/.claude/skills/impeccable/scripts/live-session-store.mjs +254 -0
  96. package/.claude/skills/impeccable/scripts/live-status.mjs +47 -0
  97. package/.claude/skills/impeccable/scripts/live-wrap.mjs +632 -0
  98. package/.claude/skills/impeccable/scripts/live.mjs +247 -0
  99. package/.claude/skills/impeccable/scripts/load-context.mjs +141 -0
  100. package/.claude/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
  101. package/.claude/skills/impeccable/scripts/pin.mjs +214 -0
  102. package/.claude/skills/pm-workflow/SKILL.md +371 -0
  103. package/.claude/skills/pm-workflow/assets/design-themes/README.md +56 -0
  104. package/.claude/skills/pm-workflow/assets/design-themes/open-design/OPEN_DESIGN_COMMIT +1 -0
  105. package/.claude/skills/pm-workflow/assets/design-themes/open-design/OPEN_DESIGN_IMPORT.md +28 -0
  106. package/.claude/skills/pm-workflow/assets/design-themes/open-design/OPEN_DESIGN_LICENSE +201 -0
  107. package/.claude/skills/pm-workflow/assets/design-themes/open-design/README.md +103 -0
  108. package/.claude/skills/pm-workflow/assets/design-themes/open-design/agentic/DESIGN.md +71 -0
  109. package/.claude/skills/pm-workflow/assets/design-themes/open-design/airbnb/DESIGN.md +393 -0
  110. package/.claude/skills/pm-workflow/assets/design-themes/open-design/airbnb/examples.html +23 -0
  111. package/.claude/skills/pm-workflow/assets/design-themes/open-design/airtable/DESIGN.md +92 -0
  112. package/.claude/skills/pm-workflow/assets/design-themes/open-design/apple/DESIGN.md +250 -0
  113. package/.claude/skills/pm-workflow/assets/design-themes/open-design/apple/examples.html +23 -0
  114. package/.claude/skills/pm-workflow/assets/design-themes/open-design/application/DESIGN.md +71 -0
  115. package/.claude/skills/pm-workflow/assets/design-themes/open-design/arc/DESIGN.md +152 -0
  116. package/.claude/skills/pm-workflow/assets/design-themes/open-design/artistic/DESIGN.md +71 -0
  117. package/.claude/skills/pm-workflow/assets/design-themes/open-design/atelier-zero/DESIGN.md +316 -0
  118. package/.claude/skills/pm-workflow/assets/design-themes/open-design/bento/DESIGN.md +71 -0
  119. package/.claude/skills/pm-workflow/assets/design-themes/open-design/binance/DESIGN.md +348 -0
  120. package/.claude/skills/pm-workflow/assets/design-themes/open-design/bmw/DESIGN.md +183 -0
  121. package/.claude/skills/pm-workflow/assets/design-themes/open-design/bmw-m/DESIGN.md +246 -0
  122. package/.claude/skills/pm-workflow/assets/design-themes/open-design/bold/DESIGN.md +71 -0
  123. package/.claude/skills/pm-workflow/assets/design-themes/open-design/brutalism/DESIGN.md +71 -0
  124. package/.claude/skills/pm-workflow/assets/design-themes/open-design/bugatti/DESIGN.md +271 -0
  125. package/.claude/skills/pm-workflow/assets/design-themes/open-design/cafe/DESIGN.md +71 -0
  126. package/.claude/skills/pm-workflow/assets/design-themes/open-design/cal/DESIGN.md +262 -0
  127. package/.claude/skills/pm-workflow/assets/design-themes/open-design/canva/DESIGN.md +157 -0
  128. package/.claude/skills/pm-workflow/assets/design-themes/open-design/cisco/DESIGN.md +201 -0
  129. package/.claude/skills/pm-workflow/assets/design-themes/open-design/claude/DESIGN.md +315 -0
  130. package/.claude/skills/pm-workflow/assets/design-themes/open-design/clay/DESIGN.md +307 -0
  131. package/.claude/skills/pm-workflow/assets/design-themes/open-design/claymorphism/DESIGN.md +71 -0
  132. package/.claude/skills/pm-workflow/assets/design-themes/open-design/clean/DESIGN.md +71 -0
  133. package/.claude/skills/pm-workflow/assets/design-themes/open-design/clickhouse/DESIGN.md +284 -0
  134. package/.claude/skills/pm-workflow/assets/design-themes/open-design/cohere/DESIGN.md +269 -0
  135. package/.claude/skills/pm-workflow/assets/design-themes/open-design/coinbase/DESIGN.md +132 -0
  136. package/.claude/skills/pm-workflow/assets/design-themes/open-design/colorful/DESIGN.md +71 -0
  137. package/.claude/skills/pm-workflow/assets/design-themes/open-design/composio/DESIGN.md +310 -0
  138. package/.claude/skills/pm-workflow/assets/design-themes/open-design/contemporary/DESIGN.md +71 -0
  139. package/.claude/skills/pm-workflow/assets/design-themes/open-design/corporate/DESIGN.md +71 -0
  140. package/.claude/skills/pm-workflow/assets/design-themes/open-design/cosmic/DESIGN.md +71 -0
  141. package/.claude/skills/pm-workflow/assets/design-themes/open-design/creative/DESIGN.md +71 -0
  142. package/.claude/skills/pm-workflow/assets/design-themes/open-design/cursor/DESIGN.md +312 -0
  143. package/.claude/skills/pm-workflow/assets/design-themes/open-design/dashboard/DESIGN.md +71 -0
  144. package/.claude/skills/pm-workflow/assets/design-themes/open-design/default/DESIGN.md +62 -0
  145. package/.claude/skills/pm-workflow/assets/design-themes/open-design/discord/DESIGN.md +162 -0
  146. package/.claude/skills/pm-workflow/assets/design-themes/open-design/dithered/DESIGN.md +71 -0
  147. package/.claude/skills/pm-workflow/assets/design-themes/open-design/doodle/DESIGN.md +71 -0
  148. package/.claude/skills/pm-workflow/assets/design-themes/open-design/dramatic/DESIGN.md +71 -0
  149. package/.claude/skills/pm-workflow/assets/design-themes/open-design/duolingo/DESIGN.md +154 -0
  150. package/.claude/skills/pm-workflow/assets/design-themes/open-design/editorial/DESIGN.md +71 -0
  151. package/.claude/skills/pm-workflow/assets/design-themes/open-design/elegant/DESIGN.md +71 -0
  152. package/.claude/skills/pm-workflow/assets/design-themes/open-design/elevenlabs/DESIGN.md +268 -0
  153. package/.claude/skills/pm-workflow/assets/design-themes/open-design/energetic/DESIGN.md +72 -0
  154. package/.claude/skills/pm-workflow/assets/design-themes/open-design/enterprise/DESIGN.md +71 -0
  155. package/.claude/skills/pm-workflow/assets/design-themes/open-design/expo/DESIGN.md +284 -0
  156. package/.claude/skills/pm-workflow/assets/design-themes/open-design/expressive/DESIGN.md +71 -0
  157. package/.claude/skills/pm-workflow/assets/design-themes/open-design/fantasy/DESIGN.md +71 -0
  158. package/.claude/skills/pm-workflow/assets/design-themes/open-design/ferrari/DESIGN.md +317 -0
  159. package/.claude/skills/pm-workflow/assets/design-themes/open-design/figma/DESIGN.md +223 -0
  160. package/.claude/skills/pm-workflow/assets/design-themes/open-design/flat/DESIGN.md +71 -0
  161. package/.claude/skills/pm-workflow/assets/design-themes/open-design/framer/DESIGN.md +249 -0
  162. package/.claude/skills/pm-workflow/assets/design-themes/open-design/friendly/DESIGN.md +71 -0
  163. package/.claude/skills/pm-workflow/assets/design-themes/open-design/futuristic/DESIGN.md +71 -0
  164. package/.claude/skills/pm-workflow/assets/design-themes/open-design/glassmorphism/DESIGN.md +71 -0
  165. package/.claude/skills/pm-workflow/assets/design-themes/open-design/gradient/DESIGN.md +71 -0
  166. package/.claude/skills/pm-workflow/assets/design-themes/open-design/hashicorp/DESIGN.md +281 -0
  167. package/.claude/skills/pm-workflow/assets/design-themes/open-design/hud/DESIGN.md +173 -0
  168. package/.claude/skills/pm-workflow/assets/design-themes/open-design/huggingface/DESIGN.md +149 -0
  169. package/.claude/skills/pm-workflow/assets/design-themes/open-design/huggingface/examples.html +11 -0
  170. package/.claude/skills/pm-workflow/assets/design-themes/open-design/intercom/DESIGN.md +149 -0
  171. package/.claude/skills/pm-workflow/assets/design-themes/open-design/kami/DESIGN.md +410 -0
  172. package/.claude/skills/pm-workflow/assets/design-themes/open-design/kraken/DESIGN.md +128 -0
  173. package/.claude/skills/pm-workflow/assets/design-themes/open-design/lamborghini/DESIGN.md +291 -0
  174. package/.claude/skills/pm-workflow/assets/design-themes/open-design/levels/DESIGN.md +71 -0
  175. package/.claude/skills/pm-workflow/assets/design-themes/open-design/linear-app/DESIGN.md +370 -0
  176. package/.claude/skills/pm-workflow/assets/design-themes/open-design/linear-app/examples.html +56 -0
  177. package/.claude/skills/pm-workflow/assets/design-themes/open-design/lingo/DESIGN.md +71 -0
  178. package/.claude/skills/pm-workflow/assets/design-themes/open-design/loom/DESIGN.md +201 -0
  179. package/.claude/skills/pm-workflow/assets/design-themes/open-design/lovable/DESIGN.md +301 -0
  180. package/.claude/skills/pm-workflow/assets/design-themes/open-design/luxury/DESIGN.md +71 -0
  181. package/.claude/skills/pm-workflow/assets/design-themes/open-design/mastercard/DESIGN.md +368 -0
  182. package/.claude/skills/pm-workflow/assets/design-themes/open-design/material/DESIGN.md +71 -0
  183. package/.claude/skills/pm-workflow/assets/design-themes/open-design/material/examples.html +11 -0
  184. package/.claude/skills/pm-workflow/assets/design-themes/open-design/meta/DESIGN.md +369 -0
  185. package/.claude/skills/pm-workflow/assets/design-themes/open-design/minimal/DESIGN.md +71 -0
  186. package/.claude/skills/pm-workflow/assets/design-themes/open-design/minimax/DESIGN.md +260 -0
  187. package/.claude/skills/pm-workflow/assets/design-themes/open-design/mintlify/DESIGN.md +329 -0
  188. package/.claude/skills/pm-workflow/assets/design-themes/open-design/miro/DESIGN.md +111 -0
  189. package/.claude/skills/pm-workflow/assets/design-themes/open-design/mission-control/DESIGN.md +474 -0
  190. package/.claude/skills/pm-workflow/assets/design-themes/open-design/mistral-ai/DESIGN.md +264 -0
  191. package/.claude/skills/pm-workflow/assets/design-themes/open-design/modern/DESIGN.md +71 -0
  192. package/.claude/skills/pm-workflow/assets/design-themes/open-design/mongodb/DESIGN.md +269 -0
  193. package/.claude/skills/pm-workflow/assets/design-themes/open-design/mongodb/examples.html +14 -0
  194. package/.claude/skills/pm-workflow/assets/design-themes/open-design/mono/DESIGN.md +71 -0
  195. package/.claude/skills/pm-workflow/assets/design-themes/open-design/neobrutalism/DESIGN.md +71 -0
  196. package/.claude/skills/pm-workflow/assets/design-themes/open-design/neon/DESIGN.md +71 -0
  197. package/.claude/skills/pm-workflow/assets/design-themes/open-design/neumorphism/DESIGN.md +71 -0
  198. package/.claude/skills/pm-workflow/assets/design-themes/open-design/nike/DESIGN.md +366 -0
  199. package/.claude/skills/pm-workflow/assets/design-themes/open-design/notion/DESIGN.md +312 -0
  200. package/.claude/skills/pm-workflow/assets/design-themes/open-design/notion/examples.html +64 -0
  201. package/.claude/skills/pm-workflow/assets/design-themes/open-design/nvidia/DESIGN.md +296 -0
  202. package/.claude/skills/pm-workflow/assets/design-themes/open-design/ollama/DESIGN.md +270 -0
  203. package/.claude/skills/pm-workflow/assets/design-themes/open-design/openai/DESIGN.md +140 -0
  204. package/.claude/skills/pm-workflow/assets/design-themes/open-design/openai/examples.html +14 -0
  205. package/.claude/skills/pm-workflow/assets/design-themes/open-design/opencode-ai/DESIGN.md +284 -0
  206. package/.claude/skills/pm-workflow/assets/design-themes/open-design/pacman/DESIGN.md +71 -0
  207. package/.claude/skills/pm-workflow/assets/design-themes/open-design/paper/DESIGN.md +71 -0
  208. package/.claude/skills/pm-workflow/assets/design-themes/open-design/perspective/DESIGN.md +71 -0
  209. package/.claude/skills/pm-workflow/assets/design-themes/open-design/pinterest/DESIGN.md +233 -0
  210. package/.claude/skills/pm-workflow/assets/design-themes/open-design/playstation/DESIGN.md +367 -0
  211. package/.claude/skills/pm-workflow/assets/design-themes/open-design/posthog/DESIGN.md +259 -0
  212. package/.claude/skills/pm-workflow/assets/design-themes/open-design/premium/DESIGN.md +71 -0
  213. package/.claude/skills/pm-workflow/assets/design-themes/open-design/professional/DESIGN.md +71 -0
  214. package/.claude/skills/pm-workflow/assets/design-themes/open-design/publication/DESIGN.md +71 -0
  215. package/.claude/skills/pm-workflow/assets/design-themes/open-design/raycast/DESIGN.md +271 -0
  216. package/.claude/skills/pm-workflow/assets/design-themes/open-design/raycast/examples.html +11 -0
  217. package/.claude/skills/pm-workflow/assets/design-themes/open-design/refined/DESIGN.md +71 -0
  218. package/.claude/skills/pm-workflow/assets/design-themes/open-design/renault/DESIGN.md +314 -0
  219. package/.claude/skills/pm-workflow/assets/design-themes/open-design/replicate/DESIGN.md +264 -0
  220. package/.claude/skills/pm-workflow/assets/design-themes/open-design/resend/DESIGN.md +306 -0
  221. package/.claude/skills/pm-workflow/assets/design-themes/open-design/retro/DESIGN.md +71 -0
  222. package/.claude/skills/pm-workflow/assets/design-themes/open-design/revolut/DESIGN.md +188 -0
  223. package/.claude/skills/pm-workflow/assets/design-themes/open-design/runwayml/DESIGN.md +247 -0
  224. package/.claude/skills/pm-workflow/assets/design-themes/open-design/sanity/DESIGN.md +360 -0
  225. package/.claude/skills/pm-workflow/assets/design-themes/open-design/sentry/DESIGN.md +265 -0
  226. package/.claude/skills/pm-workflow/assets/design-themes/open-design/shadcn/DESIGN.md +71 -0
  227. package/.claude/skills/pm-workflow/assets/design-themes/open-design/shadcn/examples.html +24 -0
  228. package/.claude/skills/pm-workflow/assets/design-themes/open-design/shopify/DESIGN.md +353 -0
  229. package/.claude/skills/pm-workflow/assets/design-themes/open-design/shopify/examples.html +11 -0
  230. package/.claude/skills/pm-workflow/assets/design-themes/open-design/simple/DESIGN.md +71 -0
  231. package/.claude/skills/pm-workflow/assets/design-themes/open-design/skeumorphism/DESIGN.md +71 -0
  232. package/.claude/skills/pm-workflow/assets/design-themes/open-design/sleek/DESIGN.md +71 -0
  233. package/.claude/skills/pm-workflow/assets/design-themes/open-design/spacex/DESIGN.md +197 -0
  234. package/.claude/skills/pm-workflow/assets/design-themes/open-design/spacious/DESIGN.md +71 -0
  235. package/.claude/skills/pm-workflow/assets/design-themes/open-design/spotify/DESIGN.md +249 -0
  236. package/.claude/skills/pm-workflow/assets/design-themes/open-design/starbucks/DESIGN.md +583 -0
  237. package/.claude/skills/pm-workflow/assets/design-themes/open-design/storytelling/DESIGN.md +71 -0
  238. package/.claude/skills/pm-workflow/assets/design-themes/open-design/stripe/DESIGN.md +325 -0
  239. package/.claude/skills/pm-workflow/assets/design-themes/open-design/stripe/examples.html +58 -0
  240. package/.claude/skills/pm-workflow/assets/design-themes/open-design/supabase/DESIGN.md +258 -0
  241. package/.claude/skills/pm-workflow/assets/design-themes/open-design/supabase/examples.html +26 -0
  242. package/.claude/skills/pm-workflow/assets/design-themes/open-design/superhuman/DESIGN.md +255 -0
  243. package/.claude/skills/pm-workflow/assets/design-themes/open-design/tesla/DESIGN.md +289 -0
  244. package/.claude/skills/pm-workflow/assets/design-themes/open-design/tetris/DESIGN.md +71 -0
  245. package/.claude/skills/pm-workflow/assets/design-themes/open-design/theverge/DESIGN.md +342 -0
  246. package/.claude/skills/pm-workflow/assets/design-themes/open-design/together-ai/DESIGN.md +266 -0
  247. package/.claude/skills/pm-workflow/assets/design-themes/open-design/totality-festival/DESIGN.md +206 -0
  248. package/.claude/skills/pm-workflow/assets/design-themes/open-design/trading-terminal/DESIGN.md +178 -0
  249. package/.claude/skills/pm-workflow/assets/design-themes/open-design/uber/DESIGN.md +298 -0
  250. package/.claude/skills/pm-workflow/assets/design-themes/open-design/urdu/DESIGN.md +1002 -0
  251. package/.claude/skills/pm-workflow/assets/design-themes/open-design/vercel/DESIGN.md +313 -0
  252. package/.claude/skills/pm-workflow/assets/design-themes/open-design/vercel/examples.html +55 -0
  253. package/.claude/skills/pm-workflow/assets/design-themes/open-design/vibrant/DESIGN.md +71 -0
  254. package/.claude/skills/pm-workflow/assets/design-themes/open-design/vintage/DESIGN.md +71 -0
  255. package/.claude/skills/pm-workflow/assets/design-themes/open-design/vodafone/DESIGN.md +426 -0
  256. package/.claude/skills/pm-workflow/assets/design-themes/open-design/voltagent/DESIGN.md +326 -0
  257. package/.claude/skills/pm-workflow/assets/design-themes/open-design/warm-editorial/DESIGN.md +65 -0
  258. package/.claude/skills/pm-workflow/assets/design-themes/open-design/warp/DESIGN.md +256 -0
  259. package/.claude/skills/pm-workflow/assets/design-themes/open-design/webex/DESIGN.md +207 -0
  260. package/.claude/skills/pm-workflow/assets/design-themes/open-design/webflow/DESIGN.md +95 -0
  261. package/.claude/skills/pm-workflow/assets/design-themes/open-design/webflow/examples.html +11 -0
  262. package/.claude/skills/pm-workflow/assets/design-themes/open-design/wired/DESIGN.md +281 -0
  263. package/.claude/skills/pm-workflow/assets/design-themes/open-design/wise/DESIGN.md +176 -0
  264. package/.claude/skills/pm-workflow/assets/design-themes/open-design/x-ai/DESIGN.md +260 -0
  265. package/.claude/skills/pm-workflow/assets/design-themes/open-design/x-ai/examples.html +12 -0
  266. package/.claude/skills/pm-workflow/assets/design-themes/open-design/xiaohongshu/DESIGN.md +402 -0
  267. package/.claude/skills/pm-workflow/assets/design-themes/open-design/zapier/DESIGN.md +331 -0
  268. package/.claude/skills/pm-workflow/assets/design-themes/revenuecat/DESIGN.md +209 -0
  269. package/.claude/skills/pm-workflow/assets/design-themes/revenuecat/examples.html +122 -0
  270. package/.claude/skills/pm-workflow/assets/design-themes/vben/DESIGN.md +685 -0
  271. package/.claude/skills/pm-workflow/assets/design-themes/vben/examples.html +155 -0
  272. package/.claude/skills/pm-workflow/assets/vendor/flow-viewer/MERMAID_LICENSE +21 -0
  273. package/.claude/skills/pm-workflow/assets/vendor/flow-viewer/SVG_PAN_ZOOM_LICENSE +23 -0
  274. package/.claude/skills/pm-workflow/assets/vendor/flow-viewer/THIRD_PARTY_LICENSES.md +21 -0
  275. package/.claude/skills/pm-workflow/assets/vendor/flow-viewer/mermaid.min.js +3298 -0
  276. package/.claude/skills/pm-workflow/assets/vendor/flow-viewer/svg-pan-zoom.min.js +3 -0
  277. package/.claude/skills/pm-workflow/references/commands/analyze.md +39 -0
  278. package/.claude/skills/pm-workflow/references/commands/architect.md +41 -0
  279. package/.claude/skills/pm-workflow/references/commands/deliver.md +29 -0
  280. package/.claude/skills/pm-workflow/references/commands/design.md +92 -0
  281. package/.claude/skills/pm-workflow/references/commands/help.md +24 -0
  282. package/.claude/skills/pm-workflow/references/commands/init.md +40 -0
  283. package/.claude/skills/pm-workflow/references/commands/plan.md +41 -0
  284. package/.claude/skills/pm-workflow/references/commands/review.md +33 -0
  285. package/.claude/skills/pm-workflow/references/commands/status.md +20 -0
  286. package/.claude/skills/pm-workflow/scripts/package_delivery.js +195 -0
  287. package/.claude/skills/pm-workflow/scripts/review_stage.js +622 -0
  288. package/.claude/skills/quality-review/SKILL.md +49 -0
  289. package/.claude/skills/quality-review/templates/review-stage.md +39 -0
  290. package/.claude/skills/tech-architecture/SKILL.md +49 -0
  291. package/.claude/skills/tech-architecture/templates/handoff-architecture.md +28 -0
  292. package/.claude/skills/tech-architecture/templates/tech-architecture.md +54 -0
  293. package/.claude/skills/ui-prototype-design/SKILL.md +125 -0
  294. package/.claude/skills/ui-prototype-design/templates/handoff-ui.md +40 -0
  295. package/.claude/skills/ui-prototype-design/templates/prototype-review.md +57 -0
  296. package/.claude/skills/ui-prototype-design/templates/ui-design.md +142 -0
  297. package/.codex/SKILL.md +374 -0
  298. package/.codex/agents/demand-analyst.toml +87 -0
  299. package/.codex/agents/dev-planner.toml +47 -0
  300. package/.codex/agents/openai.yaml +4 -0
  301. package/.codex/agents/product-manager.toml +81 -0
  302. package/.codex/agents/quality-reviewer.toml +76 -0
  303. package/.codex/agents/tech-architect.toml +57 -0
  304. package/.codex/agents/ui-designer.toml +132 -0
  305. package/.codex/assets/design-themes/README.md +56 -0
  306. package/.codex/assets/design-themes/open-design/OPEN_DESIGN_COMMIT +1 -0
  307. package/.codex/assets/design-themes/open-design/OPEN_DESIGN_IMPORT.md +28 -0
  308. package/.codex/assets/design-themes/open-design/OPEN_DESIGN_LICENSE +201 -0
  309. package/.codex/assets/design-themes/open-design/README.md +103 -0
  310. package/.codex/assets/design-themes/open-design/agentic/DESIGN.md +71 -0
  311. package/.codex/assets/design-themes/open-design/airbnb/DESIGN.md +393 -0
  312. package/.codex/assets/design-themes/open-design/airbnb/examples.html +23 -0
  313. package/.codex/assets/design-themes/open-design/airtable/DESIGN.md +92 -0
  314. package/.codex/assets/design-themes/open-design/apple/DESIGN.md +250 -0
  315. package/.codex/assets/design-themes/open-design/apple/examples.html +23 -0
  316. package/.codex/assets/design-themes/open-design/application/DESIGN.md +71 -0
  317. package/.codex/assets/design-themes/open-design/arc/DESIGN.md +152 -0
  318. package/.codex/assets/design-themes/open-design/artistic/DESIGN.md +71 -0
  319. package/.codex/assets/design-themes/open-design/atelier-zero/DESIGN.md +316 -0
  320. package/.codex/assets/design-themes/open-design/bento/DESIGN.md +71 -0
  321. package/.codex/assets/design-themes/open-design/binance/DESIGN.md +348 -0
  322. package/.codex/assets/design-themes/open-design/bmw/DESIGN.md +183 -0
  323. package/.codex/assets/design-themes/open-design/bmw-m/DESIGN.md +246 -0
  324. package/.codex/assets/design-themes/open-design/bold/DESIGN.md +71 -0
  325. package/.codex/assets/design-themes/open-design/brutalism/DESIGN.md +71 -0
  326. package/.codex/assets/design-themes/open-design/bugatti/DESIGN.md +271 -0
  327. package/.codex/assets/design-themes/open-design/cafe/DESIGN.md +71 -0
  328. package/.codex/assets/design-themes/open-design/cal/DESIGN.md +262 -0
  329. package/.codex/assets/design-themes/open-design/canva/DESIGN.md +157 -0
  330. package/.codex/assets/design-themes/open-design/cisco/DESIGN.md +201 -0
  331. package/.codex/assets/design-themes/open-design/claude/DESIGN.md +315 -0
  332. package/.codex/assets/design-themes/open-design/clay/DESIGN.md +307 -0
  333. package/.codex/assets/design-themes/open-design/claymorphism/DESIGN.md +71 -0
  334. package/.codex/assets/design-themes/open-design/clean/DESIGN.md +71 -0
  335. package/.codex/assets/design-themes/open-design/clickhouse/DESIGN.md +284 -0
  336. package/.codex/assets/design-themes/open-design/cohere/DESIGN.md +269 -0
  337. package/.codex/assets/design-themes/open-design/coinbase/DESIGN.md +132 -0
  338. package/.codex/assets/design-themes/open-design/colorful/DESIGN.md +71 -0
  339. package/.codex/assets/design-themes/open-design/composio/DESIGN.md +310 -0
  340. package/.codex/assets/design-themes/open-design/contemporary/DESIGN.md +71 -0
  341. package/.codex/assets/design-themes/open-design/corporate/DESIGN.md +71 -0
  342. package/.codex/assets/design-themes/open-design/cosmic/DESIGN.md +71 -0
  343. package/.codex/assets/design-themes/open-design/creative/DESIGN.md +71 -0
  344. package/.codex/assets/design-themes/open-design/cursor/DESIGN.md +312 -0
  345. package/.codex/assets/design-themes/open-design/dashboard/DESIGN.md +71 -0
  346. package/.codex/assets/design-themes/open-design/default/DESIGN.md +62 -0
  347. package/.codex/assets/design-themes/open-design/discord/DESIGN.md +162 -0
  348. package/.codex/assets/design-themes/open-design/dithered/DESIGN.md +71 -0
  349. package/.codex/assets/design-themes/open-design/doodle/DESIGN.md +71 -0
  350. package/.codex/assets/design-themes/open-design/dramatic/DESIGN.md +71 -0
  351. package/.codex/assets/design-themes/open-design/duolingo/DESIGN.md +154 -0
  352. package/.codex/assets/design-themes/open-design/editorial/DESIGN.md +71 -0
  353. package/.codex/assets/design-themes/open-design/elegant/DESIGN.md +71 -0
  354. package/.codex/assets/design-themes/open-design/elevenlabs/DESIGN.md +268 -0
  355. package/.codex/assets/design-themes/open-design/energetic/DESIGN.md +72 -0
  356. package/.codex/assets/design-themes/open-design/enterprise/DESIGN.md +71 -0
  357. package/.codex/assets/design-themes/open-design/expo/DESIGN.md +284 -0
  358. package/.codex/assets/design-themes/open-design/expressive/DESIGN.md +71 -0
  359. package/.codex/assets/design-themes/open-design/fantasy/DESIGN.md +71 -0
  360. package/.codex/assets/design-themes/open-design/ferrari/DESIGN.md +317 -0
  361. package/.codex/assets/design-themes/open-design/figma/DESIGN.md +223 -0
  362. package/.codex/assets/design-themes/open-design/flat/DESIGN.md +71 -0
  363. package/.codex/assets/design-themes/open-design/framer/DESIGN.md +249 -0
  364. package/.codex/assets/design-themes/open-design/friendly/DESIGN.md +71 -0
  365. package/.codex/assets/design-themes/open-design/futuristic/DESIGN.md +71 -0
  366. package/.codex/assets/design-themes/open-design/glassmorphism/DESIGN.md +71 -0
  367. package/.codex/assets/design-themes/open-design/gradient/DESIGN.md +71 -0
  368. package/.codex/assets/design-themes/open-design/hashicorp/DESIGN.md +281 -0
  369. package/.codex/assets/design-themes/open-design/hud/DESIGN.md +173 -0
  370. package/.codex/assets/design-themes/open-design/huggingface/DESIGN.md +149 -0
  371. package/.codex/assets/design-themes/open-design/huggingface/examples.html +11 -0
  372. package/.codex/assets/design-themes/open-design/intercom/DESIGN.md +149 -0
  373. package/.codex/assets/design-themes/open-design/kami/DESIGN.md +410 -0
  374. package/.codex/assets/design-themes/open-design/kraken/DESIGN.md +128 -0
  375. package/.codex/assets/design-themes/open-design/lamborghini/DESIGN.md +291 -0
  376. package/.codex/assets/design-themes/open-design/levels/DESIGN.md +71 -0
  377. package/.codex/assets/design-themes/open-design/linear-app/DESIGN.md +370 -0
  378. package/.codex/assets/design-themes/open-design/linear-app/examples.html +56 -0
  379. package/.codex/assets/design-themes/open-design/lingo/DESIGN.md +71 -0
  380. package/.codex/assets/design-themes/open-design/loom/DESIGN.md +201 -0
  381. package/.codex/assets/design-themes/open-design/lovable/DESIGN.md +301 -0
  382. package/.codex/assets/design-themes/open-design/luxury/DESIGN.md +71 -0
  383. package/.codex/assets/design-themes/open-design/mastercard/DESIGN.md +368 -0
  384. package/.codex/assets/design-themes/open-design/material/DESIGN.md +71 -0
  385. package/.codex/assets/design-themes/open-design/material/examples.html +11 -0
  386. package/.codex/assets/design-themes/open-design/meta/DESIGN.md +369 -0
  387. package/.codex/assets/design-themes/open-design/minimal/DESIGN.md +71 -0
  388. package/.codex/assets/design-themes/open-design/minimax/DESIGN.md +260 -0
  389. package/.codex/assets/design-themes/open-design/mintlify/DESIGN.md +329 -0
  390. package/.codex/assets/design-themes/open-design/miro/DESIGN.md +111 -0
  391. package/.codex/assets/design-themes/open-design/mission-control/DESIGN.md +474 -0
  392. package/.codex/assets/design-themes/open-design/mistral-ai/DESIGN.md +264 -0
  393. package/.codex/assets/design-themes/open-design/modern/DESIGN.md +71 -0
  394. package/.codex/assets/design-themes/open-design/mongodb/DESIGN.md +269 -0
  395. package/.codex/assets/design-themes/open-design/mongodb/examples.html +14 -0
  396. package/.codex/assets/design-themes/open-design/mono/DESIGN.md +71 -0
  397. package/.codex/assets/design-themes/open-design/neobrutalism/DESIGN.md +71 -0
  398. package/.codex/assets/design-themes/open-design/neon/DESIGN.md +71 -0
  399. package/.codex/assets/design-themes/open-design/neumorphism/DESIGN.md +71 -0
  400. package/.codex/assets/design-themes/open-design/nike/DESIGN.md +366 -0
  401. package/.codex/assets/design-themes/open-design/notion/DESIGN.md +312 -0
  402. package/.codex/assets/design-themes/open-design/notion/examples.html +64 -0
  403. package/.codex/assets/design-themes/open-design/nvidia/DESIGN.md +296 -0
  404. package/.codex/assets/design-themes/open-design/ollama/DESIGN.md +270 -0
  405. package/.codex/assets/design-themes/open-design/openai/DESIGN.md +140 -0
  406. package/.codex/assets/design-themes/open-design/openai/examples.html +14 -0
  407. package/.codex/assets/design-themes/open-design/opencode-ai/DESIGN.md +284 -0
  408. package/.codex/assets/design-themes/open-design/pacman/DESIGN.md +71 -0
  409. package/.codex/assets/design-themes/open-design/paper/DESIGN.md +71 -0
  410. package/.codex/assets/design-themes/open-design/perspective/DESIGN.md +71 -0
  411. package/.codex/assets/design-themes/open-design/pinterest/DESIGN.md +233 -0
  412. package/.codex/assets/design-themes/open-design/playstation/DESIGN.md +367 -0
  413. package/.codex/assets/design-themes/open-design/posthog/DESIGN.md +259 -0
  414. package/.codex/assets/design-themes/open-design/premium/DESIGN.md +71 -0
  415. package/.codex/assets/design-themes/open-design/professional/DESIGN.md +71 -0
  416. package/.codex/assets/design-themes/open-design/publication/DESIGN.md +71 -0
  417. package/.codex/assets/design-themes/open-design/raycast/DESIGN.md +271 -0
  418. package/.codex/assets/design-themes/open-design/raycast/examples.html +11 -0
  419. package/.codex/assets/design-themes/open-design/refined/DESIGN.md +71 -0
  420. package/.codex/assets/design-themes/open-design/renault/DESIGN.md +314 -0
  421. package/.codex/assets/design-themes/open-design/replicate/DESIGN.md +264 -0
  422. package/.codex/assets/design-themes/open-design/resend/DESIGN.md +306 -0
  423. package/.codex/assets/design-themes/open-design/retro/DESIGN.md +71 -0
  424. package/.codex/assets/design-themes/open-design/revolut/DESIGN.md +188 -0
  425. package/.codex/assets/design-themes/open-design/runwayml/DESIGN.md +247 -0
  426. package/.codex/assets/design-themes/open-design/sanity/DESIGN.md +360 -0
  427. package/.codex/assets/design-themes/open-design/sentry/DESIGN.md +265 -0
  428. package/.codex/assets/design-themes/open-design/shadcn/DESIGN.md +71 -0
  429. package/.codex/assets/design-themes/open-design/shadcn/examples.html +24 -0
  430. package/.codex/assets/design-themes/open-design/shopify/DESIGN.md +353 -0
  431. package/.codex/assets/design-themes/open-design/shopify/examples.html +11 -0
  432. package/.codex/assets/design-themes/open-design/simple/DESIGN.md +71 -0
  433. package/.codex/assets/design-themes/open-design/skeumorphism/DESIGN.md +71 -0
  434. package/.codex/assets/design-themes/open-design/sleek/DESIGN.md +71 -0
  435. package/.codex/assets/design-themes/open-design/spacex/DESIGN.md +197 -0
  436. package/.codex/assets/design-themes/open-design/spacious/DESIGN.md +71 -0
  437. package/.codex/assets/design-themes/open-design/spotify/DESIGN.md +249 -0
  438. package/.codex/assets/design-themes/open-design/starbucks/DESIGN.md +583 -0
  439. package/.codex/assets/design-themes/open-design/storytelling/DESIGN.md +71 -0
  440. package/.codex/assets/design-themes/open-design/stripe/DESIGN.md +325 -0
  441. package/.codex/assets/design-themes/open-design/stripe/examples.html +58 -0
  442. package/.codex/assets/design-themes/open-design/supabase/DESIGN.md +258 -0
  443. package/.codex/assets/design-themes/open-design/supabase/examples.html +26 -0
  444. package/.codex/assets/design-themes/open-design/superhuman/DESIGN.md +255 -0
  445. package/.codex/assets/design-themes/open-design/tesla/DESIGN.md +289 -0
  446. package/.codex/assets/design-themes/open-design/tetris/DESIGN.md +71 -0
  447. package/.codex/assets/design-themes/open-design/theverge/DESIGN.md +342 -0
  448. package/.codex/assets/design-themes/open-design/together-ai/DESIGN.md +266 -0
  449. package/.codex/assets/design-themes/open-design/totality-festival/DESIGN.md +206 -0
  450. package/.codex/assets/design-themes/open-design/trading-terminal/DESIGN.md +178 -0
  451. package/.codex/assets/design-themes/open-design/uber/DESIGN.md +298 -0
  452. package/.codex/assets/design-themes/open-design/urdu/DESIGN.md +1002 -0
  453. package/.codex/assets/design-themes/open-design/vercel/DESIGN.md +313 -0
  454. package/.codex/assets/design-themes/open-design/vercel/examples.html +55 -0
  455. package/.codex/assets/design-themes/open-design/vibrant/DESIGN.md +71 -0
  456. package/.codex/assets/design-themes/open-design/vintage/DESIGN.md +71 -0
  457. package/.codex/assets/design-themes/open-design/vodafone/DESIGN.md +426 -0
  458. package/.codex/assets/design-themes/open-design/voltagent/DESIGN.md +326 -0
  459. package/.codex/assets/design-themes/open-design/warm-editorial/DESIGN.md +65 -0
  460. package/.codex/assets/design-themes/open-design/warp/DESIGN.md +256 -0
  461. package/.codex/assets/design-themes/open-design/webex/DESIGN.md +207 -0
  462. package/.codex/assets/design-themes/open-design/webflow/DESIGN.md +95 -0
  463. package/.codex/assets/design-themes/open-design/webflow/examples.html +11 -0
  464. package/.codex/assets/design-themes/open-design/wired/DESIGN.md +281 -0
  465. package/.codex/assets/design-themes/open-design/wise/DESIGN.md +176 -0
  466. package/.codex/assets/design-themes/open-design/x-ai/DESIGN.md +260 -0
  467. package/.codex/assets/design-themes/open-design/x-ai/examples.html +12 -0
  468. package/.codex/assets/design-themes/open-design/xiaohongshu/DESIGN.md +402 -0
  469. package/.codex/assets/design-themes/open-design/zapier/DESIGN.md +331 -0
  470. package/.codex/assets/design-themes/revenuecat/DESIGN.md +209 -0
  471. package/.codex/assets/design-themes/revenuecat/examples.html +122 -0
  472. package/.codex/assets/design-themes/vben/DESIGN.md +685 -0
  473. package/.codex/assets/design-themes/vben/examples.html +155 -0
  474. package/.codex/assets/vendor/flow-viewer/MERMAID_LICENSE +21 -0
  475. package/.codex/assets/vendor/flow-viewer/SVG_PAN_ZOOM_LICENSE +23 -0
  476. package/.codex/assets/vendor/flow-viewer/THIRD_PARTY_LICENSES.md +21 -0
  477. package/.codex/assets/vendor/flow-viewer/mermaid.min.js +3298 -0
  478. package/.codex/assets/vendor/flow-viewer/svg-pan-zoom.min.js +3 -0
  479. package/.codex/bundled-skills/impeccable/SKILL.md +163 -0
  480. package/.codex/bundled-skills/impeccable/agents/openai.yaml +4 -0
  481. package/.codex/bundled-skills/impeccable/reference/adapt.md +190 -0
  482. package/.codex/bundled-skills/impeccable/reference/animate.md +175 -0
  483. package/.codex/bundled-skills/impeccable/reference/audit.md +132 -0
  484. package/.codex/bundled-skills/impeccable/reference/bolder.md +113 -0
  485. package/.codex/bundled-skills/impeccable/reference/brand.md +118 -0
  486. package/.codex/bundled-skills/impeccable/reference/clarify.md +174 -0
  487. package/.codex/bundled-skills/impeccable/reference/codex.md +105 -0
  488. package/.codex/bundled-skills/impeccable/reference/cognitive-load.md +106 -0
  489. package/.codex/bundled-skills/impeccable/reference/color-and-contrast.md +105 -0
  490. package/.codex/bundled-skills/impeccable/reference/colorize.md +154 -0
  491. package/.codex/bundled-skills/impeccable/reference/craft.md +123 -0
  492. package/.codex/bundled-skills/impeccable/reference/critique.md +259 -0
  493. package/.codex/bundled-skills/impeccable/reference/delight.md +302 -0
  494. package/.codex/bundled-skills/impeccable/reference/distill.md +111 -0
  495. package/.codex/bundled-skills/impeccable/reference/document.md +427 -0
  496. package/.codex/bundled-skills/impeccable/reference/extract.md +68 -0
  497. package/.codex/bundled-skills/impeccable/reference/harden.md +347 -0
  498. package/.codex/bundled-skills/impeccable/reference/heuristics-scoring.md +234 -0
  499. package/.codex/bundled-skills/impeccable/reference/interaction-design.md +195 -0
  500. package/.codex/bundled-skills/impeccable/reference/layout.md +141 -0
  501. package/.codex/bundled-skills/impeccable/reference/live.md +622 -0
  502. package/.codex/bundled-skills/impeccable/reference/motion-design.md +109 -0
  503. package/.codex/bundled-skills/impeccable/reference/onboard.md +234 -0
  504. package/.codex/bundled-skills/impeccable/reference/optimize.md +258 -0
  505. package/.codex/bundled-skills/impeccable/reference/overdrive.md +130 -0
  506. package/.codex/bundled-skills/impeccable/reference/personas.md +179 -0
  507. package/.codex/bundled-skills/impeccable/reference/polish.md +242 -0
  508. package/.codex/bundled-skills/impeccable/reference/product.md +62 -0
  509. package/.codex/bundled-skills/impeccable/reference/quieter.md +99 -0
  510. package/.codex/bundled-skills/impeccable/reference/responsive-design.md +114 -0
  511. package/.codex/bundled-skills/impeccable/reference/shape.md +165 -0
  512. package/.codex/bundled-skills/impeccable/reference/spatial-design.md +100 -0
  513. package/.codex/bundled-skills/impeccable/reference/teach.md +156 -0
  514. package/.codex/bundled-skills/impeccable/reference/typeset.md +124 -0
  515. package/.codex/bundled-skills/impeccable/reference/typography.md +159 -0
  516. package/.codex/bundled-skills/impeccable/reference/ux-writing.md +107 -0
  517. package/.codex/bundled-skills/impeccable/scripts/cleanup-deprecated.mjs +284 -0
  518. package/.codex/bundled-skills/impeccable/scripts/command-metadata.json +94 -0
  519. package/.codex/bundled-skills/impeccable/scripts/critique-storage.mjs +242 -0
  520. package/.codex/bundled-skills/impeccable/scripts/design-parser.mjs +820 -0
  521. package/.codex/bundled-skills/impeccable/scripts/detect-csp.mjs +198 -0
  522. package/.codex/bundled-skills/impeccable/scripts/detect.mjs +21 -0
  523. package/.codex/bundled-skills/impeccable/scripts/detector/browser/injected/index.mjs +1688 -0
  524. package/.codex/bundled-skills/impeccable/scripts/detector/cli/main.mjs +232 -0
  525. package/.codex/bundled-skills/impeccable/scripts/detector/detect-antipatterns-browser.js +4030 -0
  526. package/.codex/bundled-skills/impeccable/scripts/detector/detect-antipatterns.mjs +43 -0
  527. package/.codex/bundled-skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +251 -0
  528. package/.codex/bundled-skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +420 -0
  529. package/.codex/bundled-skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +954 -0
  530. package/.codex/bundled-skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +174 -0
  531. package/.codex/bundled-skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
  532. package/.codex/bundled-skills/impeccable/scripts/detector/findings.mjs +12 -0
  533. package/.codex/bundled-skills/impeccable/scripts/detector/node/file-system.mjs +198 -0
  534. package/.codex/bundled-skills/impeccable/scripts/detector/profile/profiler.mjs +166 -0
  535. package/.codex/bundled-skills/impeccable/scripts/detector/registry/antipatterns.mjs +278 -0
  536. package/.codex/bundled-skills/impeccable/scripts/detector/rules/checks.mjs +1948 -0
  537. package/.codex/bundled-skills/impeccable/scripts/detector/shared/color.mjs +124 -0
  538. package/.codex/bundled-skills/impeccable/scripts/detector/shared/constants.mjs +101 -0
  539. package/.codex/bundled-skills/impeccable/scripts/detector/shared/page.mjs +7 -0
  540. package/.codex/bundled-skills/impeccable/scripts/impeccable-paths.mjs +110 -0
  541. package/.codex/bundled-skills/impeccable/scripts/is-generated.mjs +69 -0
  542. package/.codex/bundled-skills/impeccable/scripts/live-accept.mjs +595 -0
  543. package/.codex/bundled-skills/impeccable/scripts/live-browser-session.js +123 -0
  544. package/.codex/bundled-skills/impeccable/scripts/live-browser.js +4860 -0
  545. package/.codex/bundled-skills/impeccable/scripts/live-complete.mjs +75 -0
  546. package/.codex/bundled-skills/impeccable/scripts/live-completion.mjs +18 -0
  547. package/.codex/bundled-skills/impeccable/scripts/live-inject.mjs +446 -0
  548. package/.codex/bundled-skills/impeccable/scripts/live-poll.mjs +200 -0
  549. package/.codex/bundled-skills/impeccable/scripts/live-resume.mjs +48 -0
  550. package/.codex/bundled-skills/impeccable/scripts/live-server.mjs +838 -0
  551. package/.codex/bundled-skills/impeccable/scripts/live-session-store.mjs +254 -0
  552. package/.codex/bundled-skills/impeccable/scripts/live-status.mjs +47 -0
  553. package/.codex/bundled-skills/impeccable/scripts/live-wrap.mjs +632 -0
  554. package/.codex/bundled-skills/impeccable/scripts/live.mjs +247 -0
  555. package/.codex/bundled-skills/impeccable/scripts/load-context.mjs +141 -0
  556. package/.codex/bundled-skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
  557. package/.codex/bundled-skills/impeccable/scripts/pin.mjs +214 -0
  558. package/.codex/references/commands/analyze.md +39 -0
  559. package/.codex/references/commands/architect.md +41 -0
  560. package/.codex/references/commands/deliver.md +29 -0
  561. package/.codex/references/commands/design.md +92 -0
  562. package/.codex/references/commands/help.md +24 -0
  563. package/.codex/references/commands/init.md +40 -0
  564. package/.codex/references/commands/plan.md +41 -0
  565. package/.codex/references/commands/review.md +33 -0
  566. package/.codex/references/commands/status.md +20 -0
  567. package/.codex/role-skills/demand-analysis/SKILL.md +50 -0
  568. package/.codex/role-skills/demand-analysis/templates/handoff-prd.md +39 -0
  569. package/.codex/role-skills/demand-analysis/templates/prd.md +85 -0
  570. package/.codex/role-skills/dev-task-planning/SKILL.md +37 -0
  571. package/.codex/role-skills/dev-task-planning/templates/dev-tasks.md +54 -0
  572. package/.codex/role-skills/quality-review/SKILL.md +49 -0
  573. package/.codex/role-skills/quality-review/templates/review-stage.md +39 -0
  574. package/.codex/role-skills/tech-architecture/SKILL.md +49 -0
  575. package/.codex/role-skills/tech-architecture/templates/handoff-architecture.md +28 -0
  576. package/.codex/role-skills/tech-architecture/templates/tech-architecture.md +54 -0
  577. package/.codex/role-skills/ui-prototype-design/SKILL.md +125 -0
  578. package/.codex/role-skills/ui-prototype-design/templates/handoff-ui.md +40 -0
  579. package/.codex/role-skills/ui-prototype-design/templates/prototype-review.md +57 -0
  580. package/.codex/role-skills/ui-prototype-design/templates/ui-design.md +142 -0
  581. package/.codex/scripts/package_delivery.js +195 -0
  582. package/.codex/scripts/review_stage.js +622 -0
  583. package/.codex/templates/AGENTS.md +44 -0
  584. package/.codex/templates/delivery-README.md +37 -0
  585. package/.codex/templates/framework-AGENTS.md +74 -0
  586. package/.codex/templates/framework-README.md +65 -0
  587. package/.codex/templates/project-config.md +117 -0
  588. package/.codex/templates/prototype-README.md +45 -0
  589. package/.codex/templates/workflow-state.json +47 -0
  590. package/README.md +28 -0
  591. package/bin/pmflow.js +463 -0
  592. package/package.json +30 -0
@@ -0,0 +1,214 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Pin/unpin sub-commands as standalone skill shortcuts.
4
+ *
5
+ * Usage:
6
+ * node <scripts_path>/pin.mjs pin <command>
7
+ * node <scripts_path>/pin.mjs unpin <command>
8
+ *
9
+ * `pin audit` creates a lightweight /audit skill that redirects to /impeccable audit.
10
+ * `unpin audit` removes that shortcut.
11
+ *
12
+ * The script discovers harness directories (.claude/skills, .cursor/skills, etc.)
13
+ * in the project root and creates/removes the pin in all of them.
14
+ */
15
+
16
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, rmSync, readdirSync } from 'node:fs';
17
+ import { join, resolve, dirname } from 'node:path';
18
+ import { fileURLToPath } from 'node:url';
19
+
20
+ const __dirname = dirname(fileURLToPath(import.meta.url));
21
+
22
+ // All known harness directories
23
+ const HARNESS_DIRS = [
24
+ '.claude', '.cursor', '.gemini', '.codex', '.agents',
25
+ '.trae', '.trae-cn', '.pi', '.opencode', '.kiro', '.rovodev',
26
+ ];
27
+
28
+ // Valid sub-command names
29
+ const VALID_COMMANDS = [
30
+ 'craft', 'teach', 'extract', 'document', 'shape',
31
+ 'critique', 'audit',
32
+ 'polish', 'bolder', 'quieter', 'distill', 'harden', 'onboard', 'live',
33
+ 'animate', 'colorize', 'typeset', 'layout', 'delight', 'overdrive',
34
+ 'clarify', 'adapt', 'optimize',
35
+ ];
36
+
37
+ // Marker to identify pinned skills (so unpin doesn't delete user skills)
38
+ const PIN_MARKER = '<!-- impeccable-pinned-skill -->';
39
+
40
+ /**
41
+ * Walk up from startDir to find a project root.
42
+ */
43
+ function findProjectRoot(startDir = process.cwd()) {
44
+ let dir = resolve(startDir);
45
+ while (dir !== '/') {
46
+ if (
47
+ existsSync(join(dir, 'package.json')) ||
48
+ existsSync(join(dir, '.git')) ||
49
+ existsSync(join(dir, 'skills-lock.json'))
50
+ ) {
51
+ return dir;
52
+ }
53
+ const parent = resolve(dir, '..');
54
+ if (parent === dir) break;
55
+ dir = parent;
56
+ }
57
+ return resolve(startDir);
58
+ }
59
+
60
+ /**
61
+ * Find harness skill directories that have an impeccable skill installed.
62
+ */
63
+ function findHarnessDirs(projectRoot) {
64
+ const dirs = [];
65
+ for (const harness of HARNESS_DIRS) {
66
+ const skillsDir = join(projectRoot, harness, 'skills');
67
+ // Only pin in harness dirs that already have impeccable installed
68
+ const impeccableDir = join(skillsDir, 'impeccable');
69
+ if (existsSync(impeccableDir) || existsSync(join(skillsDir, 'i-impeccable'))) {
70
+ dirs.push(skillsDir);
71
+ }
72
+ }
73
+ return dirs;
74
+ }
75
+
76
+ /**
77
+ * Load command metadata (descriptions for pinned skills).
78
+ */
79
+ function loadCommandMetadata() {
80
+ const metadataPath = join(__dirname, 'command-metadata.json');
81
+ if (existsSync(metadataPath)) {
82
+ return JSON.parse(readFileSync(metadataPath, 'utf-8'));
83
+ }
84
+ return {};
85
+ }
86
+
87
+ /**
88
+ * Generate a pinned skill's SKILL.md content.
89
+ */
90
+ function generatePinnedSkill(command, metadata) {
91
+ const desc = metadata[command]?.description || `Shortcut for /impeccable ${command}.`;
92
+ const hint = metadata[command]?.argumentHint || '[target]';
93
+
94
+ return `---
95
+ name: ${command}
96
+ description: "${desc}"
97
+ argument-hint: "${hint}"
98
+ user-invocable: true
99
+ ---
100
+
101
+ ${PIN_MARKER}
102
+
103
+ This is a pinned shortcut for \`{{command_prefix}}impeccable ${command}\`.
104
+
105
+ Invoke {{command_prefix}}impeccable ${command}, passing along any arguments provided here, and follow its instructions.
106
+ `;
107
+ }
108
+
109
+ /**
110
+ * Pin a command: create shortcut skill in all harness dirs.
111
+ */
112
+ function pin(command, projectRoot) {
113
+ const metadata = loadCommandMetadata();
114
+ const harnessDirs = findHarnessDirs(projectRoot);
115
+
116
+ if (harnessDirs.length === 0) {
117
+ console.log('No harness directories with impeccable installed found.');
118
+ return false;
119
+ }
120
+
121
+ const content = generatePinnedSkill(command, metadata);
122
+ let created = 0;
123
+
124
+ for (const skillsDir of harnessDirs) {
125
+ // Check if skill already exists (and isn't a pin)
126
+ const skillDir = join(skillsDir, command);
127
+ if (existsSync(skillDir)) {
128
+ const existingMd = join(skillDir, 'SKILL.md');
129
+ if (existsSync(existingMd)) {
130
+ const existing = readFileSync(existingMd, 'utf-8');
131
+ if (!existing.includes(PIN_MARKER)) {
132
+ console.log(` SKIP: ${skillDir} (non-pinned skill already exists)`);
133
+ continue;
134
+ }
135
+ }
136
+ }
137
+
138
+ mkdirSync(skillDir, { recursive: true });
139
+ writeFileSync(join(skillDir, 'SKILL.md'), content, 'utf-8');
140
+ console.log(` + ${skillDir}`);
141
+ created++;
142
+ }
143
+
144
+ if (created > 0) {
145
+ console.log(`\nPinned '${command}' as a standalone shortcut in ${created} location(s).`);
146
+ console.log(`You can now use /${command} directly.`);
147
+ }
148
+
149
+ return created > 0;
150
+ }
151
+
152
+ /**
153
+ * Unpin a command: remove shortcut skill from all harness dirs.
154
+ */
155
+ function unpin(command, projectRoot) {
156
+ const harnessDirs = findHarnessDirs(projectRoot);
157
+ let removed = 0;
158
+
159
+ for (const skillsDir of harnessDirs) {
160
+ const skillDir = join(skillsDir, command);
161
+ if (!existsSync(skillDir)) continue;
162
+
163
+ const skillMd = join(skillDir, 'SKILL.md');
164
+ if (!existsSync(skillMd)) continue;
165
+
166
+ // Safety: only remove if it's a pinned skill
167
+ const content = readFileSync(skillMd, 'utf-8');
168
+ if (!content.includes(PIN_MARKER)) {
169
+ console.log(` SKIP: ${skillDir} (not a pinned skill)`);
170
+ continue;
171
+ }
172
+
173
+ rmSync(skillDir, { recursive: true, force: true });
174
+ console.log(` - ${skillDir}`);
175
+ removed++;
176
+ }
177
+
178
+ if (removed > 0) {
179
+ console.log(`\nUnpinned '${command}' from ${removed} location(s).`);
180
+ console.log(`Use /impeccable ${command} to access it.`);
181
+ } else {
182
+ console.log(`No pinned '${command}' shortcut found.`);
183
+ }
184
+
185
+ return removed > 0;
186
+ }
187
+
188
+ // --- CLI ---
189
+ const [,, action, command] = process.argv;
190
+
191
+ if (!action || !command) {
192
+ console.log('Usage: node pin.mjs <pin|unpin> <command>');
193
+ console.log(`\nAvailable commands: ${VALID_COMMANDS.join(', ')}`);
194
+ process.exit(1);
195
+ }
196
+
197
+ if (action !== 'pin' && action !== 'unpin') {
198
+ console.error(`Unknown action: ${action}. Use 'pin' or 'unpin'.`);
199
+ process.exit(1);
200
+ }
201
+
202
+ if (!VALID_COMMANDS.includes(command)) {
203
+ console.error(`Unknown command: ${command}`);
204
+ console.error(`Available commands: ${VALID_COMMANDS.join(', ')}`);
205
+ process.exit(1);
206
+ }
207
+
208
+ const root = findProjectRoot();
209
+
210
+ if (action === 'pin') {
211
+ pin(command, root);
212
+ } else {
213
+ unpin(command, root);
214
+ }
@@ -0,0 +1,371 @@
1
+ ---
2
+ name: pm-workflow
3
+ description: "用于把模糊产品想法推进为可评审、可设计、可开发、可交付的产品开发蓝图。覆盖初始化、需求、架构、界面原型、任务规划、质量审核和交付打包。"
4
+ argument-hint: "[init|analyze|architect|design|plan|review [stage]|deliver|status|help] [product idea or target]"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # AI 产品开发工作室
9
+
10
+ 把一句模糊的产品想法,逐步变成可评审、可设计、可开发、可交付的施工蓝图。工作室按阶段串行推进,由 6 个角色协作:产品经理、需求分析师、技术架构师、界面设计师、开发规划师、质量审核官。
11
+
12
+ 当前 npm 包目录只维护两套平台镜像:`.codex/` 和 `.claude/`。用户通过 `pmflow init` 生成真正使用的工作室目录后,Codex 主入口位于 `.agents/skills/pm-workflow/`,Claude Code 主入口位于 `.claude/skills/pm-workflow/`。
13
+
14
+ ## 平台结构
15
+
16
+ 本技能同时维护两套平台结构,避免外层源码目录和样例目录反复同步:
17
+
18
+ - `.codex/`:Codex 版结构镜像,保留当前 `SKILL.md`、TOML agents、references、scripts、templates、role-skills、assets 和 bundled-skills。
19
+ - `.claude/`:Claude Code 版结构,包含 `CLAUDE.md`、`settings.json`、Markdown subagents、slash commands 和 Claude Code 可识别的 `.claude/skills/`。
20
+
21
+ 维护时只需要同步 `.codex/` 和 `.claude/` 中对应的流程契约。不要再依赖外层 `agents/`、`assets/`、`references/`、`role-skills/`、`templates/` 或 `frameworks/pm-workflow` 样例。
22
+
23
+ ## 命令菜单
24
+
25
+ | 命令 | 自然语言触发 | 主角色 | 产物 |
26
+ |---|---|---|---|
27
+ | `init` | `$pm-workflow`、"我想做一个..."、"澄清需求"、"需求澄清" | 产品经理 | `docs/project-config.md` |
28
+ | `analyze` | "开始分析需求"、"需求分析" | 需求分析师 | `docs/prd.md`, `docs/handoff-prd.md` |
29
+ | `architect` | "开始设计技术架构"、"技术架构" | 技术架构师 | `docs/tech-architecture.md`, `docs/handoff-architecture.md` |
30
+ | `design` | "开始界面设计"、"开始界面原型设计" | 界面设计师 | `docs/ui-design.md`, `docs/handoff-ui.md`, `prototype/` |
31
+ | `plan` | "开始规划"、"开发规划"、"任务拆解" | 开发规划师 | `docs/dev-tasks.md` |
32
+ | `review [stage]` | "审核一下"、"检查文档"、"质量把关" | 质量审核官 | `docs/review-{stage}.md` |
33
+ | `deliver` | "开始打包"、"打包交付" | 产品经理 | `outputs/dev-package/` |
34
+ | `status` | "当前进度"、"现在到哪一步" | 产品经理 | 阶段摘要 |
35
+ | `help` | 无参数、"有哪些命令" | 产品经理 | 命令菜单 |
36
+
37
+ ## 路由规则
38
+
39
+ 按以下规则路由:
40
+
41
+ 1. **无参数**:读取 [references/commands/help.md](references/commands/help.md),展示命令菜单,并询问用户要进入哪个阶段。
42
+ 2. **首词命中命令**:读取 `references/commands/` 下对应的阶段说明并执行;命令后的内容作为目标或上下文。
43
+ 3. **首词没有命中命令**:把完整输入当作产品想法,进入 `init`。
44
+ 4. **自然语言命中触发词**:即使没有明确命令,也进入对应阶段;"澄清需求"、"需求澄清"、模糊产品想法都进入 `init` 内的需求澄清协议。
45
+ 5. **进入 analyze 前的默认硬门槛**:`docs/workflow-state.json` 中 `clarification.status` 必须为 `user_confirmed`。若用户强行跳过,必须把风险写入 `notes` 和下一阶段文档,并保留 `user_confirmation_required=true`。
46
+ 6. **每阶段开始时**:先输出“阶段开场卡”,说明当前用户情况、推荐方案、选择原因、接下来会产出什么。
47
+ 7. **每阶段结束后**:必须请用户选择下一步:审核、修改当前阶段、进入推荐下一阶段。
48
+ 8. **审核是软门控**:审核意见用于引导流程,但不强制阻断下一命令。若用户选择带风险继续,必须把风险记录到 `docs/workflow-state.json` 或下一阶段文档。
49
+ 9. **上游同步**:任何阶段修改文档时,如果发现需求、平台、范围、功能编号、技术约束、页面路径或验收标准发生变化,必须同步回写对应上游源文档,并在 `docs/workflow-state.json` 的 `notes` 记录同步了哪些文档。
50
+
51
+ ## Agent 调度规则
52
+
53
+ 除阶段 00 的需求澄清外,每个阶段都必须先启动当前 CLI 结构下对应的项目子 agent:Codex 使用 `.codex/agents/*.toml`,Claude Code 使用 `.claude/agents/*.md`。阶段 00 是特殊例外:用户刚输入产品想法时,主 agent 拥有最完整的对话上下文,必须亲自完成欢迎、复述、追问、整理缺口和请用户确认,禁止把“待澄清需求”先总结后交给 `product_manager` 或任何子 agent 继续澄清。若当前环境无法启动后续阶段所需的项目子 agent,必须停止对应阶段执行,不生成或修改阶段产物,不运行阶段脚本,并提示用户在支持项目子 agent 调度的 CLI 中打开当前工作室目录后重试。
54
+
55
+ | 命令 | 调度方式 | 配置文件 |
56
+ |---|---|---|
57
+ | `init` | 需求澄清由主 agent 直接完成;用户确认后可由主 agent 写入配置,或启动 `product_manager` 只做文档沉淀和状态维护 | Codex: `.codex/agents/product-manager.toml`; Claude: `.claude/agents/product-manager.md` |
58
+ | `help` | `product_manager` | Codex: `.codex/agents/product-manager.toml`; Claude: `.claude/agents/product-manager.md` |
59
+ | `status` | `product_manager` | Codex: `.codex/agents/product-manager.toml`; Claude: `.claude/agents/product-manager.md` |
60
+ | `analyze` | `demand_analyst` / `demand-analyst` | Codex: `.codex/agents/demand-analyst.toml`; Claude: `.claude/agents/demand-analyst.md` |
61
+ | `architect` | `tech_architect` / `tech-architect` | Codex: `.codex/agents/tech-architect.toml`; Claude: `.claude/agents/tech-architect.md` |
62
+ | `design` | `ui_designer` / `ui-designer` | Codex: `.codex/agents/ui-designer.toml`; Claude: `.claude/agents/ui-designer.md` |
63
+ | `plan` | `dev_planner` / `dev-planner` | Codex: `.codex/agents/dev-planner.toml`; Claude: `.claude/agents/dev-planner.md` |
64
+ | `review` | `quality_reviewer` / `quality-reviewer` | Codex: `.codex/agents/quality-reviewer.toml`; Claude: `.claude/agents/quality-reviewer.md` |
65
+ | `deliver` | `product_manager`,并在打包前启动 `quality_reviewer` 做最终完整性检查 | Codex: `.codex/agents/product-manager.toml`, `.codex/agents/quality-reviewer.toml`; Claude: `.claude/agents/product-manager.md`, `.claude/agents/quality-reviewer.md` |
66
+
67
+ 自然语言路由示例:
68
+
69
+ - "我想做一个记录每天读书笔记的网站" -> `init`
70
+ - "澄清需求" / "需求澄清" -> `init`
71
+ - "开始分析需求" -> `analyze`
72
+ - "开始设计技术架构" -> `architect`
73
+ - "开始界面原型设计" -> `design`
74
+ - "开始规划" -> `plan`
75
+ - "审核一下" / "检查文档" / "质量把关" -> `review`
76
+ - "开始打包" -> `deliver`
77
+ - "当前进度" -> `status`
78
+
79
+ ## 初始化结构
80
+
81
+ 使用 npm CLI 生成一个可运行的工作室目录:
82
+
83
+ ```bash
84
+ pmflow init --ai auto --root ./pm-workflow-demo --name "<product name>"
85
+ pmflow init --ai codex --root ./pm-workflow-demo --name "<product name>"
86
+ pmflow init --ai claude --root ./pm-workflow-claude-demo --name "<product name>"
87
+ ```
88
+
89
+ `--ai auto` 会按目标目录选择结构:已有 `.claude/` 时生成 Claude Code 结构;已有 `.codex/` 或 `.agents/` 时生成 Codex 结构;空目录默认 Codex,并提示可用 `--ai claude` 覆盖。`pmflow init` 只依赖 Node.js,不依赖 Python。
90
+
91
+ 在生成后的框架目录中,Codex 脚本路径位于 `.agents/skills/pm-workflow/scripts/`,Claude Code 脚本路径位于 `.claude/skills/pm-workflow/scripts/`。
92
+
93
+ Claude Code 结构会创建:
94
+
95
+ ```text
96
+ project-root/
97
+ README.md
98
+ .claude/
99
+ CLAUDE.md
100
+ settings.json
101
+ agents/
102
+ product-manager.md
103
+ demand-analyst.md
104
+ tech-architect.md
105
+ ui-designer.md
106
+ dev-planner.md
107
+ quality-reviewer.md
108
+ commands/
109
+ pm-workflow/
110
+ skills/
111
+ pm-workflow/
112
+ SKILL.md
113
+ references/
114
+ scripts/
115
+ assets/ # UI 设计方向和离线预览资产
116
+ impeccable/
117
+ SKILL.md
118
+ demand-analysis/
119
+ SKILL.md
120
+ templates/
121
+ tech-architecture/
122
+ SKILL.md
123
+ templates/
124
+ ui-prototype-design/
125
+ SKILL.md
126
+ templates/
127
+ dev-task-planning/
128
+ SKILL.md
129
+ templates/
130
+ quality-review/
131
+ SKILL.md
132
+ templates/
133
+ docs/
134
+ workflow-state.json
135
+ project-config.md
136
+ prd.md
137
+ handoff-prd.md
138
+ tech-architecture.md
139
+ handoff-architecture.md
140
+ ui-design.md
141
+ handoff-ui.md
142
+ prototype-review.md
143
+ dev-tasks.md
144
+ review-{stage}.md
145
+ prototype/
146
+ directions/
147
+ index.html
148
+ pages/
149
+ layout/
150
+ components/
151
+ assets/
152
+ review/
153
+ screenshots/
154
+ outputs/
155
+ dev-package/
156
+ ```
157
+
158
+ `.claude/agents/` 是 6 个角色配置。`.claude/commands/` 是 slash command 入口。`.claude/skills/pm-workflow/` 只保存主控 skill、命令说明、运行脚本和 UI 设计资产;角色 skill 和 Impeccable 独立放在 `.claude/skills/<role>/` 与 `.claude/skills/impeccable/`,避免在 `pm-workflow` 里面再套一份完整结构。`docs/` 只放运行时生成的阶段产物。`prototype/` 是高保真网页原型区。`outputs/dev-package/` 是最终开发交付包。
159
+
160
+ Claude Code 结构会创建 `.claude/CLAUDE.md`、`.claude/settings.json`、`.claude/agents/*.md`、`.claude/commands/pm-workflow/*.md`、`.claude/skills/pm-workflow/`、`.claude/skills/<role>/` 和 `.claude/skills/impeccable/`。Claude Code 版 Impeccable 必须是 Claude skill 格式,不包含 Codex 专用的 `agents/openai.yaml`。
161
+
162
+ ## 阶段流程
163
+
164
+ ### 阶段 00:项目初始化
165
+
166
+ 阶段说明:[references/commands/init.md](references/commands/init.md)
167
+
168
+ 产品经理先执行需求澄清协议,再沉淀六个核心问题。用户第一次输入产品想法时,必须先输出欢迎语:
169
+
170
+ ```text
171
+ 🤖 AI产品开发工作室已就绪
172
+ 朋友你好!我是你的产品经理,会带着你一步步把想法变成现实。
173
+ 你提到的「xxx」是个很好的产品,xxx。不过在落地之前,我想先帮你理清楚几个关键问题。
174
+ 先确认一下我理解的对不对:
175
+ 你说的 xxx 产品,核心就是:xxx
176
+ ```
177
+
178
+ 阶段 00 的澄清必须由主 agent 直接完成,不能把用户原话压缩成二手摘要后交给子 agent 代问。原因是主 agent 持有完整聊天上下文、用户语气、补充材料和刚刚发生的追问线索,最不容易遗漏真实需求。
179
+
180
+ 在用户确认前,禁止启动 `product_manager`、`demand_analyst` 或其他子 agent 做需求澄清;禁止把“我总结一下再让子 agent 问你”作为默认流程。若后续需要子 agent 做文档沉淀,必须传递完整用户原话、关键问答记录、未确认假设和待补材料,且不得让子 agent 覆盖用户已确认的表达。
181
+
182
+ 随后只问 3-5 个最关键的问题,必须用普通用户能懂的话,并允许用户“不用一次性全回答,想到什么说什么就行”。问题必须内嵌“高频真实需求”和“真实使用流程”,因为这决定后续需求分析能否识别真需求、剔除伪需求,也决定 UI 页面访问逻辑是否简单易懂。问题默认覆盖:
183
+
184
+ 1. 谁会最常用这个产品?是你自己、某类用户,还是团队里的某个角色?
185
+ 2. 他们最频繁、最反复要完成的事情是什么?什么情况下会打开它?
186
+ 3. 从打开产品到完成这件事,真实步骤通常是怎样的?现在用什么方式替代?
187
+ 4. 你想在什么设备或平台上用?
188
+ 5. 除了高频核心流程,还有特别想要的功能吗?哪些可以合并、后置或暂不做,避免页面/模块太多看不懂?
189
+ 6. 有没有用过类似产品觉得不错或不喜欢?如环境允许,AI 主动搜索 2-4 个类似产品作参考;如无法联网,说明无法实时搜索,并用本地经验示例且标记待确认。
190
+
191
+ 需求澄清必须包含“术语与概念对齐”。主 agent 遇到用户提到的专业词、行业词、产品形态、技术词或容易多义的普通词时,必须先用白话复述自己的理解,再问用户是不是这个意思;主 agent 自己描述需求时,也要解释关键概念,避免用户表面点头但实际理解不同。典型句式是:“你说的 xxx,我先按 yyy 理解;如果你指的是 zzz,那方案会不一样,我理解得对吗?”
192
+
193
+ 澄清完成标准固定为 8 项:
194
+
195
+ 1. 产品给谁用。
196
+ 2. 用户真正的高频需求是什么。
197
+ 3. 解决什么场景问题。
198
+ 4. 用户想达成什么结果。
199
+ 5. 用户从开始到结束的真实使用流程是什么。
200
+ 6. 首版平台与使用设备。
201
+ 7. MVP 必须做和暂不做边界,包括功能整合和页面/模块减负原则。
202
+ 8. 无阻塞开放问题,包括关键术语和概念没有歧义。
203
+
204
+ 只有 8 项均有答案、关键术语概念已经对齐,并且用户确认“我理解得对”,才能把 `docs/workflow-state.json` 中 `clarification.status` 更新为 `user_confirmed`,把 `clarification.concepts_aligned` 设为 `true`,把 `user_confirmation_required` 设为 `false`,并推荐进入 `analyze`。内部判断通过、文档已写好、审核通过都不等于用户确认。
205
+
206
+ 产品经理继续补齐六个核心问题:
207
+
208
+ 1. 产品是什么,解决什么问题,谁会使用?
209
+ 2. 面向什么平台:网页、应用、桌面端、小程序或其他载体?
210
+ 3. 用户打开产品后的高频核心场景和真实使用流程是什么?
211
+ 4. 用户最反复要完成的真实需求是什么,触发点是什么?
212
+ 5. 有哪些参考产品或反向参考?
213
+ 6. 必须包含什么,明确不包含什么?哪些能力需要合并或后置来减少用户使用成本?
214
+
215
+ 产物:`docs/project-config.md`。
216
+
217
+ 结束时若澄清未完成,继续围绕缺口提问;若澄清完成但未确认,请用户确认理解是否正确;只有用户确认后,才询问:审核初始化、修改配置,还是开始需求分析。
218
+
219
+ ### 阶段 01:需求分析
220
+
221
+ 阶段说明:[references/commands/analyze.md](references/commands/analyze.md)
222
+
223
+ 需求分析师开始前先输出阶段开场卡,并检查 `clarification.status=user_confirmed`。如果未确认,先交还产品经理继续澄清;用户坚持继续时必须记录风险。
224
+
225
+ 需求分析师执行两步式需求分析:
226
+
227
+ 1. 先根据已确认的 `project-config.md` 生成 PRD 草稿,标记 `文档状态:draft`,并在 `待用户回答问题` 中列出完成最终稿必须回答的问题。
228
+ 2. 产品经理把这些问题抛给用户。用户回答后,需求分析师回填并完善 `docs/prd.md` 和 `docs/handoff-prd.md`,把 `文档状态` 改为 `final`,清空阻塞问题,再自动调用 `quality_reviewer` 审核 `analyze`。
229
+
230
+ PRD 草稿和最终稿都使用四轮引导框架:
231
+
232
+ 1. 用户角色与场景。
233
+ 2. 功能模块与依赖。
234
+ 3. 优先级与边界:P0/P1/P2 和不做项。
235
+ 4. 业务规则与验收标准。
236
+
237
+ 需求分析必须先基于 `project-config.md` 中的高频真实需求、使用人群、触发点和真实使用流程判断真需求与伪需求。低频、炫技、重复、增加理解成本或偏离高频路径的需求要标记为合并、后置或删除;P0 功能必须说明对应的高频场景和流程位置。功能模块必须优先合并同类能力,避免把 PRD 写成一长串功能清单。
238
+
239
+ 每个功能必须获得 `M{模块号}-F{功能号}` 编号。`docs/prd.md` 必须包含需求追溯表。`docs/handoff-prd.md` 总结架构和界面设计需要的输入。
240
+
241
+ 草稿阶段不触发审核;最终稿完成后必须自动运行 `review analyze`,再询问用户:修改需求文档,还是开始技术架构。
242
+
243
+ ### 阶段 02:技术架构
244
+
245
+ 阶段说明:[references/commands/architect.md](references/commands/architect.md)
246
+
247
+ 技术架构师开始前先输出阶段开场卡,用小白能听懂的话说明推荐技术路线和原因。例如:如果产品是微信小程序内使用,优先考虑微信原生小程序 + 微信云开发;如果是网页、App 或桌面软件,再根据平台、用户体量、商业化计划、迭代方向和维护成本比较技术栈。
248
+
249
+ 技术架构师使用五维度决策框架:
250
+
251
+ - 平台类型
252
+ - 复杂度
253
+ - 数据规模
254
+ - 第三方集成
255
+ - 维护成本
256
+
257
+ `docs/tech-architecture.md` 必须包含技术选型、数据库设计、接口清单、部署方案和需求到架构映射表。`docs/handoff-architecture.md` 总结下游界面设计和开发规划关注点。
258
+
259
+ 结束时询问用户:审核架构、修改架构,还是开始界面与体验设计。
260
+
261
+ ### 阶段 03:界面与网页原型
262
+
263
+ 阶段说明:[references/commands/design.md](references/commands/design.md)
264
+
265
+ 界面设计师先做上游前置审查,确认高频真实需求和真实使用流程清晰,再基于 `assets/design-themes/` 推荐 2-3 个有明显差异的设计方向。每个候选方向必须生成一个可打开的首页 demo,放在 `prototype/directions/`,并在 `docs/ui-design.md` 中给出预览路径。等待用户选择;只有在用户明确授权时,才默认使用第一推荐。
266
+
267
+ UI 硬规则:页面可见文案、按钮、导航、空状态和提示语禁止使用 emoji;图标必须使用图标库、SVG 或图片资源,不用 emoji 代替。默认字号基准为正文、表单、按钮、列表文本不小于 16px;辅助说明可小于 16px 但不得低于 14px;移动端优先保持 16px 起。
268
+
269
+ 产物:
270
+
271
+ - `docs/ui-design.md`
272
+ - `docs/handoff-ui.md`
273
+ - `docs/prototype-review.md`
274
+ - `prototype/`
275
+
276
+ 原型结构:
277
+
278
+ - 单页面产品:`prototype/index.html` 是完整可交互原型,复用页面结构放在 `prototype/layout/`。
279
+ - 多页面系统:`prototype/index.html` 是入口,页面放在 `prototype/pages/`,复用页面结构放在 `prototype/layout/`,可复用组件示例放在 `prototype/components/`,资源放在 `prototype/assets/`。
280
+ - 方向候选:`prototype/directions/` 存放 2-3 个首页 demo,`prototype/directions/index.html` 是预览索引;它只用于方向选择,不替代最终完整原型。
281
+
282
+ 原型必须覆盖 P0 点击路径、成功/失败/空/加载状态、关键异常和主要响应式视口。`prototype/layout/` 必须沉淀可复用页面结构,避免界面实现只能在原型中成立、实际开发时无法稳定复现。
283
+
284
+ 完整原型交付前,界面设计师必须完成 Playwright + Impeccable 自审:按当前 CLI 结构生成 Impeccable 上下文(Codex 默认 `.agents/context/PRODUCT.md` 和 `.agents/context/DESIGN.md`,Claude Code 可用 `.claude/context/PRODUCT.md` 和 `.claude/context/DESIGN.md` 或沿用 `.agents/context/`),运行 Impeccable context loader,用 Playwright 覆盖 desktop/tablet/mobile 截图,对候选 demo 和完整原型执行 `critique`、`audit`、`adapt` 以及必要的 `layout`、`typeset`、`clarify`、`animate`、`harden`、`polish`,并把审查、修正和复查结果写入 `docs/prototype-review.md`。
285
+
286
+ UI 页面访问逻辑必须从真实使用流程推导,页面数量以完成高频路径为准。页面模块不能堆叠过多;能合并的入口、状态、表单、列表、详情必须合并,并在 `docs/ui-design.md` 记录合并理由。不要为了展示完整性把低频功能前置到主路径里。
287
+
288
+ 如果 UI 阶段为了体验合理性调整了页面清单、交互路径、字段、状态、技术约束或验收标准,或发现页面/模块过多、流程不顺,必须同步回写 `docs/prd.md`、`docs/handoff-prd.md`、`docs/project-config.md` 或 `docs/tech-architecture.md`,不能只在 UI 文档或原型里静默新增范围。
289
+
290
+ 原型目录职责:
291
+
292
+ | 路径 | 职责 |
293
+ |---|---|
294
+ | `prototype/directions/` | 设计方向首页 demo 和预览索引。 |
295
+ | `prototype/index.html` | 原型入口、全局导航、关键流程起点。 |
296
+ | `prototype/pages/` | 多页面系统的独立业务页面。 |
297
+ | `prototype/layout/` | 应用外壳、导航、页头、侧栏、内容网格、表单页骨架、状态页骨架等可复用页面结构。 |
298
+ | `prototype/components/` | 按钮组、表单控件、卡片、列表、弹窗、状态块等可复用组件和交互片段。 |
299
+ | `prototype/assets/` | 样式、脚本、图片、图标、示例数据等公共资源。 |
300
+ | `prototype/review/screenshots/` | Playwright 原型自审截图证据,按 desktop/tablet/mobile 存放。 |
301
+
302
+ 结束时询问用户:审核界面设计、修改设计/原型,还是开始开发规划。
303
+
304
+ ### 阶段 04:开发规划
305
+
306
+ 阶段说明:[references/commands/plan.md](references/commands/plan.md)
307
+
308
+ 开发规划师把需求、架构、界面设计和原型转为 `docs/dev-tasks.md`。
309
+
310
+ 任务规则:
311
+
312
+ - 使用 `Txxx` 编号。
313
+ - 每个任务都能独立验证。
314
+ - 每个任务尽量控制在 5-20 分钟执行粒度。
315
+ - 每个任务包含目标、依赖、涉及文件、执行指令、验证步骤和边缘情况。
316
+ - 包含需求到任务映射表。
317
+
318
+ 结束时询问用户:审核任务规划、修改任务,还是打包交付。
319
+
320
+ ### 阶段 05:交付打包
321
+
322
+ 阶段说明:[references/commands/deliver.md](references/commands/deliver.md)
323
+
324
+ 运行:
325
+
326
+ ```bash
327
+ node .claude/skills/pm-workflow/scripts/package_delivery.js --root .
328
+ ```
329
+
330
+ 交付包输出到 `outputs/dev-package/`。打包脚本只报告缺失文件,不判断质量完整性;质量结论由质量审核官负责。
331
+
332
+ 结束时询问用户:检查交付包、修改文档,还是基于交付包启动独立开发会话。
333
+
334
+ ## 审核流程
335
+
336
+ 阶段说明:[references/commands/review.md](references/commands/review.md)
337
+
338
+ 用户触发审核时,必须启动当前 CLI 结构下的质量审核子 agent:Codex 使用 `.codex/agents/quality-reviewer.toml`,Claude Code 使用 `.claude/agents/quality-reviewer.md`。若当前环境无法启动项目子 agent,必须停止审核,不生成或修改审核报告,不运行审核脚本,并提示用户在支持项目子 agent 调度的 CLI 中打开当前工作室目录后重试。
339
+
340
+ 运行:
341
+
342
+ ```bash
343
+ node .claude/skills/pm-workflow/scripts/review_stage.js --root . --stage <init|analyze|architect|design|plan|deliver>
344
+ ```
345
+
346
+ 质量审核官必须使用三种机制:
347
+
348
+ 1. 对完整性、清晰度、一致性、可执行性评分。通过标准:平均分 >= 8 且每项 >= 6。
349
+ 2. 仿真下游角色,判断是否能基于当前产物继续工作。
350
+ 3. 核对追溯关系:
351
+ - 需求功能编号到架构数据、接口、部署。
352
+ - 需求功能编号到界面页面、组件、状态、原型路径。
353
+ - 需求功能编号到开发任务。
354
+
355
+ 审核脚本会把审核轮次记录到 `docs/workflow-state.json`。如果某阶段三轮仍不通过,必须向用户明确说明风险,并建议先修复再继续。
356
+
357
+ ## 状态流程
358
+
359
+ 阶段说明:[references/commands/status.md](references/commands/status.md)
360
+
361
+ 结合 `docs/workflow-state.json` 以及 `docs/`、`prototype/`、`outputs/dev-package/` 下的实际文件,报告当前阶段、已有产物、审核轮次、最近结论、缺失文件和推荐下一步。
362
+
363
+ ## 质量要求
364
+
365
+ - 不编造缺失的业务事实;需要时提问或标记风险。
366
+ - 不跳过阶段收尾引导;始终询问用户要审核、修改还是进入下一阶段。
367
+ - 不要让后续阶段静默新增需求范围。
368
+ - 功能编号必须从需求文档贯穿到架构、界面和任务。
369
+ - 即使审核不是硬阻断,也要把它当作真实质量机制。
370
+ - 界面原型必须使用真实业务数据和可运行网页交互,不要用静态文字替代关键 P0 流程。
371
+ - 交付默认止步于交付包,除非用户明确要求继续实现产品。
@@ -0,0 +1,56 @@
1
+ # 设计主题库
2
+
3
+ 这个目录存放 `pm-workflow` 可复用的设计主题。每个主题使用一个文件夹,主题正文统一放在 `DESIGN.md`,预览样例统一放在 `examples.html`。主题文件只描述视觉语言、tokens、组件、布局和提示词,不承担主题选择逻辑。
4
+
5
+ 主题选择规则统一维护在 `../../references/design-theme-selection.md`。新增主题时,文件夹名使用具体风格名,例如 `linear/`、`vercel/`、`stripe/`。
6
+
7
+ ## 可用主题
8
+
9
+ | 主题 | 主题文件 | 样例预览 | 视觉关键词 | 预览产品类型 |
10
+ | --- | --- | --- | --- | --- |
11
+ | Vben | [vben/DESIGN.md](vben/DESIGN.md) | [vben/examples.html](vben/examples.html) | 应用工作台、浅色/深色、侧边栏、顶栏、表格、筛选、抽屉、语义状态 | 后台管理系统、数据分析看板、内部工作台 |
12
+ | RevenueCat | [revenuecat/DESIGN.md](revenuecat/DESIGN.md) | [revenuecat/examples.html](revenuecat/examples.html) | 白底精密、深紫文本、单一强调色、方正信息容器、全圆角主按钮、克制阴影 | SaaS 产品页、品牌主页、轻量产品界面 |
13
+
14
+ ## Open Design 扩展库
15
+
16
+ [open-design/](open-design/) 收录了从 `nexu-io/open-design` 引入的设计系统库,每个子目录包含一个 `DESIGN.md`。这些主题用于补充品牌风格、视觉方向和更丰富的参考,不替代上表中的本地精选主题。
17
+
18
+ 使用顺序:
19
+
20
+ 1. 先按 `../../references/design-theme-selection.md` 生成候选主题和设计方向确认表单。
21
+ 2. 展示候选主题的 `examples.html` 预览路径,让用户确认后再进入 HTML 原型。
22
+ 3. 如果用户指定品牌、参考站点、截图或风格名,再查找 `open-design/<slug>/DESIGN.md`。
23
+ 4. 如果使用 Open Design 主题,必须在 `notes/requirements.md` 里记录源文件,例如 `assets/design-themes/open-design/linear-app/DESIGN.md`。
24
+ 5. 品牌类主题只作为 aesthetic inspiration,不代表官方品牌资产或授权。
25
+
26
+ 导入来源和许可证见 [open-design/OPEN_DESIGN_IMPORT.md](open-design/OPEN_DESIGN_IMPORT.md)。
27
+
28
+ ## 精选 Open Design 样例
29
+
30
+ 以下扩展主题提供了本地预览样例,可作为候选主题展示给用户:
31
+
32
+ | 主题 | 主题文件 | 样例预览 |
33
+ | --- | --- | --- |
34
+ | Linear | [open-design/linear-app/DESIGN.md](open-design/linear-app/DESIGN.md) | [open-design/linear-app/examples.html](open-design/linear-app/examples.html) |
35
+ | Vercel | [open-design/vercel/DESIGN.md](open-design/vercel/DESIGN.md) | [open-design/vercel/examples.html](open-design/vercel/examples.html) |
36
+ | Stripe | [open-design/stripe/DESIGN.md](open-design/stripe/DESIGN.md) | [open-design/stripe/examples.html](open-design/stripe/examples.html) |
37
+ | Notion | [open-design/notion/DESIGN.md](open-design/notion/DESIGN.md) | [open-design/notion/examples.html](open-design/notion/examples.html) |
38
+ | GitHub | [open-design/github/DESIGN.md](open-design/github/DESIGN.md) | [open-design/github/examples.html](open-design/github/examples.html) |
39
+ | Apple | [open-design/apple/DESIGN.md](open-design/apple/DESIGN.md) | [open-design/apple/examples.html](open-design/apple/examples.html) |
40
+ | Airbnb | [open-design/airbnb/DESIGN.md](open-design/airbnb/DESIGN.md) | [open-design/airbnb/examples.html](open-design/airbnb/examples.html) |
41
+ | Figma | [open-design/figma/DESIGN.md](open-design/figma/DESIGN.md) | [open-design/figma/examples.html](open-design/figma/examples.html) |
42
+ | Supabase | [open-design/supabase/DESIGN.md](open-design/supabase/DESIGN.md) | [open-design/supabase/examples.html](open-design/supabase/examples.html) |
43
+ | Shadcn | [open-design/shadcn/DESIGN.md](open-design/shadcn/DESIGN.md) | [open-design/shadcn/examples.html](open-design/shadcn/examples.html) |
44
+ | Ant | [open-design/ant/DESIGN.md](open-design/ant/DESIGN.md) | [open-design/ant/examples.html](open-design/ant/examples.html) |
45
+ | OpenAI | [open-design/openai/DESIGN.md](open-design/openai/DESIGN.md) | [open-design/openai/examples.html](open-design/openai/examples.html) |
46
+ | Cursor | [open-design/cursor/DESIGN.md](open-design/cursor/DESIGN.md) | [open-design/cursor/examples.html](open-design/cursor/examples.html) |
47
+ | Shopify | [open-design/shopify/DESIGN.md](open-design/shopify/DESIGN.md) | [open-design/shopify/examples.html](open-design/shopify/examples.html) |
48
+ | Spotify | [open-design/spotify/DESIGN.md](open-design/spotify/DESIGN.md) | [open-design/spotify/examples.html](open-design/spotify/examples.html) |
49
+ | Material | [open-design/material/DESIGN.md](open-design/material/DESIGN.md) | [open-design/material/examples.html](open-design/material/examples.html) |
50
+ | IBM | [open-design/ibm/DESIGN.md](open-design/ibm/DESIGN.md) | [open-design/ibm/examples.html](open-design/ibm/examples.html) |
51
+ | Raycast | [open-design/raycast/DESIGN.md](open-design/raycast/DESIGN.md) | [open-design/raycast/examples.html](open-design/raycast/examples.html) |
52
+ | Slack | [open-design/slack/DESIGN.md](open-design/slack/DESIGN.md) | [open-design/slack/examples.html](open-design/slack/examples.html) |
53
+ | Webflow | [open-design/webflow/DESIGN.md](open-design/webflow/DESIGN.md) | [open-design/webflow/examples.html](open-design/webflow/examples.html) |
54
+ | MongoDB | [open-design/mongodb/DESIGN.md](open-design/mongodb/DESIGN.md) | [open-design/mongodb/examples.html](open-design/mongodb/examples.html) |
55
+ | Hugging Face | [open-design/huggingface/DESIGN.md](open-design/huggingface/DESIGN.md) | [open-design/huggingface/examples.html](open-design/huggingface/examples.html) |
56
+ | xAI | [open-design/x-ai/DESIGN.md](open-design/x-ai/DESIGN.md) | [open-design/x-ai/examples.html](open-design/x-ai/examples.html) |
@@ -0,0 +1 @@
1
+ 602cf704e21dddc7aa0351ee9090d4e0dc4d3985