@bonesofspring/ai-rules 0.2.14 → 0.2.16

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 (846) hide show
  1. package/CHANGELOG.md +24 -1
  2. package/README.md +3 -1
  3. package/bin/cli.js +2 -0
  4. package/package.json +2 -1
  5. package/presets/_shared/core/agent-team/agent-team-intake.md +2 -2
  6. package/presets/_shared/core/agent-team/agent-team-orchestrator.md +4 -4
  7. package/presets/_shared/core/architecture/feature-delivery-workflow.md +27 -27
  8. package/presets/_shared/core/architecture/reference-features.template.md +23 -23
  9. package/presets/_shared/core/meta/preset-layering.md +12 -12
  10. package/presets/_shared/core/meta/preset-no-cross-stack-leakage.md +26 -13
  11. package/presets/_shared/core/meta/preset-pr-checklist.md +6 -6
  12. package/presets/_shared/core/meta/preset-token-budget.md +3 -3
  13. package/presets/_shared/core/meta/preset-twin-sync.md +2 -0
  14. package/presets/_shared/core/quality/code-quality-and-refactoring.md +19 -19
  15. package/presets/_shared/core/quality/design-guidance.md +54 -54
  16. package/presets/_shared/core/review/code-review-mr.md +4 -4
  17. package/presets/_shared/core/review/technical-retro.md +3 -3
  18. package/presets/claude/android-kotlin/CLAUDE.md +38 -0
  19. package/presets/claude/android-kotlin/MCP.md +16 -0
  20. package/presets/claude/android-kotlin/README.md +32 -0
  21. package/presets/claude/android-kotlin/REPO_AGENTS.md +48 -0
  22. package/presets/claude/android-kotlin/agents/README.md +44 -0
  23. package/presets/claude/android-kotlin/agents/accessibility-reviewer.md +60 -0
  24. package/presets/claude/android-kotlin/agents/api-contract-reviewer.md +70 -0
  25. package/presets/claude/android-kotlin/agents/build-verifier.md +67 -0
  26. package/presets/claude/android-kotlin/agents/ci-investigator.md +74 -0
  27. package/presets/claude/android-kotlin/agents/code-reviewer.md +74 -0
  28. package/presets/claude/android-kotlin/agents/codebase-analyzer.md +28 -0
  29. package/presets/claude/android-kotlin/agents/debugger.md +77 -0
  30. package/presets/claude/android-kotlin/agents/feature-developer.md +63 -0
  31. package/presets/claude/android-kotlin/agents/instrumentation-test-generator.md +19 -0
  32. package/presets/claude/android-kotlin/agents/instrumentation-test-healer.md +19 -0
  33. package/presets/claude/android-kotlin/agents/instrumentation-test-planner.md +19 -0
  34. package/presets/claude/android-kotlin/agents/migration-specialist.md +74 -0
  35. package/presets/claude/android-kotlin/agents/performance-auditor.md +67 -0
  36. package/presets/claude/android-kotlin/agents/qa-tester.md +66 -0
  37. package/presets/claude/android-kotlin/agents/security-reviewer.md +65 -0
  38. package/presets/claude/android-kotlin/agents/solution-architect.md +21 -0
  39. package/presets/claude/android-kotlin/agents/task-analyst.md +36 -0
  40. package/presets/claude/android-kotlin/agents/task-router.md +103 -0
  41. package/presets/claude/android-kotlin/agents/tech-writer.md +61 -0
  42. package/presets/claude/android-kotlin/agents/unit-test-generator.md +55 -0
  43. package/presets/claude/android-kotlin/agents/unit-test-healer.md +54 -0
  44. package/presets/claude/android-kotlin/agents/unit-test-planner.md +65 -0
  45. package/presets/claude/android-kotlin/commands/README.md +51 -0
  46. package/presets/claude/android-kotlin/commands/feature-continue.md +19 -0
  47. package/presets/claude/android-kotlin/commands/feature-start.md +33 -0
  48. package/presets/claude/android-kotlin/commands/task-continue.md +50 -0
  49. package/presets/claude/android-kotlin/commands/task.md +56 -0
  50. package/presets/claude/android-kotlin/commands/technical-retro.md +85 -0
  51. package/presets/claude/android-kotlin/hooks/README.md +16 -0
  52. package/presets/claude/android-kotlin/hooks/chain-team-phases.sh +705 -0
  53. package/presets/claude/android-kotlin/hooks/examples/README.md +18 -0
  54. package/presets/claude/android-kotlin/hooks/examples/format-edited.example.sh +13 -0
  55. package/presets/claude/android-kotlin/hooks/examples/secret-guard.example.sh +10 -0
  56. package/presets/claude/android-kotlin/hooks/examples/test-on-save.example.sh +8 -0
  57. package/presets/claude/android-kotlin/hooks/guard-shell-command.sh +80 -0
  58. package/presets/claude/android-kotlin/mcp.json +12 -0
  59. package/presets/claude/android-kotlin/rules/README.md +63 -0
  60. package/presets/claude/android-kotlin/rules/api-and-data/README.md +10 -0
  61. package/presets/claude/android-kotlin/rules/api-and-data/networking.md +30 -0
  62. package/presets/claude/android-kotlin/rules/api-and-data/persistence.md +29 -0
  63. package/presets/claude/android-kotlin/rules/architecture/README.md +9 -0
  64. package/presets/claude/android-kotlin/rules/architecture/boundaries.md +27 -0
  65. package/presets/claude/android-kotlin/rules/architecture/di-dagger-feature-holders.md +34 -0
  66. package/presets/claude/android-kotlin/rules/architecture/feature-delivery.md +41 -0
  67. package/presets/claude/android-kotlin/rules/architecture/module-public-api.md +29 -0
  68. package/presets/claude/android-kotlin/rules/architecture/reference-features.md +28 -0
  69. package/presets/claude/android-kotlin/rules/stack/README.md +6 -0
  70. package/presets/claude/android-kotlin/rules/stack/android-app-core.md +27 -0
  71. package/presets/claude/android-kotlin/rules/stack/kotlin-conventions.md +30 -0
  72. package/presets/claude/android-kotlin/rules/testing/README.md +10 -0
  73. package/presets/claude/android-kotlin/rules/testing/ui.md +28 -0
  74. package/presets/claude/android-kotlin/rules/testing/unit.md +29 -0
  75. package/presets/claude/android-kotlin/rules/tooling-and-review/README.md +19 -0
  76. package/presets/claude/android-kotlin/rules/tooling-and-review/agent-team-intake.md +18 -0
  77. package/presets/claude/android-kotlin/rules/tooling-and-review/agent-team-orchestrator.md +127 -0
  78. package/presets/claude/android-kotlin/rules/tooling-and-review/anti-sycophancy-discipline.md +29 -0
  79. package/presets/claude/android-kotlin/rules/tooling-and-review/code-quality.md +52 -0
  80. package/presets/claude/android-kotlin/rules/tooling-and-review/code-review.md +88 -0
  81. package/presets/claude/android-kotlin/rules/tooling-and-review/design-guidance.md +110 -0
  82. package/presets/claude/android-kotlin/rules/tooling-and-review/gradle-tooling.md +30 -0
  83. package/presets/claude/android-kotlin/rules/tooling-and-review/post-change-build.md +34 -0
  84. package/presets/claude/android-kotlin/rules/tooling-and-review/preset-layering.md +36 -0
  85. package/presets/claude/android-kotlin/rules/tooling-and-review/preset-no-cross-stack-leakage.md +100 -0
  86. package/presets/claude/android-kotlin/rules/tooling-and-review/preset-pr-checklist.md +39 -0
  87. package/presets/claude/android-kotlin/rules/tooling-and-review/preset-token-budget.md +41 -0
  88. package/presets/claude/android-kotlin/rules/tooling-and-review/preset-twin-sync.md +56 -0
  89. package/presets/claude/android-kotlin/rules/tooling-and-review/security-android.md +29 -0
  90. package/presets/claude/android-kotlin/rules/tooling-and-review/technical-retro.md +18 -0
  91. package/presets/claude/android-kotlin/rules/ui-and-accessibility/README.md +7 -0
  92. package/presets/claude/android-kotlin/rules/ui-and-accessibility/compose.md +31 -0
  93. package/presets/claude/android-kotlin/rules/ui-and-accessibility/navigation.md +30 -0
  94. package/presets/claude/android-kotlin/rules/ui-and-accessibility/viewmodels.md +27 -0
  95. package/presets/claude/android-kotlin/skills/README.md +14 -0
  96. package/presets/claude/android-kotlin/skills/ci-investigation/SKILL.md +39 -0
  97. package/presets/claude/android-kotlin/skills/code-review/SKILL.md +39 -0
  98. package/presets/claude/android-kotlin/skills/debug-investigation/SKILL.md +34 -0
  99. package/presets/claude/android-kotlin/skills/feature-delivery/SKILL.md +35 -0
  100. package/presets/claude/android-kotlin/skills/instrumentation-ui-e2e/SKILL.md +17 -0
  101. package/presets/claude/android-kotlin/skills/technical-retro/SKILL.md +54 -0
  102. package/presets/claude/android-kotlin/skills/unit-testing/SKILL.md +32 -0
  103. package/presets/claude/android-kotlin/skills/write-adr/SKILL.md +41 -0
  104. package/presets/claude/android-kotlin/team/README.md +54 -0
  105. package/presets/claude/android-kotlin/team/conventions.md +17 -0
  106. package/presets/claude/android-kotlin/team/fixtures/bugfix-standard.json +47 -0
  107. package/presets/claude/android-kotlin/team/fixtures/feature-full.json +97 -0
  108. package/presets/claude/android-kotlin/team/fixtures/feature-light.json +38 -0
  109. package/presets/claude/go/MCP.md +7 -7
  110. package/presets/claude/go/README.md +3 -3
  111. package/presets/claude/go/agents/README.md +2 -2
  112. package/presets/claude/go/agents/task-router.md +13 -13
  113. package/presets/claude/go/commands/README.md +8 -8
  114. package/presets/claude/go/commands/feature-continue.md +21 -21
  115. package/presets/claude/go/commands/feature-start.md +16 -16
  116. package/presets/claude/go/commands/task-continue.md +14 -14
  117. package/presets/claude/go/commands/task.md +32 -32
  118. package/presets/claude/go/commands/technical-retro.md +38 -38
  119. package/presets/claude/go/rules/architecture/boundaries.md +10 -10
  120. package/presets/claude/go/rules/stack/README.md +1 -1
  121. package/presets/claude/go/rules/stack/go-app-core.md +11 -11
  122. package/presets/claude/go/rules/tooling-and-review/README.md +1 -1
  123. package/presets/claude/go/rules/tooling-and-review/agent-team-intake.md +2 -2
  124. package/presets/claude/go/rules/tooling-and-review/agent-team-orchestrator.md +4 -4
  125. package/presets/claude/go/rules/tooling-and-review/code-quality.md +21 -20
  126. package/presets/claude/go/rules/tooling-and-review/code-review.md +4 -4
  127. package/presets/claude/go/rules/tooling-and-review/design-guidance.md +54 -54
  128. package/presets/claude/go/rules/tooling-and-review/post-change-test.md +1 -1
  129. package/presets/claude/go/rules/tooling-and-review/preset-layering.md +12 -13
  130. package/presets/claude/go/rules/tooling-and-review/preset-no-cross-stack-leakage.md +26 -14
  131. package/presets/claude/go/rules/tooling-and-review/preset-pr-checklist.md +6 -7
  132. package/presets/claude/go/rules/tooling-and-review/preset-token-budget.md +3 -4
  133. package/presets/claude/go/rules/tooling-and-review/preset-twin-sync.md +2 -1
  134. package/presets/claude/go/rules/tooling-and-review/technical-retro.md +3 -3
  135. package/presets/claude/go/team/README.md +1 -1
  136. package/presets/claude/ios-swift/CLAUDE.md +16 -16
  137. package/presets/claude/ios-swift/MCP.md +10 -8
  138. package/presets/claude/ios-swift/README.md +8 -8
  139. package/presets/claude/ios-swift/agents/README.md +11 -11
  140. package/presets/claude/ios-swift/agents/feature-developer.md +1 -1
  141. package/presets/claude/ios-swift/agents/task-analyst.md +1 -1
  142. package/presets/claude/ios-swift/agents/task-router.md +18 -18
  143. package/presets/claude/ios-swift/commands/README.md +48 -10
  144. package/presets/claude/ios-swift/commands/feature-continue.md +9 -41
  145. package/presets/claude/ios-swift/commands/feature-start.md +19 -16
  146. package/presets/claude/ios-swift/commands/task-continue.md +14 -14
  147. package/presets/claude/ios-swift/commands/task.md +33 -33
  148. package/presets/claude/ios-swift/commands/technical-retro.md +61 -38
  149. package/presets/claude/ios-swift/rules/README.md +7 -7
  150. package/presets/claude/ios-swift/rules/api-and-data/README.md +1 -1
  151. package/presets/claude/ios-swift/rules/api-and-data/networking.md +31 -31
  152. package/presets/claude/ios-swift/rules/api-and-data/persistence.md +13 -13
  153. package/presets/claude/ios-swift/rules/architecture/README.md +1 -1
  154. package/presets/claude/ios-swift/rules/architecture/boundaries.md +20 -20
  155. package/presets/claude/ios-swift/rules/architecture/feature-delivery.md +31 -30
  156. package/presets/claude/ios-swift/rules/architecture/module-public-api.md +11 -11
  157. package/presets/claude/ios-swift/rules/architecture/reference-features.md +25 -22
  158. package/presets/claude/ios-swift/rules/stack/README.md +1 -1
  159. package/presets/claude/ios-swift/rules/stack/ios-app-core.md +10 -10
  160. package/presets/claude/ios-swift/rules/stack/swift-conventions.md +17 -17
  161. package/presets/claude/ios-swift/rules/testing/README.md +1 -1
  162. package/presets/claude/ios-swift/rules/testing/ui.md +27 -27
  163. package/presets/claude/ios-swift/rules/testing/unit.md +25 -25
  164. package/presets/claude/ios-swift/rules/tooling-and-review/README.md +5 -2
  165. package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-intake.md +2 -2
  166. package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-orchestrator.md +51 -21
  167. package/presets/claude/ios-swift/rules/tooling-and-review/code-quality.md +25 -24
  168. package/presets/claude/ios-swift/rules/tooling-and-review/code-review.md +40 -39
  169. package/presets/claude/ios-swift/rules/tooling-and-review/design-guidance.md +54 -54
  170. package/presets/claude/ios-swift/rules/tooling-and-review/post-change-build.md +18 -18
  171. package/presets/claude/ios-swift/rules/tooling-and-review/preset-layering.md +12 -13
  172. package/presets/claude/ios-swift/rules/tooling-and-review/preset-no-cross-stack-leakage.md +26 -14
  173. package/presets/claude/ios-swift/rules/tooling-and-review/preset-pr-checklist.md +6 -7
  174. package/presets/claude/ios-swift/rules/tooling-and-review/preset-token-budget.md +3 -4
  175. package/presets/claude/ios-swift/rules/tooling-and-review/preset-twin-sync.md +2 -1
  176. package/presets/claude/ios-swift/rules/tooling-and-review/security-ios.md +14 -14
  177. package/presets/claude/ios-swift/rules/tooling-and-review/technical-retro.md +4 -4
  178. package/presets/claude/ios-swift/rules/tooling-and-review/xcode-tooling.md +11 -11
  179. package/presets/claude/ios-swift/rules/ui-and-accessibility/README.md +1 -1
  180. package/presets/claude/ios-swift/rules/ui-and-accessibility/navigation.md +13 -13
  181. package/presets/claude/ios-swift/rules/ui-and-accessibility/swiftui.md +39 -39
  182. package/presets/claude/ios-swift/rules/ui-and-accessibility/viewmodels.md +24 -24
  183. package/presets/claude/ios-swift/skills/README.md +3 -3
  184. package/presets/claude/ios-swift/team/README.md +6 -2
  185. package/presets/claude/java/MCP.md +5 -5
  186. package/presets/claude/java/agents/README.md +2 -2
  187. package/presets/claude/java/agents/task-router.md +13 -13
  188. package/presets/claude/java/commands/README.md +8 -8
  189. package/presets/claude/java/commands/feature-continue.md +21 -21
  190. package/presets/claude/java/commands/feature-start.md +16 -16
  191. package/presets/claude/java/commands/task-continue.md +14 -14
  192. package/presets/claude/java/commands/task.md +32 -32
  193. package/presets/claude/java/commands/technical-retro.md +38 -38
  194. package/presets/claude/java/rules/architecture/boundaries.md +10 -10
  195. package/presets/claude/java/rules/stack/README.md +1 -1
  196. package/presets/claude/java/rules/stack/java-app-core.md +9 -9
  197. package/presets/claude/java/rules/tooling-and-review/README.md +1 -1
  198. package/presets/claude/java/rules/tooling-and-review/agent-team-intake.md +2 -2
  199. package/presets/claude/java/rules/tooling-and-review/agent-team-orchestrator.md +4 -4
  200. package/presets/claude/java/rules/tooling-and-review/code-quality.md +21 -20
  201. package/presets/claude/java/rules/tooling-and-review/code-review.md +5 -4
  202. package/presets/claude/java/rules/tooling-and-review/design-guidance.md +55 -54
  203. package/presets/claude/java/rules/tooling-and-review/post-change-test.md +1 -1
  204. package/presets/claude/java/rules/tooling-and-review/preset-layering.md +12 -13
  205. package/presets/claude/java/rules/tooling-and-review/preset-no-cross-stack-leakage.md +26 -14
  206. package/presets/claude/java/rules/tooling-and-review/preset-pr-checklist.md +6 -7
  207. package/presets/claude/java/rules/tooling-and-review/preset-token-budget.md +3 -4
  208. package/presets/claude/java/rules/tooling-and-review/preset-twin-sync.md +2 -1
  209. package/presets/claude/java/rules/tooling-and-review/technical-retro.md +3 -3
  210. package/presets/claude/java/team/README.md +1 -1
  211. package/presets/claude/mcp-ts/MCP.md +5 -5
  212. package/presets/claude/mcp-ts/agents/task-router.md +7 -7
  213. package/presets/claude/mcp-ts/commands/README.md +1 -1
  214. package/presets/claude/mcp-ts/commands/feature-continue.md +8 -8
  215. package/presets/claude/mcp-ts/commands/feature-start.md +17 -17
  216. package/presets/claude/mcp-ts/commands/task-continue.md +14 -14
  217. package/presets/claude/mcp-ts/commands/task.md +32 -32
  218. package/presets/claude/mcp-ts/commands/technical-retro.md +54 -54
  219. package/presets/claude/mcp-ts/rules/architecture/mcp-server-boundaries.md +2 -2
  220. package/presets/claude/mcp-ts/rules/stack/mcp-ts-app-core.md +9 -9
  221. package/presets/claude/mcp-ts/rules/tooling-and-review/agent-team-intake.md +3 -3
  222. package/presets/claude/mcp-ts/rules/tooling-and-review/agent-team-orchestrator.md +4 -4
  223. package/presets/claude/mcp-ts/rules/tooling-and-review/code-quality.md +21 -20
  224. package/presets/claude/mcp-ts/rules/tooling-and-review/code-review.md +5 -4
  225. package/presets/claude/mcp-ts/rules/tooling-and-review/design-guidance.md +55 -54
  226. package/presets/claude/mcp-ts/rules/tooling-and-review/post-change-test.md +1 -1
  227. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-layering.md +12 -13
  228. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-no-cross-stack-leakage.md +26 -14
  229. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-pr-checklist.md +6 -7
  230. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-token-budget.md +3 -4
  231. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-twin-sync.md +2 -1
  232. package/presets/claude/mcp-ts/rules/tooling-and-review/technical-retro.md +3 -3
  233. package/presets/claude/next/CLAUDE.md +17 -17
  234. package/presets/claude/next/MCP.md +8 -8
  235. package/presets/claude/next/README.md +16 -16
  236. package/presets/claude/next/agents/README.md +19 -19
  237. package/presets/claude/next/agents/feature-developer.md +1 -1
  238. package/presets/claude/next/agents/task-analyst.md +1 -1
  239. package/presets/claude/next/agents/task-router.md +16 -16
  240. package/presets/claude/next/commands/README.md +9 -9
  241. package/presets/claude/next/commands/feature-continue.md +21 -21
  242. package/presets/claude/next/commands/feature-start.md +16 -16
  243. package/presets/claude/next/commands/task-continue.md +14 -14
  244. package/presets/claude/next/commands/task.md +33 -33
  245. package/presets/claude/next/commands/technical-retro.md +38 -38
  246. package/presets/claude/next/rules/README.md +12 -12
  247. package/presets/claude/next/rules/api-and-data/README.md +6 -6
  248. package/presets/claude/next/rules/api-and-data/api-services.md +42 -42
  249. package/presets/claude/next/rules/api-and-data/http-client.md +22 -21
  250. package/presets/claude/next/rules/api-and-data/store-rtk.md +60 -60
  251. package/presets/claude/next/rules/architecture/README.md +8 -8
  252. package/presets/claude/next/rules/architecture/architecture-boundaries-ui.md +6 -6
  253. package/presets/claude/next/rules/architecture/architecture-boundaries.md +44 -44
  254. package/presets/claude/next/rules/architecture/feature-delivery-workflow.md +39 -39
  255. package/presets/claude/next/rules/architecture/layer-barrel-exports.md +30 -29
  256. package/presets/claude/next/rules/architecture/public-imports.md +13 -13
  257. package/presets/claude/next/rules/architecture/reference-features.md +16 -16
  258. package/presets/claude/next/rules/stack/README.md +9 -9
  259. package/presets/claude/next/rules/stack/arrow-functions.md +7 -7
  260. package/presets/claude/next/rules/stack/navigation-router-ui.md +6 -6
  261. package/presets/claude/next/rules/stack/navigation-router.md +37 -37
  262. package/presets/claude/next/rules/stack/next-app-core.md +17 -17
  263. package/presets/claude/next/rules/stack/next-app-router.md +17 -17
  264. package/presets/claude/next/rules/stack/no-type-assertion.md +28 -28
  265. package/presets/claude/next/rules/stack/types-jsdoc.md +31 -20
  266. package/presets/claude/next/rules/testing/README.md +5 -5
  267. package/presets/claude/next/rules/testing/playwright-agents.md +1 -1
  268. package/presets/claude/next/rules/testing/tests-e2e-structure.md +48 -47
  269. package/presets/claude/next/rules/testing/tests-unit.md +50 -51
  270. package/presets/claude/next/rules/tooling-and-review/README.md +9 -9
  271. package/presets/claude/next/rules/tooling-and-review/agent-team-intake.md +2 -2
  272. package/presets/claude/next/rules/tooling-and-review/agent-team-orchestrator.md +4 -4
  273. package/presets/claude/next/rules/tooling-and-review/code-quality.md +25 -24
  274. package/presets/claude/next/rules/tooling-and-review/code-review-mr.md +4 -4
  275. package/presets/claude/next/rules/tooling-and-review/design-guidance.md +54 -54
  276. package/presets/claude/next/rules/tooling-and-review/package-manager.md +7 -7
  277. package/presets/claude/next/rules/tooling-and-review/post-change-lint.md +22 -22
  278. package/presets/claude/next/rules/tooling-and-review/preset-layering.md +12 -13
  279. package/presets/claude/next/rules/tooling-and-review/preset-no-cross-stack-leakage.md +26 -14
  280. package/presets/claude/next/rules/tooling-and-review/preset-pr-checklist.md +6 -7
  281. package/presets/claude/next/rules/tooling-and-review/preset-token-budget.md +3 -4
  282. package/presets/claude/next/rules/tooling-and-review/preset-twin-sync.md +2 -1
  283. package/presets/claude/next/rules/tooling-and-review/technical-retro.md +4 -4
  284. package/presets/claude/next/rules/ui-and-accessibility/README.md +7 -7
  285. package/presets/claude/next/rules/ui-and-accessibility/css-property-order.md +3 -3
  286. package/presets/claude/next/rules/ui-and-accessibility/no-props-spread.md +18 -18
  287. package/presets/claude/next/rules/ui-and-accessibility/react-a11y-coding.md +20 -20
  288. package/presets/claude/next/rules/ui-and-accessibility/react-ui.md +63 -63
  289. package/presets/claude/next/skills/README.md +4 -4
  290. package/presets/claude/next/skills/feature-delivery/SKILL.md +1 -1
  291. package/presets/claude/next/team/README.md +2 -2
  292. package/presets/claude/nuxt/CLAUDE.md +19 -19
  293. package/presets/claude/nuxt/MCP.md +8 -8
  294. package/presets/claude/nuxt/README.md +18 -18
  295. package/presets/claude/nuxt/agents/README.md +38 -31
  296. package/presets/claude/nuxt/agents/feature-developer.md +1 -1
  297. package/presets/claude/nuxt/agents/task-analyst.md +1 -1
  298. package/presets/claude/nuxt/agents/task-router.md +22 -22
  299. package/presets/claude/nuxt/commands/README.md +48 -10
  300. package/presets/claude/nuxt/commands/feature-continue.md +9 -41
  301. package/presets/claude/nuxt/commands/feature-start.md +19 -16
  302. package/presets/claude/nuxt/commands/task-continue.md +14 -14
  303. package/presets/claude/nuxt/commands/task.md +33 -33
  304. package/presets/claude/nuxt/commands/technical-retro.md +61 -38
  305. package/presets/claude/nuxt/rules/README.md +5 -5
  306. package/presets/claude/nuxt/rules/api-and-data/README.md +6 -6
  307. package/presets/claude/nuxt/rules/api-and-data/api-services.md +44 -43
  308. package/presets/claude/nuxt/rules/api-and-data/store-pinia.md +27 -26
  309. package/presets/claude/nuxt/rules/architecture/README.md +8 -8
  310. package/presets/claude/nuxt/rules/architecture/architecture-boundaries-ui.md +8 -7
  311. package/presets/claude/nuxt/rules/architecture/architecture-boundaries.md +59 -58
  312. package/presets/claude/nuxt/rules/architecture/feature-delivery-workflow.md +45 -44
  313. package/presets/claude/nuxt/rules/architecture/layer-barrel-exports.md +32 -31
  314. package/presets/claude/nuxt/rules/architecture/public-imports.md +15 -14
  315. package/presets/claude/nuxt/rules/architecture/reference-features.md +18 -17
  316. package/presets/claude/nuxt/rules/stack/README.md +8 -8
  317. package/presets/claude/nuxt/rules/stack/navigation-router-ui.md +6 -6
  318. package/presets/claude/nuxt/rules/stack/navigation-router.md +37 -37
  319. package/presets/claude/nuxt/rules/stack/no-type-assertion.md +30 -29
  320. package/presets/claude/nuxt/rules/stack/nuxt-app-core.md +17 -16
  321. package/presets/claude/nuxt/rules/stack/types-jsdoc.md +23 -22
  322. package/presets/claude/nuxt/rules/testing/README.md +5 -5
  323. package/presets/claude/nuxt/rules/testing/tests-e2e-structure.md +45 -45
  324. package/presets/claude/nuxt/rules/testing/tests-unit.md +52 -52
  325. package/presets/claude/nuxt/rules/tooling-and-review/README.md +9 -9
  326. package/presets/claude/nuxt/rules/tooling-and-review/agent-team-intake.md +3 -2
  327. package/presets/claude/nuxt/rules/tooling-and-review/agent-team-orchestrator.md +5 -4
  328. package/presets/claude/nuxt/rules/tooling-and-review/anti-sycophancy-discipline.md +1 -0
  329. package/presets/claude/nuxt/rules/tooling-and-review/code-quality.md +26 -24
  330. package/presets/claude/nuxt/rules/tooling-and-review/code-review-mr.md +6 -5
  331. package/presets/claude/nuxt/rules/tooling-and-review/design-guidance.md +55 -54
  332. package/presets/claude/nuxt/rules/tooling-and-review/package-manager.md +9 -8
  333. package/presets/claude/nuxt/rules/tooling-and-review/post-change-lint.md +24 -23
  334. package/presets/claude/nuxt/rules/tooling-and-review/preset-layering.md +13 -13
  335. package/presets/claude/nuxt/rules/tooling-and-review/preset-no-cross-stack-leakage.md +27 -14
  336. package/presets/claude/nuxt/rules/tooling-and-review/preset-pr-checklist.md +7 -7
  337. package/presets/claude/nuxt/rules/tooling-and-review/preset-token-budget.md +3 -4
  338. package/presets/claude/nuxt/rules/tooling-and-review/preset-twin-sync.md +3 -1
  339. package/presets/claude/nuxt/rules/tooling-and-review/technical-retro.md +5 -4
  340. package/presets/claude/nuxt/rules/ui-and-accessibility/README.md +7 -7
  341. package/presets/claude/nuxt/rules/ui-and-accessibility/vue-ui.md +7 -6
  342. package/presets/claude/nuxt/skills/README.md +4 -4
  343. package/presets/claude/nuxt/skills/feature-delivery/SKILL.md +1 -1
  344. package/presets/claude/nuxt/team/README.md +8 -4
  345. package/presets/claude/php-hexagonal/MCP.md +7 -7
  346. package/presets/claude/php-hexagonal/agents/README.md +3 -3
  347. package/presets/claude/php-hexagonal/agents/task-router.md +12 -12
  348. package/presets/claude/php-hexagonal/commands/README.md +9 -9
  349. package/presets/claude/php-hexagonal/commands/feature-continue.md +21 -21
  350. package/presets/claude/php-hexagonal/commands/feature-start.md +16 -16
  351. package/presets/claude/php-hexagonal/commands/task-continue.md +14 -14
  352. package/presets/claude/php-hexagonal/commands/task.md +32 -32
  353. package/presets/claude/php-hexagonal/commands/technical-retro.md +38 -38
  354. package/presets/claude/php-hexagonal/rules/architecture/boundaries.md +11 -10
  355. package/presets/claude/php-hexagonal/rules/stack/README.md +1 -1
  356. package/presets/claude/php-hexagonal/rules/stack/php-app-core.md +11 -10
  357. package/presets/claude/php-hexagonal/rules/tooling-and-review/README.md +1 -1
  358. package/presets/claude/php-hexagonal/rules/tooling-and-review/agent-team-intake.md +2 -2
  359. package/presets/claude/php-hexagonal/rules/tooling-and-review/agent-team-orchestrator.md +4 -4
  360. package/presets/claude/php-hexagonal/rules/tooling-and-review/code-quality.md +21 -21
  361. package/presets/claude/php-hexagonal/rules/tooling-and-review/code-review.md +4 -4
  362. package/presets/claude/php-hexagonal/rules/tooling-and-review/design-guidance.md +54 -54
  363. package/presets/claude/php-hexagonal/rules/tooling-and-review/post-change-test.md +1 -1
  364. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-layering.md +12 -13
  365. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-no-cross-stack-leakage.md +26 -14
  366. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-pr-checklist.md +6 -7
  367. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-token-budget.md +3 -4
  368. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-twin-sync.md +2 -1
  369. package/presets/claude/php-hexagonal/rules/tooling-and-review/technical-retro.md +3 -3
  370. package/presets/claude/php-hexagonal/team/README.md +1 -1
  371. package/presets/claude/php-laravel/agents/README.md +3 -3
  372. package/presets/claude/php-laravel/agents/task-router.md +14 -14
  373. package/presets/claude/php-laravel/commands/README.md +9 -9
  374. package/presets/claude/php-laravel/commands/feature-continue.md +21 -21
  375. package/presets/claude/php-laravel/commands/feature-start.md +16 -16
  376. package/presets/claude/php-laravel/commands/task-continue.md +14 -14
  377. package/presets/claude/php-laravel/commands/task.md +32 -32
  378. package/presets/claude/php-laravel/commands/technical-retro.md +38 -38
  379. package/presets/claude/php-laravel/rules/api-and-data/events-listeners.md +1 -1
  380. package/presets/claude/php-laravel/rules/architecture/boundaries.md +11 -11
  381. package/presets/claude/php-laravel/rules/stack/laravel-app-core.md +8 -8
  382. package/presets/claude/php-laravel/rules/tooling-and-review/agent-team-intake.md +3 -2
  383. package/presets/claude/php-laravel/rules/tooling-and-review/agent-team-orchestrator.md +4 -4
  384. package/presets/claude/php-laravel/rules/tooling-and-review/code-quality.md +21 -20
  385. package/presets/claude/php-laravel/rules/tooling-and-review/code-review.md +4 -5
  386. package/presets/claude/php-laravel/rules/tooling-and-review/design-guidance.md +54 -54
  387. package/presets/claude/php-laravel/rules/tooling-and-review/post-change-test.md +1 -1
  388. package/presets/claude/php-laravel/rules/tooling-and-review/preset-layering.md +13 -13
  389. package/presets/claude/php-laravel/rules/tooling-and-review/preset-no-cross-stack-leakage.md +27 -14
  390. package/presets/claude/php-laravel/rules/tooling-and-review/preset-pr-checklist.md +7 -7
  391. package/presets/claude/php-laravel/rules/tooling-and-review/preset-token-budget.md +4 -4
  392. package/presets/claude/php-laravel/rules/tooling-and-review/preset-twin-sync.md +3 -1
  393. package/presets/claude/php-laravel/rules/tooling-and-review/technical-retro.md +4 -3
  394. package/presets/claude/php-laravel/team/README.md +1 -1
  395. package/presets/claude/svelte/CLAUDE.md +17 -17
  396. package/presets/claude/svelte/MCP.md +8 -8
  397. package/presets/claude/svelte/README.md +1 -1
  398. package/presets/claude/svelte/agents/README.md +37 -30
  399. package/presets/claude/svelte/agents/feature-developer.md +1 -1
  400. package/presets/claude/svelte/agents/task-analyst.md +1 -1
  401. package/presets/claude/svelte/agents/task-router.md +19 -18
  402. package/presets/claude/svelte/commands/README.md +48 -10
  403. package/presets/claude/svelte/commands/feature-continue.md +9 -41
  404. package/presets/claude/svelte/commands/feature-start.md +19 -16
  405. package/presets/claude/svelte/commands/task-continue.md +14 -14
  406. package/presets/claude/svelte/commands/task.md +33 -33
  407. package/presets/claude/svelte/commands/technical-retro.md +61 -38
  408. package/presets/claude/svelte/rules/README.md +2 -2
  409. package/presets/claude/svelte/rules/api-and-data/README.md +6 -6
  410. package/presets/claude/svelte/rules/api-and-data/api-services.md +14 -14
  411. package/presets/claude/svelte/rules/api-and-data/store-svelte.md +26 -26
  412. package/presets/claude/svelte/rules/architecture/README.md +8 -8
  413. package/presets/claude/svelte/rules/architecture/architecture-boundaries-ui.md +7 -7
  414. package/presets/claude/svelte/rules/architecture/architecture-boundaries.md +19 -19
  415. package/presets/claude/svelte/rules/architecture/feature-delivery-workflow.md +26 -26
  416. package/presets/claude/svelte/rules/architecture/layer-barrel-exports.md +31 -31
  417. package/presets/claude/svelte/rules/architecture/public-imports.md +8 -8
  418. package/presets/claude/svelte/rules/architecture/reference-features.md +18 -18
  419. package/presets/claude/svelte/rules/stack/README.md +8 -8
  420. package/presets/claude/svelte/rules/stack/navigation-router-ui.md +1 -1
  421. package/presets/claude/svelte/rules/stack/navigation-router.md +6 -6
  422. package/presets/claude/svelte/rules/stack/no-type-assertion.md +29 -29
  423. package/presets/claude/svelte/rules/stack/svelte-app-core.md +16 -16
  424. package/presets/claude/svelte/rules/stack/types-jsdoc.md +22 -22
  425. package/presets/claude/svelte/rules/testing/README.md +5 -5
  426. package/presets/claude/svelte/rules/testing/tests-e2e-structure.md +45 -46
  427. package/presets/claude/svelte/rules/testing/tests-unit.md +17 -17
  428. package/presets/claude/svelte/rules/tooling-and-review/README.md +9 -9
  429. package/presets/claude/svelte/rules/tooling-and-review/agent-team-intake.md +2 -2
  430. package/presets/claude/svelte/rules/tooling-and-review/agent-team-orchestrator.md +9 -9
  431. package/presets/claude/svelte/rules/tooling-and-review/code-quality.md +25 -24
  432. package/presets/claude/svelte/rules/tooling-and-review/code-review-mr.md +5 -5
  433. package/presets/claude/svelte/rules/tooling-and-review/design-guidance.md +54 -54
  434. package/presets/claude/svelte/rules/tooling-and-review/package-manager.md +8 -8
  435. package/presets/claude/svelte/rules/tooling-and-review/post-change-lint.md +23 -23
  436. package/presets/claude/svelte/rules/tooling-and-review/preset-layering.md +12 -13
  437. package/presets/claude/svelte/rules/tooling-and-review/preset-no-cross-stack-leakage.md +26 -14
  438. package/presets/claude/svelte/rules/tooling-and-review/preset-pr-checklist.md +6 -7
  439. package/presets/claude/svelte/rules/tooling-and-review/preset-token-budget.md +3 -4
  440. package/presets/claude/svelte/rules/tooling-and-review/preset-twin-sync.md +2 -1
  441. package/presets/claude/svelte/rules/tooling-and-review/technical-retro.md +4 -4
  442. package/presets/claude/svelte/rules/ui-and-accessibility/README.md +7 -7
  443. package/presets/claude/svelte/rules/ui-and-accessibility/svelte-ui.md +6 -6
  444. package/presets/claude/svelte/skills/README.md +4 -4
  445. package/presets/claude/svelte/skills/feature-delivery/SKILL.md +1 -1
  446. package/presets/claude/svelte/team/README.md +8 -4
  447. package/presets/cursor/android-kotlin/AGENTS.md +50 -0
  448. package/presets/cursor/android-kotlin/BUGBOT.md +16 -0
  449. package/presets/cursor/android-kotlin/MCP.md +16 -0
  450. package/presets/cursor/android-kotlin/README.md +35 -0
  451. package/presets/cursor/android-kotlin/REPO_AGENTS.md +48 -0
  452. package/presets/cursor/android-kotlin/agents/README.md +44 -0
  453. package/presets/cursor/android-kotlin/agents/accessibility-reviewer.md +60 -0
  454. package/presets/cursor/android-kotlin/agents/api-contract-reviewer.md +70 -0
  455. package/presets/cursor/android-kotlin/agents/build-verifier.md +67 -0
  456. package/presets/cursor/android-kotlin/agents/ci-investigator.md +74 -0
  457. package/presets/cursor/android-kotlin/agents/code-reviewer.md +74 -0
  458. package/presets/cursor/android-kotlin/agents/codebase-analyzer.md +28 -0
  459. package/presets/cursor/android-kotlin/agents/debugger.md +77 -0
  460. package/presets/cursor/android-kotlin/agents/feature-developer.md +63 -0
  461. package/presets/cursor/android-kotlin/agents/instrumentation-test-generator.md +19 -0
  462. package/presets/cursor/android-kotlin/agents/instrumentation-test-healer.md +19 -0
  463. package/presets/cursor/android-kotlin/agents/instrumentation-test-planner.md +19 -0
  464. package/presets/cursor/android-kotlin/agents/migration-specialist.md +74 -0
  465. package/presets/cursor/android-kotlin/agents/performance-auditor.md +67 -0
  466. package/presets/cursor/android-kotlin/agents/qa-tester.md +66 -0
  467. package/presets/cursor/android-kotlin/agents/security-reviewer.md +65 -0
  468. package/presets/cursor/android-kotlin/agents/solution-architect.md +21 -0
  469. package/presets/cursor/android-kotlin/agents/task-analyst.md +36 -0
  470. package/presets/cursor/android-kotlin/agents/task-router.md +103 -0
  471. package/presets/cursor/android-kotlin/agents/tech-writer.md +61 -0
  472. package/presets/cursor/android-kotlin/agents/unit-test-generator.md +55 -0
  473. package/presets/cursor/android-kotlin/agents/unit-test-healer.md +54 -0
  474. package/presets/cursor/android-kotlin/agents/unit-test-planner.md +65 -0
  475. package/presets/cursor/android-kotlin/commands/README.md +51 -0
  476. package/presets/cursor/android-kotlin/commands/feature-continue.md +19 -0
  477. package/presets/cursor/android-kotlin/commands/feature-start.md +33 -0
  478. package/presets/cursor/android-kotlin/commands/task-continue.md +50 -0
  479. package/presets/cursor/android-kotlin/commands/task.md +56 -0
  480. package/presets/cursor/android-kotlin/commands/technical-retro.md +85 -0
  481. package/presets/cursor/android-kotlin/hooks/README.md +12 -0
  482. package/presets/cursor/android-kotlin/hooks/chain-team-phases.sh +723 -0
  483. package/presets/cursor/android-kotlin/hooks/examples/README.md +18 -0
  484. package/presets/cursor/android-kotlin/hooks/examples/format-edited.example.sh +13 -0
  485. package/presets/cursor/android-kotlin/hooks/examples/secret-guard.example.sh +10 -0
  486. package/presets/cursor/android-kotlin/hooks/examples/test-on-save.example.sh +8 -0
  487. package/presets/cursor/android-kotlin/hooks/guard-shell-command.sh +80 -0
  488. package/presets/cursor/android-kotlin/hooks.json +17 -0
  489. package/presets/cursor/android-kotlin/mcp.json +11 -0
  490. package/presets/cursor/android-kotlin/rules/README.md +61 -0
  491. package/presets/cursor/android-kotlin/rules/agent-team-intake.mdc +16 -0
  492. package/presets/cursor/android-kotlin/rules/agent-team-orchestrator.mdc +124 -0
  493. package/presets/cursor/android-kotlin/rules/android-app-core.mdc +28 -0
  494. package/presets/cursor/android-kotlin/rules/anti-sycophancy-discipline.mdc +30 -0
  495. package/presets/cursor/android-kotlin/rules/architecture-boundaries.mdc +28 -0
  496. package/presets/cursor/android-kotlin/rules/code-quality-and-refactoring.mdc +53 -0
  497. package/presets/cursor/android-kotlin/rules/code-review-mr.mdc +84 -0
  498. package/presets/cursor/android-kotlin/rules/compose-ui.mdc +32 -0
  499. package/presets/cursor/android-kotlin/rules/design-guidance.mdc +111 -0
  500. package/presets/cursor/android-kotlin/rules/di-dagger-feature-holders.mdc +35 -0
  501. package/presets/cursor/android-kotlin/rules/feature-delivery-workflow.mdc +36 -0
  502. package/presets/cursor/android-kotlin/rules/gradle-tooling.mdc +31 -0
  503. package/presets/cursor/android-kotlin/rules/kotlin-conventions.mdc +31 -0
  504. package/presets/cursor/android-kotlin/rules/module-public-api.mdc +30 -0
  505. package/presets/cursor/android-kotlin/rules/navigation-feature-launcher.mdc +31 -0
  506. package/presets/cursor/android-kotlin/rules/networking-data.mdc +31 -0
  507. package/presets/cursor/android-kotlin/rules/persistence-data.mdc +30 -0
  508. package/presets/cursor/android-kotlin/rules/post-change-build.mdc +30 -0
  509. package/presets/cursor/android-kotlin/rules/preset-layering.mdc +36 -0
  510. package/presets/cursor/android-kotlin/rules/preset-no-cross-stack-leakage.mdc +100 -0
  511. package/presets/cursor/android-kotlin/rules/preset-pr-checklist.mdc +39 -0
  512. package/presets/cursor/android-kotlin/rules/preset-token-budget.mdc +41 -0
  513. package/presets/cursor/android-kotlin/rules/preset-twin-sync.mdc +56 -0
  514. package/presets/cursor/android-kotlin/rules/reference-features.mdc +29 -0
  515. package/presets/cursor/android-kotlin/rules/security-android.mdc +30 -0
  516. package/presets/cursor/android-kotlin/rules/state-and-viewmodels.mdc +28 -0
  517. package/presets/cursor/android-kotlin/rules/technical-retro.mdc +16 -0
  518. package/presets/cursor/android-kotlin/rules/tests-ui.mdc +29 -0
  519. package/presets/cursor/android-kotlin/rules/tests-unit.mdc +30 -0
  520. package/presets/cursor/android-kotlin/skills/README.md +14 -0
  521. package/presets/cursor/android-kotlin/skills/ci-investigation/SKILL.md +39 -0
  522. package/presets/cursor/android-kotlin/skills/code-review/SKILL.md +39 -0
  523. package/presets/cursor/android-kotlin/skills/debug-investigation/SKILL.md +34 -0
  524. package/presets/cursor/android-kotlin/skills/feature-delivery/SKILL.md +35 -0
  525. package/presets/cursor/android-kotlin/skills/instrumentation-ui-e2e/SKILL.md +17 -0
  526. package/presets/cursor/android-kotlin/skills/technical-retro/SKILL.md +54 -0
  527. package/presets/cursor/android-kotlin/skills/unit-testing/SKILL.md +32 -0
  528. package/presets/cursor/android-kotlin/skills/write-adr/SKILL.md +41 -0
  529. package/presets/cursor/android-kotlin/team/README.md +54 -0
  530. package/presets/cursor/android-kotlin/team/conventions.md +17 -0
  531. package/presets/cursor/android-kotlin/team/fixtures/bugfix-standard.json +47 -0
  532. package/presets/cursor/android-kotlin/team/fixtures/feature-full.json +97 -0
  533. package/presets/cursor/android-kotlin/team/fixtures/feature-light.json +38 -0
  534. package/presets/cursor/go/AGENTS.md +10 -10
  535. package/presets/cursor/go/MCP.md +7 -7
  536. package/presets/cursor/go/README.md +4 -4
  537. package/presets/cursor/go/agents/README.md +3 -3
  538. package/presets/cursor/go/agents/task-router.md +13 -13
  539. package/presets/cursor/go/commands/README.md +23 -23
  540. package/presets/cursor/go/commands/feature-continue.md +8 -8
  541. package/presets/cursor/go/commands/feature-start.md +17 -17
  542. package/presets/cursor/go/commands/task-continue.md +14 -14
  543. package/presets/cursor/go/commands/task.md +32 -32
  544. package/presets/cursor/go/commands/technical-retro.md +49 -49
  545. package/presets/cursor/go/rules/README.md +3 -3
  546. package/presets/cursor/go/rules/agent-team-intake.mdc +2 -2
  547. package/presets/cursor/go/rules/agent-team-orchestrator.mdc +4 -4
  548. package/presets/cursor/go/rules/architecture-boundaries.mdc +10 -10
  549. package/presets/cursor/go/rules/code-quality-and-refactoring.mdc +21 -20
  550. package/presets/cursor/go/rules/code-review-mr.mdc +4 -4
  551. package/presets/cursor/go/rules/design-guidance.mdc +54 -54
  552. package/presets/cursor/go/rules/go-app-core.mdc +11 -11
  553. package/presets/cursor/go/rules/post-change-test.mdc +1 -1
  554. package/presets/cursor/go/rules/preset-layering.mdc +12 -13
  555. package/presets/cursor/go/rules/preset-no-cross-stack-leakage.mdc +26 -14
  556. package/presets/cursor/go/rules/preset-pr-checklist.mdc +6 -7
  557. package/presets/cursor/go/rules/preset-token-budget.mdc +3 -4
  558. package/presets/cursor/go/rules/preset-twin-sync.mdc +2 -1
  559. package/presets/cursor/go/rules/technical-retro.mdc +3 -3
  560. package/presets/cursor/go/team/README.md +1 -1
  561. package/presets/cursor/ios-swift/AGENTS.md +20 -20
  562. package/presets/cursor/ios-swift/MCP.md +8 -8
  563. package/presets/cursor/ios-swift/README.md +9 -9
  564. package/presets/cursor/ios-swift/agents/README.md +7 -7
  565. package/presets/cursor/ios-swift/agents/feature-developer.md +1 -1
  566. package/presets/cursor/ios-swift/agents/task-analyst.md +1 -1
  567. package/presets/cursor/ios-swift/agents/task-router.md +16 -16
  568. package/presets/cursor/ios-swift/commands/README.md +23 -23
  569. package/presets/cursor/ios-swift/commands/feature-continue.md +8 -8
  570. package/presets/cursor/ios-swift/commands/feature-start.md +17 -17
  571. package/presets/cursor/ios-swift/commands/task-continue.md +14 -14
  572. package/presets/cursor/ios-swift/commands/task.md +33 -33
  573. package/presets/cursor/ios-swift/commands/technical-retro.md +50 -50
  574. package/presets/cursor/ios-swift/rules/README.md +23 -23
  575. package/presets/cursor/ios-swift/rules/agent-team-intake.mdc +2 -2
  576. package/presets/cursor/ios-swift/rules/agent-team-orchestrator.mdc +2 -2
  577. package/presets/cursor/ios-swift/rules/architecture-boundaries.mdc +20 -20
  578. package/presets/cursor/ios-swift/rules/code-quality-and-refactoring.mdc +25 -24
  579. package/presets/cursor/ios-swift/rules/code-review-mr.mdc +40 -40
  580. package/presets/cursor/ios-swift/rules/design-guidance.mdc +54 -54
  581. package/presets/cursor/ios-swift/rules/feature-delivery-workflow.mdc +30 -30
  582. package/presets/cursor/ios-swift/rules/ios-app-core.mdc +10 -10
  583. package/presets/cursor/ios-swift/rules/module-public-api.mdc +11 -11
  584. package/presets/cursor/ios-swift/rules/navigation-coordinators.mdc +13 -13
  585. package/presets/cursor/ios-swift/rules/networking-services.mdc +31 -31
  586. package/presets/cursor/ios-swift/rules/persistence-data.mdc +13 -13
  587. package/presets/cursor/ios-swift/rules/post-change-build.mdc +18 -18
  588. package/presets/cursor/ios-swift/rules/preset-layering.mdc +12 -13
  589. package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +26 -14
  590. package/presets/cursor/ios-swift/rules/preset-pr-checklist.mdc +6 -7
  591. package/presets/cursor/ios-swift/rules/preset-token-budget.mdc +3 -4
  592. package/presets/cursor/ios-swift/rules/preset-twin-sync.mdc +2 -1
  593. package/presets/cursor/ios-swift/rules/reference-features.mdc +22 -22
  594. package/presets/cursor/ios-swift/rules/security-ios.mdc +14 -14
  595. package/presets/cursor/ios-swift/rules/state-and-viewmodels.mdc +24 -24
  596. package/presets/cursor/ios-swift/rules/swift-conventions.mdc +17 -17
  597. package/presets/cursor/ios-swift/rules/swiftui-ui.mdc +39 -39
  598. package/presets/cursor/ios-swift/rules/technical-retro.mdc +4 -4
  599. package/presets/cursor/ios-swift/rules/tests-ui.mdc +27 -26
  600. package/presets/cursor/ios-swift/rules/tests-unit.mdc +25 -25
  601. package/presets/cursor/ios-swift/rules/xcode-tooling.mdc +11 -11
  602. package/presets/cursor/ios-swift/skills/README.md +3 -3
  603. package/presets/cursor/ios-swift/team/README.md +1 -1
  604. package/presets/cursor/java/AGENTS.md +10 -10
  605. package/presets/cursor/java/MCP.md +6 -6
  606. package/presets/cursor/java/agents/README.md +3 -3
  607. package/presets/cursor/java/agents/task-router.md +13 -13
  608. package/presets/cursor/java/commands/README.md +23 -23
  609. package/presets/cursor/java/commands/feature-continue.md +8 -8
  610. package/presets/cursor/java/commands/feature-start.md +17 -17
  611. package/presets/cursor/java/commands/task-continue.md +14 -14
  612. package/presets/cursor/java/commands/task.md +32 -32
  613. package/presets/cursor/java/commands/technical-retro.md +49 -49
  614. package/presets/cursor/java/rules/README.md +2 -2
  615. package/presets/cursor/java/rules/agent-team-intake.mdc +2 -2
  616. package/presets/cursor/java/rules/agent-team-orchestrator.mdc +4 -4
  617. package/presets/cursor/java/rules/architecture-boundaries.mdc +10 -10
  618. package/presets/cursor/java/rules/code-quality-and-refactoring.mdc +21 -20
  619. package/presets/cursor/java/rules/code-review-mr.mdc +4 -4
  620. package/presets/cursor/java/rules/design-guidance.mdc +54 -54
  621. package/presets/cursor/java/rules/java-app-core.mdc +9 -9
  622. package/presets/cursor/java/rules/post-change-test.mdc +1 -1
  623. package/presets/cursor/java/rules/preset-layering.mdc +12 -13
  624. package/presets/cursor/java/rules/preset-no-cross-stack-leakage.mdc +26 -14
  625. package/presets/cursor/java/rules/preset-pr-checklist.mdc +6 -7
  626. package/presets/cursor/java/rules/preset-token-budget.mdc +3 -4
  627. package/presets/cursor/java/rules/preset-twin-sync.mdc +2 -1
  628. package/presets/cursor/java/rules/technical-retro.mdc +3 -3
  629. package/presets/cursor/java/team/README.md +1 -1
  630. package/presets/cursor/mcp-ts/AGENTS.md +6 -6
  631. package/presets/cursor/mcp-ts/MCP.md +5 -5
  632. package/presets/cursor/mcp-ts/agents/task-router.md +7 -7
  633. package/presets/cursor/mcp-ts/commands/README.md +1 -1
  634. package/presets/cursor/mcp-ts/commands/feature-continue.md +8 -8
  635. package/presets/cursor/mcp-ts/commands/feature-start.md +17 -17
  636. package/presets/cursor/mcp-ts/commands/task-continue.md +14 -14
  637. package/presets/cursor/mcp-ts/commands/task.md +32 -32
  638. package/presets/cursor/mcp-ts/commands/technical-retro.md +50 -50
  639. package/presets/cursor/mcp-ts/rules/README.md +1 -1
  640. package/presets/cursor/mcp-ts/rules/agent-team-intake.mdc +3 -3
  641. package/presets/cursor/mcp-ts/rules/agent-team-orchestrator.mdc +4 -4
  642. package/presets/cursor/mcp-ts/rules/code-quality-and-refactoring.mdc +21 -20
  643. package/presets/cursor/mcp-ts/rules/code-review-mr.mdc +5 -4
  644. package/presets/cursor/mcp-ts/rules/design-guidance.mdc +55 -54
  645. package/presets/cursor/mcp-ts/rules/mcp-server-boundaries.mdc +2 -2
  646. package/presets/cursor/mcp-ts/rules/mcp-ts-app-core.mdc +9 -9
  647. package/presets/cursor/mcp-ts/rules/post-change-test.mdc +1 -1
  648. package/presets/cursor/mcp-ts/rules/preset-layering.mdc +12 -13
  649. package/presets/cursor/mcp-ts/rules/preset-no-cross-stack-leakage.mdc +26 -14
  650. package/presets/cursor/mcp-ts/rules/preset-pr-checklist.mdc +6 -7
  651. package/presets/cursor/mcp-ts/rules/preset-token-budget.mdc +3 -4
  652. package/presets/cursor/mcp-ts/rules/preset-twin-sync.mdc +2 -1
  653. package/presets/cursor/mcp-ts/rules/technical-retro.mdc +3 -3
  654. package/presets/cursor/next/AGENTS.md +15 -15
  655. package/presets/cursor/next/MCP.md +9 -9
  656. package/presets/cursor/next/README.md +9 -9
  657. package/presets/cursor/next/agents/README.md +22 -22
  658. package/presets/cursor/next/agents/feature-developer.md +1 -1
  659. package/presets/cursor/next/agents/task-analyst.md +1 -1
  660. package/presets/cursor/next/agents/task-router.md +16 -16
  661. package/presets/cursor/next/commands/README.md +22 -22
  662. package/presets/cursor/next/commands/feature-continue.md +8 -8
  663. package/presets/cursor/next/commands/feature-start.md +17 -17
  664. package/presets/cursor/next/commands/task-continue.md +14 -14
  665. package/presets/cursor/next/commands/task.md +33 -33
  666. package/presets/cursor/next/commands/technical-retro.md +49 -49
  667. package/presets/cursor/next/rules/README.md +52 -52
  668. package/presets/cursor/next/rules/agent-team-intake.mdc +2 -2
  669. package/presets/cursor/next/rules/agent-team-orchestrator.mdc +4 -4
  670. package/presets/cursor/next/rules/api-services.mdc +43 -43
  671. package/presets/cursor/next/rules/architecture-boundaries-ui.mdc +7 -7
  672. package/presets/cursor/next/rules/architecture-boundaries.mdc +45 -45
  673. package/presets/cursor/next/rules/arrow-functions.mdc +8 -8
  674. package/presets/cursor/next/rules/code-quality-and-refactoring.mdc +25 -24
  675. package/presets/cursor/next/rules/code-review-mr.mdc +5 -5
  676. package/presets/cursor/next/rules/css-property-order-stylelint.mdc +4 -4
  677. package/presets/cursor/next/rules/design-guidance.mdc +54 -54
  678. package/presets/cursor/next/rules/feature-delivery-workflow.mdc +43 -43
  679. package/presets/cursor/next/rules/http-client.mdc +23 -22
  680. package/presets/cursor/next/rules/layer-barrel-exports.mdc +31 -30
  681. package/presets/cursor/next/rules/navigation-router-stack.mdc +37 -37
  682. package/presets/cursor/next/rules/navigation-router-ui.mdc +7 -7
  683. package/presets/cursor/next/rules/next-app-core.mdc +16 -16
  684. package/presets/cursor/next/rules/next-app-router.mdc +17 -17
  685. package/presets/cursor/next/rules/no-props-spread.mdc +20 -20
  686. package/presets/cursor/next/rules/no-type-assertion-as-import-export.mdc +29 -29
  687. package/presets/cursor/next/rules/package-manager.mdc +8 -8
  688. package/presets/cursor/next/rules/post-change-lint.mdc +22 -22
  689. package/presets/cursor/next/rules/preset-layering.mdc +12 -13
  690. package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +26 -14
  691. package/presets/cursor/next/rules/preset-pr-checklist.mdc +6 -7
  692. package/presets/cursor/next/rules/preset-token-budget.mdc +3 -4
  693. package/presets/cursor/next/rules/preset-twin-sync.mdc +2 -1
  694. package/presets/cursor/next/rules/public-imports.mdc +14 -14
  695. package/presets/cursor/next/rules/react-a11y-coding.mdc +21 -21
  696. package/presets/cursor/next/rules/react-ui.mdc +66 -66
  697. package/presets/cursor/next/rules/reference-features.mdc +17 -17
  698. package/presets/cursor/next/rules/store-rtk.mdc +60 -60
  699. package/presets/cursor/next/rules/technical-retro.mdc +4 -4
  700. package/presets/cursor/next/rules/tests-e2e-structure.mdc +46 -46
  701. package/presets/cursor/next/rules/tests-unit.mdc +51 -52
  702. package/presets/cursor/next/rules/types-jsdoc.mdc +29 -22
  703. package/presets/cursor/next/skills/feature-delivery/SKILL.md +1 -1
  704. package/presets/cursor/next/team/README.md +2 -2
  705. package/presets/cursor/nuxt/AGENTS.md +15 -15
  706. package/presets/cursor/nuxt/MCP.md +9 -9
  707. package/presets/cursor/nuxt/README.md +10 -10
  708. package/presets/cursor/nuxt/agents/README.md +30 -30
  709. package/presets/cursor/nuxt/agents/feature-developer.md +1 -1
  710. package/presets/cursor/nuxt/agents/task-analyst.md +1 -1
  711. package/presets/cursor/nuxt/agents/task-router.md +16 -16
  712. package/presets/cursor/nuxt/commands/README.md +24 -24
  713. package/presets/cursor/nuxt/commands/feature-continue.md +8 -8
  714. package/presets/cursor/nuxt/commands/feature-start.md +17 -17
  715. package/presets/cursor/nuxt/commands/task-continue.md +14 -14
  716. package/presets/cursor/nuxt/commands/task.md +33 -33
  717. package/presets/cursor/nuxt/commands/technical-retro.md +50 -50
  718. package/presets/cursor/nuxt/rules/README.md +53 -53
  719. package/presets/cursor/nuxt/rules/agent-team-intake.mdc +2 -2
  720. package/presets/cursor/nuxt/rules/agent-team-orchestrator.mdc +4 -4
  721. package/presets/cursor/nuxt/rules/api-services.mdc +43 -43
  722. package/presets/cursor/nuxt/rules/architecture-boundaries-ui.mdc +7 -7
  723. package/presets/cursor/nuxt/rules/architecture-boundaries.mdc +58 -58
  724. package/presets/cursor/nuxt/rules/code-quality-and-refactoring.mdc +25 -24
  725. package/presets/cursor/nuxt/rules/code-review-mr.mdc +5 -5
  726. package/presets/cursor/nuxt/rules/design-guidance.mdc +54 -54
  727. package/presets/cursor/nuxt/rules/feature-delivery-workflow.mdc +44 -44
  728. package/presets/cursor/nuxt/rules/layer-barrel-exports.mdc +31 -31
  729. package/presets/cursor/nuxt/rules/navigation-router-stack.mdc +38 -38
  730. package/presets/cursor/nuxt/rules/navigation-router-ui.mdc +7 -7
  731. package/presets/cursor/nuxt/rules/no-type-assertion-as-import-export.mdc +29 -29
  732. package/presets/cursor/nuxt/rules/nuxt-app-core.mdc +16 -16
  733. package/presets/cursor/nuxt/rules/package-manager.mdc +8 -8
  734. package/presets/cursor/nuxt/rules/post-change-lint.mdc +23 -23
  735. package/presets/cursor/nuxt/rules/preset-layering.mdc +12 -13
  736. package/presets/cursor/nuxt/rules/preset-no-cross-stack-leakage.mdc +26 -14
  737. package/presets/cursor/nuxt/rules/preset-pr-checklist.mdc +6 -7
  738. package/presets/cursor/nuxt/rules/preset-token-budget.mdc +3 -4
  739. package/presets/cursor/nuxt/rules/preset-twin-sync.mdc +2 -1
  740. package/presets/cursor/nuxt/rules/public-imports.mdc +14 -14
  741. package/presets/cursor/nuxt/rules/reference-features.mdc +17 -17
  742. package/presets/cursor/nuxt/rules/store-pinia.mdc +26 -26
  743. package/presets/cursor/nuxt/rules/technical-retro.mdc +4 -4
  744. package/presets/cursor/nuxt/rules/tests-e2e-structure.mdc +45 -46
  745. package/presets/cursor/nuxt/rules/tests-unit.mdc +51 -52
  746. package/presets/cursor/nuxt/rules/types-jsdoc.mdc +22 -22
  747. package/presets/cursor/nuxt/rules/vue-ui.mdc +6 -6
  748. package/presets/cursor/nuxt/skills/feature-delivery/SKILL.md +1 -1
  749. package/presets/cursor/nuxt/team/README.md +2 -2
  750. package/presets/cursor/php-hexagonal/AGENTS.md +11 -11
  751. package/presets/cursor/php-hexagonal/MCP.md +7 -7
  752. package/presets/cursor/php-hexagonal/agents/README.md +4 -4
  753. package/presets/cursor/php-hexagonal/agents/task-router.md +12 -12
  754. package/presets/cursor/php-hexagonal/commands/README.md +25 -25
  755. package/presets/cursor/php-hexagonal/commands/feature-continue.md +8 -8
  756. package/presets/cursor/php-hexagonal/commands/feature-start.md +17 -17
  757. package/presets/cursor/php-hexagonal/commands/task-continue.md +14 -14
  758. package/presets/cursor/php-hexagonal/commands/task.md +32 -32
  759. package/presets/cursor/php-hexagonal/commands/technical-retro.md +49 -49
  760. package/presets/cursor/php-hexagonal/rules/README.md +2 -2
  761. package/presets/cursor/php-hexagonal/rules/agent-team-intake.mdc +2 -2
  762. package/presets/cursor/php-hexagonal/rules/agent-team-orchestrator.mdc +4 -4
  763. package/presets/cursor/php-hexagonal/rules/architecture-boundaries.mdc +10 -10
  764. package/presets/cursor/php-hexagonal/rules/code-quality-and-refactoring.mdc +20 -20
  765. package/presets/cursor/php-hexagonal/rules/code-review-mr.mdc +4 -4
  766. package/presets/cursor/php-hexagonal/rules/design-guidance.mdc +54 -54
  767. package/presets/cursor/php-hexagonal/rules/php-app-core.mdc +10 -10
  768. package/presets/cursor/php-hexagonal/rules/post-change-test.mdc +1 -1
  769. package/presets/cursor/php-hexagonal/rules/preset-layering.mdc +12 -13
  770. package/presets/cursor/php-hexagonal/rules/preset-no-cross-stack-leakage.mdc +26 -14
  771. package/presets/cursor/php-hexagonal/rules/preset-pr-checklist.mdc +6 -7
  772. package/presets/cursor/php-hexagonal/rules/preset-token-budget.mdc +3 -4
  773. package/presets/cursor/php-hexagonal/rules/preset-twin-sync.mdc +2 -1
  774. package/presets/cursor/php-hexagonal/rules/technical-retro.mdc +3 -3
  775. package/presets/cursor/php-hexagonal/team/README.md +1 -1
  776. package/presets/cursor/php-laravel/AGENTS.md +10 -10
  777. package/presets/cursor/php-laravel/agents/README.md +4 -4
  778. package/presets/cursor/php-laravel/agents/task-router.md +14 -14
  779. package/presets/cursor/php-laravel/commands/README.md +25 -25
  780. package/presets/cursor/php-laravel/commands/feature-continue.md +8 -8
  781. package/presets/cursor/php-laravel/commands/feature-start.md +17 -17
  782. package/presets/cursor/php-laravel/commands/task-continue.md +14 -14
  783. package/presets/cursor/php-laravel/commands/task.md +32 -32
  784. package/presets/cursor/php-laravel/commands/technical-retro.md +50 -50
  785. package/presets/cursor/php-laravel/rules/README.md +2 -2
  786. package/presets/cursor/php-laravel/rules/agent-team-intake.mdc +2 -2
  787. package/presets/cursor/php-laravel/rules/agent-team-orchestrator.mdc +4 -4
  788. package/presets/cursor/php-laravel/rules/architecture-boundaries.mdc +11 -11
  789. package/presets/cursor/php-laravel/rules/code-quality-and-refactoring.mdc +20 -20
  790. package/presets/cursor/php-laravel/rules/code-review-mr.mdc +4 -5
  791. package/presets/cursor/php-laravel/rules/design-guidance.mdc +54 -54
  792. package/presets/cursor/php-laravel/rules/events-listeners.mdc +1 -1
  793. package/presets/cursor/php-laravel/rules/laravel-app-core.mdc +8 -8
  794. package/presets/cursor/php-laravel/rules/post-change-test.mdc +1 -1
  795. package/presets/cursor/php-laravel/rules/preset-layering.mdc +12 -13
  796. package/presets/cursor/php-laravel/rules/preset-no-cross-stack-leakage.mdc +26 -14
  797. package/presets/cursor/php-laravel/rules/preset-pr-checklist.mdc +6 -7
  798. package/presets/cursor/php-laravel/rules/preset-token-budget.mdc +3 -4
  799. package/presets/cursor/php-laravel/rules/preset-twin-sync.mdc +2 -1
  800. package/presets/cursor/php-laravel/rules/technical-retro.mdc +3 -3
  801. package/presets/cursor/php-laravel/team/README.md +1 -1
  802. package/presets/cursor/svelte/AGENTS.md +15 -15
  803. package/presets/cursor/svelte/MCP.md +9 -9
  804. package/presets/cursor/svelte/README.md +9 -9
  805. package/presets/cursor/svelte/agents/README.md +29 -29
  806. package/presets/cursor/svelte/agents/feature-developer.md +1 -1
  807. package/presets/cursor/svelte/agents/task-analyst.md +1 -1
  808. package/presets/cursor/svelte/agents/task-router.md +16 -16
  809. package/presets/cursor/svelte/commands/README.md +24 -24
  810. package/presets/cursor/svelte/commands/feature-continue.md +8 -8
  811. package/presets/cursor/svelte/commands/feature-start.md +17 -17
  812. package/presets/cursor/svelte/commands/task-continue.md +14 -14
  813. package/presets/cursor/svelte/commands/task.md +33 -33
  814. package/presets/cursor/svelte/commands/technical-retro.md +50 -50
  815. package/presets/cursor/svelte/rules/README.md +34 -34
  816. package/presets/cursor/svelte/rules/agent-team-intake.mdc +2 -2
  817. package/presets/cursor/svelte/rules/agent-team-orchestrator.mdc +4 -4
  818. package/presets/cursor/svelte/rules/api-services.mdc +14 -14
  819. package/presets/cursor/svelte/rules/architecture-boundaries-ui.mdc +7 -7
  820. package/presets/cursor/svelte/rules/architecture-boundaries.mdc +19 -19
  821. package/presets/cursor/svelte/rules/code-quality-and-refactoring.mdc +25 -24
  822. package/presets/cursor/svelte/rules/code-review-mr.mdc +5 -5
  823. package/presets/cursor/svelte/rules/design-guidance.mdc +54 -54
  824. package/presets/cursor/svelte/rules/feature-delivery-workflow.mdc +26 -26
  825. package/presets/cursor/svelte/rules/layer-barrel-exports.mdc +31 -31
  826. package/presets/cursor/svelte/rules/navigation-router-stack.mdc +6 -6
  827. package/presets/cursor/svelte/rules/navigation-router-ui.mdc +1 -1
  828. package/presets/cursor/svelte/rules/no-type-assertion-as-import-export.mdc +29 -29
  829. package/presets/cursor/svelte/rules/package-manager.mdc +8 -8
  830. package/presets/cursor/svelte/rules/post-change-lint.mdc +23 -23
  831. package/presets/cursor/svelte/rules/preset-layering.mdc +12 -13
  832. package/presets/cursor/svelte/rules/preset-no-cross-stack-leakage.mdc +26 -14
  833. package/presets/cursor/svelte/rules/preset-pr-checklist.mdc +6 -7
  834. package/presets/cursor/svelte/rules/preset-token-budget.mdc +3 -4
  835. package/presets/cursor/svelte/rules/preset-twin-sync.mdc +2 -1
  836. package/presets/cursor/svelte/rules/public-imports.mdc +8 -8
  837. package/presets/cursor/svelte/rules/reference-features.mdc +17 -17
  838. package/presets/cursor/svelte/rules/store-svelte.mdc +26 -26
  839. package/presets/cursor/svelte/rules/svelte-app-core.mdc +16 -16
  840. package/presets/cursor/svelte/rules/svelte-ui.mdc +6 -6
  841. package/presets/cursor/svelte/rules/technical-retro.mdc +4 -4
  842. package/presets/cursor/svelte/rules/tests-e2e-structure.mdc +45 -46
  843. package/presets/cursor/svelte/rules/tests-unit.mdc +17 -17
  844. package/presets/cursor/svelte/rules/types-jsdoc.mdc +22 -22
  845. package/presets/cursor/svelte/skills/feature-delivery/SKILL.md +1 -1
  846. package/presets/cursor/svelte/team/README.md +2 -2
