@bonesofspring/ai-rules 0.2.16 → 0.2.18

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 (525) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +19 -2
  3. package/bin/cli.js +39 -0
  4. package/package.json +3 -1
  5. package/presets/_shared/README.md +3 -3
  6. package/presets/_shared/assets/docs-specs/INDEX.md +9 -0
  7. package/presets/_shared/assets/docs-specs/_templates/feature.md +32 -0
  8. package/presets/_shared/assets/docs-specs/_templates/page.md +47 -0
  9. package/presets/_shared/assets/docs-specs/schemas/frontmatter-v1.schema.json +22 -0
  10. package/presets/_shared/core/agent-team/agent-artifact-contracts.md +3 -0
  11. package/presets/_shared/core/agent-team/agent-team-orchestrator.md +4 -4
  12. package/presets/_shared/core/architecture/feature-delivery-workflow.md +1 -1
  13. package/presets/_shared/core/architecture/product-specs-authoring.md +107 -0
  14. package/presets/_shared/core/architecture/product-specs.md +49 -0
  15. package/presets/_shared/core/meta/preset-no-cross-stack-leakage.md +4 -2
  16. package/presets/_shared/core/review/mockup-review.md +105 -0
  17. package/presets/_shared/core/review/ux-design.md +97 -0
  18. package/presets/claude/android-kotlin/agents/README.md +2 -2
  19. package/presets/claude/android-kotlin/agents/build-verifier.md +9 -0
  20. package/presets/claude/android-kotlin/agents/code-reviewer.md +2 -0
  21. package/presets/claude/android-kotlin/agents/feature-developer.md +13 -0
  22. package/presets/claude/android-kotlin/agents/mockup-reviewer.md +59 -0
  23. package/presets/claude/android-kotlin/agents/task-analyst.md +37 -1
  24. package/presets/claude/android-kotlin/agents/task-router.md +22 -2
  25. package/presets/claude/android-kotlin/agents/tech-writer.md +5 -0
  26. package/presets/claude/android-kotlin/commands/feature-continue.md +4 -0
  27. package/presets/claude/android-kotlin/commands/feature-start.md +8 -0
  28. package/presets/claude/android-kotlin/commands/spec-start.md +29 -0
  29. package/presets/claude/android-kotlin/commands/task-continue.md +11 -6
  30. package/presets/claude/android-kotlin/commands/task.md +2 -0
  31. package/presets/claude/android-kotlin/hooks/chain-team-phases.sh +26 -0
  32. package/presets/claude/android-kotlin/rules/README.md +4 -0
  33. package/presets/claude/android-kotlin/rules/architecture/feature-delivery.md +6 -0
  34. package/presets/claude/android-kotlin/rules/architecture/product-specs-authoring.md +121 -0
  35. package/presets/claude/android-kotlin/rules/architecture/product-specs.md +62 -0
  36. package/presets/claude/android-kotlin/rules/tooling-and-review/agent-team-orchestrator.md +8 -3
  37. package/presets/claude/android-kotlin/rules/tooling-and-review/mockup-review.md +118 -0
  38. package/presets/claude/android-kotlin/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -3
  39. package/presets/claude/android-kotlin/rules/tooling-and-review/ux-design.md +110 -0
  40. package/presets/claude/android-kotlin/skills/README.md +2 -0
  41. package/presets/claude/android-kotlin/skills/feature-delivery/SKILL.md +8 -4
  42. package/presets/claude/android-kotlin/skills/mockup-review/SKILL.md +29 -0
  43. package/presets/claude/android-kotlin/skills/spec-authoring/SKILL.md +26 -0
  44. package/presets/claude/android-kotlin/skills/ux-design/SKILL.md +36 -0
  45. package/presets/claude/android-kotlin/team/fixtures/artifact-manifest.example.json +25 -0
  46. package/presets/claude/android-kotlin/team/fixtures/feature-with-figma-url.json +17 -0
  47. package/presets/claude/android-kotlin/team/fixtures/feature-with-ux-no-figma.json +17 -0
  48. package/presets/claude/android-kotlin/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
  49. package/presets/claude/android-kotlin/team/fixtures/mockup-review-standalone.json +14 -0
  50. package/presets/claude/android-kotlin/team/fixtures/ux-design-standalone.json +15 -0
  51. package/presets/claude/go/MCP.md +1 -1
  52. package/presets/claude/go/agents/build-verifier.md +9 -0
  53. package/presets/claude/go/agents/code-reviewer.md +2 -0
  54. package/presets/claude/go/agents/feature-developer.md +7 -0
  55. package/presets/claude/go/agents/task-analyst.md +19 -0
  56. package/presets/claude/go/agents/task-router.md +12 -1
  57. package/presets/claude/go/agents/tech-writer.md +5 -0
  58. package/presets/claude/go/commands/feature-continue.md +1 -0
  59. package/presets/claude/go/commands/feature-start.md +8 -0
  60. package/presets/claude/go/commands/spec-start.md +29 -0
  61. package/presets/claude/go/commands/task-continue.md +6 -3
  62. package/presets/claude/go/rules/README.md +2 -0
  63. package/presets/claude/go/rules/architecture/feature-delivery.md +4 -0
  64. package/presets/claude/go/rules/architecture/product-specs-authoring.md +121 -0
  65. package/presets/claude/go/rules/architecture/product-specs.md +63 -0
  66. package/presets/claude/go/rules/tooling-and-review/agent-team-orchestrator.md +2 -0
  67. package/presets/claude/go/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
  68. package/presets/claude/go/skills/feature-delivery/SKILL.md +5 -4
  69. package/presets/claude/go/skills/spec-authoring/SKILL.md +26 -0
  70. package/presets/claude/ios-swift/agents/README.md +2 -2
  71. package/presets/claude/ios-swift/agents/build-verifier.md +9 -0
  72. package/presets/claude/ios-swift/agents/code-reviewer.md +2 -0
  73. package/presets/claude/ios-swift/agents/feature-developer.md +13 -0
  74. package/presets/claude/ios-swift/agents/mockup-reviewer.md +59 -0
  75. package/presets/claude/ios-swift/agents/task-analyst.md +37 -1
  76. package/presets/claude/ios-swift/agents/task-router.md +22 -2
  77. package/presets/claude/ios-swift/agents/tech-writer.md +2 -15
  78. package/presets/claude/ios-swift/commands/feature-continue.md +4 -0
  79. package/presets/claude/ios-swift/commands/feature-start.md +8 -0
  80. package/presets/claude/ios-swift/commands/spec-start.md +29 -0
  81. package/presets/claude/ios-swift/commands/task-continue.md +11 -6
  82. package/presets/claude/ios-swift/commands/task.md +2 -0
  83. package/presets/claude/ios-swift/hooks/chain-team-phases.sh +26 -0
  84. package/presets/claude/ios-swift/rules/README.md +7 -0
  85. package/presets/claude/ios-swift/rules/architecture/feature-delivery.md +6 -0
  86. package/presets/claude/ios-swift/rules/architecture/product-specs-authoring.md +121 -0
  87. package/presets/claude/ios-swift/rules/architecture/product-specs.md +62 -0
  88. package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-orchestrator.md +8 -3
  89. package/presets/claude/ios-swift/rules/tooling-and-review/mockup-review.md +118 -0
  90. package/presets/claude/ios-swift/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
  91. package/presets/claude/ios-swift/rules/tooling-and-review/ux-design.md +110 -0
  92. package/presets/claude/ios-swift/skills/README.md +2 -0
  93. package/presets/claude/ios-swift/skills/feature-delivery/SKILL.md +8 -4
  94. package/presets/claude/ios-swift/skills/mockup-review/SKILL.md +29 -0
  95. package/presets/claude/ios-swift/skills/spec-authoring/SKILL.md +26 -0
  96. package/presets/claude/ios-swift/skills/ux-design/SKILL.md +36 -0
  97. package/presets/claude/ios-swift/team/fixtures/artifact-manifest.example.json +25 -0
  98. package/presets/claude/ios-swift/team/fixtures/feature-with-figma-url.json +17 -0
  99. package/presets/claude/ios-swift/team/fixtures/feature-with-ux-no-figma.json +17 -0
  100. package/presets/claude/ios-swift/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
  101. package/presets/claude/ios-swift/team/fixtures/mockup-review-standalone.json +14 -0
  102. package/presets/claude/ios-swift/team/fixtures/ux-design-standalone.json +15 -0
  103. package/presets/claude/java/agents/build-verifier.md +10 -1
  104. package/presets/claude/java/agents/code-reviewer.md +2 -0
  105. package/presets/claude/java/agents/feature-developer.md +7 -0
  106. package/presets/claude/java/agents/task-analyst.md +19 -0
  107. package/presets/claude/java/agents/task-router.md +12 -1
  108. package/presets/claude/java/agents/tech-writer.md +5 -0
  109. package/presets/claude/java/commands/feature-continue.md +1 -0
  110. package/presets/claude/java/commands/feature-start.md +8 -0
  111. package/presets/claude/java/commands/spec-start.md +29 -0
  112. package/presets/claude/java/commands/task-continue.md +6 -3
  113. package/presets/claude/java/rules/README.md +2 -0
  114. package/presets/claude/java/rules/architecture/feature-delivery.md +4 -0
  115. package/presets/claude/java/rules/architecture/product-specs-authoring.md +121 -0
  116. package/presets/claude/java/rules/architecture/product-specs.md +63 -0
  117. package/presets/claude/java/rules/tooling-and-review/agent-team-orchestrator.md +2 -0
  118. package/presets/claude/java/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
  119. package/presets/claude/java/skills/feature-delivery/SKILL.md +5 -4
  120. package/presets/claude/java/skills/spec-authoring/SKILL.md +26 -0
  121. package/presets/claude/mcp-ts/agents/build-verifier.md +10 -1
  122. package/presets/claude/mcp-ts/agents/feature-developer.md +7 -0
  123. package/presets/claude/mcp-ts/agents/task-analyst.md +21 -0
  124. package/presets/claude/mcp-ts/agents/task-router.md +12 -1
  125. package/presets/claude/mcp-ts/commands/feature-continue.md +4 -0
  126. package/presets/claude/mcp-ts/commands/feature-start.md +8 -0
  127. package/presets/claude/mcp-ts/commands/spec-start.md +29 -0
  128. package/presets/claude/mcp-ts/commands/task-continue.md +6 -3
  129. package/presets/claude/mcp-ts/rules/README.md +2 -0
  130. package/presets/claude/mcp-ts/rules/architecture/feature-delivery.md +4 -0
  131. package/presets/claude/mcp-ts/rules/architecture/product-specs-authoring.md +121 -0
  132. package/presets/claude/mcp-ts/rules/architecture/product-specs.md +63 -0
  133. package/presets/claude/mcp-ts/rules/tooling-and-review/agent-team-orchestrator.md +2 -0
  134. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
  135. package/presets/claude/mcp-ts/skills/feature-delivery/SKILL.md +4 -3
  136. package/presets/claude/mcp-ts/skills/spec-authoring/SKILL.md +26 -0
  137. package/presets/claude/next/agents/README.md +2 -1
  138. package/presets/claude/next/agents/build-verifier.md +9 -0
  139. package/presets/claude/next/agents/code-reviewer.md +1 -0
  140. package/presets/claude/next/agents/feature-developer.md +13 -0
  141. package/presets/claude/next/agents/mockup-reviewer.md +59 -0
  142. package/presets/claude/next/agents/task-analyst.md +37 -1
  143. package/presets/claude/next/agents/task-router.md +23 -3
  144. package/presets/claude/next/agents/tech-writer.md +5 -0
  145. package/presets/claude/next/commands/feature-continue.md +1 -0
  146. package/presets/claude/next/commands/feature-start.md +8 -0
  147. package/presets/claude/next/commands/spec-start.md +29 -0
  148. package/presets/claude/next/commands/task-continue.md +11 -6
  149. package/presets/claude/next/commands/task.md +2 -0
  150. package/presets/claude/next/hooks/chain-team-phases.sh +26 -0
  151. package/presets/claude/next/rules/README.md +8 -1
  152. package/presets/claude/next/rules/architecture/feature-delivery-workflow.md +6 -0
  153. package/presets/claude/next/rules/architecture/product-specs-authoring.md +121 -0
  154. package/presets/claude/next/rules/architecture/product-specs.md +63 -0
  155. package/presets/claude/next/rules/tooling-and-review/agent-team-orchestrator.md +8 -3
  156. package/presets/claude/next/rules/tooling-and-review/mockup-review.md +118 -0
  157. package/presets/claude/next/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
  158. package/presets/claude/next/rules/tooling-and-review/ux-design.md +110 -0
  159. package/presets/claude/next/skills/README.md +2 -0
  160. package/presets/claude/next/skills/feature-delivery/SKILL.md +7 -3
  161. package/presets/claude/next/skills/mockup-review/SKILL.md +29 -0
  162. package/presets/claude/next/skills/spec-authoring/SKILL.md +26 -0
  163. package/presets/claude/next/skills/ux-design/SKILL.md +36 -0
  164. package/presets/claude/next/team/fixtures/artifact-manifest.example.json +20 -2
  165. package/presets/claude/next/team/fixtures/feature-with-figma-url.json +17 -0
  166. package/presets/claude/next/team/fixtures/feature-with-ux-no-figma.json +17 -0
  167. package/presets/claude/next/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
  168. package/presets/claude/next/team/fixtures/mockup-review-standalone.json +14 -0
  169. package/presets/claude/next/team/fixtures/ux-design-standalone.json +15 -0
  170. package/presets/claude/nuxt/agents/README.md +2 -1
  171. package/presets/claude/nuxt/agents/build-verifier.md +9 -0
  172. package/presets/claude/nuxt/agents/code-reviewer.md +2 -0
  173. package/presets/claude/nuxt/agents/feature-developer.md +13 -0
  174. package/presets/claude/nuxt/agents/mockup-reviewer.md +59 -0
  175. package/presets/claude/nuxt/agents/task-analyst.md +37 -1
  176. package/presets/claude/nuxt/agents/task-router.md +23 -3
  177. package/presets/claude/nuxt/agents/tech-writer.md +5 -0
  178. package/presets/claude/nuxt/commands/feature-continue.md +4 -0
  179. package/presets/claude/nuxt/commands/feature-start.md +8 -0
  180. package/presets/claude/nuxt/commands/spec-start.md +29 -0
  181. package/presets/claude/nuxt/commands/task-continue.md +11 -6
  182. package/presets/claude/nuxt/commands/task.md +2 -0
  183. package/presets/claude/nuxt/hooks/chain-team-phases.sh +26 -0
  184. package/presets/claude/nuxt/rules/README.md +7 -0
  185. package/presets/claude/nuxt/rules/architecture/feature-delivery-workflow.md +6 -0
  186. package/presets/claude/nuxt/rules/architecture/product-specs-authoring.md +121 -0
  187. package/presets/claude/nuxt/rules/architecture/product-specs.md +62 -0
  188. package/presets/claude/nuxt/rules/tooling-and-review/agent-team-orchestrator.md +8 -3
  189. package/presets/claude/nuxt/rules/tooling-and-review/mockup-review.md +118 -0
  190. package/presets/claude/nuxt/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
  191. package/presets/claude/nuxt/rules/tooling-and-review/ux-design.md +110 -0
  192. package/presets/claude/nuxt/skills/README.md +2 -0
  193. package/presets/claude/nuxt/skills/feature-delivery/SKILL.md +7 -3
  194. package/presets/claude/nuxt/skills/mockup-review/SKILL.md +29 -0
  195. package/presets/claude/nuxt/skills/spec-authoring/SKILL.md +26 -0
  196. package/presets/claude/nuxt/skills/ux-design/SKILL.md +36 -0
  197. package/presets/claude/nuxt/team/fixtures/artifact-manifest.example.json +20 -2
  198. package/presets/claude/nuxt/team/fixtures/feature-with-figma-url.json +17 -0
  199. package/presets/claude/nuxt/team/fixtures/feature-with-ux-no-figma.json +17 -0
  200. package/presets/claude/nuxt/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
  201. package/presets/claude/nuxt/team/fixtures/mockup-review-standalone.json +14 -0
  202. package/presets/claude/nuxt/team/fixtures/ux-design-standalone.json +15 -0
  203. package/presets/claude/php-hexagonal/agents/build-verifier.md +10 -1
  204. package/presets/claude/php-hexagonal/agents/code-reviewer.md +2 -0
  205. package/presets/claude/php-hexagonal/agents/feature-developer.md +7 -0
  206. package/presets/claude/php-hexagonal/agents/task-analyst.md +19 -0
  207. package/presets/claude/php-hexagonal/agents/task-router.md +12 -1
  208. package/presets/claude/php-hexagonal/agents/tech-writer.md +5 -0
  209. package/presets/claude/php-hexagonal/commands/feature-continue.md +1 -0
  210. package/presets/claude/php-hexagonal/commands/feature-start.md +8 -0
  211. package/presets/claude/php-hexagonal/commands/spec-start.md +29 -0
  212. package/presets/claude/php-hexagonal/commands/task-continue.md +6 -3
  213. package/presets/claude/php-hexagonal/rules/README.md +2 -0
  214. package/presets/claude/php-hexagonal/rules/architecture/feature-delivery.md +4 -0
  215. package/presets/claude/php-hexagonal/rules/architecture/product-specs-authoring.md +121 -0
  216. package/presets/claude/php-hexagonal/rules/architecture/product-specs.md +63 -0
  217. package/presets/claude/php-hexagonal/rules/tooling-and-review/agent-team-orchestrator.md +2 -0
  218. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
  219. package/presets/claude/php-hexagonal/skills/feature-delivery/SKILL.md +5 -4
  220. package/presets/claude/php-hexagonal/skills/spec-authoring/SKILL.md +26 -0
  221. package/presets/claude/php-laravel/agents/build-verifier.md +10 -1
  222. package/presets/claude/php-laravel/agents/code-reviewer.md +2 -0
  223. package/presets/claude/php-laravel/agents/feature-developer.md +7 -0
  224. package/presets/claude/php-laravel/agents/task-analyst.md +19 -0
  225. package/presets/claude/php-laravel/agents/task-router.md +12 -1
  226. package/presets/claude/php-laravel/agents/tech-writer.md +5 -0
  227. package/presets/claude/php-laravel/commands/feature-continue.md +1 -0
  228. package/presets/claude/php-laravel/commands/feature-start.md +8 -0
  229. package/presets/claude/php-laravel/commands/spec-start.md +29 -0
  230. package/presets/claude/php-laravel/commands/task-continue.md +6 -3
  231. package/presets/claude/php-laravel/rules/README.md +2 -0
  232. package/presets/claude/php-laravel/rules/architecture/feature-delivery.md +4 -0
  233. package/presets/claude/php-laravel/rules/architecture/product-specs-authoring.md +121 -0
  234. package/presets/claude/php-laravel/rules/architecture/product-specs.md +63 -0
  235. package/presets/claude/php-laravel/rules/tooling-and-review/agent-team-orchestrator.md +2 -0
  236. package/presets/claude/php-laravel/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
  237. package/presets/claude/php-laravel/skills/feature-delivery/SKILL.md +5 -4
  238. package/presets/claude/php-laravel/skills/spec-authoring/SKILL.md +26 -0
  239. package/presets/claude/svelte/agents/README.md +2 -1
  240. package/presets/claude/svelte/agents/build-verifier.md +9 -0
  241. package/presets/claude/svelte/agents/code-reviewer.md +2 -0
  242. package/presets/claude/svelte/agents/feature-developer.md +13 -0
  243. package/presets/claude/svelte/agents/mockup-reviewer.md +59 -0
  244. package/presets/claude/svelte/agents/task-analyst.md +37 -1
  245. package/presets/claude/svelte/agents/task-router.md +23 -3
  246. package/presets/claude/svelte/agents/tech-writer.md +5 -0
  247. package/presets/claude/svelte/commands/feature-continue.md +4 -0
  248. package/presets/claude/svelte/commands/feature-start.md +8 -0
  249. package/presets/claude/svelte/commands/spec-start.md +29 -0
  250. package/presets/claude/svelte/commands/task-continue.md +11 -6
  251. package/presets/claude/svelte/commands/task.md +2 -0
  252. package/presets/claude/svelte/hooks/chain-team-phases.sh +26 -0
  253. package/presets/claude/svelte/rules/README.md +7 -0
  254. package/presets/claude/svelte/rules/architecture/feature-delivery-workflow.md +6 -0
  255. package/presets/claude/svelte/rules/architecture/product-specs-authoring.md +121 -0
  256. package/presets/claude/svelte/rules/architecture/product-specs.md +62 -0
  257. package/presets/claude/svelte/rules/tooling-and-review/agent-team-orchestrator.md +8 -3
  258. package/presets/claude/svelte/rules/tooling-and-review/mockup-review.md +118 -0
  259. package/presets/claude/svelte/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
  260. package/presets/claude/svelte/rules/tooling-and-review/ux-design.md +110 -0
  261. package/presets/claude/svelte/skills/README.md +2 -0
  262. package/presets/claude/svelte/skills/feature-delivery/SKILL.md +7 -3
  263. package/presets/claude/svelte/skills/mockup-review/SKILL.md +29 -0
  264. package/presets/claude/svelte/skills/spec-authoring/SKILL.md +26 -0
  265. package/presets/claude/svelte/skills/ux-design/SKILL.md +36 -0
  266. package/presets/claude/svelte/team/fixtures/artifact-manifest.example.json +20 -2
  267. package/presets/claude/svelte/team/fixtures/feature-with-figma-url.json +17 -0
  268. package/presets/claude/svelte/team/fixtures/feature-with-ux-no-figma.json +17 -0
  269. package/presets/claude/svelte/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
  270. package/presets/claude/svelte/team/fixtures/mockup-review-standalone.json +14 -0
  271. package/presets/claude/svelte/team/fixtures/ux-design-standalone.json +15 -0
  272. package/presets/cursor/android-kotlin/agents/README.md +2 -2
  273. package/presets/cursor/android-kotlin/agents/build-verifier.md +9 -0
  274. package/presets/cursor/android-kotlin/agents/code-reviewer.md +2 -0
  275. package/presets/cursor/android-kotlin/agents/feature-developer.md +13 -0
  276. package/presets/cursor/android-kotlin/agents/mockup-reviewer.md +60 -0
  277. package/presets/cursor/android-kotlin/agents/task-analyst.md +37 -1
  278. package/presets/cursor/android-kotlin/agents/task-router.md +22 -2
  279. package/presets/cursor/android-kotlin/agents/tech-writer.md +5 -0
  280. package/presets/cursor/android-kotlin/commands/feature-continue.md +4 -0
  281. package/presets/cursor/android-kotlin/commands/feature-start.md +8 -0
  282. package/presets/cursor/android-kotlin/commands/spec-start.md +29 -0
  283. package/presets/cursor/android-kotlin/commands/task-continue.md +11 -6
  284. package/presets/cursor/android-kotlin/commands/task.md +2 -0
  285. package/presets/cursor/android-kotlin/hooks/chain-team-phases.sh +26 -0
  286. package/presets/cursor/android-kotlin/rules/README.md +7 -0
  287. package/presets/cursor/android-kotlin/rules/agent-team-orchestrator.mdc +8 -3
  288. package/presets/cursor/android-kotlin/rules/feature-delivery-workflow.mdc +6 -0
  289. package/presets/cursor/android-kotlin/rules/mockup-review.mdc +116 -0
  290. package/presets/cursor/android-kotlin/rules/preset-no-cross-stack-leakage.mdc +4 -3
  291. package/presets/cursor/android-kotlin/rules/product-specs-authoring.mdc +123 -0
  292. package/presets/cursor/android-kotlin/rules/product-specs.mdc +64 -0
  293. package/presets/cursor/android-kotlin/rules/ux-design.mdc +108 -0
  294. package/presets/cursor/android-kotlin/skills/README.md +2 -0
  295. package/presets/cursor/android-kotlin/skills/feature-delivery/SKILL.md +8 -4
  296. package/presets/cursor/android-kotlin/skills/mockup-review/SKILL.md +29 -0
  297. package/presets/cursor/android-kotlin/skills/spec-authoring/SKILL.md +26 -0
  298. package/presets/cursor/android-kotlin/skills/ux-design/SKILL.md +36 -0
  299. package/presets/cursor/android-kotlin/team/fixtures/artifact-manifest.example.json +25 -0
  300. package/presets/cursor/android-kotlin/team/fixtures/feature-with-figma-url.json +17 -0
  301. package/presets/cursor/android-kotlin/team/fixtures/feature-with-ux-no-figma.json +17 -0
  302. package/presets/cursor/android-kotlin/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
  303. package/presets/cursor/android-kotlin/team/fixtures/mockup-review-standalone.json +14 -0
  304. package/presets/cursor/android-kotlin/team/fixtures/ux-design-standalone.json +15 -0
  305. package/presets/cursor/go/MCP.md +1 -1
  306. package/presets/cursor/go/agents/build-verifier.md +9 -0
  307. package/presets/cursor/go/agents/code-reviewer.md +2 -0
  308. package/presets/cursor/go/agents/feature-developer.md +7 -0
  309. package/presets/cursor/go/agents/task-analyst.md +19 -0
  310. package/presets/cursor/go/agents/task-router.md +12 -1
  311. package/presets/cursor/go/agents/tech-writer.md +5 -0
  312. package/presets/cursor/go/commands/feature-continue.md +4 -0
  313. package/presets/cursor/go/commands/feature-start.md +8 -0
  314. package/presets/cursor/go/commands/spec-start.md +29 -0
  315. package/presets/cursor/go/commands/task-continue.md +6 -3
  316. package/presets/cursor/go/rules/README.md +4 -1
  317. package/presets/cursor/go/rules/agent-team-orchestrator.mdc +2 -0
  318. package/presets/cursor/go/rules/feature-delivery-workflow.mdc +4 -0
  319. package/presets/cursor/go/rules/preset-no-cross-stack-leakage.mdc +4 -2
  320. package/presets/cursor/go/rules/product-specs-authoring.mdc +123 -0
  321. package/presets/cursor/go/rules/product-specs.mdc +65 -0
  322. package/presets/cursor/go/skills/feature-delivery/SKILL.md +5 -4
  323. package/presets/cursor/go/skills/spec-authoring/SKILL.md +26 -0
  324. package/presets/cursor/ios-swift/agents/README.md +2 -2
  325. package/presets/cursor/ios-swift/agents/build-verifier.md +9 -0
  326. package/presets/cursor/ios-swift/agents/code-reviewer.md +2 -0
  327. package/presets/cursor/ios-swift/agents/feature-developer.md +13 -0
  328. package/presets/cursor/ios-swift/agents/mockup-reviewer.md +60 -0
  329. package/presets/cursor/ios-swift/agents/task-analyst.md +37 -1
  330. package/presets/cursor/ios-swift/agents/task-router.md +22 -2
  331. package/presets/cursor/ios-swift/agents/tech-writer.md +2 -15
  332. package/presets/cursor/ios-swift/commands/feature-continue.md +4 -0
  333. package/presets/cursor/ios-swift/commands/feature-start.md +8 -0
  334. package/presets/cursor/ios-swift/commands/spec-start.md +29 -0
  335. package/presets/cursor/ios-swift/commands/task-continue.md +11 -6
  336. package/presets/cursor/ios-swift/commands/task.md +2 -0
  337. package/presets/cursor/ios-swift/hooks/chain-team-phases.sh +26 -0
  338. package/presets/cursor/ios-swift/rules/README.md +8 -1
  339. package/presets/cursor/ios-swift/rules/agent-team-orchestrator.mdc +8 -3
  340. package/presets/cursor/ios-swift/rules/feature-delivery-workflow.mdc +6 -0
  341. package/presets/cursor/ios-swift/rules/mockup-review.mdc +116 -0
  342. package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +4 -2
  343. package/presets/cursor/ios-swift/rules/product-specs-authoring.mdc +123 -0
  344. package/presets/cursor/ios-swift/rules/product-specs.mdc +64 -0
  345. package/presets/cursor/ios-swift/rules/ux-design.mdc +108 -0
  346. package/presets/cursor/ios-swift/skills/README.md +2 -0
  347. package/presets/cursor/ios-swift/skills/feature-delivery/SKILL.md +8 -4
  348. package/presets/cursor/ios-swift/skills/mockup-review/SKILL.md +29 -0
  349. package/presets/cursor/ios-swift/skills/spec-authoring/SKILL.md +26 -0
  350. package/presets/cursor/ios-swift/skills/ux-design/SKILL.md +36 -0
  351. package/presets/cursor/ios-swift/team/fixtures/artifact-manifest.example.json +25 -0
  352. package/presets/cursor/ios-swift/team/fixtures/feature-with-figma-url.json +17 -0
  353. package/presets/cursor/ios-swift/team/fixtures/feature-with-ux-no-figma.json +17 -0
  354. package/presets/cursor/ios-swift/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
  355. package/presets/cursor/ios-swift/team/fixtures/mockup-review-standalone.json +14 -0
  356. package/presets/cursor/ios-swift/team/fixtures/ux-design-standalone.json +15 -0
  357. package/presets/cursor/java/agents/build-verifier.md +10 -1
  358. package/presets/cursor/java/agents/code-reviewer.md +2 -0
  359. package/presets/cursor/java/agents/feature-developer.md +7 -0
  360. package/presets/cursor/java/agents/task-analyst.md +19 -0
  361. package/presets/cursor/java/agents/task-router.md +12 -1
  362. package/presets/cursor/java/agents/tech-writer.md +5 -0
  363. package/presets/cursor/java/commands/feature-continue.md +4 -0
  364. package/presets/cursor/java/commands/feature-start.md +8 -0
  365. package/presets/cursor/java/commands/spec-start.md +29 -0
  366. package/presets/cursor/java/commands/task-continue.md +6 -3
  367. package/presets/cursor/java/rules/README.md +4 -1
  368. package/presets/cursor/java/rules/agent-team-orchestrator.mdc +2 -0
  369. package/presets/cursor/java/rules/feature-delivery-workflow.mdc +4 -0
  370. package/presets/cursor/java/rules/preset-no-cross-stack-leakage.mdc +4 -2
  371. package/presets/cursor/java/rules/product-specs-authoring.mdc +123 -0
  372. package/presets/cursor/java/rules/product-specs.mdc +65 -0
  373. package/presets/cursor/java/skills/feature-delivery/SKILL.md +5 -4
  374. package/presets/cursor/java/skills/spec-authoring/SKILL.md +26 -0
  375. package/presets/cursor/mcp-ts/agents/build-verifier.md +10 -1
  376. package/presets/cursor/mcp-ts/agents/feature-developer.md +7 -0
  377. package/presets/cursor/mcp-ts/agents/task-analyst.md +21 -0
  378. package/presets/cursor/mcp-ts/agents/task-router.md +12 -1
  379. package/presets/cursor/mcp-ts/commands/feature-continue.md +4 -0
  380. package/presets/cursor/mcp-ts/commands/feature-start.md +8 -0
  381. package/presets/cursor/mcp-ts/commands/spec-start.md +29 -0
  382. package/presets/cursor/mcp-ts/commands/task-continue.md +6 -3
  383. package/presets/cursor/mcp-ts/rules/README.md +2 -0
  384. package/presets/cursor/mcp-ts/rules/agent-team-orchestrator.mdc +2 -0
  385. package/presets/cursor/mcp-ts/rules/feature-delivery-workflow.mdc +4 -0
  386. package/presets/cursor/mcp-ts/rules/preset-no-cross-stack-leakage.mdc +4 -2
  387. package/presets/cursor/mcp-ts/rules/product-specs-authoring.mdc +123 -0
  388. package/presets/cursor/mcp-ts/rules/product-specs.mdc +65 -0
  389. package/presets/cursor/mcp-ts/skills/feature-delivery/SKILL.md +4 -3
  390. package/presets/cursor/mcp-ts/skills/spec-authoring/SKILL.md +26 -0
  391. package/presets/cursor/next/agents/README.md +2 -1
  392. package/presets/cursor/next/agents/build-verifier.md +9 -0
  393. package/presets/cursor/next/agents/code-reviewer.md +1 -0
  394. package/presets/cursor/next/agents/feature-developer.md +13 -0
  395. package/presets/cursor/next/agents/mockup-reviewer.md +60 -0
  396. package/presets/cursor/next/agents/task-analyst.md +37 -1
  397. package/presets/cursor/next/agents/task-router.md +23 -3
  398. package/presets/cursor/next/agents/tech-writer.md +5 -0
  399. package/presets/cursor/next/commands/feature-continue.md +4 -0
  400. package/presets/cursor/next/commands/feature-start.md +8 -0
  401. package/presets/cursor/next/commands/spec-start.md +29 -0
  402. package/presets/cursor/next/commands/task-continue.md +11 -6
  403. package/presets/cursor/next/commands/task.md +2 -0
  404. package/presets/cursor/next/hooks/chain-team-phases.sh +26 -0
  405. package/presets/cursor/next/rules/README.md +5 -1
  406. package/presets/cursor/next/rules/agent-team-orchestrator.mdc +8 -3
  407. package/presets/cursor/next/rules/feature-delivery-workflow.mdc +6 -0
  408. package/presets/cursor/next/rules/mockup-review.mdc +116 -0
  409. package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +4 -2
  410. package/presets/cursor/next/rules/product-specs-authoring.mdc +123 -0
  411. package/presets/cursor/next/rules/product-specs.mdc +65 -0
  412. package/presets/cursor/next/rules/ux-design.mdc +108 -0
  413. package/presets/cursor/next/skills/README.md +2 -0
  414. package/presets/cursor/next/skills/feature-delivery/SKILL.md +7 -3
  415. package/presets/cursor/next/skills/mockup-review/SKILL.md +29 -0
  416. package/presets/cursor/next/skills/spec-authoring/SKILL.md +26 -0
  417. package/presets/cursor/next/skills/ux-design/SKILL.md +36 -0
  418. package/presets/cursor/next/team/fixtures/artifact-manifest.example.json +20 -2
  419. package/presets/cursor/next/team/fixtures/feature-with-figma-url.json +17 -0
  420. package/presets/cursor/next/team/fixtures/feature-with-ux-no-figma.json +17 -0
  421. package/presets/cursor/next/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
  422. package/presets/cursor/next/team/fixtures/mockup-review-standalone.json +14 -0
  423. package/presets/cursor/next/team/fixtures/ux-design-standalone.json +15 -0
  424. package/presets/cursor/nuxt/agents/README.md +2 -1
  425. package/presets/cursor/nuxt/agents/build-verifier.md +9 -0
  426. package/presets/cursor/nuxt/agents/code-reviewer.md +2 -0
  427. package/presets/cursor/nuxt/agents/feature-developer.md +13 -0
  428. package/presets/cursor/nuxt/agents/mockup-reviewer.md +60 -0
  429. package/presets/cursor/nuxt/agents/task-analyst.md +37 -1
  430. package/presets/cursor/nuxt/agents/task-router.md +23 -3
  431. package/presets/cursor/nuxt/agents/tech-writer.md +5 -0
  432. package/presets/cursor/nuxt/commands/feature-continue.md +4 -0
  433. package/presets/cursor/nuxt/commands/feature-start.md +8 -0
  434. package/presets/cursor/nuxt/commands/spec-start.md +29 -0
  435. package/presets/cursor/nuxt/commands/task-continue.md +11 -6
  436. package/presets/cursor/nuxt/commands/task.md +2 -0
  437. package/presets/cursor/nuxt/hooks/chain-team-phases.sh +26 -0
  438. package/presets/cursor/nuxt/rules/README.md +5 -1
  439. package/presets/cursor/nuxt/rules/agent-team-orchestrator.mdc +8 -3
  440. package/presets/cursor/nuxt/rules/feature-delivery-workflow.mdc +6 -0
  441. package/presets/cursor/nuxt/rules/mockup-review.mdc +116 -0
  442. package/presets/cursor/nuxt/rules/preset-no-cross-stack-leakage.mdc +4 -2
  443. package/presets/cursor/nuxt/rules/product-specs-authoring.mdc +123 -0
  444. package/presets/cursor/nuxt/rules/product-specs.mdc +64 -0
  445. package/presets/cursor/nuxt/rules/ux-design.mdc +108 -0
  446. package/presets/cursor/nuxt/skills/README.md +2 -0
  447. package/presets/cursor/nuxt/skills/feature-delivery/SKILL.md +7 -3
  448. package/presets/cursor/nuxt/skills/mockup-review/SKILL.md +29 -0
  449. package/presets/cursor/nuxt/skills/spec-authoring/SKILL.md +26 -0
  450. package/presets/cursor/nuxt/skills/ux-design/SKILL.md +36 -0
  451. package/presets/cursor/nuxt/team/fixtures/artifact-manifest.example.json +20 -2
  452. package/presets/cursor/nuxt/team/fixtures/feature-with-figma-url.json +17 -0
  453. package/presets/cursor/nuxt/team/fixtures/feature-with-ux-no-figma.json +17 -0
  454. package/presets/cursor/nuxt/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
  455. package/presets/cursor/nuxt/team/fixtures/mockup-review-standalone.json +14 -0
  456. package/presets/cursor/nuxt/team/fixtures/ux-design-standalone.json +15 -0
  457. package/presets/cursor/php-hexagonal/agents/build-verifier.md +10 -1
  458. package/presets/cursor/php-hexagonal/agents/code-reviewer.md +2 -0
  459. package/presets/cursor/php-hexagonal/agents/feature-developer.md +7 -0
  460. package/presets/cursor/php-hexagonal/agents/task-analyst.md +19 -0
  461. package/presets/cursor/php-hexagonal/agents/task-router.md +12 -1
  462. package/presets/cursor/php-hexagonal/agents/tech-writer.md +5 -0
  463. package/presets/cursor/php-hexagonal/commands/feature-continue.md +4 -0
  464. package/presets/cursor/php-hexagonal/commands/feature-start.md +8 -0
  465. package/presets/cursor/php-hexagonal/commands/spec-start.md +29 -0
  466. package/presets/cursor/php-hexagonal/commands/task-continue.md +6 -3
  467. package/presets/cursor/php-hexagonal/rules/README.md +4 -1
  468. package/presets/cursor/php-hexagonal/rules/agent-team-orchestrator.mdc +2 -0
  469. package/presets/cursor/php-hexagonal/rules/feature-delivery-workflow.mdc +4 -0
  470. package/presets/cursor/php-hexagonal/rules/preset-no-cross-stack-leakage.mdc +4 -2
  471. package/presets/cursor/php-hexagonal/rules/product-specs-authoring.mdc +123 -0
  472. package/presets/cursor/php-hexagonal/rules/product-specs.mdc +65 -0
  473. package/presets/cursor/php-hexagonal/skills/feature-delivery/SKILL.md +5 -4
  474. package/presets/cursor/php-hexagonal/skills/spec-authoring/SKILL.md +26 -0
  475. package/presets/cursor/php-laravel/agents/build-verifier.md +10 -1
  476. package/presets/cursor/php-laravel/agents/code-reviewer.md +2 -0
  477. package/presets/cursor/php-laravel/agents/feature-developer.md +7 -0
  478. package/presets/cursor/php-laravel/agents/task-analyst.md +19 -0
  479. package/presets/cursor/php-laravel/agents/task-router.md +12 -1
  480. package/presets/cursor/php-laravel/agents/tech-writer.md +5 -0
  481. package/presets/cursor/php-laravel/commands/feature-continue.md +4 -0
  482. package/presets/cursor/php-laravel/commands/feature-start.md +8 -0
  483. package/presets/cursor/php-laravel/commands/spec-start.md +29 -0
  484. package/presets/cursor/php-laravel/commands/task-continue.md +6 -3
  485. package/presets/cursor/php-laravel/rules/README.md +4 -1
  486. package/presets/cursor/php-laravel/rules/agent-team-orchestrator.mdc +2 -0
  487. package/presets/cursor/php-laravel/rules/feature-delivery-workflow.mdc +4 -0
  488. package/presets/cursor/php-laravel/rules/preset-no-cross-stack-leakage.mdc +4 -2
  489. package/presets/cursor/php-laravel/rules/product-specs-authoring.mdc +123 -0
  490. package/presets/cursor/php-laravel/rules/product-specs.mdc +65 -0
  491. package/presets/cursor/php-laravel/skills/feature-delivery/SKILL.md +5 -4
  492. package/presets/cursor/php-laravel/skills/spec-authoring/SKILL.md +26 -0
  493. package/presets/cursor/svelte/agents/README.md +2 -1
  494. package/presets/cursor/svelte/agents/build-verifier.md +9 -0
  495. package/presets/cursor/svelte/agents/code-reviewer.md +2 -0
  496. package/presets/cursor/svelte/agents/feature-developer.md +13 -0
  497. package/presets/cursor/svelte/agents/mockup-reviewer.md +60 -0
  498. package/presets/cursor/svelte/agents/task-analyst.md +37 -1
  499. package/presets/cursor/svelte/agents/task-router.md +23 -3
  500. package/presets/cursor/svelte/agents/tech-writer.md +5 -0
  501. package/presets/cursor/svelte/commands/feature-continue.md +4 -0
  502. package/presets/cursor/svelte/commands/feature-start.md +8 -0
  503. package/presets/cursor/svelte/commands/spec-start.md +29 -0
  504. package/presets/cursor/svelte/commands/task-continue.md +11 -6
  505. package/presets/cursor/svelte/commands/task.md +2 -0
  506. package/presets/cursor/svelte/hooks/chain-team-phases.sh +26 -0
  507. package/presets/cursor/svelte/rules/README.md +5 -1
  508. package/presets/cursor/svelte/rules/agent-team-orchestrator.mdc +8 -3
  509. package/presets/cursor/svelte/rules/feature-delivery-workflow.mdc +6 -0
  510. package/presets/cursor/svelte/rules/mockup-review.mdc +116 -0
  511. package/presets/cursor/svelte/rules/preset-no-cross-stack-leakage.mdc +4 -2
  512. package/presets/cursor/svelte/rules/product-specs-authoring.mdc +123 -0
  513. package/presets/cursor/svelte/rules/product-specs.mdc +64 -0
  514. package/presets/cursor/svelte/rules/ux-design.mdc +108 -0
  515. package/presets/cursor/svelte/skills/README.md +2 -0
  516. package/presets/cursor/svelte/skills/feature-delivery/SKILL.md +7 -3
  517. package/presets/cursor/svelte/skills/mockup-review/SKILL.md +29 -0
  518. package/presets/cursor/svelte/skills/spec-authoring/SKILL.md +26 -0
  519. package/presets/cursor/svelte/skills/ux-design/SKILL.md +36 -0
  520. package/presets/cursor/svelte/team/fixtures/artifact-manifest.example.json +20 -2
  521. package/presets/cursor/svelte/team/fixtures/feature-with-figma-url.json +17 -0
  522. package/presets/cursor/svelte/team/fixtures/feature-with-ux-no-figma.json +17 -0
  523. package/presets/cursor/svelte/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
  524. package/presets/cursor/svelte/team/fixtures/mockup-review-standalone.json +14 -0
  525. package/presets/cursor/svelte/team/fixtures/ux-design-standalone.json +15 -0
