@bonesofspring/ai-rules 0.2.6 → 0.2.8

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 (405) hide show
  1. package/CHANGELOG.md +65 -1
  2. package/README.md +13 -5
  3. package/bin/cli.js +30 -1
  4. package/package.json +3 -2
  5. package/presets/_shared/README.md +1 -1
  6. package/presets/_shared/core/agent-team/agent-team-intake.md +1 -1
  7. package/presets/_shared/core/agent-team/agent-team-orchestrator.md +1 -1
  8. package/presets/_shared/core/architecture/reference-features.template.md +12 -0
  9. package/presets/_shared/core/meta/preset-layering.md +1 -1
  10. package/presets/_shared/core/meta/preset-no-cross-stack-leakage.md +6 -4
  11. package/presets/_shared/core/meta/preset-pr-checklist.md +1 -1
  12. package/presets/_shared/core/meta/preset-twin-sync.md +2 -0
  13. package/presets/_shared/core/quality/code-quality-and-refactoring.md +11 -0
  14. package/presets/_shared/core/review/code-review-mr.md +9 -0
  15. package/presets/claude/go/CLAUDE.md +5 -1
  16. package/presets/claude/go/README.md +5 -1
  17. package/presets/claude/go/REPO_AGENTS.md +48 -0
  18. package/presets/claude/go/agents/README.md +19 -2
  19. package/presets/claude/go/agents/build-verifier.md +6 -1
  20. package/presets/claude/go/agents/codebase-analyzer.md +28 -0
  21. package/presets/claude/go/agents/feature-developer.md +13 -0
  22. package/presets/claude/go/hooks/README.md +6 -0
  23. package/presets/claude/go/hooks/examples/README.md +18 -0
  24. package/presets/claude/go/hooks/examples/format-edited.example.sh +9 -0
  25. package/presets/claude/go/hooks/examples/secret-guard.example.sh +10 -0
  26. package/presets/claude/go/hooks/examples/test-on-save.example.sh +11 -0
  27. package/presets/claude/go/rules/api-and-data/api-http.md +10 -3
  28. package/presets/claude/go/rules/architecture/reference-features.md +4 -0
  29. package/presets/claude/go/rules/stack/go-conventions.md +30 -3
  30. package/presets/claude/go/rules/tooling-and-review/agent-team-intake.md +1 -1
  31. package/presets/claude/go/rules/tooling-and-review/agent-team-orchestrator.md +1 -1
  32. package/presets/claude/go/rules/tooling-and-review/code-quality.md +12 -1
  33. package/presets/claude/go/rules/tooling-and-review/code-review.md +9 -0
  34. package/presets/claude/go/rules/tooling-and-review/preset-layering.md +1 -1
  35. package/presets/claude/go/rules/tooling-and-review/preset-no-cross-stack-leakage.md +6 -8
  36. package/presets/claude/go/rules/tooling-and-review/preset-pr-checklist.md +1 -1
  37. package/presets/claude/go/rules/tooling-and-review/preset-twin-sync.md +2 -0
  38. package/presets/claude/go/skills/README.md +2 -2
  39. package/presets/claude/go/skills/code-review/SKILL.md +11 -2
  40. package/presets/claude/go/skills/feature-delivery/SKILL.md +4 -0
  41. package/presets/claude/go/skills/technical-retro/SKILL.md +46 -2
  42. package/presets/claude/go/skills/write-adr/SKILL.md +41 -0
  43. package/presets/claude/go/team/conventions.md +21 -0
  44. package/presets/claude/go/team/fixtures/feature-full.json +5 -23
  45. package/presets/claude/ios-swift/CLAUDE.md +4 -1
  46. package/presets/claude/ios-swift/README.md +5 -1
  47. package/presets/claude/ios-swift/REPO_AGENTS.md +46 -0
  48. package/presets/claude/ios-swift/agents/README.md +3 -2
  49. package/presets/claude/ios-swift/agents/build-verifier.md +7 -2
  50. package/presets/claude/ios-swift/agents/codebase-analyzer.md +28 -0
  51. package/presets/claude/ios-swift/agents/feature-developer.md +13 -0
  52. package/presets/claude/ios-swift/hooks/README.md +6 -0
  53. package/presets/claude/ios-swift/hooks/examples/README.md +18 -0
  54. package/presets/claude/ios-swift/hooks/examples/format-edited.example.sh +13 -0
  55. package/presets/claude/ios-swift/hooks/examples/secret-guard.example.sh +10 -0
  56. package/presets/claude/ios-swift/hooks/examples/test-on-save.example.sh +8 -0
  57. package/presets/claude/ios-swift/rules/architecture/reference-features.md +4 -0
  58. package/presets/claude/ios-swift/rules/stack/ios-app-core.md +5 -28
  59. package/presets/claude/ios-swift/rules/stack/swift-conventions.md +12 -2
  60. package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-intake.md +1 -1
  61. package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-orchestrator.md +1 -1
  62. package/presets/claude/ios-swift/rules/tooling-and-review/code-quality.md +12 -1
  63. package/presets/claude/ios-swift/rules/tooling-and-review/code-review.md +47 -0
  64. package/presets/claude/ios-swift/rules/tooling-and-review/preset-layering.md +1 -1
  65. package/presets/claude/ios-swift/rules/tooling-and-review/preset-no-cross-stack-leakage.md +6 -4
  66. package/presets/claude/ios-swift/rules/tooling-and-review/preset-pr-checklist.md +1 -1
  67. package/presets/claude/ios-swift/rules/tooling-and-review/preset-twin-sync.md +2 -0
  68. package/presets/claude/ios-swift/rules/ui-and-accessibility/swiftui.md +8 -0
  69. package/presets/claude/ios-swift/skills/README.md +1 -0
  70. package/presets/claude/ios-swift/skills/code-review/SKILL.md +10 -2
  71. package/presets/claude/ios-swift/skills/feature-delivery/SKILL.md +4 -0
  72. package/presets/claude/ios-swift/skills/technical-retro/SKILL.md +46 -2
  73. package/presets/claude/ios-swift/skills/write-adr/SKILL.md +41 -0
  74. package/presets/claude/ios-swift/team/conventions.md +21 -0
  75. package/presets/claude/java/CLAUDE.md +29 -0
  76. package/presets/claude/java/MCP.md +13 -0
  77. package/presets/claude/java/README.md +26 -0
  78. package/presets/claude/java/REPO_AGENTS.md +45 -0
  79. package/presets/claude/java/agents/README.md +32 -0
  80. package/presets/claude/java/agents/api-contract-reviewer.md +23 -0
  81. package/presets/claude/java/agents/build-verifier.md +45 -0
  82. package/presets/claude/java/agents/ci-investigator.md +17 -0
  83. package/presets/claude/java/agents/code-reviewer.md +40 -0
  84. package/presets/claude/java/agents/codebase-analyzer.md +28 -0
  85. package/presets/claude/java/agents/debugger.md +25 -0
  86. package/presets/claude/java/agents/feature-developer.md +43 -0
  87. package/presets/claude/java/agents/integration-test-generator.md +22 -0
  88. package/presets/claude/java/agents/integration-test-healer.md +22 -0
  89. package/presets/claude/java/agents/integration-test-planner.md +22 -0
  90. package/presets/claude/java/agents/migration-specialist.md +31 -0
  91. package/presets/claude/java/agents/performance-auditor.md +22 -0
  92. package/presets/claude/java/agents/qa-tester.md +24 -0
  93. package/presets/claude/java/agents/security-reviewer.md +20 -0
  94. package/presets/claude/java/agents/solution-architect.md +28 -0
  95. package/presets/claude/java/agents/task-analyst.md +25 -0
  96. package/presets/claude/java/agents/task-router.md +69 -0
  97. package/presets/claude/java/agents/tech-writer.md +15 -0
  98. package/presets/claude/java/agents/unit-test-generator.md +21 -0
  99. package/presets/claude/java/agents/unit-test-healer.md +13 -0
  100. package/presets/claude/java/agents/unit-test-planner.md +26 -0
  101. package/presets/claude/java/commands/README.md +13 -0
  102. package/presets/claude/java/commands/feature-continue.md +51 -0
  103. package/presets/claude/java/commands/feature-start.md +30 -0
  104. package/presets/claude/java/commands/task-continue.md +49 -0
  105. package/presets/claude/java/commands/task.md +49 -0
  106. package/presets/claude/java/commands/technical-retro.md +58 -0
  107. package/presets/claude/java/hooks/README.md +16 -0
  108. package/presets/claude/java/hooks/chain-team-phases.sh +381 -0
  109. package/presets/claude/java/hooks/examples/README.md +18 -0
  110. package/presets/claude/java/hooks/examples/format-edited.example.sh +11 -0
  111. package/presets/claude/java/hooks/examples/secret-guard.example.sh +10 -0
  112. package/presets/claude/java/hooks/examples/test-on-save.example.sh +18 -0
  113. package/presets/claude/java/hooks/guard-shell-command.sh +80 -0
  114. package/presets/claude/java/mcp.json +11 -0
  115. package/presets/claude/java/rules/README.md +60 -0
  116. package/presets/claude/java/rules/api-and-data/README.md +14 -0
  117. package/presets/claude/java/rules/api-and-data/adapters-driven.md +38 -0
  118. package/presets/claude/java/rules/api-and-data/adapters-driving.md +38 -0
  119. package/presets/claude/java/rules/api-and-data/api-grpc.md +29 -0
  120. package/presets/claude/java/rules/api-and-data/api-http.md +36 -0
  121. package/presets/claude/java/rules/api-and-data/messaging-adapters.md +24 -0
  122. package/presets/claude/java/rules/api-and-data/persistence-adapters.md +33 -0
  123. package/presets/claude/java/rules/architecture/README.md +16 -0
  124. package/presets/claude/java/rules/architecture/application-usecases.md +32 -0
  125. package/presets/claude/java/rules/architecture/boundaries.md +29 -0
  126. package/presets/claude/java/rules/architecture/composition-root.md +31 -0
  127. package/presets/claude/java/rules/architecture/domain-layer.md +38 -0
  128. package/presets/claude/java/rules/architecture/feature-delivery.md +52 -0
  129. package/presets/claude/java/rules/architecture/module-public-api.md +31 -0
  130. package/presets/claude/java/rules/architecture/ports-interfaces.md +34 -0
  131. package/presets/claude/java/rules/architecture/reference-features.md +34 -0
  132. package/presets/claude/java/rules/stack/README.md +10 -0
  133. package/presets/claude/java/rules/stack/java-app-core.md +32 -0
  134. package/presets/claude/java/rules/stack/java-conventions.md +52 -0
  135. package/presets/claude/java/rules/testing/README.md +11 -0
  136. package/presets/claude/java/rules/testing/e2e.md +22 -0
  137. package/presets/claude/java/rules/testing/integration.md +27 -0
  138. package/presets/claude/java/rules/testing/unit.md +33 -0
  139. package/presets/claude/java/rules/tooling-and-review/README.md +21 -0
  140. package/presets/claude/java/rules/tooling-and-review/agent-team-intake.md +26 -0
  141. package/presets/claude/java/rules/tooling-and-review/agent-team-orchestrator.md +179 -0
  142. package/presets/claude/java/rules/tooling-and-review/code-quality.md +83 -0
  143. package/presets/claude/java/rules/tooling-and-review/code-review.md +59 -0
  144. package/presets/claude/java/rules/tooling-and-review/design-guidance.md +110 -0
  145. package/presets/claude/java/rules/tooling-and-review/java-tooling.md +36 -0
  146. package/presets/claude/java/rules/tooling-and-review/post-change-test.md +32 -0
  147. package/presets/claude/java/rules/tooling-and-review/preset-layering.md +36 -0
  148. package/presets/claude/java/rules/tooling-and-review/preset-no-cross-stack-leakage.md +56 -0
  149. package/presets/claude/java/rules/tooling-and-review/preset-pr-checklist.md +39 -0
  150. package/presets/claude/java/rules/tooling-and-review/preset-token-budget.md +41 -0
  151. package/presets/claude/java/rules/tooling-and-review/preset-twin-sync.md +44 -0
  152. package/presets/claude/java/rules/tooling-and-review/security-java.md +29 -0
  153. package/presets/claude/java/rules/tooling-and-review/technical-retro.md +20 -0
  154. package/presets/claude/java/rules/ui-and-accessibility/README.md +5 -0
  155. package/presets/claude/java/skills/README.md +5 -0
  156. package/presets/claude/java/skills/ci-investigation/SKILL.md +11 -0
  157. package/presets/claude/java/skills/code-review/SKILL.md +25 -0
  158. package/presets/claude/java/skills/debug-investigation/SKILL.md +15 -0
  159. package/presets/claude/java/skills/feature-delivery/SKILL.md +30 -0
  160. package/presets/claude/java/skills/integration-testing/SKILL.md +15 -0
  161. package/presets/claude/java/skills/technical-retro/SKILL.md +54 -0
  162. package/presets/claude/java/skills/unit-testing/SKILL.md +14 -0
  163. package/presets/claude/java/skills/write-adr/SKILL.md +41 -0
  164. package/presets/claude/java/team/README.md +27 -0
  165. package/presets/claude/java/team/conventions.md +21 -0
  166. package/presets/claude/java/team/fixtures/bugfix-standard.json +37 -0
  167. package/presets/claude/java/team/fixtures/feature-full.json +25 -0
  168. package/presets/claude/java/team/fixtures/feature-light.json +17 -0
  169. package/presets/claude/next/CLAUDE.md +5 -1
  170. package/presets/claude/next/README.md +6 -1
  171. package/presets/claude/next/REPO_AGENTS.md +48 -0
  172. package/presets/claude/next/agents/README.md +7 -1
  173. package/presets/claude/next/agents/build-verifier.md +7 -2
  174. package/presets/claude/next/agents/codebase-analyzer.md +28 -0
  175. package/presets/claude/next/agents/feature-developer.md +13 -0
  176. package/presets/claude/next/agents/security-reviewer.md +4 -2
  177. package/presets/claude/next/hooks/README.md +6 -0
  178. package/presets/claude/next/hooks/examples/README.md +18 -0
  179. package/presets/claude/next/hooks/examples/format-edited.example.sh +11 -0
  180. package/presets/claude/next/hooks/examples/secret-guard.example.sh +10 -0
  181. package/presets/claude/next/hooks/examples/test-on-save.example.sh +8 -0
  182. package/presets/claude/next/rules/README.md +2 -1
  183. package/presets/claude/next/rules/api-and-data/api-services.md +22 -0
  184. package/presets/claude/next/rules/api-and-data/http-client.md +21 -0
  185. package/presets/claude/next/rules/api-and-data/store-rtk.md +20 -0
  186. package/presets/claude/next/rules/architecture/architecture-boundaries.md +28 -0
  187. package/presets/claude/next/rules/architecture/layer-barrel-exports.md +15 -0
  188. package/presets/claude/next/rules/architecture/public-imports.md +14 -0
  189. package/presets/claude/next/rules/architecture/reference-features.md +4 -0
  190. package/presets/claude/next/rules/stack/arrow-functions.md +13 -28
  191. package/presets/claude/next/rules/stack/next-app-router.md +13 -1
  192. package/presets/claude/next/rules/testing/tests-unit.md +13 -0
  193. package/presets/claude/next/rules/tooling-and-review/README.md +2 -1
  194. package/presets/claude/next/rules/tooling-and-review/agent-team-intake.md +1 -1
  195. package/presets/claude/next/rules/tooling-and-review/agent-team-orchestrator.md +1 -1
  196. package/presets/claude/next/rules/tooling-and-review/code-quality.md +12 -2
  197. package/presets/claude/next/rules/tooling-and-review/code-review-mr.md +22 -0
  198. package/presets/claude/next/rules/tooling-and-review/preset-layering.md +1 -1
  199. package/presets/claude/next/rules/tooling-and-review/preset-no-cross-stack-leakage.md +6 -4
  200. package/presets/claude/next/rules/tooling-and-review/preset-pr-checklist.md +1 -1
  201. package/presets/claude/next/rules/tooling-and-review/preset-twin-sync.md +2 -0
  202. package/presets/claude/next/rules/tooling-and-review/security-next.md +57 -0
  203. package/presets/claude/next/rules/ui-and-accessibility/react-ui.md +21 -0
  204. package/presets/claude/next/skills/README.md +2 -0
  205. package/presets/claude/next/skills/code-review/SKILL.md +10 -2
  206. package/presets/claude/next/skills/feature-delivery/SKILL.md +4 -0
  207. package/presets/claude/next/skills/react-performance/SKILL.md +44 -0
  208. package/presets/claude/next/skills/technical-retro/SKILL.md +19 -5
  209. package/presets/claude/next/skills/write-adr/SKILL.md +41 -0
  210. package/presets/claude/next/team/conventions.md +21 -0
  211. package/presets/cursor/go/AGENTS.md +6 -0
  212. package/presets/cursor/go/README.md +6 -5
  213. package/presets/cursor/go/REPO_AGENTS.md +48 -0
  214. package/presets/cursor/go/agents/README.md +23 -2
  215. package/presets/cursor/go/agents/build-verifier.md +6 -1
  216. package/presets/cursor/go/agents/codebase-analyzer.md +28 -0
  217. package/presets/cursor/go/agents/feature-developer.md +13 -0
  218. package/presets/cursor/go/commands/README.md +1 -1
  219. package/presets/cursor/go/hooks/README.md +4 -0
  220. package/presets/cursor/go/hooks/examples/README.md +18 -0
  221. package/presets/cursor/go/hooks/examples/format-edited.example.sh +9 -0
  222. package/presets/cursor/go/hooks/examples/secret-guard.example.sh +10 -0
  223. package/presets/cursor/go/hooks/examples/test-on-save.example.sh +11 -0
  224. package/presets/cursor/go/rules/README.md +2 -2
  225. package/presets/cursor/go/rules/agent-team-intake.mdc +1 -1
  226. package/presets/cursor/go/rules/agent-team-orchestrator.mdc +1 -1
  227. package/presets/cursor/go/rules/api-http.mdc +10 -3
  228. package/presets/cursor/go/rules/code-quality-and-refactoring.mdc +12 -1
  229. package/presets/cursor/go/rules/code-review-mr.mdc +9 -0
  230. package/presets/cursor/go/rules/go-conventions.mdc +30 -3
  231. package/presets/cursor/go/rules/preset-layering.mdc +1 -1
  232. package/presets/cursor/go/rules/preset-no-cross-stack-leakage.mdc +6 -8
  233. package/presets/cursor/go/rules/preset-pr-checklist.mdc +1 -1
  234. package/presets/cursor/go/rules/preset-twin-sync.mdc +2 -0
  235. package/presets/cursor/go/rules/reference-features.mdc +4 -0
  236. package/presets/cursor/go/skills/README.md +2 -2
  237. package/presets/cursor/go/skills/code-review/SKILL.md +10 -1
  238. package/presets/cursor/go/skills/feature-delivery/SKILL.md +4 -0
  239. package/presets/cursor/go/skills/technical-retro/SKILL.md +46 -2
  240. package/presets/cursor/go/skills/write-adr/SKILL.md +41 -0
  241. package/presets/cursor/go/team/conventions.md +21 -0
  242. package/presets/cursor/go/team/fixtures/feature-full.json +5 -23
  243. package/presets/cursor/ios-swift/AGENTS.md +5 -2
  244. package/presets/cursor/ios-swift/README.md +6 -5
  245. package/presets/cursor/ios-swift/REPO_AGENTS.md +46 -0
  246. package/presets/cursor/ios-swift/agents/README.md +3 -2
  247. package/presets/cursor/ios-swift/agents/build-verifier.md +7 -2
  248. package/presets/cursor/ios-swift/agents/codebase-analyzer.md +28 -0
  249. package/presets/cursor/ios-swift/agents/feature-developer.md +13 -0
  250. package/presets/cursor/ios-swift/commands/README.md +1 -1
  251. package/presets/cursor/ios-swift/hooks/README.md +4 -0
  252. package/presets/cursor/ios-swift/hooks/examples/README.md +18 -0
  253. package/presets/cursor/ios-swift/hooks/examples/format-edited.example.sh +13 -0
  254. package/presets/cursor/ios-swift/hooks/examples/secret-guard.example.sh +10 -0
  255. package/presets/cursor/ios-swift/hooks/examples/test-on-save.example.sh +8 -0
  256. package/presets/cursor/ios-swift/rules/agent-team-intake.mdc +1 -1
  257. package/presets/cursor/ios-swift/rules/agent-team-orchestrator.mdc +1 -1
  258. package/presets/cursor/ios-swift/rules/code-quality-and-refactoring.mdc +12 -1
  259. package/presets/cursor/ios-swift/rules/code-review-mr.mdc +9 -0
  260. package/presets/cursor/ios-swift/rules/ios-app-core.mdc +5 -28
  261. package/presets/cursor/ios-swift/rules/preset-layering.mdc +1 -1
  262. package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +6 -4
  263. package/presets/cursor/ios-swift/rules/preset-pr-checklist.mdc +1 -1
  264. package/presets/cursor/ios-swift/rules/preset-twin-sync.mdc +2 -0
  265. package/presets/cursor/ios-swift/rules/reference-features.mdc +4 -0
  266. package/presets/cursor/ios-swift/rules/swift-conventions.mdc +12 -2
  267. package/presets/cursor/ios-swift/rules/swiftui-ui.mdc +8 -0
  268. package/presets/cursor/ios-swift/skills/README.md +1 -0
  269. package/presets/cursor/ios-swift/skills/code-review/SKILL.md +10 -2
  270. package/presets/cursor/ios-swift/skills/feature-delivery/SKILL.md +4 -0
  271. package/presets/cursor/ios-swift/skills/technical-retro/SKILL.md +46 -2
  272. package/presets/cursor/ios-swift/skills/write-adr/SKILL.md +41 -0
  273. package/presets/cursor/ios-swift/team/conventions.md +21 -0
  274. package/presets/cursor/java/AGENTS.md +37 -0
  275. package/presets/cursor/java/BUGBOT.md +11 -0
  276. package/presets/cursor/java/MCP.md +15 -0
  277. package/presets/cursor/java/README.md +26 -0
  278. package/presets/cursor/java/REPO_AGENTS.md +45 -0
  279. package/presets/cursor/java/agents/README.md +36 -0
  280. package/presets/cursor/java/agents/api-contract-reviewer.md +23 -0
  281. package/presets/cursor/java/agents/build-verifier.md +45 -0
  282. package/presets/cursor/java/agents/ci-investigator.md +17 -0
  283. package/presets/cursor/java/agents/code-reviewer.md +40 -0
  284. package/presets/cursor/java/agents/codebase-analyzer.md +28 -0
  285. package/presets/cursor/java/agents/debugger.md +25 -0
  286. package/presets/cursor/java/agents/feature-developer.md +43 -0
  287. package/presets/cursor/java/agents/integration-test-generator.md +22 -0
  288. package/presets/cursor/java/agents/integration-test-healer.md +22 -0
  289. package/presets/cursor/java/agents/integration-test-planner.md +22 -0
  290. package/presets/cursor/java/agents/migration-specialist.md +31 -0
  291. package/presets/cursor/java/agents/performance-auditor.md +22 -0
  292. package/presets/cursor/java/agents/qa-tester.md +24 -0
  293. package/presets/cursor/java/agents/security-reviewer.md +20 -0
  294. package/presets/cursor/java/agents/solution-architect.md +28 -0
  295. package/presets/cursor/java/agents/task-analyst.md +25 -0
  296. package/presets/cursor/java/agents/task-router.md +69 -0
  297. package/presets/cursor/java/agents/tech-writer.md +15 -0
  298. package/presets/cursor/java/agents/unit-test-generator.md +21 -0
  299. package/presets/cursor/java/agents/unit-test-healer.md +13 -0
  300. package/presets/cursor/java/agents/unit-test-planner.md +26 -0
  301. package/presets/cursor/java/commands/README.md +54 -0
  302. package/presets/cursor/java/commands/feature-continue.md +19 -0
  303. package/presets/cursor/java/commands/feature-start.md +33 -0
  304. package/presets/cursor/java/commands/task-continue.md +49 -0
  305. package/presets/cursor/java/commands/task.md +49 -0
  306. package/presets/cursor/java/commands/technical-retro.md +81 -0
  307. package/presets/cursor/java/hooks/README.md +12 -0
  308. package/presets/cursor/java/hooks/chain-team-phases.sh +381 -0
  309. package/presets/cursor/java/hooks/examples/README.md +18 -0
  310. package/presets/cursor/java/hooks/examples/format-edited.example.sh +11 -0
  311. package/presets/cursor/java/hooks/examples/secret-guard.example.sh +10 -0
  312. package/presets/cursor/java/hooks/examples/test-on-save.example.sh +18 -0
  313. package/presets/cursor/java/hooks/guard-shell-command.sh +80 -0
  314. package/presets/cursor/java/hooks.json +17 -0
  315. package/presets/cursor/java/mcp.json +11 -0
  316. package/presets/cursor/java/rules/README.md +97 -0
  317. package/presets/cursor/java/rules/adapters-driven.mdc +40 -0
  318. package/presets/cursor/java/rules/adapters-driving.mdc +40 -0
  319. package/presets/cursor/java/rules/agent-team-intake.mdc +20 -0
  320. package/presets/cursor/java/rules/agent-team-orchestrator.mdc +173 -0
  321. package/presets/cursor/java/rules/api-grpc.mdc +31 -0
  322. package/presets/cursor/java/rules/api-http.mdc +38 -0
  323. package/presets/cursor/java/rules/application-usecases.mdc +34 -0
  324. package/presets/cursor/java/rules/architecture-boundaries.mdc +30 -0
  325. package/presets/cursor/java/rules/code-quality-and-refactoring.mdc +84 -0
  326. package/presets/cursor/java/rules/code-review-mr.mdc +54 -0
  327. package/presets/cursor/java/rules/composition-root.mdc +33 -0
  328. package/presets/cursor/java/rules/design-guidance.mdc +112 -0
  329. package/presets/cursor/java/rules/domain-layer.mdc +40 -0
  330. package/presets/cursor/java/rules/feature-delivery-workflow.mdc +47 -0
  331. package/presets/cursor/java/rules/java-app-core.mdc +33 -0
  332. package/presets/cursor/java/rules/java-conventions.mdc +54 -0
  333. package/presets/cursor/java/rules/java-tooling.mdc +34 -0
  334. package/presets/cursor/java/rules/messaging-adapters.mdc +26 -0
  335. package/presets/cursor/java/rules/module-public-api.mdc +33 -0
  336. package/presets/cursor/java/rules/persistence-adapters.mdc +35 -0
  337. package/presets/cursor/java/rules/ports-interfaces.mdc +36 -0
  338. package/presets/cursor/java/rules/post-change-test.mdc +30 -0
  339. package/presets/cursor/java/rules/preset-layering.mdc +36 -0
  340. package/presets/cursor/java/rules/preset-no-cross-stack-leakage.mdc +56 -0
  341. package/presets/cursor/java/rules/preset-pr-checklist.mdc +39 -0
  342. package/presets/cursor/java/rules/preset-token-budget.mdc +41 -0
  343. package/presets/cursor/java/rules/preset-twin-sync.mdc +44 -0
  344. package/presets/cursor/java/rules/reference-features.mdc +36 -0
  345. package/presets/cursor/java/rules/security-java.mdc +31 -0
  346. package/presets/cursor/java/rules/technical-retro.mdc +14 -0
  347. package/presets/cursor/java/rules/tests-e2e.mdc +24 -0
  348. package/presets/cursor/java/rules/tests-integration.mdc +29 -0
  349. package/presets/cursor/java/rules/tests-unit.mdc +35 -0
  350. package/presets/cursor/java/skills/README.md +5 -0
  351. package/presets/cursor/java/skills/ci-investigation/SKILL.md +11 -0
  352. package/presets/cursor/java/skills/code-review/SKILL.md +25 -0
  353. package/presets/cursor/java/skills/debug-investigation/SKILL.md +15 -0
  354. package/presets/cursor/java/skills/feature-delivery/SKILL.md +30 -0
  355. package/presets/cursor/java/skills/integration-testing/SKILL.md +15 -0
  356. package/presets/cursor/java/skills/technical-retro/SKILL.md +54 -0
  357. package/presets/cursor/java/skills/unit-testing/SKILL.md +14 -0
  358. package/presets/cursor/java/skills/write-adr/SKILL.md +41 -0
  359. package/presets/cursor/java/team/README.md +31 -0
  360. package/presets/cursor/java/team/conventions.md +21 -0
  361. package/presets/cursor/java/team/fixtures/bugfix-standard.json +37 -0
  362. package/presets/cursor/java/team/fixtures/feature-full.json +25 -0
  363. package/presets/cursor/java/team/fixtures/feature-light.json +17 -0
  364. package/presets/cursor/next/AGENTS.md +5 -2
  365. package/presets/cursor/next/README.md +7 -6
  366. package/presets/cursor/next/REPO_AGENTS.md +48 -0
  367. package/presets/cursor/next/agents/README.md +7 -1
  368. package/presets/cursor/next/agents/build-verifier.md +7 -2
  369. package/presets/cursor/next/agents/codebase-analyzer.md +28 -0
  370. package/presets/cursor/next/agents/feature-developer.md +13 -0
  371. package/presets/cursor/next/agents/security-reviewer.md +4 -2
  372. package/presets/cursor/next/commands/README.md +1 -1
  373. package/presets/cursor/next/hooks/README.md +4 -0
  374. package/presets/cursor/next/hooks/examples/README.md +18 -0
  375. package/presets/cursor/next/hooks/examples/format-edited.example.sh +11 -0
  376. package/presets/cursor/next/hooks/examples/secret-guard.example.sh +10 -0
  377. package/presets/cursor/next/hooks/examples/test-on-save.example.sh +8 -0
  378. package/presets/cursor/next/rules/README.md +4 -3
  379. package/presets/cursor/next/rules/agent-team-intake.mdc +1 -1
  380. package/presets/cursor/next/rules/agent-team-orchestrator.mdc +1 -1
  381. package/presets/cursor/next/rules/api-services.mdc +21 -0
  382. package/presets/cursor/next/rules/architecture-boundaries.mdc +27 -0
  383. package/presets/cursor/next/rules/arrow-functions.mdc +13 -28
  384. package/presets/cursor/next/rules/code-quality-and-refactoring.mdc +12 -2
  385. package/presets/cursor/next/rules/code-review-mr.mdc +11 -13
  386. package/presets/cursor/next/rules/http-client.mdc +21 -0
  387. package/presets/cursor/next/rules/layer-barrel-exports.mdc +15 -0
  388. package/presets/cursor/next/rules/next-app-router.mdc +13 -1
  389. package/presets/cursor/next/rules/preset-layering.mdc +1 -1
  390. package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +6 -4
  391. package/presets/cursor/next/rules/preset-pr-checklist.mdc +1 -1
  392. package/presets/cursor/next/rules/preset-twin-sync.mdc +2 -0
  393. package/presets/cursor/next/rules/public-imports.mdc +14 -0
  394. package/presets/cursor/next/rules/react-ui.mdc +20 -0
  395. package/presets/cursor/next/rules/reference-features.mdc +4 -0
  396. package/presets/cursor/next/rules/security-next.mdc +57 -0
  397. package/presets/cursor/next/rules/store-rtk.mdc +19 -0
  398. package/presets/cursor/next/rules/tests-unit.mdc +12 -0
  399. package/presets/cursor/next/skills/README.md +2 -0
  400. package/presets/cursor/next/skills/code-review/SKILL.md +10 -2
  401. package/presets/cursor/next/skills/feature-delivery/SKILL.md +4 -0
  402. package/presets/cursor/next/skills/react-performance/SKILL.md +44 -0
  403. package/presets/cursor/next/skills/technical-retro/SKILL.md +19 -5
  404. package/presets/cursor/next/skills/write-adr/SKILL.md +41 -0
  405. package/presets/cursor/next/team/conventions.md +21 -0