@@ -9,7 +9,6 @@ alwaysApply: false
9
9
 
10
10
  <!-- shared-core: meta/preset-twin-sync.md -->
11
11
 
12
-
13
12
  # Preset twin sync
14
13
 
15
14
  Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
@@ -27,6 +26,7 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
27
26
  | `mcp-ts` | `presets/cursor/mcp-ts/rules/*.mdc` | `presets/claude/mcp-ts/rules/<topic>/` | Keep in `claude/mcp-ts/rules/README.md` |
28
27
  | `php-hexagonal` | `presets/cursor/php-hexagonal/rules/*.mdc` | `presets/claude/php-hexagonal/rules/<topic>/` | Keep in `claude/php-hexagonal/rules/README.md` |
29
28
  | `php-laravel` | `presets/cursor/php-laravel/rules/*.mdc` | `presets/claude/php-laravel/rules/<topic>/` | Keep in `claude/php-laravel/rules/README.md` |
29
+ | `android-kotlin` | `presets/cursor/android-kotlin/rules/*.mdc` | `presets/claude/android-kotlin/rules/<topic>/` | Keep in `claude/android-kotlin/rules/README.md` |
30
30
 
31
31
  ## Same-PR checklist
32
32
 
@@ -51,5 +51,6 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
51
51
  - **mcp-ts:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go / java; mapping table required).