@@ -0,0 +1,118 @@
1
+ ---
2
+ description: Figma mockup review checklist (DS, coverage, viewports). On-demand — load via mockup-reviewer / skill mockup-review.
3
+ paths:
4
+ - .claude/commands/**/*
5
+ - .claude/team/**/*
6
+ ---
7
+
8
+ <!-- shared-core: review/mockup-review.md -->
9
+
10
+ # Mockup review checklist
11
+
12
+ On-demand reviewer checklist for Figma mockups. **Procedure:** skill `mockup-review`. **Agent:** `mockup-reviewer`. Do not inline this checklist into the agent prompt.
13
+
14
+ Stack-agnostic: no app-source globs, Playwright, or `xcodebuild`. Breakpoint **examples** live in adapter **Stack notes** only — do not FAIL on exact pixels.
15
+
16
+ ## When to load
17
+
18
+ - Pipeline step `mockup-reviewer` (standalone intent `mockup-review` or embedded after analyst)
19
+ - Prompt or `brief.md` contains a `figma.com` URL on a UI-capable stack
20
+ - User asks to review a mockup / Figma file (not a code MR)
21
+
22
+ ## Inputs
23
+
24
+ 1. Task `artifact-manifest.json`, then prompt Figma URL(s); `brief.md` / `decomposition.md` when present
25
+ 2. Skill `mockup-review` + this rule
26
+ 3. If plugin skills `figma-use` / `figma-design-to-code` are installed: **reference** them for URL parse and MCP invocation only — do not copy their bodies; do not run design-to-code
27
+
28
+ ## MCP-first
29
+
30
+ Required when MCP is up: `get_metadata`, `get_design_context`, `search_design_system`, `get_variable_defs`, `get_screenshot`. Optional: `get_libraries`, `get_code_connect_map`.
31
+
32
+ **Forbidden:** `use_figma`, `create_new_file`, `generate_*`, `weave_*`, `upload_assets`, `send_code_connect_mappings`. FigJam URL → `BLOCKED_MCP` / out of scope (do not call `get_figjam` unless the URL is a FigJam board — then still `BLOCKED_MCP`).
33
+
34
+ Cite `fileKey` + node IDs. Screenshots are supporting evidence, not a second reviewer. No screenshot-only path.
35
+
36
+ **Node caps:** ≤12 screen-level frames; `get_metadata` depth ≤3 named-frame levels; ≤3 screenshots (prefer one per small/medium/large). `search_design_system` once; `get_variable_defs` once per file. No node-id on URL: pick top-level frames matching the feature name; if still unbounded → `BLOCKED_MCP` (or `PASS_WITH_NOTES` only if MCP returned a tiny file) — do not dump the whole file.
37
+
38
+ **Degradation:** MCP unavailable or OAuth fail → verdict `BLOCKED_MCP`. Do **not** invent DS compliance claims.
39
+
40
+ ## Review dimensions
41
+
42
+ ### DS components (AC-4)
43
+
44
+ When an attached library is detectable (`search_design_system` / `get_metadata`): list **library component instances vs custom frames** with file/node references. Flag substitutions where a DS equivalent exists.
45
+
46
+ - Critical DS reimplementation (custom frame where an attached-library component exists) → **FAIL**
47
+ - One-off frame, no DS equivalent; mixed/unpublished library → WARN or notes (`PASS_WITH_NOTES`)
48
+ - No attached library detectable → notes only; do not invent DS claims (`PASS_WITH_NOTES`)
49
+
50
+ Confidence: `high` (MCP library match) / `low` (unpublished or mixed) — prefer `PASS_WITH_NOTES` over FAIL when confidence is low.
51
+
52
+ ### Tokens (AC-5)
53
+
54
+ When variables/styles are available (`get_variable_defs`, style metadata): flag fills, strokes, spacing, or typography that use raw values instead of bound variables/styles.
55
+
56
+ - Isolated unbound values → **WARN** (`PASS_WITH_NOTES`)
57
+ - Wholesale token ignore on a library-attached file (systemic; treat as critical DS with AC-4) → **FAIL**
58
+
59
+ ### Quality (AC-6)
60
+
61
+ Cover at minimum, each item PASS / WARN / FAIL eligible:
62
+
63
+ - Layer/frame naming hygiene
64
+ - Auto-layout vs absolute positioning for responsive regions
65
+ - Text style usage
66
+ - Component variant/property correctness
67
+ - Detached or orphaned component instances
68
+
69
+ Naming hygiene, minor detached instances, text-style drift → **WARN**. Detached **core** DS component that is a substitution → **FAIL** (same as AC-4 critical). Absolute layout on a region that is the only «responsive» evidence → WARN unless it also fails viewports.
70
+
71
+ ### Feature coverage (AC-7)
72
+
73
+ Map **flows → screens/frames**, **actions → interactive elements**, and **states** (empty, loading, error, success, disabled/validation). List explicit **missing** items. Label scope **`inferred`** when only a URL is provided (no brief AC).
74
+
75
+ - Missing **core** flow or primary action from brief AC (or labeled `inferred` primary flow from the URL) → **FAIL**
76
+ - Missing empty/loading/error/success on a form/list called out in AC → **FAIL**
77
+ - Missing secondary states (disabled/validation) not in AC → **WARN**
78
+
79
+ ### Viewports (AC-8)
80
+
81
+ Verify **≥3 viewport representations** (small / medium / large) via dedicated frames, Figma viewport presets, or responsive component variants.
82
+
83
+ - Fewer than 3 → **FAIL**
84
+ - 3 exist but sizes ≠ stack example buckets → **WARN** only (no exact pixel enforcement in core)
85
+
86
+ ## Severity (v1)
87
+
88
+ Isolated **WARN** never blocks. Overall verdict = worst FAIL > BLOCKED_MCP > PASS_WITH_NOTES > PASS. Multiple WARNs without FAIL → `PASS_WITH_NOTES`, not FAIL.
89
+
90
+ ## Report headings
91
+
92
+ Write `mockup-review.md` with these headings (must match the agent template):
93
+
94
+ ```markdown
95
+ # Mockup review: <slug>
96
+
97
+ ## Verdict
98
+ PASS | PASS_WITH_NOTES | FAIL | BLOCKED_MCP
99
+
100
+ ## Scope
101
+ - Figma fileKey / node IDs
102
+ - MCP: available | unavailable (reason)
103
+ - Feature scope source: brief AC | prompt | inferred
104
+
105
+ ## Critical (must fix)
106
+ ## Warnings (should fix)
107
+ ## Suggestions
108
+ ## DS compliance (AC-4, AC-5)
109
+ ## Quality (AC-6)
110
+ ## Feature coverage (AC-7)
111
+ ## Viewport matrix (AC-8)
112
+ ## AC coverage
113
+ | Criterion | Status | Notes |
114
+ ```
115
+
116
+ ## Stack notes
117
+
118
+ Illustrative web buckets (not enforced pixels): ~375 / ~768 / ~1280 mapped to small / medium / large.
@@ -69,7 +69,8 @@ Shared backend-stack bans (`go`, `java`, `php-hexagonal`, and `php-laravel`):
69
69
  - `playwright-test-`, `playwright-e2e`, `user-playwright`, `app/__tests__/e2e`
