@bonesofspring/ai-rules 0.2.12 → 0.2.14

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 (660) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +6 -2
  3. package/bin/cli.js +4 -0
  4. package/package.json +1 -1
  5. package/presets/_shared/README.md +1 -1
  6. package/presets/_shared/core/agent-team/agent-artifact-contracts.md +114 -0
  7. package/presets/_shared/core/agent-team/agent-team-orchestrator.md +64 -5
  8. package/presets/_shared/core/meta/preset-layering.md +1 -1
  9. package/presets/_shared/core/meta/preset-no-cross-stack-leakage.md +15 -1
  10. package/presets/_shared/core/meta/preset-pr-checklist.md +1 -1
  11. package/presets/_shared/core/meta/preset-twin-sync.md +4 -0
  12. package/presets/claude/go/agents/build-verifier.md +10 -3
  13. package/presets/claude/go/agents/code-reviewer.md +8 -1
  14. package/presets/claude/go/agents/feature-developer.md +8 -1
  15. package/presets/claude/go/agents/task-analyst.md +8 -1
  16. package/presets/claude/go/agents/task-router.md +33 -5
  17. package/presets/claude/go/commands/task.md +8 -6
  18. package/presets/claude/go/hooks/chain-team-phases.sh +195 -53
  19. package/presets/claude/go/rules/tooling-and-review/agent-team-orchestrator.md +30 -5
  20. package/presets/claude/go/rules/tooling-and-review/preset-layering.md +2 -1
  21. package/presets/claude/go/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
  22. package/presets/claude/go/rules/tooling-and-review/preset-pr-checklist.md +2 -1
  23. package/presets/claude/go/rules/tooling-and-review/preset-token-budget.md +1 -0
  24. package/presets/claude/go/rules/tooling-and-review/preset-twin-sync.md +5 -0
  25. package/presets/claude/go/team/README.md +13 -2
  26. package/presets/claude/ios-swift/agents/build-verifier.md +10 -3
  27. package/presets/claude/ios-swift/agents/code-reviewer.md +9 -14
  28. package/presets/claude/ios-swift/agents/feature-developer.md +8 -1
  29. package/presets/claude/ios-swift/agents/task-analyst.md +8 -1
  30. package/presets/claude/ios-swift/agents/task-router.md +31 -3
  31. package/presets/claude/ios-swift/commands/task.md +8 -6
  32. package/presets/claude/ios-swift/hooks/chain-team-phases.sh +177 -54
  33. package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-orchestrator.md +33 -2
  34. package/presets/claude/ios-swift/rules/tooling-and-review/preset-layering.md +2 -1
  35. package/presets/claude/ios-swift/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
  36. package/presets/claude/ios-swift/rules/tooling-and-review/preset-pr-checklist.md +2 -1
  37. package/presets/claude/ios-swift/rules/tooling-and-review/preset-token-budget.md +1 -0
  38. package/presets/claude/ios-swift/rules/tooling-and-review/preset-twin-sync.md +5 -0
  39. package/presets/claude/ios-swift/team/README.md +13 -2
  40. package/presets/claude/java/agents/build-verifier.md +9 -2
  41. package/presets/claude/java/agents/code-reviewer.md +8 -1
  42. package/presets/claude/java/agents/feature-developer.md +8 -1
  43. package/presets/claude/java/agents/task-analyst.md +8 -1
  44. package/presets/claude/java/agents/task-router.md +31 -3
  45. package/presets/claude/java/commands/task.md +8 -6
  46. package/presets/claude/java/hooks/chain-team-phases.sh +195 -53
  47. package/presets/claude/java/rules/tooling-and-review/agent-team-orchestrator.md +30 -5
  48. package/presets/claude/java/rules/tooling-and-review/preset-layering.md +2 -1
  49. package/presets/claude/java/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
  50. package/presets/claude/java/rules/tooling-and-review/preset-pr-checklist.md +2 -1
  51. package/presets/claude/java/rules/tooling-and-review/preset-token-budget.md +1 -0
  52. package/presets/claude/java/rules/tooling-and-review/preset-twin-sync.md +5 -0
  53. package/presets/claude/java/team/README.md +13 -2
  54. package/presets/claude/mcp-ts/agents/build-verifier.md +10 -3
  55. package/presets/claude/mcp-ts/agents/feature-developer.md +7 -1
  56. package/presets/claude/mcp-ts/agents/task-analyst.md +8 -1
  57. package/presets/claude/mcp-ts/agents/task-router.md +33 -5
  58. package/presets/claude/mcp-ts/commands/task.md +8 -6
  59. package/presets/claude/mcp-ts/hooks/chain-team-phases.sh +181 -39
  60. package/presets/claude/mcp-ts/rules/tooling-and-review/agent-team-orchestrator.md +30 -5
  61. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-layering.md +2 -1
  62. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
  63. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-pr-checklist.md +2 -1
  64. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-token-budget.md +1 -0
  65. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-twin-sync.md +5 -0
  66. package/presets/claude/mcp-ts/team/README.md +13 -2
  67. package/presets/claude/next/agents/accessibility-reviewer.md +6 -12
  68. package/presets/claude/next/agents/api-contract-reviewer.md +6 -12
  69. package/presets/claude/next/agents/build-verifier.md +10 -14
  70. package/presets/claude/next/agents/ci-investigator.md +7 -13
  71. package/presets/claude/next/agents/code-reviewer.md +9 -14
  72. package/presets/claude/next/agents/debugger.md +6 -12
  73. package/presets/claude/next/agents/feature-developer.md +8 -1
  74. package/presets/claude/next/agents/migration-specialist.md +6 -12
  75. package/presets/claude/next/agents/performance-auditor.md +5 -11
  76. package/presets/claude/next/agents/qa-tester.md +6 -12
  77. package/presets/claude/next/agents/security-reviewer.md +6 -12
  78. package/presets/claude/next/agents/solution-architect.md +6 -12
  79. package/presets/claude/next/agents/task-analyst.md +10 -16
  80. package/presets/claude/next/agents/task-router.md +31 -3
  81. package/presets/claude/next/agents/tech-writer.md +6 -13
  82. package/presets/claude/next/agents/unit-test-generator.md +6 -10
  83. package/presets/claude/next/agents/unit-test-healer.md +6 -10
  84. package/presets/claude/next/agents/unit-test-planner.md +5 -11
  85. package/presets/claude/next/commands/task.md +8 -6
  86. package/presets/claude/next/hooks/chain-team-phases.sh +197 -54
  87. package/presets/claude/next/rules/tooling-and-review/agent-team-orchestrator.md +29 -4
  88. package/presets/claude/next/rules/tooling-and-review/preset-layering.md +2 -1
  89. package/presets/claude/next/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
  90. package/presets/claude/next/rules/tooling-and-review/preset-pr-checklist.md +2 -1
  91. package/presets/claude/next/rules/tooling-and-review/preset-token-budget.md +1 -0
  92. package/presets/claude/next/rules/tooling-and-review/preset-twin-sync.md +5 -0
  93. package/presets/claude/next/team/README.md +15 -3
  94. package/presets/claude/next/team/fixtures/artifact-manifest.example.json +61 -0
  95. package/presets/claude/next/team/fixtures/bugfix-standard.json +10 -0
  96. package/presets/claude/next/team/fixtures/feature-full.json +10 -0
  97. package/presets/claude/next/team/fixtures/feature-light.json +10 -0
  98. package/presets/claude/nuxt/CLAUDE.md +39 -0
  99. package/presets/claude/nuxt/MCP.md +16 -0
  100. package/presets/claude/nuxt/README.md +39 -0
  101. package/presets/claude/nuxt/REPO_AGENTS.md +49 -0
  102. package/presets/claude/nuxt/agents/README.md +199 -0
  103. package/presets/claude/nuxt/agents/accessibility-reviewer.md +59 -0
  104. package/presets/claude/nuxt/agents/api-contract-reviewer.md +63 -0
  105. package/presets/claude/nuxt/agents/build-verifier.md +89 -0
  106. package/presets/claude/nuxt/agents/ci-investigator.md +60 -0
  107. package/presets/claude/nuxt/agents/code-reviewer.md +62 -0
  108. package/presets/claude/nuxt/agents/codebase-analyzer.md +28 -0
  109. package/presets/claude/nuxt/agents/debugger.md +65 -0
  110. package/presets/claude/nuxt/agents/feature-developer.md +59 -0
  111. package/presets/claude/nuxt/agents/migration-specialist.md +67 -0
  112. package/presets/claude/nuxt/agents/performance-auditor.md +66 -0
  113. package/presets/claude/nuxt/agents/playwright-test-generator.md +75 -0
  114. package/presets/claude/nuxt/agents/playwright-test-healer.md +61 -0
  115. package/presets/claude/nuxt/agents/playwright-test-planner.md +67 -0
  116. package/presets/claude/nuxt/agents/qa-tester.md +54 -0
  117. package/presets/claude/nuxt/agents/security-reviewer.md +60 -0
  118. package/presets/claude/nuxt/agents/solution-architect.md +68 -0
  119. package/presets/claude/nuxt/agents/task-analyst.md +109 -0
  120. package/presets/claude/nuxt/agents/task-router.md +140 -0
  121. package/presets/claude/nuxt/agents/tech-writer.md +54 -0
  122. package/presets/claude/nuxt/agents/unit-test-generator.md +37 -0
  123. package/presets/claude/nuxt/agents/unit-test-healer.md +38 -0
  124. package/presets/claude/nuxt/agents/unit-test-planner.md +60 -0
  125. package/presets/claude/nuxt/commands/README.md +13 -0
  126. package/presets/claude/nuxt/commands/feature-continue.md +51 -0
  127. package/presets/claude/nuxt/commands/feature-start.md +30 -0
  128. package/presets/claude/nuxt/commands/task-continue.md +50 -0
  129. package/presets/claude/nuxt/commands/task.md +56 -0
  130. package/presets/claude/nuxt/commands/technical-retro.md +62 -0
  131. package/presets/claude/nuxt/hooks/README.md +14 -0
  132. package/presets/claude/nuxt/hooks/chain-team-phases.sh +723 -0
  133. package/presets/claude/nuxt/hooks/examples/README.md +18 -0
  134. package/presets/claude/nuxt/hooks/examples/format-edited.example.sh +11 -0
  135. package/presets/claude/nuxt/hooks/examples/secret-guard.example.sh +10 -0
  136. package/presets/claude/nuxt/hooks/examples/test-on-save.example.sh +8 -0
  137. package/presets/claude/nuxt/hooks/guard-shell-command.sh +77 -0
  138. package/presets/claude/nuxt/mcp.json +20 -0
  139. package/presets/claude/nuxt/rules/README.md +90 -0
  140. package/presets/claude/nuxt/rules/anti-hallucination/vue-nuxt-anti-hallucination.md +72 -0
  141. package/presets/claude/nuxt/rules/api-and-data/README.md +9 -0
  142. package/presets/claude/nuxt/rules/api-and-data/api-services.md +76 -0
  143. package/presets/claude/nuxt/rules/api-and-data/http-client.md +16 -0
  144. package/presets/claude/nuxt/rules/api-and-data/store-pinia.md +67 -0
  145. package/presets/claude/nuxt/rules/architecture/README.md +12 -0
  146. package/presets/claude/nuxt/rules/architecture/architecture-boundaries-ui.md +15 -0
  147. package/presets/claude/nuxt/rules/architecture/architecture-boundaries.md +98 -0
  148. package/presets/claude/nuxt/rules/architecture/feature-delivery-workflow.md +88 -0
  149. package/presets/claude/nuxt/rules/architecture/layer-barrel-exports.md +71 -0
  150. package/presets/claude/nuxt/rules/architecture/public-imports.md +60 -0
  151. package/presets/claude/nuxt/rules/architecture/reference-features.md +49 -0
  152. package/presets/claude/nuxt/rules/stack/README.md +12 -0
  153. package/presets/claude/nuxt/rules/stack/navigation-router-ui.md +14 -0
  154. package/presets/claude/nuxt/rules/stack/navigation-router.md +59 -0
  155. package/presets/claude/nuxt/rules/stack/no-type-assertion.md +61 -0
  156. package/presets/claude/nuxt/rules/stack/nuxt-app-core.md +43 -0
  157. package/presets/claude/nuxt/rules/stack/nuxt-pages-routing.md +39 -0
  158. package/presets/claude/nuxt/rules/stack/script-setup-conventions.md +12 -0
  159. package/presets/claude/nuxt/rules/stack/types-jsdoc.md +40 -0
  160. package/presets/claude/nuxt/rules/testing/README.md +11 -0
  161. package/presets/claude/nuxt/rules/testing/playwright-agents.md +78 -0
  162. package/presets/claude/nuxt/rules/testing/tests-e2e-structure.md +49 -0
  163. package/presets/claude/nuxt/rules/testing/tests-unit.md +75 -0
  164. package/presets/claude/nuxt/rules/tooling-and-review/README.md +15 -0
  165. package/presets/claude/nuxt/rules/tooling-and-review/agent-team-intake.md +15 -0
  166. package/presets/claude/nuxt/rules/tooling-and-review/agent-team-orchestrator.md +191 -0
  167. package/presets/claude/nuxt/rules/tooling-and-review/anti-sycophancy-discipline.md +33 -0
  168. package/presets/claude/nuxt/rules/tooling-and-review/code-quality.md +49 -0
  169. package/presets/claude/nuxt/rules/tooling-and-review/code-review-mr.md +63 -0
  170. package/presets/claude/nuxt/rules/tooling-and-review/design-guidance.md +114 -0
  171. package/presets/claude/nuxt/rules/tooling-and-review/package-manager.md +16 -0
  172. package/presets/claude/nuxt/rules/tooling-and-review/post-change-lint.md +43 -0
  173. package/presets/claude/nuxt/rules/tooling-and-review/preset-layering.md +32 -0
  174. package/presets/claude/nuxt/rules/tooling-and-review/preset-no-cross-stack-leakage.md +79 -0
  175. package/presets/claude/nuxt/rules/tooling-and-review/preset-pr-checklist.md +35 -0
  176. package/presets/claude/nuxt/rules/tooling-and-review/preset-token-budget.md +39 -0
  177. package/presets/claude/nuxt/rules/tooling-and-review/preset-twin-sync.md +50 -0
  178. package/presets/claude/nuxt/rules/tooling-and-review/security-nuxt.md +37 -0
  179. package/presets/claude/nuxt/rules/tooling-and-review/technical-retro.md +15 -0
  180. package/presets/claude/nuxt/rules/ui-and-accessibility/README.md +12 -0
  181. package/presets/claude/nuxt/rules/ui-and-accessibility/css-property-order.md +11 -0
  182. package/presets/claude/nuxt/rules/ui-and-accessibility/no-v-bind-spread.md +12 -0
  183. package/presets/claude/nuxt/rules/ui-and-accessibility/vue-a11y-coding.md +16 -0
  184. package/presets/claude/nuxt/rules/ui-and-accessibility/vue-ui.md +34 -0
  185. package/presets/claude/nuxt/skills/README.md +17 -0
  186. package/presets/claude/nuxt/skills/ci-investigation/SKILL.md +36 -0
  187. package/presets/claude/nuxt/skills/code-review/SKILL.md +38 -0
  188. package/presets/claude/nuxt/skills/debug-investigation/SKILL.md +32 -0
  189. package/presets/claude/nuxt/skills/feature-delivery/SKILL.md +34 -0
  190. package/presets/claude/nuxt/skills/playwright-e2e/SKILL.md +37 -0
  191. package/presets/claude/nuxt/skills/technical-retro/SKILL.md +54 -0
  192. package/presets/claude/nuxt/skills/unit-testing/SKILL.md +32 -0
  193. package/presets/claude/nuxt/skills/vue-performance/SKILL.md +53 -0
  194. package/presets/claude/nuxt/skills/write-adr/SKILL.md +41 -0
  195. package/presets/claude/nuxt/team/README.md +136 -0
  196. package/presets/claude/nuxt/team/conventions.md +21 -0
  197. package/presets/claude/nuxt/team/fixtures/artifact-manifest.example.json +61 -0
  198. package/presets/claude/nuxt/team/fixtures/bugfix-standard.json +25 -0
  199. package/presets/claude/nuxt/team/fixtures/feature-full.json +28 -0
  200. package/presets/claude/nuxt/team/fixtures/feature-light.json +27 -0
  201. package/presets/claude/nuxt/team/tasks/.gitkeep +1 -0
  202. package/presets/claude/php-hexagonal/agents/build-verifier.md +10 -3
  203. package/presets/claude/php-hexagonal/agents/code-reviewer.md +8 -1
  204. package/presets/claude/php-hexagonal/agents/feature-developer.md +8 -1
  205. package/presets/claude/php-hexagonal/agents/task-analyst.md +8 -1
  206. package/presets/claude/php-hexagonal/agents/task-router.md +31 -3
  207. package/presets/claude/php-hexagonal/commands/task.md +8 -6
  208. package/presets/claude/php-hexagonal/hooks/README.md +1 -1
  209. package/presets/claude/php-hexagonal/hooks/chain-team-phases.sh +195 -53
  210. package/presets/claude/php-hexagonal/rules/tooling-and-review/agent-team-orchestrator.md +30 -5
  211. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-layering.md +2 -1
  212. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
  213. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-pr-checklist.md +2 -1
  214. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-token-budget.md +1 -0
  215. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-twin-sync.md +5 -0
  216. package/presets/claude/php-hexagonal/team/README.md +13 -2
  217. package/presets/claude/php-laravel/agents/build-verifier.md +10 -3
  218. package/presets/claude/php-laravel/agents/code-reviewer.md +8 -1
  219. package/presets/claude/php-laravel/agents/feature-developer.md +8 -1
  220. package/presets/claude/php-laravel/agents/task-analyst.md +8 -1
  221. package/presets/claude/php-laravel/agents/task-router.md +31 -3
  222. package/presets/claude/php-laravel/commands/task.md +8 -6
  223. package/presets/claude/php-laravel/hooks/chain-team-phases.sh +195 -53
  224. package/presets/claude/php-laravel/rules/tooling-and-review/agent-team-orchestrator.md +30 -5
  225. package/presets/claude/php-laravel/rules/tooling-and-review/preset-layering.md +2 -1
  226. package/presets/claude/php-laravel/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
  227. package/presets/claude/php-laravel/rules/tooling-and-review/preset-pr-checklist.md +2 -1
  228. package/presets/claude/php-laravel/rules/tooling-and-review/preset-token-budget.md +1 -0
  229. package/presets/claude/php-laravel/rules/tooling-and-review/preset-twin-sync.md +5 -0
  230. package/presets/claude/php-laravel/team/README.md +13 -2
  231. package/presets/claude/svelte/CLAUDE.md +39 -0
  232. package/presets/claude/svelte/MCP.md +16 -0
  233. package/presets/claude/svelte/README.md +13 -0
  234. package/presets/claude/svelte/REPO_AGENTS.md +49 -0
  235. package/presets/claude/svelte/agents/README.md +199 -0
  236. package/presets/claude/svelte/agents/accessibility-reviewer.md +59 -0
  237. package/presets/claude/svelte/agents/api-contract-reviewer.md +63 -0
  238. package/presets/claude/svelte/agents/build-verifier.md +89 -0
  239. package/presets/claude/svelte/agents/ci-investigator.md +60 -0
  240. package/presets/claude/svelte/agents/code-reviewer.md +62 -0
  241. package/presets/claude/svelte/agents/codebase-analyzer.md +28 -0
  242. package/presets/claude/svelte/agents/debugger.md +65 -0
  243. package/presets/claude/svelte/agents/feature-developer.md +59 -0
  244. package/presets/claude/svelte/agents/migration-specialist.md +67 -0
  245. package/presets/claude/svelte/agents/performance-auditor.md +66 -0
  246. package/presets/claude/svelte/agents/playwright-test-generator.md +75 -0
  247. package/presets/claude/svelte/agents/playwright-test-healer.md +61 -0
  248. package/presets/claude/svelte/agents/playwright-test-planner.md +67 -0
  249. package/presets/claude/svelte/agents/qa-tester.md +54 -0
  250. package/presets/claude/svelte/agents/security-reviewer.md +60 -0
  251. package/presets/claude/svelte/agents/solution-architect.md +68 -0
  252. package/presets/claude/svelte/agents/task-analyst.md +109 -0
  253. package/presets/claude/svelte/agents/task-router.md +140 -0
  254. package/presets/claude/svelte/agents/tech-writer.md +54 -0
  255. package/presets/claude/svelte/agents/unit-test-generator.md +37 -0
  256. package/presets/claude/svelte/agents/unit-test-healer.md +38 -0
  257. package/presets/claude/svelte/agents/unit-test-planner.md +60 -0
  258. package/presets/claude/svelte/commands/README.md +13 -0
  259. package/presets/claude/svelte/commands/feature-continue.md +51 -0
  260. package/presets/claude/svelte/commands/feature-start.md +30 -0
  261. package/presets/claude/svelte/commands/task-continue.md +50 -0
  262. package/presets/claude/svelte/commands/task.md +56 -0
  263. package/presets/claude/svelte/commands/technical-retro.md +62 -0
  264. package/presets/claude/svelte/hooks/README.md +14 -0
  265. package/presets/claude/svelte/hooks/chain-team-phases.sh +723 -0
  266. package/presets/claude/svelte/hooks/examples/README.md +18 -0
  267. package/presets/claude/svelte/hooks/examples/format-edited.example.sh +13 -0
  268. package/presets/claude/svelte/hooks/examples/secret-guard.example.sh +10 -0
  269. package/presets/claude/svelte/hooks/examples/test-on-save.example.sh +14 -0
  270. package/presets/claude/svelte/hooks/guard-shell-command.sh +77 -0
  271. package/presets/claude/svelte/mcp.json +20 -0
  272. package/presets/claude/svelte/rules/README.md +90 -0
  273. package/presets/claude/svelte/rules/anti-hallucination/svelte-sveltekit-anti-hallucination.md +71 -0
  274. package/presets/claude/svelte/rules/api-and-data/README.md +9 -0
  275. package/presets/claude/svelte/rules/api-and-data/api-services.md +45 -0
  276. package/presets/claude/svelte/rules/api-and-data/http-client.md +17 -0
  277. package/presets/claude/svelte/rules/api-and-data/store-svelte.md +67 -0
  278. package/presets/claude/svelte/rules/architecture/README.md +12 -0
  279. package/presets/claude/svelte/rules/architecture/architecture-boundaries-ui.md +16 -0
  280. package/presets/claude/svelte/rules/architecture/architecture-boundaries.md +65 -0
  281. package/presets/claude/svelte/rules/architecture/feature-delivery-workflow.md +61 -0
  282. package/presets/claude/svelte/rules/architecture/layer-barrel-exports.md +73 -0
  283. package/presets/claude/svelte/rules/architecture/public-imports.md +43 -0
  284. package/presets/claude/svelte/rules/architecture/reference-features.md +50 -0
  285. package/presets/claude/svelte/rules/stack/README.md +12 -0
  286. package/presets/claude/svelte/rules/stack/navigation-router-ui.md +26 -0
  287. package/presets/claude/svelte/rules/stack/navigation-router.md +41 -0
  288. package/presets/claude/svelte/rules/stack/no-type-assertion.md +59 -0
  289. package/presets/claude/svelte/rules/stack/svelte-app-core.md +44 -0
  290. package/presets/claude/svelte/rules/stack/svelte-script-conventions.md +33 -0
  291. package/presets/claude/svelte/rules/stack/sveltekit-routing.md +40 -0
  292. package/presets/claude/svelte/rules/stack/types-jsdoc.md +42 -0
  293. package/presets/claude/svelte/rules/testing/README.md +11 -0
  294. package/presets/claude/svelte/rules/testing/playwright-agents.md +80 -0
  295. package/presets/claude/svelte/rules/testing/tests-e2e-structure.md +51 -0
  296. package/presets/claude/svelte/rules/testing/tests-unit.md +40 -0
  297. package/presets/claude/svelte/rules/tooling-and-review/README.md +15 -0
  298. package/presets/claude/svelte/rules/tooling-and-review/agent-team-intake.md +17 -0
  299. package/presets/claude/svelte/rules/tooling-and-review/agent-team-orchestrator.md +193 -0
  300. package/presets/claude/svelte/rules/tooling-and-review/anti-sycophancy-discipline.md +29 -0
  301. package/presets/claude/svelte/rules/tooling-and-review/code-quality.md +50 -0
  302. package/presets/claude/svelte/rules/tooling-and-review/code-review-mr.md +64 -0
  303. package/presets/claude/svelte/rules/tooling-and-review/design-guidance.md +110 -0
  304. package/presets/claude/svelte/rules/tooling-and-review/package-manager.md +17 -0
  305. package/presets/claude/svelte/rules/tooling-and-review/post-change-lint.md +44 -0
  306. package/presets/claude/svelte/rules/tooling-and-review/preset-layering.md +36 -0
  307. package/presets/claude/svelte/rules/tooling-and-review/preset-no-cross-stack-leakage.md +83 -0
  308. package/presets/claude/svelte/rules/tooling-and-review/preset-pr-checklist.md +39 -0
  309. package/presets/claude/svelte/rules/tooling-and-review/preset-token-budget.md +41 -0
  310. package/presets/claude/svelte/rules/tooling-and-review/preset-twin-sync.md +54 -0
  311. package/presets/claude/svelte/rules/tooling-and-review/security-sveltekit.md +41 -0
  312. package/presets/claude/svelte/rules/tooling-and-review/technical-retro.md +17 -0
  313. package/presets/claude/svelte/rules/ui-and-accessibility/README.md +12 -0
  314. package/presets/claude/svelte/rules/ui-and-accessibility/css-property-order.md +12 -0
  315. package/presets/claude/svelte/rules/ui-and-accessibility/no-rest-props-spread.md +32 -0
  316. package/presets/claude/svelte/rules/ui-and-accessibility/svelte-a11y-coding.md +28 -0
  317. package/presets/claude/svelte/rules/ui-and-accessibility/svelte-ui.md +38 -0
  318. package/presets/claude/svelte/skills/README.md +17 -0
  319. package/presets/claude/svelte/skills/ci-investigation/SKILL.md +36 -0
  320. package/presets/claude/svelte/skills/code-review/SKILL.md +38 -0
  321. package/presets/claude/svelte/skills/debug-investigation/SKILL.md +32 -0
  322. package/presets/claude/svelte/skills/feature-delivery/SKILL.md +34 -0
  323. package/presets/claude/svelte/skills/playwright-e2e/SKILL.md +37 -0
  324. package/presets/claude/svelte/skills/svelte-performance/SKILL.md +52 -0
  325. package/presets/claude/svelte/skills/technical-retro/SKILL.md +54 -0
  326. package/presets/claude/svelte/skills/unit-testing/SKILL.md +32 -0
  327. package/presets/claude/svelte/skills/write-adr/SKILL.md +41 -0
  328. package/presets/claude/svelte/team/README.md +136 -0
  329. package/presets/claude/svelte/team/conventions.md +21 -0
  330. package/presets/claude/svelte/team/fixtures/artifact-manifest.example.json +61 -0
  331. package/presets/claude/svelte/team/fixtures/bugfix-standard.json +25 -0
  332. package/presets/claude/svelte/team/fixtures/feature-full.json +28 -0
  333. package/presets/claude/svelte/team/fixtures/feature-light.json +27 -0
  334. package/presets/claude/svelte/team/tasks/.gitkeep +1 -0
  335. package/presets/cursor/go/agents/build-verifier.md +9 -2
  336. package/presets/cursor/go/agents/code-reviewer.md +8 -1
  337. package/presets/cursor/go/agents/feature-developer.md +8 -1
  338. package/presets/cursor/go/agents/task-analyst.md +8 -1
  339. package/presets/cursor/go/agents/task-router.md +31 -3
  340. package/presets/cursor/go/commands/task.md +8 -6
  341. package/presets/cursor/go/hooks/chain-team-phases.sh +195 -53
  342. package/presets/cursor/go/rules/agent-team-orchestrator.mdc +30 -5
  343. package/presets/cursor/go/rules/preset-layering.mdc +2 -1
  344. package/presets/cursor/go/rules/preset-no-cross-stack-leakage.mdc +16 -1
  345. package/presets/cursor/go/rules/preset-pr-checklist.mdc +2 -1
  346. package/presets/cursor/go/rules/preset-token-budget.mdc +1 -0
  347. package/presets/cursor/go/rules/preset-twin-sync.mdc +5 -0
  348. package/presets/cursor/go/team/README.md +13 -2
  349. package/presets/cursor/ios-swift/agents/build-verifier.md +10 -3
  350. package/presets/cursor/ios-swift/agents/code-reviewer.md +9 -14
  351. package/presets/cursor/ios-swift/agents/feature-developer.md +8 -1
  352. package/presets/cursor/ios-swift/agents/task-analyst.md +8 -1
  353. package/presets/cursor/ios-swift/agents/task-router.md +31 -3
  354. package/presets/cursor/ios-swift/commands/task.md +8 -6
  355. package/presets/cursor/ios-swift/hooks/chain-team-phases.sh +195 -54
  356. package/presets/cursor/ios-swift/rules/agent-team-orchestrator.mdc +23 -2
  357. package/presets/cursor/ios-swift/rules/preset-layering.mdc +2 -1
  358. package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +16 -1
  359. package/presets/cursor/ios-swift/rules/preset-pr-checklist.mdc +2 -1
  360. package/presets/cursor/ios-swift/rules/preset-token-budget.mdc +1 -0
  361. package/presets/cursor/ios-swift/rules/preset-twin-sync.mdc +5 -0
  362. package/presets/cursor/ios-swift/team/README.md +13 -2
  363. package/presets/cursor/java/agents/build-verifier.md +9 -2
  364. package/presets/cursor/java/agents/code-reviewer.md +8 -1
  365. package/presets/cursor/java/agents/feature-developer.md +8 -1
  366. package/presets/cursor/java/agents/task-analyst.md +8 -1
  367. package/presets/cursor/java/agents/task-router.md +31 -3
  368. package/presets/cursor/java/commands/task.md +8 -6
  369. package/presets/cursor/java/hooks/chain-team-phases.sh +195 -53
  370. package/presets/cursor/java/rules/agent-team-orchestrator.mdc +30 -5
  371. package/presets/cursor/java/rules/preset-layering.mdc +2 -1
  372. package/presets/cursor/java/rules/preset-no-cross-stack-leakage.mdc +16 -1
  373. package/presets/cursor/java/rules/preset-pr-checklist.mdc +2 -1
  374. package/presets/cursor/java/rules/preset-token-budget.mdc +1 -0
  375. package/presets/cursor/java/rules/preset-twin-sync.mdc +5 -0
  376. package/presets/cursor/java/team/README.md +13 -2
  377. package/presets/cursor/mcp-ts/agents/build-verifier.md +9 -2
  378. package/presets/cursor/mcp-ts/agents/feature-developer.md +7 -1
  379. package/presets/cursor/mcp-ts/agents/task-analyst.md +8 -1
  380. package/presets/cursor/mcp-ts/agents/task-router.md +31 -3
  381. package/presets/cursor/mcp-ts/commands/task.md +8 -6
  382. package/presets/cursor/mcp-ts/hooks/chain-team-phases.sh +181 -39
  383. package/presets/cursor/mcp-ts/rules/agent-team-orchestrator.mdc +30 -5
  384. package/presets/cursor/mcp-ts/rules/preset-layering.mdc +2 -1
  385. package/presets/cursor/mcp-ts/rules/preset-no-cross-stack-leakage.mdc +16 -1
  386. package/presets/cursor/mcp-ts/rules/preset-pr-checklist.mdc +2 -1
  387. package/presets/cursor/mcp-ts/rules/preset-token-budget.mdc +1 -0
  388. package/presets/cursor/mcp-ts/rules/preset-twin-sync.mdc +5 -0
  389. package/presets/cursor/mcp-ts/team/README.md +13 -2
  390. package/presets/cursor/next/agents/accessibility-reviewer.md +7 -14
  391. package/presets/cursor/next/agents/api-contract-reviewer.md +7 -14
  392. package/presets/cursor/next/agents/build-verifier.md +10 -15
  393. package/presets/cursor/next/agents/ci-investigator.md +7 -14
  394. package/presets/cursor/next/agents/code-reviewer.md +9 -14
  395. package/presets/cursor/next/agents/debugger.md +6 -12
  396. package/presets/cursor/next/agents/feature-developer.md +8 -1
  397. package/presets/cursor/next/agents/migration-specialist.md +7 -14
  398. package/presets/cursor/next/agents/performance-auditor.md +6 -13
  399. package/presets/cursor/next/agents/qa-tester.md +6 -13
  400. package/presets/cursor/next/agents/security-reviewer.md +7 -14
  401. package/presets/cursor/next/agents/solution-architect.md +6 -12
  402. package/presets/cursor/next/agents/task-analyst.md +10 -16
  403. package/presets/cursor/next/agents/task-router.md +31 -3
  404. package/presets/cursor/next/agents/tech-writer.md +6 -13
  405. package/presets/cursor/next/agents/unit-test-generator.md +6 -11
  406. package/presets/cursor/next/agents/unit-test-healer.md +6 -11
  407. package/presets/cursor/next/agents/unit-test-planner.md +6 -13
  408. package/presets/cursor/next/commands/task.md +8 -6
  409. package/presets/cursor/next/hooks/chain-team-phases.sh +197 -54
  410. package/presets/cursor/next/rules/agent-team-orchestrator.mdc +30 -5
  411. package/presets/cursor/next/rules/preset-layering.mdc +2 -1
  412. package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +16 -1
  413. package/presets/cursor/next/rules/preset-pr-checklist.mdc +2 -1
  414. package/presets/cursor/next/rules/preset-token-budget.mdc +1 -0
  415. package/presets/cursor/next/rules/preset-twin-sync.mdc +5 -0
  416. package/presets/cursor/next/team/README.md +16 -4
  417. package/presets/cursor/next/team/fixtures/artifact-manifest.example.json +61 -0
  418. package/presets/cursor/next/team/fixtures/bugfix-standard.json +10 -0
  419. package/presets/cursor/next/team/fixtures/feature-full.json +10 -0
  420. package/presets/cursor/next/team/fixtures/feature-light.json +10 -0
  421. package/presets/cursor/nuxt/AGENTS.md +39 -0
  422. package/presets/cursor/nuxt/BUGBOT.md +14 -0
  423. package/presets/cursor/nuxt/MCP.md +16 -0
  424. package/presets/cursor/nuxt/README.md +47 -0
  425. package/presets/cursor/nuxt/REPO_AGENTS.md +49 -0
  426. package/presets/cursor/nuxt/agents/README.md +206 -0
  427. package/presets/cursor/nuxt/agents/accessibility-reviewer.md +60 -0
  428. package/presets/cursor/nuxt/agents/api-contract-reviewer.md +64 -0
  429. package/presets/cursor/nuxt/agents/build-verifier.md +90 -0
  430. package/presets/cursor/nuxt/agents/ci-investigator.md +61 -0
  431. package/presets/cursor/nuxt/agents/code-reviewer.md +63 -0
  432. package/presets/cursor/nuxt/agents/codebase-analyzer.md +28 -0
  433. package/presets/cursor/nuxt/agents/debugger.md +66 -0
  434. package/presets/cursor/nuxt/agents/feature-developer.md +60 -0
  435. package/presets/cursor/nuxt/agents/migration-specialist.md +68 -0
  436. package/presets/cursor/nuxt/agents/performance-auditor.md +67 -0
  437. package/presets/cursor/nuxt/agents/playwright-test-generator.md +27 -0
  438. package/presets/cursor/nuxt/agents/playwright-test-healer.md +27 -0
  439. package/presets/cursor/nuxt/agents/playwright-test-planner.md +28 -0
  440. package/presets/cursor/nuxt/agents/qa-tester.md +55 -0
  441. package/presets/cursor/nuxt/agents/security-reviewer.md +61 -0
  442. package/presets/cursor/nuxt/agents/solution-architect.md +69 -0
  443. package/presets/cursor/nuxt/agents/task-analyst.md +110 -0
  444. package/presets/cursor/nuxt/agents/task-router.md +141 -0
  445. package/presets/cursor/nuxt/agents/tech-writer.md +55 -0
  446. package/presets/cursor/nuxt/agents/unit-test-generator.md +38 -0
  447. package/presets/cursor/nuxt/agents/unit-test-healer.md +39 -0
  448. package/presets/cursor/nuxt/agents/unit-test-planner.md +61 -0
  449. package/presets/cursor/nuxt/commands/README.md +51 -0
  450. package/presets/cursor/nuxt/commands/feature-continue.md +19 -0
  451. package/presets/cursor/nuxt/commands/feature-start.md +33 -0
  452. package/presets/cursor/nuxt/commands/task-continue.md +50 -0
  453. package/presets/cursor/nuxt/commands/task.md +56 -0
  454. package/presets/cursor/nuxt/commands/technical-retro.md +85 -0
  455. package/presets/cursor/nuxt/hooks/README.md +12 -0
  456. package/presets/cursor/nuxt/hooks/chain-team-phases.sh +727 -0
  457. package/presets/cursor/nuxt/hooks/examples/README.md +18 -0
  458. package/presets/cursor/nuxt/hooks/examples/format-edited.example.sh +11 -0
  459. package/presets/cursor/nuxt/hooks/examples/secret-guard.example.sh +10 -0
  460. package/presets/cursor/nuxt/hooks/examples/test-on-save.example.sh +8 -0
  461. package/presets/cursor/nuxt/hooks/guard-shell-command.sh +77 -0
  462. package/presets/cursor/nuxt/hooks.json +17 -0
  463. package/presets/cursor/nuxt/mcp.json +19 -0
  464. package/presets/cursor/nuxt/rules/README.md +108 -0
  465. package/presets/cursor/nuxt/rules/agent-team-intake.mdc +16 -0
  466. package/presets/cursor/nuxt/rules/agent-team-orchestrator.mdc +192 -0
  467. package/presets/cursor/nuxt/rules/anti-sycophancy-discipline.mdc +30 -0
  468. package/presets/cursor/nuxt/rules/api-services.mdc +79 -0
  469. package/presets/cursor/nuxt/rules/architecture-boundaries-ui.mdc +15 -0
  470. package/presets/cursor/nuxt/rules/architecture-boundaries.mdc +97 -0
  471. package/presets/cursor/nuxt/rules/code-quality-and-refactoring.mdc +51 -0
  472. package/presets/cursor/nuxt/rules/code-review-mr.mdc +58 -0
  473. package/presets/cursor/nuxt/rules/css-property-order-stylelint.mdc +12 -0
  474. package/presets/cursor/nuxt/rules/design-guidance.mdc +111 -0
  475. package/presets/cursor/nuxt/rules/feature-delivery-workflow.mdc +83 -0
  476. package/presets/cursor/nuxt/rules/http-client.mdc +15 -0
  477. package/presets/cursor/nuxt/rules/layer-barrel-exports.mdc +74 -0
  478. package/presets/cursor/nuxt/rules/navigation-router-stack.mdc +61 -0
  479. package/presets/cursor/nuxt/rules/navigation-router-ui.mdc +16 -0
  480. package/presets/cursor/nuxt/rules/no-type-assertion-as-import-export.mdc +60 -0
  481. package/presets/cursor/nuxt/rules/no-v-bind-spread.mdc +13 -0
  482. package/presets/cursor/nuxt/rules/nuxt-app-core.mdc +45 -0
  483. package/presets/cursor/nuxt/rules/nuxt-pages-routing.mdc +37 -0
  484. package/presets/cursor/nuxt/rules/package-manager.mdc +18 -0
  485. package/presets/cursor/nuxt/rules/playwright-agents.mdc +80 -0
  486. package/presets/cursor/nuxt/rules/post-change-lint.mdc +42 -0
  487. package/presets/cursor/nuxt/rules/preset-layering.mdc +37 -0
  488. package/presets/cursor/nuxt/rules/preset-no-cross-stack-leakage.mdc +84 -0
  489. package/presets/cursor/nuxt/rules/preset-pr-checklist.mdc +40 -0
  490. package/presets/cursor/nuxt/rules/preset-token-budget.mdc +42 -0
  491. package/presets/cursor/nuxt/rules/preset-twin-sync.mdc +55 -0
  492. package/presets/cursor/nuxt/rules/public-imports.mdc +62 -0
  493. package/presets/cursor/nuxt/rules/reference-features.mdc +49 -0
  494. package/presets/cursor/nuxt/rules/script-setup-conventions.mdc +13 -0
  495. package/presets/cursor/nuxt/rules/security-nuxt.mdc +34 -0
  496. package/presets/cursor/nuxt/rules/store-pinia.mdc +68 -0
  497. package/presets/cursor/nuxt/rules/technical-retro.mdc +16 -0
  498. package/presets/cursor/nuxt/rules/tests-e2e-structure.mdc +51 -0
  499. package/presets/cursor/nuxt/rules/tests-unit.mdc +78 -0
  500. package/presets/cursor/nuxt/rules/types-jsdoc.mdc +42 -0
  501. package/presets/cursor/nuxt/rules/vue-a11y-coding.mdc +15 -0
  502. package/presets/cursor/nuxt/rules/vue-nuxt-anti-hallucination.mdc +68 -0
  503. package/presets/cursor/nuxt/rules/vue-ui.mdc +33 -0
  504. package/presets/cursor/nuxt/skills/README.md +17 -0
  505. package/presets/cursor/nuxt/skills/ci-investigation/SKILL.md +36 -0
  506. package/presets/cursor/nuxt/skills/code-review/SKILL.md +38 -0
  507. package/presets/cursor/nuxt/skills/debug-investigation/SKILL.md +32 -0
  508. package/presets/cursor/nuxt/skills/feature-delivery/SKILL.md +34 -0
  509. package/presets/cursor/nuxt/skills/playwright-e2e/SKILL.md +37 -0
  510. package/presets/cursor/nuxt/skills/technical-retro/SKILL.md +54 -0
  511. package/presets/cursor/nuxt/skills/unit-testing/SKILL.md +32 -0
  512. package/presets/cursor/nuxt/skills/vue-performance/SKILL.md +53 -0
  513. package/presets/cursor/nuxt/skills/write-adr/SKILL.md +41 -0
  514. package/presets/cursor/nuxt/team/README.md +140 -0
  515. package/presets/cursor/nuxt/team/conventions.md +21 -0
  516. package/presets/cursor/nuxt/team/fixtures/artifact-manifest.example.json +61 -0
  517. package/presets/cursor/nuxt/team/fixtures/bugfix-standard.json +25 -0
  518. package/presets/cursor/nuxt/team/fixtures/feature-full.json +28 -0
  519. package/presets/cursor/nuxt/team/fixtures/feature-light.json +27 -0
  520. package/presets/cursor/nuxt/team/fixtures/metrics-scenarios/tasks/human-gate/metrics.json +69 -0
  521. package/presets/cursor/nuxt/team/fixtures/metrics-scenarios/tasks/missing-ledger/status.json +5 -0
  522. package/presets/cursor/nuxt/team/fixtures/metrics-scenarios/tasks/parallel-receipts/metrics.json +79 -0
  523. package/presets/cursor/nuxt/team/fixtures/metrics-scenarios/tasks/serial-retry/metrics.json +124 -0
  524. package/presets/cursor/nuxt/team/fixtures/metrics-scenarios/tasks/validation-failed/metrics.json +124 -0
  525. package/presets/cursor/nuxt/team/fixtures/metrics.example.json +54 -0
  526. package/presets/cursor/nuxt/team/tasks/.gitkeep +0 -0
  527. package/presets/cursor/php-hexagonal/agents/build-verifier.md +9 -2
  528. package/presets/cursor/php-hexagonal/agents/code-reviewer.md +8 -1
  529. package/presets/cursor/php-hexagonal/agents/feature-developer.md +8 -1
  530. package/presets/cursor/php-hexagonal/agents/task-analyst.md +8 -1
  531. package/presets/cursor/php-hexagonal/agents/task-router.md +31 -3
  532. package/presets/cursor/php-hexagonal/commands/task.md +8 -6
  533. package/presets/cursor/php-hexagonal/hooks/chain-team-phases.sh +195 -53
  534. package/presets/cursor/php-hexagonal/rules/agent-team-orchestrator.mdc +30 -5
  535. package/presets/cursor/php-hexagonal/rules/preset-layering.mdc +2 -1
  536. package/presets/cursor/php-hexagonal/rules/preset-no-cross-stack-leakage.mdc +16 -1
  537. package/presets/cursor/php-hexagonal/rules/preset-pr-checklist.mdc +2 -1
  538. package/presets/cursor/php-hexagonal/rules/preset-token-budget.mdc +1 -0
  539. package/presets/cursor/php-hexagonal/rules/preset-twin-sync.mdc +5 -0
  540. package/presets/cursor/php-hexagonal/team/README.md +13 -2
  541. package/presets/cursor/php-laravel/agents/build-verifier.md +9 -2
  542. package/presets/cursor/php-laravel/agents/code-reviewer.md +8 -1
  543. package/presets/cursor/php-laravel/agents/feature-developer.md +8 -1
  544. package/presets/cursor/php-laravel/agents/task-analyst.md +8 -1
  545. package/presets/cursor/php-laravel/agents/task-router.md +31 -3
  546. package/presets/cursor/php-laravel/commands/task.md +8 -6
  547. package/presets/cursor/php-laravel/hooks/chain-team-phases.sh +195 -53
  548. package/presets/cursor/php-laravel/rules/agent-team-orchestrator.mdc +30 -5
  549. package/presets/cursor/php-laravel/rules/preset-layering.mdc +2 -1
  550. package/presets/cursor/php-laravel/rules/preset-no-cross-stack-leakage.mdc +16 -1
  551. package/presets/cursor/php-laravel/rules/preset-pr-checklist.mdc +2 -1
  552. package/presets/cursor/php-laravel/rules/preset-token-budget.mdc +1 -0
  553. package/presets/cursor/php-laravel/rules/preset-twin-sync.mdc +5 -0
  554. package/presets/cursor/php-laravel/team/README.md +13 -2
  555. package/presets/cursor/svelte/AGENTS.md +39 -0
  556. package/presets/cursor/svelte/BUGBOT.md +14 -0
  557. package/presets/cursor/svelte/MCP.md +16 -0
  558. package/presets/cursor/svelte/README.md +47 -0
  559. package/presets/cursor/svelte/REPO_AGENTS.md +49 -0
  560. package/presets/cursor/svelte/agents/README.md +206 -0
  561. package/presets/cursor/svelte/agents/accessibility-reviewer.md +60 -0
  562. package/presets/cursor/svelte/agents/api-contract-reviewer.md +64 -0
  563. package/presets/cursor/svelte/agents/build-verifier.md +90 -0
  564. package/presets/cursor/svelte/agents/ci-investigator.md +61 -0
  565. package/presets/cursor/svelte/agents/code-reviewer.md +63 -0
  566. package/presets/cursor/svelte/agents/codebase-analyzer.md +28 -0
  567. package/presets/cursor/svelte/agents/debugger.md +66 -0
  568. package/presets/cursor/svelte/agents/feature-developer.md +60 -0
  569. package/presets/cursor/svelte/agents/migration-specialist.md +68 -0
  570. package/presets/cursor/svelte/agents/performance-auditor.md +67 -0
  571. package/presets/cursor/svelte/agents/playwright-test-generator.md +27 -0
  572. package/presets/cursor/svelte/agents/playwright-test-healer.md +27 -0
  573. package/presets/cursor/svelte/agents/playwright-test-planner.md +28 -0
  574. package/presets/cursor/svelte/agents/qa-tester.md +55 -0
  575. package/presets/cursor/svelte/agents/security-reviewer.md +61 -0
  576. package/presets/cursor/svelte/agents/solution-architect.md +69 -0
  577. package/presets/cursor/svelte/agents/task-analyst.md +110 -0
  578. package/presets/cursor/svelte/agents/task-router.md +141 -0
  579. package/presets/cursor/svelte/agents/tech-writer.md +55 -0
  580. package/presets/cursor/svelte/agents/unit-test-generator.md +38 -0
  581. package/presets/cursor/svelte/agents/unit-test-healer.md +39 -0
  582. package/presets/cursor/svelte/agents/unit-test-planner.md +61 -0
  583. package/presets/cursor/svelte/commands/README.md +51 -0
  584. package/presets/cursor/svelte/commands/feature-continue.md +19 -0
  585. package/presets/cursor/svelte/commands/feature-start.md +33 -0
  586. package/presets/cursor/svelte/commands/task-continue.md +50 -0
  587. package/presets/cursor/svelte/commands/task.md +56 -0
  588. package/presets/cursor/svelte/commands/technical-retro.md +85 -0
  589. package/presets/cursor/svelte/hooks/README.md +12 -0
  590. package/presets/cursor/svelte/hooks/chain-team-phases.sh +727 -0
  591. package/presets/cursor/svelte/hooks/examples/README.md +18 -0
  592. package/presets/cursor/svelte/hooks/examples/format-edited.example.sh +13 -0
  593. package/presets/cursor/svelte/hooks/examples/secret-guard.example.sh +10 -0
  594. package/presets/cursor/svelte/hooks/examples/test-on-save.example.sh +14 -0
  595. package/presets/cursor/svelte/hooks/guard-shell-command.sh +77 -0
  596. package/presets/cursor/svelte/hooks.json +17 -0
  597. package/presets/cursor/svelte/mcp.json +19 -0
  598. package/presets/cursor/svelte/rules/README.md +86 -0
  599. package/presets/cursor/svelte/rules/agent-team-intake.mdc +16 -0
  600. package/presets/cursor/svelte/rules/agent-team-orchestrator.mdc +192 -0
  601. package/presets/cursor/svelte/rules/anti-sycophancy-discipline.mdc +30 -0
  602. package/presets/cursor/svelte/rules/api-services.mdc +46 -0
  603. package/presets/cursor/svelte/rules/architecture-boundaries-ui.mdc +15 -0
  604. package/presets/cursor/svelte/rules/architecture-boundaries.mdc +61 -0
  605. package/presets/cursor/svelte/rules/code-quality-and-refactoring.mdc +51 -0
  606. package/presets/cursor/svelte/rules/code-review-mr.mdc +58 -0
  607. package/presets/cursor/svelte/rules/css-property-order-stylelint.mdc +12 -0
  608. package/presets/cursor/svelte/rules/design-guidance.mdc +111 -0
  609. package/presets/cursor/svelte/rules/feature-delivery-workflow.mdc +55 -0
  610. package/presets/cursor/svelte/rules/http-client.mdc +16 -0
  611. package/presets/cursor/svelte/rules/layer-barrel-exports.mdc +74 -0
  612. package/presets/cursor/svelte/rules/navigation-router-stack.mdc +40 -0
  613. package/presets/cursor/svelte/rules/navigation-router-ui.mdc +25 -0
  614. package/presets/cursor/svelte/rules/no-rest-props-spread.mdc +32 -0
  615. package/presets/cursor/svelte/rules/no-type-assertion-as-import-export.mdc +60 -0
  616. package/presets/cursor/svelte/rules/package-manager.mdc +18 -0
  617. package/presets/cursor/svelte/rules/playwright-agents.mdc +80 -0
  618. package/presets/cursor/svelte/rules/post-change-lint.mdc +42 -0
  619. package/presets/cursor/svelte/rules/preset-layering.mdc +37 -0
  620. package/presets/cursor/svelte/rules/preset-no-cross-stack-leakage.mdc +84 -0
  621. package/presets/cursor/svelte/rules/preset-pr-checklist.mdc +40 -0
  622. package/presets/cursor/svelte/rules/preset-token-budget.mdc +42 -0
  623. package/presets/cursor/svelte/rules/preset-twin-sync.mdc +55 -0
  624. package/presets/cursor/svelte/rules/public-imports.mdc +45 -0
  625. package/presets/cursor/svelte/rules/reference-features.mdc +51 -0
  626. package/presets/cursor/svelte/rules/security-sveltekit.mdc +38 -0
  627. package/presets/cursor/svelte/rules/store-svelte.mdc +66 -0
  628. package/presets/cursor/svelte/rules/svelte-a11y-coding.mdc +27 -0
  629. package/presets/cursor/svelte/rules/svelte-app-core.mdc +45 -0
  630. package/presets/cursor/svelte/rules/svelte-script-conventions.mdc +33 -0
  631. package/presets/cursor/svelte/rules/svelte-sveltekit-anti-hallucination.mdc +69 -0
  632. package/presets/cursor/svelte/rules/svelte-ui.mdc +37 -0
  633. package/presets/cursor/svelte/rules/sveltekit-routing.mdc +39 -0
  634. package/presets/cursor/svelte/rules/technical-retro.mdc +16 -0
  635. package/presets/cursor/svelte/rules/tests-e2e-structure.mdc +51 -0
  636. package/presets/cursor/svelte/rules/tests-unit.mdc +42 -0
  637. package/presets/cursor/svelte/rules/types-jsdoc.mdc +42 -0
  638. package/presets/cursor/svelte/skills/README.md +17 -0
  639. package/presets/cursor/svelte/skills/ci-investigation/SKILL.md +36 -0
  640. package/presets/cursor/svelte/skills/code-review/SKILL.md +38 -0
  641. package/presets/cursor/svelte/skills/debug-investigation/SKILL.md +32 -0
  642. package/presets/cursor/svelte/skills/feature-delivery/SKILL.md +34 -0
  643. package/presets/cursor/svelte/skills/playwright-e2e/SKILL.md +37 -0
  644. package/presets/cursor/svelte/skills/svelte-performance/SKILL.md +52 -0
  645. package/presets/cursor/svelte/skills/technical-retro/SKILL.md +54 -0
  646. package/presets/cursor/svelte/skills/unit-testing/SKILL.md +32 -0
  647. package/presets/cursor/svelte/skills/write-adr/SKILL.md +41 -0
  648. package/presets/cursor/svelte/team/README.md +140 -0
  649. package/presets/cursor/svelte/team/conventions.md +21 -0
  650. package/presets/cursor/svelte/team/fixtures/artifact-manifest.example.json +61 -0
  651. package/presets/cursor/svelte/team/fixtures/bugfix-standard.json +25 -0
  652. package/presets/cursor/svelte/team/fixtures/feature-full.json +28 -0
  653. package/presets/cursor/svelte/team/fixtures/feature-light.json +27 -0
  654. package/presets/cursor/svelte/team/fixtures/metrics-scenarios/tasks/human-gate/metrics.json +69 -0
  655. package/presets/cursor/svelte/team/fixtures/metrics-scenarios/tasks/missing-ledger/status.json +5 -0
  656. package/presets/cursor/svelte/team/fixtures/metrics-scenarios/tasks/parallel-receipts/metrics.json +79 -0
  657. package/presets/cursor/svelte/team/fixtures/metrics-scenarios/tasks/serial-retry/metrics.json +124 -0
  658. package/presets/cursor/svelte/team/fixtures/metrics-scenarios/tasks/validation-failed/metrics.json +124 -0
  659. package/presets/cursor/svelte/team/fixtures/metrics.example.json +54 -0
  660. package/presets/cursor/svelte/team/tasks/.gitkeep +0 -0