52
52
  - **php-hexagonal:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go / java / mcp-ts; mapping table required).
53
53
  - **php-laravel:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go / java / mcp-ts / php-hexagonal; mapping table required).
54
+ - **android-kotlin:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go / java / mcp-ts / php-*; mapping table required).
54
55
 
55
56
  Dogfood: sync packages → root `.cursor/` after Cursor SoT changes (not the reverse). Use `packages/ai-rules/scripts/sync-dogfood-cursor.sh`.
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Эталонные Feature-модули репозиториякопировать структуру при реализации. Заполните пути после init в целевом iOS-репо.
2
+ description: Reference Feature modules of the repository copy structure when implementing. Fill in paths after init in the target iOS repo.
3
3
  globs:
4
4
  - Features/**/*
5
5
  - "**/Presentation/**/*"
@@ -11,44 +11,44 @@ alwaysApply: false
11
11
 
12
12
  <!-- shared-core: architecture/reference-features.template.md -->
13
13
 
14
- # Эталонные фичи (reference features)
14
+ # Reference features
15
15
 
16
16
  ## Stack notes
17
17
 
18
- Перед реализацией найди Feature того же типа и **повтори её структуру**, не изобретая новую организацию файлов.
18
+ Before implementing, find a Feature of the same type and **mirror its structure**; do not invent a new file organization.
19
19
 