70
70
  - Positive yarn recipes `lint:js` / `lint:css`
71
71
  - `xcuitest-test-`, `instrumentation-test-`, `xcodebuild`, `SwiftLint` as required handoffs
72
- - Agent file `accessibility-reviewer` (no UI surface)
72
+ - Agent files `accessibility-reviewer`, `mockup-reviewer`, `ux-designer` (no UI surface)
73
+ - Required `skills/ux-design`, required `rules/ux-design`, or required pipeline handoff stem `ux-design`
73
74
 
74
75
  Required instead: `integration-test-*`; build-verifier / `post-change-test` plus stack tooling — `go-tooling` (`go test`, `go vet`), `java-tooling` (`mvn test` / `./gradlew test`), or `php-tooling` (`php artisan test` / `composer test` / `vendor/bin/phpunit`).
75
76
 
@@ -81,7 +82,8 @@ Same UI/mobile bans as backend stacks, plus:
81
82
  - Positive yarn recipes `lint:js` / `lint:css` as required gates
82
83
  - `xcuitest-test-`, `instrumentation-test-`, `xcodebuild`, `SwiftLint` as required handoffs
83
84
  - Go tool commands as required MCP delivery gates: `go test`, `go vet`, `golangci-lint`
84
- - Agent files: `playwright-test-*`, `xcuitest-test-*`, `instrumentation-test-*`, `integration-test-*`, `accessibility-reviewer`
85
+ - Agent files: `playwright-test-*`, `xcuitest-test-*`, `instrumentation-test-*`, `integration-test-*`, `accessibility-reviewer`, `mockup-reviewer`, `ux-designer`
86
+ - Required `skills/ux-design`, required `rules/ux-design`, or required pipeline handoff stem `ux-design`
85
87
 