@@ -0,0 +1,73 @@
1
+ ---
2
+ description: Двухуровневые barrel-экспорты для слоёв с регламентированным public API
3
+ paths:
4
+ - **/index.ts
5
+ ---
6
+
7
+ # Barrel-экспорты слоёв с public API
8
+
9
+ ## Когда применять
10
+
11
+ Для **любого слоя** (каталога, пакета, bounded context), у которого:
12
+
13
+ - есть **корневой barrel** — единая точка импорта для внешних потребителей;
14
+ - deep-импорты внутрь слоя **запрещены** снаружи (ESLint `no-restricted-imports`, правила `public-imports.mdc`).
15
+
16
+ Примеры alias/entry point в разных проектах: `@/api`, `@/types`, `@/core`, `@/store`, `packages/foo`.
17
+
18
+ ## Два уровня barrel
19
+
20
+ 1. **Локальный** — `index.ts` модуля/фичи внутри слоя.
21
+ 2. **Корневой public API** — barrel слоя (например `src/<layer>/index.ts`).
22
+
23
+ **Внутри** слоя — относительные импорты и пути между подмодулями. **Снаружи** — только корневой barrel и **явно разрешённые** вторичные entry points (если зафиксированы в правилах проекта, напр. `@/types/enums`).
24
+
25
+ ## Что реэкспортировать наружу
26
+
27
+ Только символы, которые **должны быть доступны** потребителям слоя: публичные функции/сервисы/фасады, типы контракта, константы и helpers, нужные другим слоям или тестам.
28
+
29
+ **Не реэкспортировать:** внутренние адаптеры, мапперы, детали транспорта, промежуточные объекты для сборки фасада внутри слоя.
30
+
31
+ Группировка в корневом barrel — **по конвенции репозитория** (ориентир — соседние модули того же слоя).
32
+
33
+ ## Чеклист агента (обязателен)
34
+
35
+ При добавлении или существенном расширении **модуля внутри регламентированного слоя**:
36
+
37
+ 1. Определить слой, его **корневой barrel** и доп. entry points (`public-imports.mdc`).
38
+ 2. Создать/обновить **локальный** `index.ts` — только публичные символы.
39
+ 3. Если в слое есть **фасад/агрегатор** (`*ApiService.ts`, `rootReducer`, …) — подключить модуль там.
40
+ 4. Добавить **реэкспорт** новых публичных символов в **корневой barrel** слоя.
41
+ 5. **Проверка:** grep по имени символа или пути `./<Module>` в корневом barrel; снаружи слоя нет deep-импортов.
42
+
43
+ Модуль **не готов**, пока чеклист не пройден.
44
+
45
+ ## Как найти регламентированные слои в репозитории
46
+
47
+ 1. Правила `public-imports.mdc` в `.cursor/rules/`.
48
+ 2. ESLint `no-restricted-imports` — паттерны `@/<layer>/*` с исключением barrel.
49
+ 3. `architecture-boundaries.mdc`, README проекта.
50
+
51
+ ## В этом репозитории
52
+
53
+ | Слой | Корневой barrel | Правило импортов |
54
+ |------|-------------------|------------------|
55
+ | API | `api/index.ts` | `public-imports.mdc` |
56
+ | Types | `types/index.ts` | `public-imports.mdc` (+ `@/types/enums`) |
57
+ | Core | `core/index.ts` | ESLint: `@/core/index` |
58
+
59
+ Иллюстрация двух уровней (API): локальный `services/.../<Feature>/index.ts` → фасад `*ApiService.ts` → `api/index.ts`.
60
+ ## Incorrect
61
+
62
+ ```ts
63
+ // api/index.ts — leaking internals
64
+ export { mapCardResponse } from './services/CardsApi/cardResponseMappers'
65
+ export { rawCardsClient } from './clients/rawCardsClient'
66
+ ```
67
+
68
+ ## Correct
69
+
70
+ ```ts
71
+ // api/index.ts — public facade only
72
+ export { cardsApi } from './services/CardsApi'
73
+ ```
@@ -0,0 +1,43 @@
1
+ ---
2
+ description: Импорт доменных типов и API только через публичные barrels ($lib/types, $lib/api)
3
+ paths:
4
+ - src/lib/components/**/*
5
+ - src/lib/stores/**/*
6
+ - src/lib/**/*
7
+ - src/routes/**/*
8
+ - src/lib/types/**/*
9
+ - src/lib/api/**/*
10
+ ---
11
+
12
+ # Публичные импорты (`$lib/types`, `$lib/api`)
13
+
14
+ Preferred alias: **`$lib`**. Accept **`@/`** if consumer vite/tsconfig maps it. Respect `$app/*` / `$env/*` — do not invent modules.
15
+
16
+ ## `$lib/types` (or `@/types`)
17
+
18
+ - Публичный API типов — barrel `src/lib/types/index.ts`; снаружи слоя — только `$lib/types` / `@/types`.
19
+ - Запрещено обходить barrel deep-импортами внутренних файлов типов (кроме project enum convention if present).
20
+ - Внутри `src/lib/types/**` — относительные импорты.
21
+
22
+ ```typescript
23
+ // ✅
24
+ import type { TUserProfile } from '$lib/types'
25
+
26
+ // ❌
27
+ import type { TUserProfile } from '$lib/types/User.types'
28
+ ```
29
+
30
+ ## `$lib/api` (or `@/api`)
31
+
32
+ - Публичный API — barrel `src/lib/api/index.ts`. Вне `src/lib/api/**` — только `$lib/api` / `@/api`.
33
+ - Внутри слоя — относительные импорты и `$lib/api/services/**` / `$lib/clients/**` as neighbors do.
34
+
35
+ ```typescript
36
+ // ✅
37
+ import { ordersApi } from '$lib/api'
38
+
39
+ // ❌
40
+ import { ordersApi } from '$lib/api/services/orders/orders.service'
41
+ ```
42
+
43
+ Новые публичные символы — реэкспорт в barrel по **`layer-barrel-exports`**.
@@ -0,0 +1,50 @@
1
+ ---
2
+ description: Эталонные фичи репозитория — копировать структуру при реализации новых задач. Заполните пути после init в целевом репо.
3
+ paths:
4
+ - src/lib/components/**/*
5
+ - src/lib/stores/**/*
6
+ - src/lib/api/**/*
7
+ - src/lib/types/**/*
8
+ - src/routes/**/*
9
+ ---
10
+
11
+ <!-- shared-core: architecture/reference-features.template.md -->
12
+
13
+ # Эталонные фичи (reference features)
14
+
15
+ ## Stack notes
16
+
17
+ Перед реализацией найди фичу того же типа и **повтори её структуру**, не изобретая новую организацию файлов.
18
+
19
+ Taxonomy / shared core: [`presets/_shared/README.md`](../../../../_shared/README.md) · [Preset contribution guide](../../../../docs/PRESET-CONTRIBUTION.md).
20
+
21
+ ## Таблица эталонов
22
+
23
+ Замени **TBD** на реальные пути после договорённости в команде (или при `ai-rules init` в целевом репо):
24
+
25
+ | Слой | Эталон | Что копировать |
26
+ |------|--------|----------------|
27
+ | UI route / page | **TBD** `src/routes/<example>/` | `+page.svelte`, `+page.ts`, layout nesting |
28
+ | UI component | **TBD** `src/lib/components/<Example>/` | `.svelte`, styles, barrel |
29
+ | Store | **TBD** `src/lib/stores/<example>.ts` | writable/derived or runes module, actions |
30
+ | API service | **TBD** `src/lib/api/services/<example>/` | service, mappers, barrel |
31
+ | Types module | **TBD** `src/lib/types/<example>/` | domain types, JSDoc, barrel export |
32
+ | Unit tests | **TBD** рядом с эталонным mapper/service | `*.spec.ts`, describe/it naming |
33
+ | E2E area | **TBD** `tests/e2e/<Area>/` | `*.cases.md`, page objects, `_shared/` |
34
+
35
+ ## Как использовать
36
+
37
+ 1. Определи затронутые слои из `decomposition.md` или задачи.
38
+ 2. Открой эталон из таблицы (после заполнения путей).
39
+ 3. Зеркаль именование, порядок файлов, паттерны импортов и тестов.
40
+ 4. Если эталона нет — выбери **самую близкую** существующую фичу того же слоя и зафиксируй выбор в handoff.
41
+
42
+ ## Living conventions
43
+
44
+ Post-init gotchas / patterns / decisions: **`.cursor/team/conventions.md`** (and the twin tool path if both Cursor and Claude are installed). Consumer-owned; not always-on. See root `AGENTS.md` § Living conventions.
45
+
46
+ ## Связанные правила
47
+
48
+ - `code-quality-and-refactoring.mdc` — повторять паттерны, не deep-import.
49
+ - `feature-delivery-workflow.mdc` — порядок слоёв.
50
+ - skill `feature-delivery` — end-to-end сценарий.
@@ -0,0 +1,12 @@
1
+ # Stack (SvelteKit, Svelte 5, TypeScript)
2
+
3
+ Правила уровня фреймворка и языка.
4
+
5
+ | Файл | Содержание | Загрузка |
6
+ |------|------------|----------|
7
+ | `svelte-app-core.md` | Стек, структура `src/routes/**` / `src/lib/**`, слои | session start |
8
+ | `svelte-script-conventions.md` | `<script lang="ts">` conventions | `paths: **/*.{svelte,ts}` |
9
+ | `no-type-assertion.md` | Ограничение `as` на границах модулей | on-demand |
10
+ | `navigation-router-ui.md` | Навигация в UI-компонентах (slim) | `paths: src/routes/**,src/hooks.server.ts,src/lib/components/**` |
11
+ | `navigation-router.md` | Полный аудит стека навигации (SvelteKit file-based routing) | `paths: src/routes/**,src/hooks.server.ts,svelte.config.*` |
12
+ | `types-jsdoc.md` | JSDoc в `types` | `paths: types/**/*.ts` |
@@ -0,0 +1,26 @@
1
+ ---
2
+ description: SvelteKit link patterns in UI — a href, active state, prefetch
3
+ paths:
4
+ - src/lib/components/**/*
5
+ - src/routes/**/*
6
+ ---
7
+
8
+ # Навигация (UI)
9
+
10
+ - Prefer native **`<a href="…">`** (and design-system Link wrappers that render anchors).
11
+ - Active state: follow repo pattern (`page.url`, `$app/state` / `$app/stores` as version allows — verify).
12
+ - Prefetch: use Kit data-sveltekit-* attributes / patterns already in the repo — do not invent.
13
+ - Do not use `next/link`, `<NuxtLink>`, or `RouterLink` as defaults in this preset.
14
+ - Programmatic navigation from UI handlers → `goto` (`navigation-router-stack`).
15
+
16
+ ## Incorrect
17
+
18
+ ```svelte
19
+ <a on:click|preventDefault={() => location.href = '/x'}>Go</a>
20
+ ```
21
+
22
+ ## Correct
23
+
24
+ ```svelte
25
+ <a href="/x">Go</a>
26
+ ```
@@ -0,0 +1,41 @@
1
+ ---
2
+ description: SvelteKit navigation APIs — $app/navigation, goto, invalidate
3
+ paths:
4
+ - src/routes/**/*
5
+ - svelte.config.*
6
+ ---
7
+
8
+ # Навигация (stack)
9
+
10
+ Для этого пресета канон — **SvelteKit** (`svelte-app-core`, `sveltekit-routing`).
11
+
12
+ ## Проверить в репо
13
+
14
+ 1. `package.json` workspace с `svelte.config.*` — `@sveltejs/kit` / `svelte` majors.
15
+ 2. Как уже навигируют соседи: `goto`, `invalidate`, `beforeNavigate`, `<a href>`, wrappers.
16
+ 3. Не подмешивать Next (`next/navigation`) или Nuxt (`navigateTo`, `<NuxtLink>`) по умолчанию.
17
+
18
+ ## API
19
+
20
+ | Need | Prefer |
21
+ |------|--------|
22
+ | Programmatic navigate | `goto` from `$app/navigation` |
23
+ | Refresh load data | `invalidate` / `invalidateAll` |
24
+ | Guards | `beforeNavigate` / `afterNavigate` |
25
+ | Links in UI | see `navigation-router-ui` |
26
+
27
+ Verify exports against installed `@sveltejs/kit` — mark `// VERIFY` if unsure (`svelte-sveltekit-anti-hallucination`).
28
+
29
+ ## Incorrect
30
+
31
+ ```ts
32
+ import { useRouter } from 'next/navigation'
33
+ await navigateTo('/items')
34
+ ```
35
+
36
+ ## Correct
37
+
38
+ ```ts
39
+ import { goto } from '$app/navigation'
40
+ await goto('/items')
41
+ ```
@@ -0,0 +1,59 @@
1
+ ---
2
+ description: Избегать приведения типов через as на границах модулей (импорт/экспорт)
3
+ paths:
4
+ - api/**/*
5
+ - src/lib/stores/**/*
6
+ - types/**/*
7
+ ---
8
+
9
+ # Не использовать `as` для приведения типов при экспорте и импорте (кроме необходимых случаев)
10
+
11
+ ## О чём речь
12
+
13
+ Речь о **type assertion** в TypeScript: выражение вида `значение as Тип`.
14
+
15
+ **Не относится к правилу** (это не assertion, а синтаксис модулей):
16
+
17
+ - переименование при экспорте: `export { foo as bar }`, `export { default as Baz } from '...'`;
18
+ - переименование при импорте: `import { foo as bar } from '...'`;
19
+ - `import type { Foo as Bar }` — алиас типа в импорте типов.
20
+
21
+ ## Требование
22
+
23
+ - На **публичной границе модуля** (то, что **экспортируется** из файла / barrel, и то, что сразу **присваивается импортированным символам** с принудительным приведением) **не использовать** `as Тип` для «подгонки» типов, если можно обойтись нормальной типизацией.
24
+
25
+ ## Предпочитать вместо `as`
26
+
27
+ - явную аннотацию: `const x: T = ...` / `function f(): T`;
28
+ - **дженерики** у функций и классов;
29
+ - **`satisfies`** (когда нужно проверить совместимость без сужения до `any`);
30
+ - сужение **`unknown`** после проверки (type guards, `zod` и т.п.);
31
+ - правку **исходных типов/DTO/мапперов**, а не assertion на выходе.
32
+
33
+ ## Когда `as` допустим
34
+
35
+ - взаимодействие с **не типизированными** или некорректно типизированными внешними модулями, где нет разумной альтернативы;
36
+ - узкие места после **валидации** данных, если типовый гард всё ещё не выразить без шума (предпочтительно всё же guard/`satisfies`);
37
+ - **`as const`** — когда нужны литеральные типы и широкий вывод ломает контракт (это отдельный механизм; применять по делу, не как замену типизации API).
38
+ - блок **`catch (error)`** после вызова HTTP через общий клиент: по возможности сужать через **`instanceof`** на **класс ошибки транспорта** из `@/types` (какой именно — по существующей реализации) и работать с уже суженным типом; голый **`as` к тому же типу** — только если `instanceof` недоступен (иной источник выброса) и осознанно.
39
+
40
+ ## Примеры
41
+
42
+ ```typescript
43
+ // ❌ Плохо: assertion на экспортируемом API
44
+ export const config = loadRaw() as AppConfig
45
+
46
+ // ✅ Лучше: аннотация + проверка или маппер
47
+ export const config: AppConfig = mapToAppConfig(loadRaw())
48
+
49
+ // ❌ Плохо: сразу после импорта «ломаем» тип
50
+ import { getData } from './api'
51
+ export const data = getData() as MyDto[]
52
+
53
+ // ✅ Лучше: типизировать getData / обернуть типобезопасной функцией
54
+ ```
55
+
56
+ ## Требование к агенту
57
+
58
+ При ревью и генерации кода **не добавлять** новые `as Тип` на экспортируемые сущности и на цепочку import → export без явной необходимости; по возможности исправлять контракт типов в источнике.
59
+ - В слайсах и сервисах при обработке ошибок API сначала рассматривать **`instanceof`** на класс ошибки транспорта из `@/types` по образцу существующего кода (`http-client.mdc`, `store-svelte.mdc`).
@@ -0,0 +1,44 @@
1
+ ---
2
+ description: Базовые принципы, стек и архитектура SvelteKit приложения (preset)
3
+ ---
4
+
5
+ # Стек и окружение
6
+
7
+ Конкретные версии — **из `package.json` и конфигов целевого репозитория**. Рамка preset: SvelteKit, Svelte 5 (primary), TypeScript; runner/e2e/mocks/UI/APM — как заведено в репо.
8
+
9
+ # Структура проекта
10
+
11
+ | Путь | Назначение |
12
+ |------|------------|
13
+ | `src/routes/**` | Routes, layouts, load, form actions (`+page`, `+layout`, `+server`) |
14
+ | `src/lib/components/**` | UI components (`.svelte`) |
15
+ | `src/lib/**` | Facades / utils (no Vue-style `composables/` tree) |
16
+ | `src/lib/stores/**` | Svelte stores + shared runes modules |
17
+ | `src/lib/api/**` | Client services + mappers (barrel) |
18
+ | `src/lib/clients/**` | HTTP (`fetch` wrapper) |
19
+ | `src/hooks.server.ts` / `src/hooks.client.ts` | App hooks |
20
+ | `src/lib/types/**` | Domain types (barrel) |
21
+ | `tests/e2e/**` | Playwright e2e |
22
+
23
+ **Aliases:** prefer `$lib`; respect `$app/*` / `$env/*` (не изобретать символы); accept `@/` если настроен. Scripts cwd — **корень SvelteKit** (где `svelte.config.*`), не Next-обёртка `app/`.
24
+
25
+ # Архитектурные слои
26
+
27
+ | Слой | Каталог | Детали |
28
+ |------|---------|--------|
29
+ | UI | `src/routes/**`, `src/lib/components/**` | `svelte-ui`, `architecture-boundaries-ui` |
30
+ | Facades | `src/lib/**` | thin orchestration; no raw HTTP |
31
+ | Store | `src/lib/stores/**` | `store-svelte` — writable/derived/readable + runes |
32
+ | API | `src/lib/api/**` | `api-services`, `http-client` |
33
+ | HTTP | `src/lib/clients/**` | wrap `fetch` |
34
+ | Server | `+server.ts`, hooks | `security-sveltekit`; not a substitute for `src/lib/api/**` |
35
+ | Types | `src/lib/types/**` | `public-imports`, `types-jsdoc` |
36
+
37
+ Границы — **`architecture-boundaries`**. Импорты `$lib/types`, `$lib/api` (или `@/…` если aliased) — **`public-imports`**. **Запрещено:** RTK / Pinia / stems `store-rtk` / `store-pinia`, React/RSC, Vue/Nuxt defaults, пути `app/src/**` / `pages/**` / `composables/**` как канон.
38
+
39
+ # Работа агента
40
+
41
+ - Архитектура и импорты: `architecture-boundaries`, `public-imports`
42
+ - Фичи: `feature-delivery-workflow` + skill `feature-delivery`
43
+ - После правок: **вызвать** `post-change-lint` (requestable); менеджер пакетов: `package-manager`
44
+ - Копировать паттерны соседей; предпочитать `unknown` вместо `any`
@@ -0,0 +1,33 @@
1
+ ---
2
+ description: Svelte script conventions — lang=ts, runes primary, follow neighbors
3
+ paths:
4
+ - "**/*.{svelte,ts}"
5
+ ---
6
+
7
+ # Svelte script conventions
8
+
9
+ - In `.svelte`: prefer `<script lang="ts">` (or project dual-script pattern if neighbors use it).
10
+ - **Svelte 5 primary:** `$state` / `$derived` / `$effect` / `$props` / snippets for new code.
11
+ - **Legacy secondary:** `svelte/store` writable/derived when neighbors use them — do not rewrite unrelated modules to runes in a drive-by.
12
+ - Keep `<script>` focused: UI bindings + thin orchestration; HTTP only via `$lib/api` / store actions.
13
+ - Prefer `unknown` over `any`; narrow before use.
14
+ - Do not invent Options-API / Vue `<script setup>` patterns in this preset.
15
+ - Arrow vs function: follow local neighbors; no blanket rewrite.
16
+
17
+ ## Incorrect
18
+
19
+ ```svelte
20
+ <script>
21
+ // no lang=ts in a TS codebase; Vue setup APIs
22
+ import { ref } from 'vue'
23
+ const count = ref(0)
24
+ </script>
25
+ ```
26
+
27
+ ## Correct
28
+
29
+ ```svelte
30
+ <script lang="ts">
31
+ let count = $state(0)
32
+ </script>
33
+ ```
@@ -0,0 +1,40 @@
1
+ ---
2
+ description: SvelteKit file-based routing, layouts, load, form actions
3
+ paths:
4
+ - src/routes/**/*
5
+ - svelte.config.*
6
+ ---
7
+
8
+ # SvelteKit routing
9
+
10
+ Canonical layout: **SvelteKit `src/`** — `src/routes/**`.
11
+ Flat (no-`src/`) layouts exist; **do not** default globs/examples to them or to Next `app/src/**` / Nuxt `pages/**`.
12
+
13
+ ## Routing
14
+
15
+ - File-based routes: `+page.svelte`, `+layout.svelte`, `+error.svelte`.
16
+ - Load: `+page.ts` / `+page.server.ts` / `+layout.ts` / `+layout.server.ts` — verify signatures against installed `@sveltejs/kit`.
17
+ - Form actions in `+page.server.ts`; progressive enhancement via `$app/forms` `enhance` when used in repo.
18
+ - API / BFF: `+server.ts`; app hooks in `src/hooks.server.ts` / `src/hooks.client.ts` — see `security-sveltekit`.
19
+ - Navigation: `<a href>`, `goto`, `invalidate`, `beforeNavigate`, `$app/navigation` — not `next/navigation`, not `navigateTo` / `<NuxtLink>`.
20
+
21
+ ## Data on pages
22
+
23
+ - Prefer `$lib/api` services + mappers for domain mapping; `load` may use event `fetch` for same-origin SSR cookie forwarding.
24
+ - Client orchestration via `store-svelte` (stores / runes).
25
+ - Secrets only via `$env/static/private` / server modules — never `$env/static/private` in client components.
26
+
27
+ ## Incorrect
28
+
29
+ ```ts
30
+ import { useRouter } from 'next/navigation'
31
+ import { navigateTo } from '#app'
32
+ ```
33
+
34
+ ## Correct
35
+
36
+ ```ts
37
+ import { goto } from '$app/navigation'
38
+
39
+ await goto('/items')
40
+ ```
@@ -0,0 +1,42 @@
1
+ ---
2
+ description: Стиль JSDoc для доменных и транспортных типов в types
3
+ paths:
4
+ - src/lib/types/**/*.ts
5
+ ---
6
+
7
+ # Документация типов в `types`
8
+
9
+ При добавлении или существенном изменении типов в этом слое **следовать уже принятому в репозитории стилю JSDoc** (см. примеры: `User.types.ts`, `Common.types.ts`, `ServerValidation.types.ts`, `TreatmentPlan/*.types.ts`).
10
+
11
+ ## Язык и форма
12
+
13
+ - Текст комментариев — **на русском**, кратко и по делу: что означает тип или поле в предметной области или в контракте с API.
14
+ - **Не опираться** на теги в духе `@param`, `@returns`, `@see`, `@deprecated` для описания типов — в этом слое они **не используются**; достаточно обычного текста в `/** … */`.
15
+
16
+ ## Экспортируемый `type` / `interface`
17
+
18
+ - Сразу **перед объявлением** — блок `/** … */`.
19
+ - Если нужно пояснить источник данных, ограничения или неочевидности — **второй абзац** в том же блоке (в JSDoc для абзаца — пустая строка между строками текста).
20
+ - Для **вложенных** объектов в том же файле каждый такой тип документируется отдельным блоком над своим объявлением.
21
+
22
+ ## Поля
23
+
24
+ - У **каждого** публичного свойства — **однострочный** `/** … */` на строке непосредственно **над** полем.
25
+ - Если поле **не приходит с бэкенда «как есть»**, а вычисляется или дополняется на фронте (маппер, селектор, UI) — начать описание с префикса **`[computed]`** (как в `TUserProfile`, типах плана лечения).
26
+ - Для форматов данных указывать это **в тексте**: например дата `YYYY-MM-DD`, пример отображаемой строки в кавычках.
27
+
28
+ ## Классы и прочие объявления
29
+
30
+ - Для **классов** (например ошибки транспорта) при изменении публичного API — краткий блок над классом и **комментарии к публичным полям** по тем же правилам, что у свойств интерфейса.
31
+
32
+ ## `enum`
33
+
34
+ - В `enums.ts` исторически часто **без JSDoc** на каждом члене; для новых enum допустимо короткое описание **над самим enum**, если назначение неочевидно из имени. Подписи для UI — как принято, через объекты `*Names` рядом с enum.
35
+
36
+ ## Практика для агента
37
+
38
+ - Добавляя новый тип или поле, **не оставлять** новые публичные поля без пояснения, если смысл не равен имени на 100%.
39
+ - Правя файл, где уже есть такие комментарии, **поддерживать тот же стиль**, а не смешивать с англоязычными или «теговыми» блоками.
40
+ - Не раздувать комментарии: одна-две фразы на тип, одна строка на поле — норма; исключение — действительно сложная доменная оговорка.
41
+
42
+ См. также импорты и barrel: `public-imports.mdc`.
@@ -0,0 +1,11 @@
1
+ # Testing
2
+
3
+ Unit, e2e, Playwright agents.
4
+
5
+ | Файл | Содержание | Загрузка |
6
+ |------|------------|----------|
7
+ | `playwright-agents.md` | Planner / generator / healer — структура e2e | session start |
8
+ | `tests-unit.md` | Unit/integration, именование на русском | `paths: **/*.spec.*`, `*.test.*` |
9
+ | `tests-e2e-structure.md` | `*.cases.md`, page objects, data-testid | `paths: tests/e2e/**` |
10
+
11
+ См. также `.claude/agents/playwright-test-*.md` после `ai-rules init`.
@@ -0,0 +1,80 @@
1
+ ---
2
+ description: Playwright Agents (planner/generator/healer) configuration for e2e structure in tests/e2e
3
+ paths:
4
+ - tests/e2e/**/*
5
+ ---
6
+
7
+ # Playwright Agents in this project
8
+
9
+ In this repository, Playwright Agents (planner, generator, healer) **must follow the existing e2e structure**:
10
+
11
+ - **Test directory**: `tests/e2e`
12
+ - **Test plans (specs)**: `*.cases.md` files under `tests/e2e/**`
13
+ - **Executable tests**: `*.spec.ts` files under `tests/e2e/**`
14
+ - **Seed test**: `tests/e2e/seed.spec.ts`
15
+
16
+ Do **not** introduce separate top-level `specs/` and `tests/` folders for real test coverage. Those may be used only as temporary sandboxes if explicitly requested.
17
+
18
+ ## Planner (test plans)
19
+
20
+ When acting as a **Planner** (or working with the Playwright planner agent):
21
+
22
+ - **Treat `*.cases.md` as the canonical test plan files**, equivalent to Playwright's `specs/*.md`.
23
+ - **Location**:
24
+ - For a feature/domain, use the corresponding `*.cases.md` file under `tests/e2e`, e.g.:
25
+ - `tests/e2e/OrderHistory/order-history.cases.md`
26
+ - `tests/e2e/BillingReport/invoice-list.cases.md`
27
+ - **Content requirements**:
28
+ - Group scenarios by feature and subfeature using headings.
29
+ - For each scenario include:
30
+ - clear title,
31
+ - preconditions,
32
+ - ordered steps,
33
+ - expected results.
34
+ - Write in concise business language, but precise enough for automatic test generation.
35
+ - **Seed**:
36
+ - Assume environment is prepared by `tests/e2e/seed.spec.ts` (login, baseURL, mocks, etc.).
37
+
38
+ When asked to "generate a test plan" for a feature, **create or update the appropriate `*.cases.md` file in `tests/e2e/**`**, not in a separate `specs/` folder.
39
+
40
+ ## Generator (tests from plans)
41
+
42
+ When acting as a **Generator** (or working with the Playwright generator agent):
43
+
44
+ - **Source of truth for scenarios**:
45
+ - Use the relevant `*.cases.md` file under `tests/e2e/**` as the test plan.
46
+ - **Target for tests**:
47
+ - Generate or update `*.spec.ts` files under the same folder, e.g.:
48
+ - plan: `tests/e2e/OrderHistory/order-history.cases.md`
49
+ - tests: `tests/e2e/OrderHistory/order-history.spec.ts` (or additional `*.spec.ts` in that folder if needed).
50
+ - **Structure**:
51
+ - Use `test.describe` to group by top-level plan sections (feature / user flow).
52
+ - Use `test(...)` titles that match scenario names from the plan.
53
+ - Prefer Page Object and fluent interfaces that already exist in this project, for example:
54
+ - `tests/e2e/OrderHistory/OrderHistoryPage.ts`
55
+ - shared helpers under `tests/e2e/_shared/`.
56
+ - **Seed**:
57
+ - If a seed test is needed, use `tests/e2e/seed.spec.ts` as the reference for environment setup.
58
+
59
+ Do **not** generate Playwright tests into a separate `tests/` folder by default. Keep all e2e tests under `tests/e2e/**` to respect project conventions.
60
+
61
+ ## Healer (fixing tests)
62
+
63
+ When acting as a **Healer** (or working with the Playwright healer agent):
64
+
65
+ - Operate only on `*.spec.ts` files under `tests/e2e/**`.
66
+ - Use `*.cases.md` in the same folder as **documentation of the intended behavior**:
67
+ - Do not weaken or change business assertions in tests in a way that conflicts with the corresponding `*.cases.md`.
68
+ - Prefer updating locators, waits, and flow details to match the UI while keeping the scenario semantics intact.
69
+ - When multiple specs are involved, prioritize:
70
+ - the spec file in the same folder as the failing test,
71
+ - then shared utilities in `tests/e2e/_shared/`.
72
+
73
+ Healer should keep tests aligned with the existing test plans (`*.cases.md`) and with the page objects and helpers already used in the project.
74
+
75
+
76
+ ## Stack notes (SvelteKit)
77
+
78
+ - E2E root: `tests/e2e/`.
79
+ - Default baseURL: `http://localhost:5173`.
80
+ - Prefer Playwright `webServer` → `vite dev` or `vite build && vite preview`.
@@ -0,0 +1,51 @@
1
+ ---
2
+ description: Структура e2e тестов и планов (Playwright)
3
+ paths:
4
+ - tests/e2e/**/*
5
+ ---
6
+
7
+ # Структура e2e в проекте
8
+
9
+ - Папка e2e: `tests/e2e/**`.
10
+ - Планы сценариев:
11
+ - `*.cases.md` файлы — **канонический источник сценариев**.
12
+ - Тесты:
13
+ - `*.spec.ts` файлы — реализация сценариев на Playwright.
14
+ - Общие утилиты и абстракции:
15
+ - `tests/e2e/_shared/**` — константы, fluent‑интерфейсы, хелперы.
16
+
17
+ # Принципы
18
+
19
+ - Каждый сценарий из `*.cases.md` должен иметь соответствующий тест (или набор тестов).
20
+ - **Нельзя** ослаблять проверки в тестах, если это противоречит бизнес‑ожиданиям из планов.
21
+ - Предпочтительно использовать:
22
+ - page‑objects (например, `OrderHistoryPage.ts`);
23
+ - общие хелперы из `_shared`.
24
+
25
+ # Именование e2e‑тестов
26
+
27
+ - Язык:
28
+ - все названия `test` / `it`, `describe`‑блоков и шагов в `*.cases.md` должны быть сформулированы **на русском языке**, описывая поведение и ожидаемый результат.
29
+ - Формат заголовков e2e‑тестов (`test(...)` / `it(...)`):
30
+ - перед текстовым описанием сценария указывается **префикс с номером** в формате: `ПРЕФИКС-XXX Описание сценария`.
31
+ - `ПРЕФИКС` — аббревиатура из **первых букв слов** тестируемой сущности, записанная **латиницей в верхнем регистре**.
32
+ - пример: `OrderHistory` → `OH`, `BillingReport` → `BR`.
33
+ - `XXX` — порядковый номер теста **с тремя разрядами и лидирующими нулями**: `001`, `002`, `010`, `123` и т.д.
34
+ - пример полного названия e2e‑теста:
35
+ - `test('OH-001 Отображается список заказов', async ({ page }) => { ... })`
36
+ - внутри одной сущности (`ПРЕФИКС`) номера тестов должны образовывать **непротиворечивую последовательность**, без дубликатов номеров.
37
+
38
+ # data-testid для e2e
39
+
40
+ - **Приоритет селекторов:** `data-testid` для стабильных элементов; `getByRole` и `getByLabel` для форм и доступных элементов.
41
+ - **Именование:** схема `{parent}__{element}` (например, `history-page__title`, `history-page__recognition-banner__attach-files-button`).
42
+ - **Где добавлять:** на корневые контейнеры страниц и ключевые интерактивные элементы (кнопки, ссылки, поля), к которым обращаются page objects.
43
+ - **При изменении UI:** обновлять data-testid в компонентах и соответствующие селекторы в page objects; сверять с `*.cases.md`.
44
+
45
+ # Требование к агенту
46
+
47
+ При добавлении/изменении e2e‑тестов:
48
+ - Сначала смотреть соответствующий `*.cases.md` и синхронизировать названия сценариев.
49
+ - Размещать спеки рядом с планами в той же директории.
50
+ - Переиспользовать общие page‑objects и хелперы, а не копировать селекторы напрямую в каждый тест.
51
+