20
20
  Taxonomy / shared core: [`presets/_shared/README.md`](../../../../_shared/README.md) · [Preset contribution guide](../../../../docs/PRESET-CONTRIBUTION.md).
21
21
 
22
- ## Таблица эталонов
22
+ ## Reference table
23
23
 
24
- После `ai-rules init` замени примеры на **реальные** пути consumer-репо. Ниже — conventional placeholders для greenfield / dogfood.
24
+ After `ai-rules init`, replace examples with **real** consumer-repo paths. Below — conventional placeholders for greenfield / dogfood.
25
25
 
26
- | Слой | Эталон (примерзаменить) | Conventional glob / path |
26
+ | Layer | Reference (examplereplace) | Conventional glob / path |
27
27
  |------|----------------------------|--------------------------|
28
28
  | Feature module | `Features/Orders/` | `Features/**` |
29
29
  | Presentation / UI | `Features/Orders/Presentation/` | `**/Presentation/**`, `**/DesignSystem/**` |
30
30
  | Domain | `Features/Orders/Domain/` | `**/Domain/**` |
31
31
  | Data / Network | `Features/Orders/Data/` | `**/Data/**`, `**/Network*/**` |
32
32
  | Persistence | `Features/Orders/Data/Persistence/` | `**/Persistence/**`, `**/Keychain/**` |