86
88
  Required instead: package-manager–discovered typecheck/test (`mcp-ts-tooling`, `post-change-test`); Phase 1 gates `build-verifier` + `security-reviewer`.
87
89
 
@@ -0,0 +1,110 @@
1
+ ---
2
+ description: Behavioral UX design checklist (IA, flows, states). On-demand — load via task-analyst / skill ux-design.
3
+ paths:
4
+ - .claude/commands/**/*
5
+ - .claude/team/**/*
6
+ ---
7
+
8
+ <!-- shared-core: review/ux-design.md -->
9
+
10
+ # UX design checklist
11
+
12
+ On-demand behavioral UX checklist (IA, named flows, state matrix). **Procedure:** skill `ux-design`. **Producer:** `task-analyst` (not a pipeline agent). Do not inline this checklist into the analyst prompt.
13
+
14
+ Stack-agnostic: no app-source globs, Playwright, or `xcodebuild`. Form-factor **examples** live in adapter **Stack notes** only.
15
+
16
+ ## When to load
17
+
18
+ - Standalone `/task` intent `ux-design` (modes `synthesize` | `review`; profile `light`; steps only `task-analyst`)
19
+ - Embedded on a UI-capable stack when **required-signal** or advisory UI AC fires on `feature` / `refactor` / `spike` / `spec-gen`
20
+ - Required-signal (any one): the user asked for UX, **or** AC explicitly require flows/states, **or** intent is `spec-gen` / `/spec-start` for a **page/feature**. Else **advisory** (notes only; skip if no UI surface)
21
+ - **Do not** load for backend-only AC even on a UI stack. Classify `mockup-review` (Figma) before `ux-design` before `review-only`
22
+
23
+ ## Inputs
24
+
25
+ 1. Task `artifact-manifest.json`, then prompt / `brief.md` / `decomposition.md` when present
26
+ 2. Skill `ux-design` + this rule
27
+ 3. Approved `docs/specs` only as product-behavior SoT **after** UX synthesis maps via Spec feed — do not write INDEX here
28
+
29
+ ## Forbidden Figma MCP
30
+
31
+ Do **not** call Figma MCP. Only `mockup-reviewer` reads Figma. Forbidden by name: `get_metadata`, `get_design_context`, `get_screenshot`, `search_design_system`, `get_variable_defs`, `use_figma`, `create_new_file`, `generate_*`.
32
+
33
+ When `figma.com` is present and required-signal fires, emit a **thin** `ux-design.md` from AC only (IA/flows the mockup must cover; no visual or DS claims). If the user only pasted a URL and AC are visual, the UX file may be omitted; `mockup-review.md` coverage stands.
34
+
35
+ Do **not** write BMAD-style `DESIGN.md` or a second visual spine. One experience artifact: `ux-design.md`.
36
+
37
+ ## Modes
38
+
39
+ | Mode | When |
40
+ |------|------|
41
+ | `synthesize` | Design UX from a brief/AC (standalone «разработай UX» / embedded required-signal) | <!-- i18n-keep: E4 -->
42
+ | `review` | Critique a brief/wireframe/description **without** Figma («ревью UX»). Figma + review-not-implement remains intent `mockup-review` | <!-- i18n-keep: E4 -->
43
+
44
+ ## Required vs advisory
45
+
46
+ - **Required** when required-signal fires (user-asked-ux / ac-requires-flows-states / spec-gen-page-feature)
47
+ - **Advisory** otherwise (UI AC without those signals). Advisory `INCOMPLETE` → notes only; DoR may complete
48
+ - Skip the skill when there is no UI surface or the prompt is empty of UX-relevant AC
49
+
50
+ ## Verdicts
51
+
52
+ `PASS` | `PASS_WITH_NOTES` | `INCOMPLETE`. Never copy the mockup FAIL-only hook (`changes_requested` + do-not-retry-developer). Incomplete UX is an analyst/DoR problem.
53
+
54
+ | Verdict | Required step | Advisory step | Standalone intent `ux-design` |
55
+ |---------|---------------|---------------|-------------------------------|
56
+ | `PASS` / `PASS_WITH_NOTES` | Analysis may complete DoR | Analysis may complete | `completed` |
57
+ | `INCOMPLETE` | DoR **not** met: `open_questions` / blocked analysis; existing `after:task-analyst` gate | Notes only; DoR may complete | `completed` (report-only) |
58
+
59
+ **Block (`INCOMPLETE` as DoR failure) only when the step was required and primary flows *or* the empty/error/loading matrix are missing.** Isolated missing microcopy or optional protagonist names never block.
60
+
61
+ ## Surface-closure
62
+
63
+ Each stated need → a surface; each surface → a flow that lands there. If closure fails, list probes under **Open probes** — **do not invent** screens, flows, or copy to fill gaps.
64
+
65
+ ## Spec feed
66
+
67
+ Analyst remains the **only** writer of `docs/specs` INDEX and page/feature files. Map `ux-design.md` → templates **after** UX synthesis (UX before `spec-authoring` author mode):
68
+
69
+ | `ux-design.md` heading | Page template | Feature template |
70
+ |------------------------|---------------|------------------|
71
+ | Scope + IA | **Overview** | **Overview** |
72
+ | Entry / actors | **Entry / actors** | — (page-level) |
73
+ | Primary flows | **Primary flows** | **Shared behavior / constraints** when a flow is cross-page |
74
+ | States | **States** (loading/empty/error/success) | **Cross-cutting states** when shared |
75
+ | Interaction notes + microcopy direction | Inform **Acceptance criteria**; leftover → **Edge cases** | Shared constraints |
76
+ | Accessibility floor (behavioral) | Testable AC without pixels; else Edge cases | Shared constraints |
77
+ | Surface-closure probes | Analyst `open_questions` — **do not** invent spec rows | Same |
78
+
79
+ ## Manifest
80
+
81
+ When produced, append `ux-design.md` to the **`analysis`** entry `authoritativePaths` and `evidencePaths`. Do **not** add a new default producer row for v1 (`ux-designer` is deferred).
82
+
83
+ ## Report headings
84
+
85
+ Write `ux-design.md` with these headings (must match the architecture artifact contract):
86
+
87
+ ```markdown
88
+ # UX design: <slug>
89
+ ## Mode
90
+ synthesize | review
91
+ ## Verdict
92
+ PASS | PASS_WITH_NOTES | INCOMPLETE
93
+ ## Scope
94
+ - Form factor: web | ios | android | mixed
95
+ - Figma present: yes | no
96
+ - Required-signal: user-asked-ux | ac-requires-flows-states | spec-gen-page-feature | advisory
97
+ ## Information architecture
98
+ ## Entry / actors
99
+ ## Primary flows
100
+ ## States
101
+ ## Interaction notes
102
+ ## Microcopy direction
103
+ ## Accessibility floor (behavioral)
104
+ ## Spec feed
105
+ ## Open probes
106
+ ```
107
+
108
+ ## Stack notes
109
+
110
+ Form-factor **web**: browser chrome, responsive layout, pointer + keyboard. Do not FAIL on exact pixels; name surfaces (page, modal, drawer) as in the product.
@@ -5,6 +5,8 @@
5
5
  | Skill | When to use |