@@ -8,3 +8,9 @@
8
8
  Claude Code may not use Cursor `hooks.json`. Wire scripts per project docs when enabling agent-team auto-chain.
9
9
 
10
10
  **No `hooks.json` in Claude preset** (platform limit — same as next Claude).
11
+
12
+ ## Optional cookbook
13
+
14
+ Example scripts live in `hooks/examples/` (secret-guard, format-edited, test-on-save). They are **not** auto-enabled.
15
+
16
+ To wire in Claude Code: copy an `.example.sh` into `hooks/`, make executable, and register per [Claude Code hooks](https://code.claude.com/docs/en/hooks) for your project. Keep stack-safe recipes (this preset: **ios-swift**). Cursor twin examples under `presets/cursor/ios-swift/hooks/examples/` are the same allowlist forks.
@@ -0,0 +1,18 @@
1
+ # Hooks cookbook (examples)
2
+
3
+ Optional scripts under `hooks/examples/`. **Not** referenced from default `hooks.json` (only `guard-shell-command.sh` + `chain-team-phases.sh`).
4
+
5
+ | Script | Purpose |
6
+ |--------|---------|
7
+ | `secret-guard.example.sh` | Fail if staged diff looks like secrets |
8
+ | `format-edited.example.sh` | Stack formatter / linter on edited files |
9
+ | `test-on-save.example.sh` | Scoped tests for the stack |
10
+
11
+ ## Wiring (Cursor)
12
+
13
+ 1. Copy an example into `hooks/` (drop `.example` suffix), e.g. `cp hooks/examples/secret-guard.example.sh hooks/secret-guard.sh`.
14
+ 2. `chmod +x hooks/secret-guard.sh`.
15
+ 3. Add a hook entry in `.cursor/hooks.json` (e.g. `beforeShellExecution` or `afterFileEdit` — see Cursor hooks docs).
16
+ 4. Keep cookbook scripts **out** of the default preset `hooks.json` when contributing back upstream.
17
+
18
+ Stack: **ios-swift** — recipes must stay stack-safe (no cross-stack lint/test commands).
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env bash
2
+ # Optional: SwiftFormat / SwiftLint on edited .swift files.
3
+ # NOT in default hooks.json.
4
+ set -euo pipefail
5
+ if command -v swiftformat >/dev/null 2>&1; then
6
+ git diff --name-only --diff-filter=ACMR HEAD 2>/dev/null | grep '\.swift$' | while read -r f; do
7
+ [[ -f "$f" ]] && swiftformat "$f" || true
8
+ done
9
+ fi
10
+ if command -v swiftlint >/dev/null 2>&1; then
11
+ swiftlint lint --quiet 2>/dev/null || true
12
+ fi
13
+ exit 0
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env bash
2
+ # Optional cookbook: block committing likely secrets in staged diffs.
3
+ # NOT wired in default hooks.json — copy to hooks/ and register manually.
4
+ set -euo pipefail
5
+ PATTERN='(AKIA[0-9A-Z]{16}|-----BEGIN (RSA |OPENSSH )?PRIVATE KEY-----|api[_-]?key\s*[:=]\s*['\''\"][^'\''\"]{12,})'
6
+ if git diff --cached -U0 2>/dev/null | grep -Eiq "$PATTERN"; then
7
+ echo "secret-guard: possible secret in staged diff — review before commit" >&2
8
+ exit 1
9
+ fi
10
+ exit 0
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ # Optional: xcodebuild test slice for the active scheme (adjust SCHEME/DEST).
3
+ # NOT in default hooks.json. No Playwright / yarn lint.
4
+ set -euo pipefail
5
+ SCHEME="${XCODE_SCHEME:-App}"
6
+ DEST="${XCODE_DESTINATION:-platform=iOS Simulator,name=iPhone 16}"
7
+ xcodebuild test -scheme "$SCHEME" -destination "$DEST" -quiet 2>/dev/null || true
8
+ exit 0
@@ -48,6 +48,10 @@ Taxonomy / shared core: [`presets/_shared/README.md`](../../../../_shared/README
48
48
  4. UI flow — `xcuitest-test-planner` → generator (accessibilityIdentifier).
49
49
  5. Auth/Keychain touch — security-reviewer + `security-ios`.
50
50
 
51
+ ## Living conventions
52
+
53
+ Post-init gotchas / patterns / decisions: **`.claude/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.
54
+
51
55
  ## Связанные правила
52
56
 
53
57
  - `tooling-and-review/code-quality.md` — повторять паттерны.
@@ -4,40 +4,17 @@ description: Базовые принципы, стек и структура iOS
4
4
 
5
5
  # Стек и окружение
6
6
 
7
- Версии Swift, iOS SDK, зависимостей и инструментов**из Xcode-проекта, Package.swift и конфигов целевого репозитория**. Рамка preset:
8
-
9
- - **Язык / платформа:** Swift, iOS (min — из таргета).
10
- - **UI:** SwiftUI — приоритет для нового кода; UIKit — где уже принято в репо.
11
- - **Сборка:** Xcode; SPM и/или CocoaPods — как в репозитории.
12
- - **Concurrency:** `async`/`await`, `Task`, `Actor`; UI — `@MainActor`.
13
- - **Тесты:** XCTest или Swift Testing; UI — XCUITest.
14
- - **Сеть:** `URLSession` или клиент репо; DTO через `Codable`.
15
- - **Дизайн-система:** токены/примитивы из `DesignSystem/` (или аналога); без «магических» значений.
16
- - **Наблюдаемость:** только если уже в проекте — централизованно.
7
+ Версии — **из Xcode / Package.swift / конфигов репо**. Рамка: Swift, iOS; SwiftUI приоритет (UIKit где принято); Xcode + SPM/CocoaPods как в репо; `async`/`await`, `@MainActor`; XCTest/Swift Testing + XCUITest; сеть `URLSession`/`Codable`; UI токены `DesignSystem/`; наблюдаемость только если уже в проекте.
17
8
 
18
9
  # Структура проекта
19
10
 
20
- Ориентир — **feature-first + слои внутри фичи** или **слои на верхнем уровне** (как в репо):
21
-
22
- - `App/` — `@main`, composition root, DI, навигация верхнего уровня.
23
- - `Features/<FeatureName>/` — `Presentation/` (Views, ViewModels), `Domain/` (entities, use cases, протоколы), `Data/` (repos, API, DTO, mappers).
24
- - `Core/` — общие утилиты, extensions, базовые ошибки.
25
- - `DesignSystem/` — UI-примитивы без бизнес-логики.
26
- - `Tests/` / `*Tests/` — unit и UI по конвенции Xcode.
27
-
28
- Новые файлы — в том же слое/модуле, что и аналогичная функциональность.
29
-
30
- Границы зависимостей и DI — **`architecture/boundaries.md`**.
11
+ Feature-first или слои сверху (как в репо): `App/` (composition root), `Features/<Name>/` (Presentation / Domain / Data), `Core/`, `DesignSystem/`, `Tests/`. Новые файлы — рядом с аналогами. Границы/DI — **`architecture/boundaries.md`**.
31
12
 
32
13
  # Swift и качество
33
14
 
34
- - Swift API Design Guidelines + SwiftLint/SwiftFormat репо (если есть).
35
- - Избегать `!` / `try!` в production; `guard` / `if let` / typed errors.
36
- - Копировать существующие паттерны фичи/слоя.
15
+ API Design Guidelines + SwiftLint/SwiftFormat репо; без `!`/`try!` в production; `guard` / typed errors; паттерны соседних файлов.
37
16
 
38
17
  # Работа агента
39
18
 
40
- - Определить слой (Presentation / Domain / Data / DesignSystem / Tests); повторить паттерн соседних файлов.
41
- - Не тянуть `URLSession` во View и DTO во ViewModelдетали в `architecture/boundaries.md`.
42
- - Доставка фичи — `architecture/feature-delivery.md`; после правок Swift — **вызвать** `tooling-and-review/post-change-build.md` (requestable).
43
- - Toolchain перед сборкой — `tooling-and-review/xcode-tooling.md` (requestable).
19
+ - Слой паттерн соседей; без `URLSession` во View и DTO во ViewModel (`architecture/boundaries.md`).
20
+ - Фичи: `architecture/feature-delivery.md`; после Swift **вызвать** `tooling-and-review/post-change-build.md`; toolchain — `tooling-and-review/xcode-tooling.md`.
@@ -27,9 +27,19 @@ guard let name = user?.name else { return }
27
27
 
28
28
  - UI types — `@MainActor`.
29
29
  - Shared mutable state — `actor` или isolation через queue; document thread expectations.
30
- - `Task { }` в ViewModel: учитывать cancellation; `[weak self]` в escaping closures при retain cycles.
30
+ - `Task { }` в ViewModel: учитывать cancellation; `[weak self]` в escaping closures при retain cycles (default when capturing `self` in escaping work).
31
31
  - Prefer `async/await` over completion handlers для нового кода.
32
32
 
33
+ ## Anti-hallucination (Swift / concurrency)
34
+
35
+ | ❌ Avoid | ✅ Prefer |
36
+ |---------|----------|
37
+ | Force unwrap (`!`) for normal control flow | `guard let` / `if let` / typed throws |
38
+ | Invented Combine/Rx APIs when the feature uses Swift Concurrency | Match neighboring ViewModels (`async/await`, `@MainActor`) |
39
+ | Unstructured `Task {}` without cancellation awareness | Cooperative cancel; prefer `.task` in Views (`ui-and-accessibility/swiftui.md`) |
40
+ | Global mutable singletons for request state | DI / actors / existing composition root |
41
+ | APIs not available for the project’s Swift / iOS deployment target | Check package / Xcode settings; mark `VERIFY` if unsure |
42
+
33
43
  # Access control
34
44
 
35
45
  - Минимально необходимый уровень: `private` / `fileprivate` по умолчанию для implementation details.
@@ -47,5 +57,5 @@ guard let name = user?.name else { return }
47
57
 
48
58
  # Требование к агенту
49
59
 
50
- - Не добавлять `// swiftlint:disable` без явной причины.
60
+ - Style gate: **SwiftLint** (and SwiftFormat when configured) — prefer fixing lint over prose style essays; `// swiftlint:disable` only with an explicit reason.
51
61
  - Новый код — Swift Concurrency-ready (`Sendable` где требует компилятор/линтер проекта).
@@ -13,6 +13,6 @@ When the user message looks like a **work request** (implement, add, fix, refact
13
13
 
14
14
  1. Prefer **`/task <their request>`** or invoke **task-router** first.
15
15
  2. Do not jump straight to coding without router + pipeline when scope is non-trivial.
16
- 3. Pure questions («как работает X», «объясни») — answer normally, no `/task`.
16
+ 3. Pure questions («как работает X», «объясни») — prefer agent **`codebase-analyzer`** (explain-as-is); trivial one-liners may be answered inline. Do not open `/task`.
17
17
 
18
18
  Exceptions: user explicitly says «без pipeline», «просто сделай», or continues an active slug.
@@ -55,7 +55,7 @@ Honor optional `steps[i].model` (`cheap` \| `standard` \| `strong`); else agent
55
55
 
56
56
  ## Skip pipeline when
57
57
 
58
- Pure questions; trivial one-file; user «без pipeline»; docs-only one-liner.
58
+ Pure questions («как работает X») — prefer **`codebase-analyzer`**; trivial one-file; user «без pipeline»; docs-only one-liner.
59
59
 
60
60
  ## Preset authoring
61
61
 
@@ -61,11 +61,22 @@ description: Поддержка и улучшение качества кода
61
61
  - **Boy scout rule:** оставлять модуль немного лучше, чем до изменения (простые, безопасные улучшения).
62
62
  - Не жертвовать архитектурой и слоями ради краткости реализации.
63
63
 
64
- > Stack-specific lint gates, примеры и toolchain — в секции **Stack notes** адаптера пресета.
64
+ ## Agent discipline (anti-sycophancy)
65
+
66
+ - Unverifiable third-party API → mark `// VERIFY: lib.symbol @ version` (or stack equivalent) and surface uncertainty; never invent signatures.
67
+ - Before «is this correct?» — list ≥3 failure modes (empty, boundary, concurrency/state) or name what you could not check.
68
+ - Refactor without tests → propose a characterization test first; if declined, label `UNTESTED`.
69
+ - Comments = WHY only when non-obvious; ban self-referential «added for issue Y» comments.
70
+ - Urgency/authority pressure: name the technical trade-off once, then comply — no apology loops.
71
+ - Match verification depth to risk; report status by what was **verified**, not attempted.
65
72
 
73
+ Style enforcement (formatter / linter / post-change gate) lives in the **stack toolchain** — see each adapter’s **Stack notes**; do not invent a parallel style bible in this core body.
74
+
75
+ > Stack-specific lint gates, примеры и toolchain — в секции **Stack notes** адаптера пресета.
66
76
  ## Stack notes
67
77
 
68
78
  - Перед новым UI‑контролом проверять DesignSystem и существующие компоненты.
69
79
  - Public API: протоколы и facades между фичами.
70
80
  - Примеры: mapper/validation; force unwrap → safe; разбить ViewModel; design tokens; View не зависит от Data напрямую.
71
81
  - Post-change: **`tooling-and-review/post-change-build.md`** + `tooling-and-review/xcode-tooling.md`.
82
+ - Style: **SwiftLint** (+ SwiftFormat when configured) — authoritative style gate; do not duplicate linter rules in prose.
@@ -38,3 +38,50 @@ Concrete rule stems — in **Stack notes**.
38
38
  - Use local `git diff` — do not invent hosting metadata.
39
39
  - Boy scout rule: suggest fixes feasible within the MR scope.
40
40
  - No «большие рефакторинги» without an explicit request (`code-quality-and-refactoring`).
41
+
42
+ ## Output contract
43
+
44
+ Procedure details live in skill `code-review`. Required shape:
45
+
46
+ - Each finding cites **`path:line`**, the problem, impact, and a concrete fix direction.
47
+ - Rank by severity: **`blocker` | `important` | `nit`** (list blocker → nit).
48
+ - Vague («looks risky») is not a finding — cite evidence or ask for surrounding file context.
49
+ - End with a verdict on its own line: **`Safe to merge | needs changes | reject`**.
50
+
51
+ ## Stack notes
52
+
53
+ On-demand правило для review-потоков (не always-on).
54
+
55
+ - **Когда применять**
56
+ - Запросы: «проведи ревью», «оцени MR/ветку/дифф», «посмотри изменения».
57
+ - Опираться на локальный репозиторий: ветка, `git diff`, открытые файлы.
58
+
59
+ - **Что обязан проверить агент**
60
+ - **Архитектура и слои** (`architecture/boundaries.md`, `stack/ios-app-core.md`):
61
+ - View не вызывает API и не знает DTO.
62
+ - ViewModel не зависит от Data-реализаций напрямую.
63
+ - Domain не импортирует SwiftUI/UIKit.
64
+ - Data не тянет Presentation.
65
+ - **Зависимости и модули**:
66
+ - DI через протоколы; composition root в App.
67
+ - Нет deep-import между фичами.
68
+ - Файлы в правильных слоях (`Presentation`, `Domain`, `Data`, `DesignSystem`).
69
+ - **Swift и concurrency** (`stack/swift-conventions.md`):
70
+ - `@MainActor` на UI; нет необоснованных force unwrap.
71
+ - Typed errors; корректная отмена Task где нужно.
72
+ - **UI** (`ui-and-accessibility/swiftui.md`):
73
+ - Тонкие Views; Design System tokens; accessibility identifiers для тестируемых элементов.
74
+ - **Сеть и data** (`api-and-data/networking.md`):
75
+ - DTO отделены от domain; mappers покрывают edge cases.
76
+ - **Тесты**:
77
+ - Нетривиальная логика — unit (`testing/unit.md`); пользовательские потоки — UI (`testing/ui.md`).
78
+ - Указать, какие тесты добавить или обновить.
79
+
80
+ - **Глубина и формат**
81
+ - Фокус на **диффе MR**, не на всём проекте.
82
+ - Следовать **Output contract** выше (`path:line`, severity, verdict).
83
+ - Без «больших рефакторингов» без запроса (`tooling-and-review/code-quality.md`).
84
+
85
+ - **Ограничения**
86
+ - Не выдумывать метаданные CI/MR с хостинга без локальных данных.
87
+ - Boy scout rule в рамках MR.
@@ -24,7 +24,7 @@ paths:
24
24
  ## Куда класть новое правило
25
25
 
26
26
  1. Общие принципы для всех стеков → **core** + адаптеры с `<!-- shared-core: … -->`.
27
- 2. Только один из installable стеков (`next` / `ios-swift` / `go`) → **stack-specific** (не в `_shared`).
27
+ 2. Только один из installable стеков (`next` / `ios-swift` / `go` / `java`) → **stack-specific** (не в `_shared`).
28
28
  3. Только Cursor или только Claude packaging → platform artifact / frontmatter, не дублировать семантику.
29
29
 
30
30
  ## SoT
@@ -17,7 +17,7 @@ paths:
17
17
 
18
18
  - `next` must not require iOS-only agents/tooling (`xcuitest-*`, `xcodebuild` as required handoff, Keychain-only rules).
19
19
  - `ios-swift` must not ship Playwright handoffs or Next lint recipes as required commands.
20
- - `go` must not ship Playwright, XCUITest, Next lint recipes, or `xcodebuild`/`SwiftLint` as required handoffs.
20
+ - `go` / `java` must not ship Playwright, XCUITest, Next lint recipes, or `xcodebuild`/`SwiftLint` as required handoffs.
21
21
  - Shared core must not embed stack paths (`app/src/**`, `Features/**`, `playwright`, `xcodebuild`).
22
22
 
23
23
  ## Forbidden in ios-swift hooks/agents (FAIL)
@@ -35,14 +35,16 @@ Required instead: `xcuitest-test-*` stems; build-verifier mentions `xcodebuild`
35
35
  - `xcuitest-test-` as handoff stems
36
36
  - Requiring `xcodebuild` / SwiftLint as the default post-change gate for Next app work
37
37
 
38
- ## Forbidden in go hooks/agents (FAIL)
38
+ ## Forbidden in go / java hooks/agents (FAIL)
39
+
40
+ Shared backend-stack bans (both `go` and `java`):
39
41
 
40
42
  - `playwright-test-`, `playwright-e2e`, `user-playwright`, `app/__tests__/e2e`
41
43
  - Positive yarn recipes `lint:js` / `lint:css`
42
44
  - `xcuitest-test-`, `xcodebuild`, `SwiftLint` as required handoffs
43
45
  - Agent file `accessibility-reviewer` (no UI surface)
44
46
 
45
- Required instead: `integration-test-*`; build-verifier / `post-change-test` / `go-tooling` (`go test`, `go vet`).
47
+ Required instead: `integration-test-*`; build-verifier / `post-change-test` plus stack tooling — `go-tooling` (`go test`, `go vet`) or `java-tooling` (`mvn test` / `./gradlew test`).
46
48
 
47
49
  ## Soft / document
48
50
 
@@ -51,4 +53,4 @@ Required instead: `integration-test-*`; build-verifier / `post-change-test` / `g
51
53
 
52
54
  ## Chain fork
53
55
 
54
- `hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `ios-swift`, and `go` (per platform).
56
+ `hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `ios-swift`, `go`, and `java` (per platform).
@@ -17,7 +17,7 @@ paths:
17
17
 
18
18
  - [ ] **SoT:** правки в `packages/…` (не только root `.cursor/`)
19
19
  - [ ] **Core:** если менялся `_shared/core/**` — обновлены все `<!-- shared-core: … -->` consumers (или documented intentional fork)
20
- - [ ] **Twin:** Cursor change → Claude twin **same PR** (**FAIL** if missing on next, ios-swift, and go — см. `preset-twin-sync`)
20
+ - [ ] **Twin:** Cursor change → Claude twin **same PR** (**FAIL** if missing on next, ios-swift, go, and java — см. `preset-twin-sync`)
21
21
  - [ ] **Mapping:** `claude/<stack>/rules/README.md` mapping table актуален
22
22
  - [ ] **Token budget:** alwaysApply / session-start ≤ 3; meta rules not always-on
23
23
  - [ ] **Leakage:** нет чужих stack agent stems / handoff strings (`preset-no-cross-stack-leakage`)
@@ -20,6 +20,7 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
20
20
  | `next` | `presets/cursor/next/rules/*.mdc` | `presets/claude/next/rules/<topic>/` | **Required** in `claude/next/rules/README.md` |
21
21
  | `ios-swift` | `presets/cursor/ios-swift/rules/*.mdc` | `presets/claude/ios-swift/rules/<topic>/` | Keep in `claude/ios-swift/rules/README.md` |
22
22
  | `go` | `presets/cursor/go/rules/*.mdc` | `presets/claude/go/rules/<topic>/` | Keep in `claude/go/rules/README.md` |
23
+ | `java` | `presets/cursor/java/rules/*.mdc` | `presets/claude/java/rules/<topic>/` | Keep in `claude/java/rules/README.md` |
23
24
 
24
25
  ## Same-PR checklist
25
26
 
@@ -38,5 +39,6 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
38
39
  - **next:** missing Claude twin for a changed Cursor rule → **FAIL** (mapping table required).
39
40
  - **ios-swift:** missing Claude twin for a changed Cursor rule → **FAIL**.
40
41
  - **go:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift; mapping table required).
42
+ - **java:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go; mapping table required).
41
43
 
42
44
  Dogfood: sync packages → root `.cursor/` after Cursor SoT changes (not the reverse). Use `packages/ai-rules/scripts/sync-dogfood-cursor.sh`.
@@ -20,6 +20,14 @@ paths:
20
20
  - View читает state и вызывает **явные методы** ViewModel (`submit()`, `load()`), а не мутирует внутреннее состояние напрямую.
21
21
  - Для навигации — coordinator/router или enum route в ViewModel, не размазанные `NavigationLink` с бизнес-условиями в View.
22
22
 
23
+ # Lifecycle, ownership, hit testing
24
+
25
+ - Prefer **`.task(id:)`** (auto-cancel) over `.onAppear { Task { … } }` for async loads tied to the view lifetime.
26
+ - `@StateObject` / owned observable — **only where the view owns** the instance; prefer DI / parent-injected ViewModels over `@EnvironmentObject` sprawl.
27
+ - Shared mutable services — `actor` (or existing isolation); default `[weak self]` in escaping closures that capture ViewModel/`self`.
28
+ - Transparent stacks that should receive taps: `.contentShape(Rectangle())`.
29
+ - High-frequency visual updates — prefer `TimelineView` (or repo pattern) over ad-hoc `Timer` in Views.
30
+
23
31
  # Структура файлов
24
32
 
25
33
  Для экрана фичи:
@@ -9,5 +9,6 @@
9
9
  | `debug-investigation` | Runtime evidence before fix |
10
10
  | `ci-investigation` | iOS CI red |
11
11
  | `technical-retro` | Retro facilitation |
12
+ | `write-adr` | Architecture Decision Record (context / decision / consequences) |
12
13
 
13
14
  Копируется в `.claude/skills/` при init.
@@ -18,11 +18,19 @@ Use the local repository as the source of truth: `git status`, `git diff`, task
18
18
  5. Review Swift concurrency and conventions (`stack/swift-conventions.md`): `@MainActor`, typed errors, force unwrap.
19
19
  6. Review SwiftUI thinness, Design System usage, accessibility identifiers (`ui-and-accessibility/swiftui.md`).
20
20
  7. Check tests: unit for mapper/domain/VM (`testing/unit.md`); XCUITest for user flows (`testing/ui.md`).
21
- 8. Report validation gaps: `xcodebuild`, SwiftLint, or relevant tests not run (`tooling-and-review/xcode-tooling.md`, `tooling-and-review/post-change-build.md`).
21
+ 8. **Reuse lens:** flag new helpers that duplicate existing Feature/shared utilities; prefer public module APIs over copy-paste.
22
+ 9. **Efficiency lens:** unnecessary work on main thread, redundant network/persistence, hot-path bloat, missing cancellation/cleanup.
23
+ 10. Report validation gaps: `xcodebuild`, SwiftLint, or relevant tests not run (`tooling-and-review/xcode-tooling.md`, `tooling-and-review/post-change-build.md`).
22
24
 
23
25
  ## Output
24
26
 
25
- Lead with findings ordered by severity. Each finding should include the file, the problem, impact, and a concrete fix direction. If there are no findings, say so and call out remaining test or validation risk.
27
+ Lead with findings ordered by severity. Required shape (also in `code-review`):
28
+
29
+ - Each finding: **`path:line`** — problem — impact — concrete fix direction.
30
+ - Severity: **`blocker` | `important` | `nit`** (list blocker → nit).
31
+ - Vague («looks risky») is not a finding — cite evidence or ask for surrounding context.
32
+ - End with a verdict line: **`Safe to merge | needs changes | reject`**.
33
+ - If there are no findings, say so and call out remaining test or validation risk.
26
34
 
27
35
  For agent team tasks, write `.claude/team/tasks/<slug>/review.md` and set `status.json` to `completed` or `changes_requested`.
28
36
 
@@ -18,6 +18,10 @@ description: Delivers iOS Swift/SwiftUI features end-to-end across Domain, Data,
18
18
  - **Don't** introduce TCA/SwiftData/etc. unless the repo already uses them.
19
19
  - **Don't** use yarn, Playwright, or `app/src` paths — wrong stack.
20
20
 
21
+ ## Scope discipline
22
+
23
+ Implement only the current AC / decomposition task. Clarify ambiguity before coding; do not add unrelated hardening, polish, or drive-by refactors. See `feature-developer` → **Zero improvisation**.
24
+
21
25
  ## Preset packaging note
22
26
 
23
27
  When editing **ai-rules ios-swift preset** sources (agents, hooks, rules) rather than an app Feature: keep Cursor and Claude trees in sync where applicable, and **fork / verify hook handoffs** (`hooks/chain-team-phases.sh`, guard scripts, team path conventions) so Cursor (`.cursor/team`) and Claude (`.claude/team`) do not regress against each other or against the next preset templates.
@@ -5,6 +5,50 @@ description: Facilitates technical retrospectives for tasks, sprints, incidents,
5
5
 
6
6
  # Technical Retro
7
7
 
8
- Same structure as next technical-retro skill. For `/task` pipelines include router, analyst, developer, **build-verifier** (xcodebuild), reviewer, QA/XCUITest, hooks, rules.
8
+ ## Inputs
9
9
 
10
- Preset feedback: propose updates to `.claude/rules|agents|skills` do not apply without approval.
10
+ Ask for missing period, focus, task slug, participants, or format constraints. If a slug is provided, read `.claude/team/tasks/<slug>/` artifacts and local git status/diff. Do not invent facts not present in artifacts or the user's message.
11
+
12
+ ## Facilitation Principles
13
+
14
+ - Focus on process and system behavior, not blame.
15
+ - Separate facts, interpretations, and proposed actions.
16
+ - Balance what worked with what slowed delivery.
17
+ - Keep action items concrete, owned, and measurable.
18
+
19
+ ## Default Structure
20
+
21
+ 1. Goal and scope.
22
+ 2. Timeline or factual observations.
23
+ 3. What worked.
24
+ 4. What hurt quality, speed, or confidence.
25
+ 5. Root causes for the top one or two issues.
26
+ 6. Experiments and action items.
27
+
28
+ ## Agent Team Block
29
+
30
+ For `/task` pipelines, include router, analyst, developer, **build-verifier** (xcodebuild), reviewer, QA/XCUITest, hooks, and rules.
31
+
32
+ ## Wrong-turn taxonomy (optional)
33
+
34
+ When artifacts or the user mention agent mistakes, tag incidents:
35
+
36
+ | Kind | Signal |
37
+ |------|--------|
38
+ | `correction` | User pushback («no», «don't», «actually») |
39
+ | `retry` | Same tool/approach 2+ times before success |
40
+ | `waste` | Many searches before the right file |
41
+ | `reversal` | Edit then revert / delete |
42
+ | `dead-end` | Env/tool failure (missing binary, wrong path) |
43
+
44
+ Severity: **high** (explicit correction / large waste) · **med** · **low**. Confidence 0–100 — be honest; low-confidence items are optional.
45
+
46
+ ## Preset feedback loop
47
+
48
+ If the same issue appeared in **2+** tasks (or **3+** for packaging a new rule/skill — Rule of Three), add section **Preset updates**:
49
+
50
+ - Proposed change to `.claude/rules/`, `.claude/agents/`, `.claude/skills/`, or **`.claude/team/conventions.md`** (prefer conventions for project gotchas)
51
+ - One concrete snippet or file path
52
+ - Whether it belongs in session-start vs `paths:` vs skill vs conventions (see `PRESET-CONTRIBUTION` → Building blocks)
53
+
54
+ Do not apply preset or conventions changes without user approval.
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: write-adr
3
+ description: Author an Architecture Decision Record (ADR) with Context, Decision, Consequences, and Links. Use when capturing a durable technical choice for the team.
4
+ ---
5
+
6
+ # Write ADR
7
+
8
+ On-demand skill for durable architecture decisions. Stack-agnostic sections — fill with project-specific paths and links.
9
+
10
+ ## When to use
11
+
12
+ - Choosing between non-trivial alternatives (storage, layering, library, API shape).
13
+ - Recording a decision that future agents/humans should not silently reverse.
14
+ - User asks for an ADR, decision log, or “why did we pick X”.
15
+
16
+ ## Template
17
+
18
+ Create (or append) a short markdown ADR in the repo’s agreed location (e.g. `docs/adr/`, `.cursor/team/`, wiki). Suggested filename: `NNNN-short-title.md`.
19
+
20
+ ```markdown
21
+ # ADR NNNN: <Title>
22
+
23
+ ## Context
24
+ What problem / constraint / force requires a decision?
25
+
26
+ ## Decision
27
+ What we chose (one clear option). Include rejected alternatives briefly if useful.
28
+
29
+ ## Consequences
30
+ Positive and negative outcomes; follow-up work; what becomes harder.
31
+
32
+ ## Links
33
+ Related PRs, issues, rules, prior ADRs, diagrams.
34
+ ```
35
+
36
+ ## Guidelines
37
+
38
+ - Prefer one decision per ADR.
39
+ - Keep Context factual; Decision imperative and short.
40
+ - Link living gotchas to `team/conventions.md` when the decision becomes a recurring local pattern.
41
+ - Do not put ADR bodies only in root `AGENTS.md` (overwrite on init).
@@ -0,0 +1,21 @@
1
+ # Living conventions (team)
2
+
3
+ Consumer-owned store for post-init gotchas, patterns, and decisions. **Not** always-on. Fill after `ai-rules init`. Root `AGENTS.md` only points here.
4
+
5
+ ## Gotchas
6
+
7
+ <!-- e.g. fragile flows, “never do X in this repo” -->
8
+
9
+ -
10
+
11
+ ## Patterns
12
+
13
+ <!-- local patterns beyond reference-features table -->
14
+
15
+ -
16
+
17
+ ## Decisions
18
+
19
+ <!-- short pointers to ADRs / product choices that affect code -->
20
+
21
+ -
@@ -0,0 +1,29 @@
1
+ # Java hexagonal (Claude)
2
+
3
+ Preset for Java backends using ports & adapters (Spring Boot default).
4
+
5
+ **Repo-root agents:** see [`AGENTS.md`](../../AGENTS.md) at the project root.
6
+
7
+ - Session-start: `java-app-core`, `architecture/boundaries`, `code-quality` (exactly 3).
8
+ - Delivery: `architecture/feature-delivery.md` + skill `feature-delivery`.
9
+ - After Java edits: `tooling-and-review/post-change-test.md` (+ `java-tooling`).
10
+ - Integration tests: agents `integration-test-*` + skill `integration-testing` (never Playwright/XCUITest).
11
+ - Unit tests: agents `unit-test-*` + skill `unit-testing` (JUnit 5).
12
+ - ADR: skill `write-adr` (on-demand).
13
+ - How does X work: agent `codebase-analyzer` (explain-as-is; no `/task`).
14
+
15
+ ## Inventory
16
+
17
+ - **21 agents** — `agents/README.md` (no a11y / Playwright / XCUITest)
18
+ - **8 skills** — feature-delivery, unit-testing, integration-testing, ci-investigation, debug-investigation, code-review, technical-retro, write-adr
19
+ - **5 commands** — `/task`, `/task-continue`, `/feature-start`, `/feature-continue`, `/technical-retro`
20
+
21
+ ## Dogfood (5 scenarios)
22
+
23
+ 1. `/task` — domain use case through ports, adapters, configuration.
24
+ 2. HTTP DTO mapping bug — debugger + MockMvc/focused controller test.
25
+ 3. Repository contract — integration-test trio (Testcontainers).
26
+ 4. JUnit 5 unit test for use case with port fake/mock.
27
+ 5. Secrets/authz logging — `security-reviewer` + `security-java`.
28
+
29
+ Init: `npx @bonesofspring/ai-rules init claude --preset java` (also copies `REPO_AGENTS.md` → root `AGENTS.md`).
@@ -0,0 +1,13 @@
1
+ # MCP (preset `java`, Claude)
2
+
3
+ Копируется в `.mcp.json` при `ai-rules init claude --preset java`.
4
+
5
+ ## Servers
6
+
7
+ | Name | Package | Зачем |
8
+ |------|---------|--------|
9
+ | `context7` | `@upstash/context7-mcp` | Актуальная документация Java / Spring / JDK / популярных библиотек |
10
+
11
+ Figma и browser e2e MCP (Playwright / Chrome DevTools) **не** входят в java-пресет (backend-only).
12
+
13
+ Секреты в файл не кладём. Опционально: `CONTEXT7_API_KEY` в окружении.
@@ -0,0 +1,26 @@
1
+ # Preset `java` (Claude)
2
+
3
+ Installable Claude Code preset for **Java hexagonal** services (Spring Boot default).
4
+
5
+ ```bash
6
+ npx @bonesofspring/ai-rules init claude --preset java
7
+ ```
8
+
9
+ ## Layout
10
+
11
+ | Path | Role |
12
+ |------|------|
13
+ | `rules/<topic>/` | Derived twins + mapping table in `rules/README.md` |
14
+ | `rules/ui-and-accessibility/` | N/A stub (backend) |
15
+ | `agents/` | 21 agents + README (no a11y / Playwright / XCUITest) |
16
+ | `skills/` | 8 skills + README |
17
+ | `commands/` | 5 slash commands |
18
+ | `team/` | conventions + fixtures |
19
+ | `hooks/` | Shell guard + team chain (byte-forked); **no `hooks.json`** (Claude platform limit) |
20
+ | `REPO_AGENTS.md` | → consumer root `AGENTS.md` |
21
+ | `CLAUDE.md` | Thin Claude entry + inventory / dogfood — **Claude-only** |
22
+ | `MCP.md` / `mcp.json` | Context7 only |
23
+
24
+ **Platform asymmetry:** `CLAUDE.md` is Claude-only. Cursor SoT has `BUGBOT.md` + `hooks.json` (not shipped here).
25
+
26
+ Cursor SoT: `presets/cursor/java/`. Contribution: `docs/PRESET-CONTRIBUTION.md`.
@@ -0,0 +1,45 @@
1
+ # Java — agent instructions
2
+
3
+ Cross-tool repo-root guide for the **java** hexagonal preset (Spring Boot default). Tool-specific maps stay under `.cursor/AGENTS.md` and `.claude/CLAUDE.md`.
4
+
5
+ ## Cross-tool setup
6
+
7
+ - Treat this file as the **shared** entry for any agent (Cursor, Claude Code, or other).
8
+ - Install:
9
+
10
+ ```bash
11
+ npx @bonesofspring/ai-rules init cursor --preset java
12
+ npx @bonesofspring/ai-rules init claude --preset java
13
+ ```
14
+
15
+ `init` overwrites this file from the preset (`REPO_AGENTS.md` → `AGENTS.md`).
16
+
17
+ ## Commands (test / verify)
18
+
19
+ Detect Maven vs Gradle from the repo (`pom.xml` vs `build.gradle(.kts)`); prefer wrappers.
20
+
21
+ | Gate | Typical command |
22
+ |------|-----------------|
23
+ | Tests | `./mvnw test` or `./gradlew test` |
24
+ | Verify/check (if configured) | `./mvnw verify` or `./gradlew check` |
25
+ | Post-change | requestable `post-change-test` + `java-tooling` |
26
+
27
+ Static analysis — only tools already configured in the repo/CI.
28
+
29
+ ## Security basics
30
+
31
+ - Do not commit secrets (`.env`, tokens, credentials).
32
+ - Review destructive git before running; respect shell hooks.
33
+
34
+ ## Tool entry points
35
+
36
+ | Tool | Map |
37
+ |------|-----|
38
+ | Cursor | `.cursor/AGENTS.md` |
39
+ | Claude Code | `.claude/CLAUDE.md` |
40
+
41
+ Rules: `.cursor/rules/` or `.claude/rules/`. Integration tests: `integration-test-*` (never Playwright/XCUITest).
42
+
43
+ ## Living conventions
44
+
45
+ Gotchas and team decisions: `.cursor/team/conventions.md` and/or `.claude/team/conventions.md` (fill after init; fixtures ship with the preset).