33
- | Unit tests | `Features/OrdersTests/` или `*Tests` рядом | `**/*Tests/**/*.swift` |
33
+ | Unit tests | `Features/OrdersTests/` or colocated `*Tests` | `**/*Tests/**/*.swift` |
34
34
  | UI tests | `OrdersUITests/` | `**/*UITests/**/*.swift` |
35
35
 
36
- Если в репо другая раскладка (`Modules/`, `Sources/`) — перепиши таблицу один раз и держи её SoT для агентов.
36
+ If the repo uses another layout (`Modules/`, `Sources/`) — rewrite the table once and keep it as SoT for agents.
37
37
 
38
- ## Как использовать
38
+ ## How to use
39
39
 
40
- 1. Определи затронутые слои из `decomposition.md` или задачи.
41
- 2. Открой эталон из таблицы (после заполнения путей).
42
- 3. Зеркаль именование, порядок файлов, DI, паттерны тестов.
43
- 4. Если эталона нетвыбери **самую близкую** существующую фичу того же слоя и зафиксируй выбор в handoff.
40
+ 1. Identify affected layers from `decomposition.md` or the task.
41
+ 2. Open the reference from the table (after paths are filled).
42
+ 3. Mirror naming, file order, DI, and test patterns.
43
+ 4. If there is no reference pick the **closest** existing feature of the same layer and record the choice in the handoff.
44
44
 