6
6
  |-------|-------------|
7
7
  | `feature-delivery` | End-to-end feature work across types, API, store, UI, tests |
8
+ | `mockup-review` | Figma mockup review: DS, coverage, viewports (standalone or embedded) |
9
+ | `ux-design` | Behavioral UX synthesis/review via task-analyst (standalone or embedded; no Figma MCP) |
8
10
  | `code-review` | MR/diff review using project architecture and test standards |
9
11
  | `debug-investigation` | Reproducing and fixing bugs with root-cause evidence |
10
12
  | `ci-investigation` | Diagnosing and fixing failing CI checks on PRs/branches |
@@ -6,9 +6,13 @@ description: Delivers SvelteKit frontend features end-to-end across domain types
6
6
  # Feature Delivery
7
7
 
8
8
  1. Read task brief, acceptance criteria, and decomposition if present.
9
- 2. Read **`feature-delivery-workflow`** and **`reference-features`**follow layer order and mirror closest reference feature.
10
- 3. Add or update focused tests for changed behavior.
11
- 4. Validation from SvelteKit root: **invoke** **`post-change-lint`** after code edits (requestable, not always-on — but **must** when code changed). Pipeline: scoped lint OK if next step is `build-verifier`.
9
+ 2. If `docs/specs/INDEX.md` exists **or** brief/handoff lists approved generated specs, resolve via **`product-specs`** and treat approved specs as behavior SoT before layer work (soft-fail on miss do not invent behavior). If generation was requested but not yet approved, stop for human gate — do not implement against draft-only gaps.
10
+ 3. Read **`feature-delivery-workflow`** and **`reference-features`** follow layer order and mirror closest reference feature.
11
+ 4. Add or update focused tests for changed behavior.
12
+ 5. Validation from SvelteKit root: **invoke** **`post-change-lint`** after code edits (requestable, not always-on — but **must** when code changed). Pipeline: scoped lint OK if next step is `build-verifier`.
13
+
14
+ - If the prompt or brief contains a `figma.com` URL, load requestable skill `mockup-review` and do not start UI work until the mockup-reviewer step is completed or the user continued past FAIL/`BLOCKED_MCP`.
15
+ - When required-signal (user asked UX, AC require flows/states, or spec-gen page/feature) and **no** `figma.com` URL: `ux-design.md` must exist on the analysis manifest entry (verdict not `INCOMPLETE`) before UI work. If missing, **blocked** — hand back to `task-analyst`. Parallel to the mockup gate when Figma exists.
12
16
 
13
17
  ## Scope discipline
14
18
 
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: mockup-review
3
+ description: Reviews a Figma mockup for design-system compliance, feature coverage, and viewport matrix via Figma MCP. Use for standalone mockup-review intent or when a feature/refactor/spike/spec-gen task includes a figma.com URL.
4
+ ---
5
+
6
+ # Mockup review
7
+
8
+ Requestable procedure for agent `mockup-reviewer`. Checklist lives in rule `mockup-review` — do not duplicate it here.
9
+
10
+ ## When to run
11
+
12
+ - Standalone `/task` intent `mockup-review` (report-only; profile `light`; steps only `mockup-reviewer`).
13
+ - Embedded: `feature` / `refactor` / `spike` / `spec-gen` whose prompt or `brief.md` contains a `figma.com` URL on a UI stack — after `task-analyst` (when present), before architect and developer.
14
+
15
+ ## MCP OAuth preflight
16
+
17
+ Confirm Figma MCP is configured (see `MCP.md`). Do not ship secrets. If MCP is down or auth fails, write `mockup-review.md` with verdict `BLOCKED_MCP` and receipt `blocked`. Do not invent DS claims. Embedded skip-forward is `/task-continue` (explicit «proceed without MCP»).
18
+
19
+ ## Plugin skills
20
+
21
+ If plugin skills `figma-design-to-code` / `figma-use` are installed, load them for MCP invocation recipes; do not paste their bodies; do not run design-to-code. Preset owns the checklist, agent, and routing; plugin owns MCP recipes.
22
+
23
+ ## Load the checklist
24
+
25
+ Load requestable rule `mockup-review` and follow its review dimensions, node caps, and report headings.
26
+
27
+ ## Output
28
+
29
+ Write `.claude/team/tasks/<slug>/mockup-review.md` and upsert manifest entry id `mockup-review` (producer `mockup-reviewer`). Receipt mapping is in the agent prompt.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: spec-authoring
3
+ description: Author or bootstrap consumer docs/specs (INDEX, page/feature templates, frontmatter v1). Use with task-analyst author mode, /spec-start, or when brief AC requests Generate/Bootstrap.
4
+ ---
5
+
6
+ # Spec authoring
7
+
8
+ Requestable — not always-on. Load **`product-specs`** + **`product-specs-authoring`** first.
9
+
10
+ ## Steps
11
+
12
+ 1. **Resolve mode** — Generate (tree exists) vs Bootstrap (create INDEX + templates + first spec). Refuse inventing INDEX without explicit intent/AC/`/spec-start`.
13
+ 2. **Ensure templates** — if consumer `docs/specs/_templates/` missing, copy from package SoT `presets/_shared/assets/docs-specs/_templates/` (or seeded init assets).
14
+ 3. **Fill frontmatter v1** — all array keys present (may be `[]`); prefer `type: feature` on backend/MCP; default `status: draft`.
15
+ 4. **Fill required body headings** — page: Overview, Entry/actors, Primary flows, States, Acceptance criteria; feature: Overview, Shared behavior/constraints, Related pages. Use `N/A` explicitly when needed.
16
+ 5. **Update INDEX** in the **same change set** (columns: id, type, domain, title, path, optional routes/aliases/status).
17
+ 6. **Self-check** against `product-specs-authoring` checklist; put blockers in `open_questions`.
18
+ 7. **Handoff** — list created/updated paths + INDEX diff for human gate (`after:task-analyst`). Approve before feature-developer.
19
+
20
+ ## Sources
21
+
22
+ Cite AC / user / Figma / labeled code inference. Do not invent product behavior.
23
+
24
+ ## mcp-ts
25
+
26
+ Analyst-only path (no tech-writer). `routes` = tool names; `ui`/`store` = `[]`.
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: ux-design
3
+ description: Behavioral UX synthesis and review for task-analyst. Modes synthesize|review. Standalone intent ux-design or embedded required-signal / advisory UI AC. No Figma MCP; no DESIGN.md.
4
+ ---
5
+
6
+ # UX design
7
+
8
+ Requestable procedure for **task-analyst** (not a pipeline agent). Checklist lives in rule `ux-design` — do not duplicate it here.
9
+
10
+ **Not** a Figma workflow: do not call Figma MCP; do not write `DESIGN.md`. Visual/DS/viewport audit stays with `mockup-reviewer` / skill `mockup-review`.
11
+
12
+ ## When to run
13
+
14
+ - Standalone `/task` intent `ux-design` (report-only; profile `light`; steps only `task-analyst`; modes `synthesize` | `review`; `humanGates: []`).
15
+ - Embedded: `feature` / `refactor` / `spike` / `spec-gen` on a UI stack when required-signal or advisory UI AC fires — inside the analyst step (no new pipeline agent). Required-signal: user asked UX, or AC require flows/states, or spec-gen page/feature.
16
+
17
+ ## Modes
18
+
19
+ - `synthesize` — elicit IA, named primary flows, empty/error/loading matrix from the brief/AC.
20
+ - `review` — critique a brief/wireframe/description **without** Figma. A `figma.com` URL with review-not-implement language is intent `mockup-review`, not this skill.
21
+
22
+ ## Order
23
+
24
+ UX synthesis **before** skill `spec-authoring` / author mode when both apply. Analyst remains the only INDEX writer. Map headings via the rule's Spec feed table; do not paste the whole UX file into `docs/specs`.
25
+
26
+ ## Forbidden Figma MCP
27
+
28
+ Do not call `get_metadata`, `get_design_context`, `get_screenshot`, `search_design_system`, `get_variable_defs`, `use_figma`, `create_new_file`, `generate_*`. Only `mockup-reviewer` reads Figma.
29
+
30
+ ## Load the checklist
31
+
32
+ Load requestable rule `ux-design` and follow its required-signal vs advisory rules, forbidden MCP list, verdicts, surface-closure, and report headings.
33
+
34
+ ## Output
35
+
36
+ Write `.claude/team/tasks/<slug>/ux-design.md` and append that path to the **`analysis`** manifest entry (`authoritativePaths` / `evidencePaths`). Do **not** create a new producer row. Receipt stays on `analysis`: required `INCOMPLETE` (missing primary flows or empty/error/loading matrix) → DoR not met; advisory `INCOMPLETE` → notes only. Never copy the mockup FAIL-only hook.
@@ -25,7 +25,7 @@
25
25
  "id": "analysis",