45
- ## Dogfood checklist (5 сценариев)
45
+ ## Dogfood checklist (5 scenarios)
46
46
 
47
- Прогон после init пресета (ручной smoke для агентов):
47
+ Run after preset init (manual smoke for agents):
48
48
 
49
- 1. `/task` новая фича в `Features/<Name>` — analyst → developer → build-verifier (xcodebuild).
50
- 2. Баг в ViewModel — debugger → fix → unit test.
51
- 3. Mapper DTO↔domain — unit-test-planner/generator.
49
+ 1. `/task` new feature under `Features/<Name>` — analyst → developer → build-verifier (xcodebuild).
50
+ 2. ViewModel bug — debugger → fix → unit test.
51
+ 3. DTO↔domain mapper — unit-test-planner/generator.
52
52
  4. UI flow — `xcuitest-test-planner` → generator (accessibilityIdentifier).
53
53
  5. Auth/Keychain touch — security-reviewer + `security-ios.mdc`.
54
54
 
@@ -56,8 +56,8 @@ Taxonomy / shared core: [`presets/_shared/README.md`](../../../../_shared/README
56
56
 
57
57
  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.
58
58
 
59
- ## Связанные правила
59
+ ## Related rules
60
60
 
61
- - `code-quality-and-refactoring.mdc` — повторять паттерны.
62
- - `feature-delivery-workflow.mdc` — порядок слоёв.
63
- - skill `feature-delivery` — end-to-end сценарий.
61
+ - `code-quality-and-refactoring.mdc` — repeat patterns.
62
+ - `feature-delivery-workflow.mdc` — layer order.
63
+ - skill `feature-delivery` — end-to-end scenario.
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: ATS, Keychain, PII, секреты, безопасное логирование iOS
2
+ description: ATS, Keychain, PII, secrets, safe iOS logging
3
3
  globs:
4
4
  - "**/*Keychain*.swift"
5
5
  - "**/*Auth*.swift"
@@ -11,25 +11,25 @@ alwaysApply: false
11
11
 
12
12
  # Security (iOS)
13
13
 
14
- ## Секреты и конфиг
14
+ ## Secrets and config
15
15
 
16
- - Нет API keys / tokens в исходниках и git; использовать Keychain, xcconfig (не в VCS), CI secrets.
17
- - Debug-only bypass ATS / SSL — только `#if DEBUG` и никогда в Release.
16
+ - No API keys / tokens in sources or git; use Keychain, xcconfig (not in VCS), CI secrets.
17
+ - Debug-only ATS / SSL bypass — `#if DEBUG` only and never in Release.
18
18
 
19
- ## ATS и сеть
19
+ ## ATS and networking
20
20
 
21
- - ATS exceptions в Info.plist — минимальные, с обоснованием; предпочитать HTTPS.
22
- - Certificate pinning — только если уже принято в репо.
21
+ - ATS exceptions in Info.plist — minimal, with rationale; prefer HTTPS.
22
+ - Certificate pinning — only if already adopted in the repo.
23
23
 
24
- ## PII и логи
24
+ ## PII and logs
25
25
 
26
- - Не логировать токены, пароли, полные номера карт/документов.
27
- - Crash/APM: scrub PII по политике репо.
26
+ - Do not log tokens, passwords, full card/document numbers.
27
+ - Crash/APM: scrub PII per repo policy.
28
28
 
29
- ## Keychain / биометрия
29
+ ## Keychain / biometrics
30
30
 
31
- - Accessible уровни и `kSecAttrAccessible` — осознанно; Face ID/Touch ID — через LocalAuthentication как в репо.
31
+ - Accessibility levels and `kSecAttrAccessible` — intentional; Face ID/Touch ID — via LocalAuthentication as in the repo.
32
32
 
33
- ## Требование к агенту
33
+ ## Agent requirement
34
34
 
35
- При auth/формах/платежахсверить с этим правилом и `code-review-mr.mdc`. Security-reviewer подключать для чувствительных фич.
35
+ For auth/forms/paymentscheck this rule and `code-review-mr.mdc`. Involve security-reviewer for sensitive features.
@@ -1,43 +1,43 @@
1
1
  ---
2
- description: ViewModels, состояние экрана и domain flow
2
+ description: ViewModels, screen state, and domain flow
3
3
  globs: "**/{Presentation,Domain}/**/*ViewModel*.swift"
4
4
  alwaysApply: false
5
5
  ---
6
6
 
7
- # Общие принципы
7
+ # General principles
8
8
 
9
- - ViewModel **единственная точка** orchestration для экрана: load, submit, validation, navigation intents.
10
- - Хранить и отдавать во View **domain models** и UI-specific state (loading, error message, selected tab).
11
- - `@MainActor` на ViewModel; тяжёлую работув use case / repository (`async`), не блокировать main thread.
9
+ - ViewModel is the **single orchestration point** for a screen: load, submit, validation, navigation intents.
10
+ - Store and expose to the View **domain models** and UI-specific state (loading, error message, selected tab).
11
+ - `@MainActor` on ViewModel; heavy workin use case / repository (`async`); do not block the main thread.
12
12
  - Unidirectional flow: View → intent → ViewModel → use case → state update → View.
13
13
 
14
14
  # State
15
15
 
16
- - Явный enum или struct для UI state где уместно:
17
- - `idle`, `loading`, `loaded(Data)`, `failed(Error)` — или аналог из репо.
18
- - Избегать множества несинхронизированных `@Published` флагов, если один enum покрывает сценарий.
19
- - `@Observable` / `ObservableObject` — как в проекте; не смешивать стили в одной фиче без причины.
16
+ - Explicit enum or struct for UI state where appropriate:
17
+ - `idle`, `loading`, `loaded(Data)`, `failed(Error)` — or the repo’s analog.
18
+ - Avoid many unsynchronized `@Published` flags when one enum covers the scenario.
19
+ - `@Observable` / `ObservableObject` — as in the project; do not mix styles in one feature without reason.
20
20
 
21
- # Use cases и repositories
21
+ # Use cases and repositories
22
22
 
23
- - ViewModel зависит от **протоколов** (`LoadOrdersUseCase`, `OrderRepository`), не от `*RepositoryImpl`.
24
- - Один use case — одна бизнес-операция; не раздувать ViewModel сотнями строквыносить use cases в Domain.
25
- - Кэширование и offline — в repository/Data, не во ViewModel.
23
+ - ViewModel depends on **protocols** (`LoadOrdersUseCase`, `OrderRepository`), not `*RepositoryImpl`.
24
+ - One use case — one business operation; do not inflate ViewModels to hundreds of lines extract use cases into Domain.
25
+ - Caching and offline — in repository/Data, not in ViewModel.
26
26
 
27
27
  # Side effects
28
28
 
29
- - Analytics, haptics, deep links — через injected services или middleware-паттерн, не hardcode синглтонов.
30
- - `Task` в ViewModel: отмена при `deinit` / `onDisappear` где нужно (`task(id:)`, хранение `Task?` с cancel).
29
+ - Analytics, haptics, deep links — via injected services or a middleware pattern, not hardcoded singletons.
30
+ - `Task` in ViewModel: cancel on `deinit` / `onDisappear` when needed (`task(id:)`, store `Task?` with cancel).
31
31
 
32
- # Тестируемость
32
+ # Testability
33
33
 
34
- - Инициализатор ViewModel принимает протоколы (DI); без скрытых singleton для сети/БД.
35
- - Бизнес-ветки покрывать unit-тестами с mock use cases.
34
+ - ViewModel initializer takes protocols (DI); no hidden network/DB singletons.
35
+ - Cover business branches with unit tests using mock use cases.
36
36
 
37
- # Требование к агенту
37
+ # Agent requirement
38
38
 
39
- При создании ViewModel:
40
- - Не вызывать `URLSession` / API client напрямую.
41
- - Не парсить JSON и не объявлять DTO во ViewModel.
42
- - Именование: `FeatureViewModel`, методы глаголы (`loadOrders()`, `submitOrder()`).
43
- - Следовать стилю существующих ViewModels в той же фиче.
39
+ When creating a ViewModel:
40
+ - Do not call `URLSession` / API client directly.
41
+ - Do not parse JSON or declare DTOs in the ViewModel.
42
+ - Naming: `FeatureViewModel`, methods as verbs (`loadOrders()`, `submitOrder()`).
43
+ - Follow the style of existing ViewModels in the same feature.
@@ -7,28 +7,28 @@ alwaysApply: false
7
7
  # Naming and API design
8
8
 
9
9
  - Types: `UpperCamelCase`; methods, properties, enum cases: `lowerCamelCase`.
10
- - Protocols, описывающие capability: `-able`, `-ing`, или `Protocol` суффикскак в репо.
11
- - Избегать аббревиатур в именах, кроме общепринятых (URL, ID, HTTP).
10
+ - Protocols that describe a capability: `-able`, `-ing`, or `Protocol` suffixas in the repo.
11
+ - Avoid abbreviations in names except common ones (URL, ID, HTTP).
12
12
 
13
13
  # Optionals and errors
14
14
 
15
15
  ```swift
16
- // ❌ Плохо
16
+ // ❌ Bad
17
17
  let name = user!.name
18
18
 
19
- // ✅ Хорошо
19
+ // ✅ Good
20
20
  guard let name = user?.name else { return }
21
21
  ```
22
22
 
23
- - `throws` + typed errors вместо `Result` там, где так принято в слое; быть консistent внутри модуля.
24
- - `guard` для early exit; не вкладывать глубокие `if let` pyramids.
23
+ - `throws` + typed errors instead of `Result` where that is the layer convention; stay consistent within a module.
24
+ - `guard` for early exit; do not nest deep `if let` pyramids.
25
25
 
26
26
  # Concurrency
27
27
 
28
28
  - UI types — `@MainActor`.
29
- - Shared mutable state — `actor` или isolation через queue; document thread expectations.
30
- - `Task { }` в ViewModel: учитывать cancellation; `[weak self]` в escaping closures при retain cycles (default when capturing `self` in escaping work).
31
- - Prefer `async/await` over completion handlers для нового кода.
29
+ - Shared mutable state — `actor` or isolation via a queue; document thread expectations.
30
+ - `Task { }` in ViewModel: account for cancellation; `[weak self]` in escaping closures when retain cycles are possible (default when capturing `self` in escaping work).
31
+ - Prefer `async/await` over completion handlers for new code.
32
32
 
33
33
  ## Anti-hallucination (Swift / concurrency)
34
34
 
@@ -42,20 +42,20 @@ guard let name = user?.name else { return }
42
42
 
43
43
  # Access control
44
44
 
45
- - Минимально необходимый уровень: `private` / `fileprivate` по умолчанию для implementation details.
46
- - Public API фичи явные types и protocols; не экспортировать DTO наружу модуля.
45
+ - Minimum necessary level: `private` / `fileprivate` by default for implementation details.
46
+ - Feature public API — explicit types and protocols; do not export DTOs outside the module.
47
47
 
48
48
  # Value semantics
49
49
 
50
- - Предпочитать `struct` для models и state где нет identity semantics.
51
- - `class` — когда нужен identity, inheritance, или Objective-C interop.
50
+ - Prefer `struct` for models and state where there is no identity semantics.
51
+ - `class` — when identity, inheritance, or Objective-C interop is required.
52
52
 
53
53
  # Extensions
54
54
 
55
- - Группировать extensions по типу; не складывать unrelated helpers в один `Extensions.swift` без структуры.
56
- - Protocol extensions для shared default behavior.
55
+ - Group extensions by type; do not dump unrelated helpers into one unstructured `Extensions.swift`.
56
+ - Protocol extensions for shared default behavior.
57
57
 
58
- # Требование к агенту
58
+ # Agent requirement
59
59
 
60
60
  - Style gate: **SwiftLint** (and SwiftFormat when configured) — prefer fixing lint over prose style essays; `// swiftlint:disable` only with an explicit reason.
61
- - Новый код — Swift Concurrency-ready (`Sendable` где требует компилятор/линтер проекта).
61
+ - New code — Swift Concurrency-ready (`Sendable` where the project compiler/linter requires it).
@@ -1,24 +1,24 @@
1
1
  ---
2
- description: Паттерны SwiftUI, View и Design System (preset)
2
+ description: SwiftUI, View, and Design System patterns (preset)
3
3
  globs: "**/{Presentation,DesignSystem}/**/*.swift"
4
4
  alwaysApply: false
5
5
  ---
6
6
 
7
- # Общие правила View
7
+ # General View rules
8
8
 
9
- - **SwiftUI** приоритет; UIKit только по конвенции репо (wrapper, legacy).
10
- - View должна быть **тонкой**:
11
- - отображает state из ViewModel;
12
- - делегирует действия через методы/closures ViewModel;
13
- - не содержит бизнес-логики, маппинга DTO, сетевых вызовов.
14
- - Перед новым кастомным контроломискать компонент в `DesignSystem/` или существующих фичах.
15
- - Повторяемую UI-логику выносить в `ViewModifier`, `@ViewBuilder` helpers или subviews.
9
+ - **SwiftUI** preferred; UIKit only by repo convention (wrapper, legacy).
10
+ - Views must be **thin**:
11
+ - render state from the ViewModel;
12
+ - delegate actions through ViewModel methods/closures;
13
+ - contain no business logic, DTO mapping, or network calls.
14
+ - Before a new custom control look for a component in `DesignSystem/` or existing features.
15
+ - Extract repeated UI logic into `ViewModifier`, `@ViewBuilder` helpers, or subviews.
16
16
 
17
- # ViewModel и binding
17
+ # ViewModel and binding
18
18
 
19
- - ViewModel — `@MainActor`, `@Observable` (iOS 17+) или `ObservableObject` — как принято в проекте.
20
- - View читает state и вызывает **явные методы** ViewModel (`submit()`, `load()`), а не мутирует внутреннее состояние напрямую.
21
- - Для навигации — coordinator/router или enum route в ViewModel, не размазанные `NavigationLink` с бизнес-условиями в View.
19
+ - ViewModel — `@MainActor`, `@Observable` (iOS 17+) or `ObservableObject` — as adopted in the project.
20
+ - The View reads state and calls **explicit ViewModel methods** (`submit()`, `load()`); it does not mutate internal state directly.
21
+ - For navigation — coordinator/router or a route enum in the ViewModel, not scattered `NavigationLink`s with business conditions in the View.
22
22
 
23
23
  # Lifecycle, ownership, hit testing
24
24
 
@@ -28,42 +28,42 @@ alwaysApply: false
28
28
  - Transparent stacks that should receive taps: `.contentShape(Rectangle())`.
29
29
  - High-frequency visual updates — prefer `TimelineView` (or repo pattern) over ad-hoc `Timer` in Views.
30
30
 
31
- # Структура файлов
31
+ # File structure
32
32
 
33
- Для экрана фичи:
34
- - `FeatureView.swift` — композиция subviews.
33
+ For a feature screen:
34
+ - `FeatureView.swift` — subview composition.
35
35
  - `FeatureViewModel.swift` — state + intents.
36
- - `FeatureView+Subviews.swift` — при большом дереве (опционально).
37
- - `FeatureRoute.swift` — навигация (если используется).
36
+ - `FeatureView+Subviews.swift` — for a large tree (optional).
37
+ - `FeatureRoute.swift` — navigation (when used).
38
38
 
39
- Для компонента Design System:
40
- - Папка `ComponentName/`:
39
+ For a Design System component:
40
+ - Folder `ComponentName/`:
41
41
  - `ComponentName.swift`
42
- - `ComponentName+Preview.swift` (опционально)
43
- - `ComponentNameStyle.swift` — стили/варианты (опционально)
42
+ - `ComponentName+Preview.swift` (optional)
43
+ - `ComponentNameStyle.swift` — styles/variants (optional)
44
44
 
45
- # Стили и Design System
45
+ # Styles and Design System
46
46
 
47
- - Цвета, шрифты, отступыиз **токенов/Theme** проекта (`DesignSystem`, `Assets`, generated tokens).
48
- - Избегать:
49
- - «магических» литералов (`.padding(17)`, `Color(red: 0.2, ...)`), если есть токены;
50
- - дублирования стилей, уже закрытых примитивами.
51
- - `Preview` — для компонентов и экранов с mock ViewModel.
47
+ - Colors, fonts, spacingfrom project **tokens/Theme** (`DesignSystem`, `Assets`, generated tokens).
48
+ - Avoid:
49
+ - “magic” literals (`.padding(17)`, `Color(red: 0.2, ...)`) when tokens exist;
50
+ - duplicating styles already covered by primitives.
51
+ - `Preview` — for components and screens with a mock ViewModel.
52
52
 
53
53
  # Accessibility
54
54
 
55
- - Интерактивные элементы: осмысленные `accessibilityLabel`, `accessibilityHint` где нужно.
56
- - Для UI-тестовстабильные `accessibilityIdentifier` на ключевых элементах (согласовать с `tests-ui.mdc`).
57
- - Поддерживать Dynamic Type и контраст, не ломать layout при крупном шрифте.
55
+ - Interactive elements: meaningful `accessibilityLabel`, `accessibilityHint` where needed.
56
+ - For UI tests stable `accessibilityIdentifier` on key elements (align with `tests-ui.mdc`).
57
+ - Support Dynamic Type and contrast; do not break layout at large text sizes.
58
58
 
59
- # Previews и локализация
59
+ # Previews and localization
60
60
 
61
- - Строки UI через `String(localized:)` / `LocalizedStringKey`, не hardcoded в production без причины.
62
- - `#Preview` с реалистичными mock-данными; для ViewModel — stub use cases.
61
+ - UI strings via `String(localized:)` / `LocalizedStringKey`, not hardcoded in production without reason.
62
+ - `#Preview` with realistic mock data; for ViewModels — stub use cases.
63
63
 
64
- # Требование к агенту
64
+ # Agent requirement
65
65
 
66
- При создании/изменении UI:
67
- - Следовать существующим экранам и компонентам как эталону.
68
- - Не импортировать Data-слой во View/ViewModel.
69
- - Subview выделять, когда body превышает ~40–60 строк или повторяется.
66
+ When creating/changing UI:
67
+ - Follow existing screens and components as the reference.
68
+ - Do not import the Data layer into View/ViewModel.
69
+ - Extract a subview when body exceeds ~40–60 lines or repeats.
@@ -1,16 +1,16 @@
1
1
  ---
2
- description: Роль агента для проведения технического ретроспективы (retro) команды / спринта. On-demand — предпочтительнее slash-команда /technical-retro.
2
+ description: Agent role for a technical retrospective (retro) of the team / sprint. On-demand — prefer the /technical-retro slash command.
3
3
  alwaysApply: false
4
4
  ---
5
5
 
6
6
  <!-- shared-core: review/technical-retro.md -->
7
7
 
8
- # Техническое ретро — rule alias
8
+ # Technical retro — rule alias
9
9
 
10
- Полный сценарий (включая блок **«Работа агентов»** для slug из team tasks) в slash-команде:
10
+ Full scenario (including the **“Agent work”** block for a slug from team tasks) lives in the slash command:
11
11
 
12
12
  **`commands/technical-retro.md`** → `/technical-retro`
13
13
 
14
14
  When a task has `metrics.json`, use the local aggregation script and state the cohort, sample size, incomplete artifacts, attribution confidence, active attempt duration, and human-gate wait separately. Do not score malformed artifacts or gate wait as agent work.
15
15
 
16
- Используй rule только если command недоступен. Не дублируй содержимое command в ответеследуй command-файлу и skill `technical-retro`.
16
+ Use this rule only if the command is unavailable. Do not duplicate the command contents in the response follow the command file and skill `technical-retro`.
@@ -1,42 +1,43 @@
1
1
  ---
2
- description: UI-тесты XCUITest и accessibility identifiers
2
+ description: XCUITest UI tests and accessibility identifiers
3
3
  globs: "**/*UITests/**/*.swift"
4
4
  alwaysApply: false
5
5
  ---
6
6
 
7
- # Структура UI-тестов
7
+ # UI test structure
8
8
 
9
- - UI Test target: `*UITests/` — сценарии пользовательских потоков.
10
- - Page Object (или Screen Object) — класс на экран: селекторы + действия (`LoginScreen`, `OrderHistoryScreen`).
11
- - Общие хелперы — `UITestSupport/`, base classes, launch arguments.
9
+ - UI Test target: `*UITests/` — end-user flow scenarios.
10
+ - Page Object (or Screen Object) — one class per screen: selectors + actions (`LoginScreen`, `OrderHistoryScreen`).
11
+ - Shared helpers — `UITestSupport/`, base classes, launch arguments.
12
12
 
13
- # Селекторы и стабильность
13
+ # Selectors and stability
14
14
 
15
- - **Приоритет:** `accessibilityIdentifier` для ключевых элементов; затем label/trait где устойчиво.
16
- - Идентификаторы согласовать с Presentation-слоем (`swiftui-ui.mdc`): `{screen}__{element}`.
17
- - Пример: `order-history__submit-button`, `login__email-field`.
18
- - Избегать привязки к абсолютным координатам и хрупким XPath-подобным цепочкам.
15
+ - **Priority:** `accessibilityIdentifier` for key elements; then label/trait where stable.
16
+ - Align identifiers with the Presentation layer (`swiftui-ui.mdc`): `{screen}__{element}`.
17
+ - Example: `order-history__submit-button`, `login__email-field`.
18
+ - Avoid absolute coordinates and brittle XPath-like chains.
19
19
 
20
- # Сценарии и именование
20
+ # Scenarios and naming
21
21
 
22
- - Названия тестов**на русском**, с префиксом сущности:
23
- - `OH-001 Отображается список заказов` (префикс — первые буквы сущности, номер — три цифры).
24
- - Один тестодин пользовательский сценарий; не объединять несвязанные проверки.
22
+ - Test names**in the product locale** (Russian when UI copy is Russian), with an entity prefix:
23
+ <!-- i18n-keep: E5 -->
24
+ - `OH-001 Отображается список заказов` (prefix entity initials, number three digits).
25
+ - One test — one user scenario; do not combine unrelated checks.
25
26
 
26
- # Launch и окружение
27
+ # Launch and environment
27
28
 
28
- - `-UITesting`, mock server URL, сброс state — через `launchArguments` / `launchEnvironment`, как в репо.
29
- - Не зависеть от прод-backend в CI; использовать staging/mock.
29
+ - `-UITesting`, mock server URL, state reset via `launchArguments` / `launchEnvironment`, as in the repo.
30
+ - Do not depend on production backend in CI; use staging/mock.
30
31
 
31
- # Синхронизация с UI
32
+ # Sync with UI
32
33
 
33
- - При изменении UI обновлять identifiers в View и селекторы в page objects.
34
- - Не ослаблять assertions против бизнес-ожиданий ради «зелёного» CI.
34
+ - When UI changes, update identifiers in Views and selectors in page objects.
35
+ - Do not weaken assertions against business expectations just to keep CI green.
35
36
 
36
- # Требование к агенту
37
+ # Agent requirement
37
38
 
38
- При добавлении UI-тестов:
39
- - Переиспользовать page objects, не дублировать query в каждом тесте.
40
- - Добавлять `accessibilityIdentifier` в SwiftUI через `.accessibilityIdentifier(...)` для новых интерактивных элементов.
41
- - Следовать существующим UITest files как эталону.
42
- - Планирование / генерация / heal — agents `xcuitest-test-{planner,generator,healer}` и skill `xcuitest-e2e` (не Playwright).
39
+ When adding UI tests:
40
+ - Reuse page objects; do not duplicate queries in every test.
41
+ - Add `accessibilityIdentifier` in SwiftUI via `.accessibilityIdentifier(...)` for new interactive elements.
42
+ - Follow existing UITest files as the reference.
43
+ - Planning / generation / heal — agents `xcuitest-test-{planner,generator,healer}` and skill `xcuitest-e2e` (not Playwright).
@@ -1,41 +1,41 @@
1
1
  ---
2
- description: Unit и integration тесты (XCTest / Swift Testing)
2
+ description: Unit and integration tests (XCTest / Swift Testing)
3
3
  globs: "**/*Tests/**/*.swift"
4
4
  alwaysApply: false
5
5
  ---
6
6
 
7
- # Общие правила тестирования
7
+ # General testing rules
8
8
 
9
- - **Framework** — XCTest или Swift Testing, как в проекте.
10
- - Цель: проверять **поведение и бизнес-правила**, не детали реализации и private API.
11
- - Именование:
12
- - `test` / `@Test` descriptions и `XCTContext` — **на русском**, как понятные бизнес-фразы.
13
- - Описания **с заглавной буквы**.
9
+ - **Framework** — XCTest or Swift Testing, as in the project.
10
+ - Goal: verify **behavior and business rules**, not implementation details and private API.
11
+ - Naming:
12
+ - `test` / `@Test` descriptions and `XCTContext` — **in the product locale** (Russian when UI copy is Russian), as clear business phrases.
13
+ - Descriptions **start with a capital letter**.
14
14
 
15
- # ViewModel и use case
15
+ # ViewModel and use case
16
16
 
17
- - Mock протоколов repositories / use cases; не поднимать реальную сеть.
18
- - Проверять переходы state: loading → success/failure, validation errors, edge cases.
19
- - `@MainActor` ViewModel тестировать с `@MainActor` test methods или `await MainActor.run`.
17
+ - Mock repository / use case protocols; do not hit the real network.
18
+ - Assert state transitions: loading → success/failure, validation errors, edge cases.
19
+ - Test `@MainActor` ViewModels with `@MainActor` test methods or `await MainActor.run`.
20
20
 
21
- # Mappers и domain
21
+ # Mappers and domain
22
22
 
23
- - Mapper functions — unit-тесты с таблицами кейсов: nil fields, empty arrays, граничные значения.
24
- - Regression на бизнес-правила (скидки, статусы, форматирование дат).
23
+ - Mapper functions — unit tests with case tables: nil fields, empty arrays, boundary values.
24
+ - Regressions on business rules (discounts, statuses, date formatting).
25
25
 
26
- # Изоляция
26
+ # Isolation
27
27
 
28
- - Не мокать то, что является предметом теста (например, сам mapper при тесте mapper).
29
- - Fixtures — в `TestSupport/`, `Mocks/` или рядом по конвенции репо; не дублировать большие JSON inline без нужды.
28
+ - Do not mock the subject under test (e.g. the mapper itself when testing the mapper).
29
+ - Fixtures — in `TestSupport/`, `Mocks/`, or colocated per repo convention; do not inline large JSON without need.
30
30
 
31
- # Структура файлов
31
+ # File structure
32
32
 
33
- - `FeatureViewModelTests.swift`, `OrderMapperTests.swift` — суффикс `Tests` в имени типа/файла по стилю Xcode.
34
- - Не создавать глубокую вложенность `Tests/Tests/`; следовать target structure проекта.
33
+ - `FeatureViewModelTests.swift`, `OrderMapperTests.swift` — `Tests` suffix on type/file name per Xcode style.
34
+ - Do not create deep `Tests/Tests/` nesting; follow the project target structure.
35
35
 
36
- # Требование к агенту
36
+ # Agent requirement
37
37
 
38
- При добавлении тестов:
39
- - Копировать паттерны из существующих test files в репо.
40
- - Добавлять тесты для новых веток логики и регрессий.
41
- - Использовать DTO fixtures из Data layer и domain types из Domain, не дублировать типы в тестах.
38
+ When adding tests:
39
+ - Copy patterns from existing test files in the repo.
40
+ - Add tests for new logic branches and regressions.
41
+ - Use DTO fixtures from the Data layer and domain types from Domain; do not duplicate types in tests.