26
26
  "producer": "task-analyst",
27
27
  "status": "completed",
28
- "authoritativePaths": ["brief.md", "decomposition.md"],
28
+ "authoritativePaths": ["brief.md", "decomposition.md", "ux-design.md"],
29
29
  "acceptanceCriteriaIds": ["AC-1", "AC-2"],
30
30
  "taskIds": ["T1", "T2"],
31
31
  "timestamps": {
@@ -36,7 +36,7 @@
36
36
  "receipt": {
37
37
  "outcome": "completed",
38
38
  "summary": "The acceptance criteria and implementation tasks are ready.",
39
- "evidencePaths": ["brief.md", "decomposition.md"]
39
+ "evidencePaths": ["brief.md", "decomposition.md", "ux-design.md"]
40
40
  }
41
41
  },
42
42
  {
@@ -56,6 +56,24 @@
56
56
  "summary": "Implementation and focused unit coverage are complete.",
57
57
  "evidencePaths": ["implementation.md"]
58
58
  }
59
+ },
60
+ {
61
+ "id": "mockup-review",
62
+ "producer": "mockup-reviewer",
63
+ "status": "completed",
64
+ "authoritativePaths": ["mockup-review.md"],
65
+ "acceptanceCriteriaIds": ["AC-4", "AC-5", "AC-6", "AC-7", "AC-8"],
66
+ "taskIds": [],
67
+ "timestamps": {
68
+ "createdAt": "2026-07-31T12:05:30.000Z",
69
+ "updatedAt": "2026-07-31T12:05:45.000Z",
70
+ "completedAt": "2026-07-31T12:05:45.000Z"
71
+ },
72
+ "receipt": {
73
+ "outcome": "completed",
74
+ "summary": "Mockup review completed with verdict PASS_WITH_NOTES.",
75
+ "evidencePaths": ["mockup-review.md"]
76
+ }
59
77
  }
60
78
  ]
61
79
  }
@@ -0,0 +1,17 @@
1
+ {
2
+ "slug": "example-feature-with-figma",
3
+ "intent": "feature",
4
+ "profile": "full",
5
+ "summary": "Feature with Figma mockup URL — mockup-reviewer after analyst, before architect and developer",
6
+ "steps": [
7
+ { "agent": "task-analyst", "label": "Clarify and decompose" },
8
+ { "agent": "mockup-reviewer", "label": "Figma mockup review", "model": "strong" },
9
+ { "agent": "solution-architect", "label": "Design boundaries", "model": "strong" },
10
+ { "agent": "feature-developer", "label": "Implement" },
11
+ { "agent": "build-verifier", "label": "Validation gate", "model": "cheap" },
12
+ { "agent": "code-reviewer", "label": "Code review", "model": "cheap" }
13
+ ],
14
+ "humanGates": ["after:task-analyst"],
15
+ "autoChain": true,
16
+ "skipped": []
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "slug": "example-feature-with-ux-no-figma",
3
+ "intent": "feature",
4
+ "profile": "standard",
5
+ "summary": "Feature with required-signal UX and no Figma URL — task-analyst loads skill ux-design; no mockup-reviewer step",
6
+ "steps": [
7
+ { "agent": "task-analyst", "label": "Clarify, UX design, decompose" },
8
+ { "agent": "feature-developer", "label": "Implement" },
9
+ { "agent": "build-verifier", "label": "Validation gate", "model": "cheap" },
10
+ { "agent": "code-reviewer", "label": "Code review", "model": "cheap" }
11
+ ],
12
+ "humanGates": ["after:task-analyst"],
13
+ "autoChain": true,
14
+ "skipped": [
15
+ { "agent": "mockup-reviewer", "reason": "No figma.com URL; analyst skill ux-design covers behavioral UX" }
16
+ ]
17
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "slug": "example-mockup-fail-gate",
3
+ "state": "awaiting_approval",
4
+ "currentAgent": "mockup-reviewer",
5
+ "awaitingHumanGate": true,
6
+ "retryAfterFix": null,
7
+ "note": "Embedded mockup FAIL: hook must NOT set retryAfterFix to feature-developer. Resume only via /task-continue."
8
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "slug": "example-mockup-review-standalone",
3
+ "intent": "mockup-review",
4
+ "profile": "light",
5
+ "summary": "Standalone Figma mockup review (report-only)",
6
+ "steps": [
7
+ { "agent": "mockup-reviewer", "label": "Figma mockup review", "model": "strong" }
8
+ ],
9
+ "humanGates": [],
10
+ "autoChain": true,
11
+ "skipped": [
12
+ { "agent": "feature-developer", "reason": "Standalone mockup-review is report-only" }
13
+ ]
14
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "slug": "example-ux-design-standalone",
3
+ "intent": "ux-design",
4
+ "profile": "light",
5
+ "summary": "Standalone behavioral UX design (analyst + skill ux-design; report-only; no developer)",
6
+ "steps": [
7
+ { "agent": "task-analyst", "label": "UX design (skill ux-design)" }
8
+ ],
9
+ "humanGates": [],
10
+ "autoChain": true,
11
+ "skipped": [
12
+ { "agent": "feature-developer", "reason": "Standalone ux-design is report-only" },
13
+ { "agent": "mockup-reviewer", "reason": "No figma.com URL; not a mockup review" }
14
+ ]
15
+ }
@@ -27,7 +27,7 @@ When copying next pipeline templates: put Playwright / XCUITest / integration-te
27
27
  | feature-developer | yes (Kotlin/Android sources) |
28
28
  | build-verifier | no (report only) |
29
29
  | debugger, ci-investigator | minimal |
30
- | code-reviewer, accessibility-reviewer, security-reviewer, performance-auditor | team only |
30
+ | code-reviewer, accessibility-reviewer, security-reviewer, performance-auditor, mockup-reviewer | team only |
31
31
  | qa-tester, unit-test-*, instrumentation-test-* | tests only |
32
32
  | tech-writer | docs only |
33
33
 
@@ -37,7 +37,7 @@ When copying next pipeline templates: put Playwright / XCUITest / integration-te
37
37
  |------|------------|----------------|
38
38
  | **cheap** | `fast` / cheap | build-verifier, some generators/healers |
39
39
  | **standard** | `inherit` | feature-developer, debugger, ci-investigator, a11y, qa, unit-*, instrumentation-* |
40
- | **strong** | `strong` | solution-architect, security-reviewer (when scheduled) |
40
+ | **strong** | `strong` | solution-architect, security-reviewer, mockup-reviewer (when scheduled) |
41
41
 
42
42
  ## Pipeline schema
43
43
 
@@ -46,6 +46,12 @@ When validating **android-kotlin preset** changes (or `scope: preset-structure-v
46
46
  13. **AC-11 vendor neutrality:** no private consumer repo names, brand/product vendor strings, or org-specific type names in `presets/{cursor,claude}/android-kotlin/**`.
47
47
  14. Prefer `yarn check:preset-structure` (twin-map + token-budget + leakage + i18n).
48
48
 
49
+
50
+ **mockup-reviewer (UI):** `agents/mockup-reviewer.md` and `skills/mockup-review/` must exist (Cursor + Claude). Missing → **FAIL**. Backend stacks must **not** ship that agent file or a required `mockup-reviewer` chain handoff → **FAIL** if present.
51
+
52
+ **ux-design (UI):** `skills/ux-design/` and requestable rule `ux-design` (`ux-design.mdc` / `tooling-and-review/ux-design.md`) must exist (Cursor + Claude). Missing → **FAIL**. Do **not** require `agents/ux-designer.md`. Backend stacks must **not** ship that agent file or a required `ux-design` skill/rule/handoff → **FAIL** if present.
53
+
54
+
49
55
  ### Soft rules
50
56
 
51
57
  - Thin aliases (`agent-team-intake`, `technical-retro`) may be &lt;15 body lines; domain rules ≥15.
@@ -65,3 +71,6 @@ Write the owned validation receipt (`completed` or `validation_failed`). Do not
65
71
  - **Owned outputs:** `validation-report.md`; upsert only the assigned manifest entry; preserve foreign entries.
66
72
  - **Terminal receipt:** cover applicable AC/task IDs; emit `completed` or `validation_failed`.
67
73
  - **Shared state:** never mutate `status.json` or `metrics.json`.
74
+
75
+ 13. **Product-specs assets (FAIL):** package must ship `presets/_shared/assets/docs-specs/INDEX.md`, `_templates/page.md`, `_templates/feature.md`. Cursor+Claude twins for `product-specs` and `product-specs-authoring` must embed matching shared-core markers; both stems **requestable** (`alwaysApply: false` / Claude `paths: docs/specs/**`) — never session-start.
76
+ 14. **Optional consumer check (WARN default):** `scripts/check-product-specs.sh` + schema stub may exist for opt-in consumer CI; **FAIL** only with `--strict` or AC that requires named specs — do not force consumer CI.
@@ -18,6 +18,8 @@ Apply the **`code-review` skill** and `code-review-mr.mdc` checklist. Also weigh
18
18
 
19
19
  ## Review focus (Android)
20
20
 
21
+ - If the MR touches `docs/specs/**`, load **`product-specs`** (+ **`product-specs-authoring`** when new/changed specs): **WARN** code/spec drift; **FAIL** broken INDEX `path` link or missing required frontmatter keys/arrays on touched spec files; required body headings missing → **FAIL** on touched files. Do not invent missing product behavior.
22
+
21
23
  - **Layers:** View does not call API / know DTO; ViewModel does not depend on Data implementations; Domain has no Jetpack Compose/Android View system; Data does not pull Presentation.
22
24
  - **DI / modules:** composition root in `applications/`; protocol-based dependencies; no deep-imports across Features; Gradle modules public API when relevant (`module-public-api.mdc`).
23
25
  - **Kotlin concurrency:** `main-safe / viewModelScope` on UI surfaces; typed errors; no unjustified `!!`; Task cancellation where needed (`kotlin-conventions.mdc`).
@@ -55,6 +55,19 @@ Emit the owned implementation receipt with outcome `completed`. Handoff by layer
55
55
 
56
56
  - When writing or changing code, load / follow rule `anti-sycophancy-discipline`.
57
57
 
58
+ ## UX design (behavioral)
59
+
60
+ Read order when present: manifest → `brief.md` / `decomposition.md` → **`ux-design.md`** (when listed on `analysis`) → approved `docs/specs` (behavior SoT) → **`mockup-review.md`** when Figma was in scope → `architecture.md`.
61
+
62
+ If required-signal fired (user asked UX, AC require flows/states, or spec-gen page/feature) and there is **no** `figma.com` URL, and `ux-design.md` is absent or verdict `INCOMPLETE` without user continue → emit **`blocked`** and hand back to `task-analyst`. Do not invent flows/states. Advisory / no UI AC / Figma-only visual tweak with mockup PASS → proceed from brief + mockup-review; do not demand a UX file.
63
+
64
+ ## Product specs (docs/specs)
65
+
66
+ When work touches a page/feature/route/alias: if `docs/specs/INDEX.md` exists (or brief lists approved specs), load **`product-specs`** and treat **approved** specs from brief/handoff as **behavior SoT**. Soft-fail on miss (`open_questions` + code / `.ai/context` fallback); **never invent** product behavior.
67
+
68
+ Mechanical INDEX/frontmatter fixes only when implementation renames routes/ids. Substantive behavior edits → hand back to task-analyst (or tech-writer where present). If INDEX is absent and generation was not approved, treat specs as optional (greenfield).
69
+
70
+
58
71
  ## Artifact contract
59
72
 
60
73
  - **Authoritative inputs:** read `.cursor/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for `brief.md`, `decomposition.md`, current scope, and applicable prior findings.
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: mockup-reviewer
3
+ description: Figma mockup review specialist. Audits design-system usage, tokens, mockup quality, feature coverage, and viewport matrix. Writes mockup-review.md only; never edits production code or Figma.
4
+ readonly: false
5
+ model: claude-opus-4-8[effort=high]
6
+ ---
7
+
8
+ You are a Figma mockup reviewer for an Android Kotlin / Jetpack Compose frontend.
9
+
10
+ You write **only** `.cursor/team/tasks/<slug>/mockup-review.md` (and the owned manifest receipt). Never edit production code, `packages/**`, app sources, or Figma (no `use_figma` writes).
11
+
12
+ ## Inputs
13
+
14
+ 1. `.cursor/team/tasks/<slug>/artifact-manifest.json`.
15
+ 2. Prompt Figma URL(s); `brief.md` / `decomposition.md` when present.
16
+ 3. Requestable skill `mockup-review` and rule `mockup-review` (core checklist — do not inline it here).
17
+ 4. If plugin skills `figma-use` / `figma-design-to-code` are installed: **reference** them for URL parse and MCP invocation only — do not copy their bodies; do not run design-to-code.
18
+
19
+ ## MCP tools
20
+
21
+ **Required when MCP is up:** `get_metadata`, `get_design_context`, `search_design_system`, `get_variable_defs`, `get_screenshot`.
22
+
23
+ **Optional:** `get_libraries`, `get_code_connect_map`.
24
+
25
+ **Forbidden:** `use_figma`, `create_new_file`, `generate_*`, `weave_*`, `upload_assets`, `send_code_connect_mappings`. FigJam URL → `BLOCKED_MCP`.
26
+
27
+ Cite `fileKey` + node IDs. Screenshot is supporting evidence, not a second reviewer.
28
+
29
+ **Node caps:** ≤12 screen-level frames; `get_metadata` depth ≤3; ≤3 screenshots (prefer one per small/medium/large). `search_design_system` once; `get_variable_defs` once per file. Unbounded file without a frame link → `BLOCKED_MCP` (do not dump the whole file).
30
+
31
+ MCP unavailable or OAuth fail → verdict `BLOCKED_MCP`. Do not invent DS claims.
32
+
33
+ ## Review dimensions
34
+
35
+ Follow the requestable `mockup-review` checklist (DS components, tokens, quality, coverage, viewports). Do not duplicate that checklist here.
36
+
37
+ ## Output
38
+
39
+ Write `.cursor/team/tasks/<slug>/mockup-review.md` using the report headings in the `mockup-review` rule.
40
+
41
+ ## Verdicts and receipts
42
+
43
+ Report verdict: `PASS | PASS_WITH_NOTES | FAIL | BLOCKED_MCP`.
44
+
45
+ | Verdict | Standalone receipt | Embedded receipt | Artifact `status` |
46
+ |---------|--------------------|------------------|-------------------|
47
+ | `PASS` / `PASS_WITH_NOTES` | `completed` | `completed` | `completed` |
48
+ | `FAIL` | `completed` (report-only, like `perf-audit`) | `changes_requested` | `blocked` |
49
+ | `BLOCKED_MCP` | `blocked` | `blocked` | `blocked` |
50
+
51
+ Standalone FAIL must **not** set `changes_requested`. Embedded FAIL is a FAIL-only hook gate — resume **only** via `/task-continue` (hook must not `scheduleRetry('feature-developer')`).
52
+
53
+ ## Artifact contract
54
+
55
+ - **Authoritative inputs:** read `.cursor/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for routing + analysis when present (standalone may have only the prompt + URL).
56
+ - **Owned outputs:** `mockup-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `mockup-review`) and preserve all foreign entries.
57
+ - **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed`, `changes_requested`, or `blocked` per the table above. Bind it to the supplied `attemptId` when present.
58
+ - **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
59
+
60
+ Do not modify production code or tests.