@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
@@ -12,14 +12,15 @@ npx @bonesofspring/ai-rules init cursor --preset next
12
12
 
13
13
  | Path | Содержание |
14
14
  |------|------------|
15
- | `AGENTS.md` | Quick-start |
15
+ | `REPO_AGENTS.md` | → repo-root `AGENTS.md` (cross-tool) |
16
+ | `AGENTS.md` | → `.cursor/AGENTS.md` quick-start |
16
17
  | `BUGBOT.md` | Cursor Bugbot review priorities (Next) |
17
- | `rules/**` | `.mdc` + README (alwaysApply ≤3) |
18
- | `agents/**` | **21** ролей (+ README) |
19
- | `skills/**` | 7 skills (в т.ч. `playwright-e2e`) |
18
+ | `rules/**` | `.mdc` + README (alwaysApply ≤3); golden rules with Incorrect/Correct + `impact:` |
19
+ | `agents/**` | **22** ролей (+ README; includes on-demand `codebase-analyzer`) |
20
+ | `skills/**` | 9 skills (incl. `playwright-e2e`, `write-adr`, `react-performance`) |
20
21
  | `commands/**` | task, task-continue, feature-start/continue, technical-retro |
21
- | `hooks.json` + `hooks/**` | guard-shell + chain-team-phases |
22
- | `team/**` | fixtures + README |
22
+ | `hooks.json` + `hooks/**` | guard-shell + chain-team-phases; optional `hooks/examples/` cookbook |
23
+ | `team/**` | fixtures + `conventions.md` + README |
23
24
  | `mcp.json` + `MCP.md` | Context7 + Figma MCP → `.cursor/mcp.json` |
24
25
 
25
26
  ## alwaysApply (≤3)
@@ -0,0 +1,48 @@
1
+ # Next.js — agent instructions
2
+
3
+ Cross-tool repo-root guide. 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
+ - Tool maps (agent-team tables, slash commands) live in `.cursor/AGENTS.md` / `.claude/CLAUDE.md` — use them when that tool is installed.
9
+ - Install:
10
+
11
+ ```bash
12
+ npx @bonesofspring/ai-rules init cursor --preset next
13
+ npx @bonesofspring/ai-rules init claude --preset next
14
+ ```
15
+
16
+ `init` overwrites this file from the preset (`REPO_AGENTS.md` → `AGENTS.md`). Living gotchas belong in `team/conventions.md`, not here.
17
+
18
+ ## Commands (test / lint / build)
19
+
20
+ Working directory for app scripts: **`app/`**. Detect the package manager from lockfile / `packageManager` (`package-manager` rule).
21
+
22
+ | Gate | Typical command |
23
+ |------|-----------------|
24
+ | Lint JS | `yarn lint:js` (or project equivalent) from `app/` |
25
+ | Lint CSS | `yarn lint:css` from `app/` |
26
+ | Unit tests | project unit script under `app/` |
27
+ | Build | project `build` under `app/` |
28
+
29
+ After code edits: invoke **`post-change-lint`** (requestable). Full gate: agent `build-verifier`.
30
+
31
+ ## Security basics
32
+
33
+ - Do not commit secrets (`.env`, tokens, credentials).
34
+ - Review destructive git (`reset --hard`, force-push) before running; respect shell hooks.
35
+ - Do not weaken CI or skip hooks unless the user explicitly asks.
36
+
37
+ ## Tool entry points
38
+
39
+ | Tool | Map |
40
+ |------|-----|
41
+ | Cursor | `.cursor/AGENTS.md` (optional if Cursor not installed) |
42
+ | Claude Code | `.claude/CLAUDE.md` (optional if Claude not installed) |
43
+
44
+ Rules: `.cursor/rules/` or `.claude/rules/`. Skills: `.cursor/skills/` or `.claude/skills/`.
45
+
46
+ ## Living conventions
47
+
48
+ Gotchas, local patterns, and team decisions: **`.cursor/team/conventions.md`** and/or **`.claude/team/conventions.md`** (fill after init; not overwritten on every dogfood sync when already present).
@@ -12,6 +12,12 @@
12
12
  | Migration planner | `migration-specialist.md` | no |
13
13
  | API contract reviewer | `api-contract-reviewer.md` | no |
14
14
 
15
+ ## Analysis (on-demand)
16
+
17
+ | Agent | Файл | Production-код |
18
+ |-------|------|----------------|
19
+ | Codebase analyzer | `codebase-analyzer.md` | no (explain-as-is only) |
20
+
15
21
  ## Implementation and CI
16
22
 
17
23
  | Agent | Файл | Production-код |
@@ -62,7 +68,7 @@ SoT по умолчанию — YAML `model` в каждом agent-файле.
62
68
 
63
69
  | Tier | Default frontmatter | Agents |
64
70
  |------|---------------------|--------|
65
- | **cheap** | `fast` | `task-router`, `task-analyst`, `build-verifier`, `code-reviewer`, `tech-writer` |
71
+ | **cheap** | `fast` | `task-router`, `task-analyst`, `build-verifier`, `code-reviewer`, `tech-writer`, `codebase-analyzer` |
66
72
  | **standard** | `inherit` | `feature-developer`, `debugger`, `ci-investigator`, `api-contract-reviewer`, `accessibility-reviewer`, `qa-tester`, `unit-test-*`, `playwright-test-*` |
67
73
  | **strong** | `claude-opus-4-8[effort=high]` | `solution-architect`, `migration-specialist`, `security-reviewer`, `performance-auditor` |
68
74
 
@@ -36,11 +36,16 @@ When validating **preset packaging** changes (paths under `packages/ai-rules/pre
36
36
  2. **Leakage (next):** hooks/agents must not require `xcuitest-test-*` handoffs or `xcodebuild` as the default Next post-change gate. See `preset-no-cross-stack-leakage.mdc`.
37
37
  3. **Mapping / README:** `claude/next/rules/README.md` must include a Cursor→Claude mapping table; stack `rules/README.md` should document core→stack mapping when `_shared` consumers exist.
38
38
  4. **shared-core consumers:** if `_shared/core/**` changed, every file with matching `<!-- shared-core: … -->` in this PR must be updated (or intentional fork documented in validation-report).
39
- 5. **Twin presence:** Cursor rule change without Claude twin same PR → **FAIL** (next, ios-swift, and go). Domain twin body ≥15 lines; thin aliases (`agent-team-intake`, `technical-retro`) may be shorter.
39
+ 5. **Twin presence:** Cursor rule change without Claude twin same PR → **FAIL** (next, ios-swift, go, and java). Domain twin body ≥15 lines; thin aliases (`agent-team-intake`, `technical-retro`) may be shorter.
40
40
  6. **Session-start body budget (soft→document, FAIL if grossly over):** sum body lines of the **3** intended always-on / session-start rules ≤ **120** (stretch ≤100); do **not** include `**/README.md`. Record the sum in validation-report.
41
- 7. **Embed drift (soft by default):** run `packages/ai-rules/scripts/check-shared-core-drift.sh`. Document DRIFT; set `AI_RULES_DRIFT_FAIL=1` only when enforcing. Lineage stems are excluded from body equality.
41
+ 7. **Embed drift (hard in `check:preset-structure`):** run `packages/ai-rules/scripts/check-shared-core-drift.sh` with `AI_RULES_DRIFT_FAIL=1` (bundled by the structure orchestrator). Lineage stems are excluded from body equality.
42
42
  8. **Dogfood (monorepo soft):** if root `.cursor/` is in the PR, prefer sync via `packages/ai-rules/scripts/sync-dogfood-cursor.sh`; mass deletion of tracked dogfood without migration doc → note as risk / FAIL for maintainers.
43
43
 
44
+ 9. **Root AGENTS template:** each installable preset (`cursor|claude` × `next|ios-swift|go|java`) must ship `REPO_AGENTS.md` when validating preset packaging → **FAIL** if missing.
45
+ 10. **Hooks cookbook:** default `hooks.json` must **not** reference `hooks/examples/` → **FAIL** if it does.
46
+ 11. **No react-performance on ios/go/java:** skill directory / required handoff must be absent under ios-swift, go, and java → **FAIL** (leakage). Prefer `check:preset-leakage`.
47
+ 12. **Rule eval (WARN):** `scripts/check-rule-eval.mjs` / `yarn check:rule-eval` should exist for maintainers; smoke optional. Hard fail only when the opt-in eval job runs — not part of default `check:preset-structure`.
48
+
44
49
  ### Soft notes
45
50
 
46
51
  - Thin aliases may be &lt;15 body lines.
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: codebase-analyzer
3
+ description: Explains HOW existing code works as-is. Use when the user asks how something works, to trace data flow, or document architecture — without suggesting changes. Prefer over /task for pure questions.
4
+ readonly: false
5
+ model: fast
6
+ ---
7
+
8
+ You are a specialist at understanding HOW this Next.js codebase works. Document implementation details with precise `path:line` references.
9
+
10
+ ## CRITICAL — explain as-is only
11
+
12
+ - DO NOT suggest improvements, refactors, or "better approaches" unless the user explicitly asks.
13
+ - DO NOT perform root-cause analysis or bug hunts unless asked.
14
+ - DO NOT critique quality, performance, or security unless asked.
15
+ - ONLY describe what exists, how it works, and how components interact.
16
+
17
+ ## Workflow
18
+
19
+ 1. Start from entry points the user named (routes, public barrels `@/api` / `@/types`, feature folders).
20
+ 2. Trace calls and data flow across UI → store → API → HTTP as applicable; read each file involved.
21
+ 3. Summarize: purpose, flow, contracts between modules, layer placement, conventions observed.
22
+ 4. End with open questions only if facts are missing — not with a wishlist of changes.
23
+
24
+ ## Will / Will not
25
+
26
+ **Will:** map files, call chains, types/mappers, layer boundaries as they exist today.
27
+
28
+ **Will not:** edit production code; open `/task` pipelines; propose PRs or refactors unprompted.
@@ -21,6 +21,19 @@ You are a senior frontend developer working in a Next.js monorepo with strict la
21
21
  - Mark completed tasks in `decomposition.md`.
22
22
  - Validation: **`post-change-lint.mdc`**. If pipeline next step is **`build-verifier`**, scoped lint/type-check on **changed files** is enough; full project lint is build-verifier's job.
23
23
 
24
+ ## Zero improvisation
25
+
26
+ - Implement **only** what the brief / AC / current decomposition task require.
27
+ - If requirements are ambiguous, conflicting, or multi-way — **ask** before coding; do not guess extras as "best practices".
28
+ - Forbidden without explicit AC/task: unrelated security hardening, extra validation, UI polish, logging/monitoring, drive-by refactors, new config/env.
29
+ - Boy scout / `design-guidance` improvements stay **within** touched files and must not expand task scope.
30
+
31
+ ## Will / Will not
32
+
33
+ **Will:** follow layer order and reference features; add required unit tests; run the post-change gate; update task artifacts.
34
+
35
+ **Will not:** formal code review; start blocked/dependent tasks; invent AC; auto-continue the next WP when the pipeline expects a human gate or handoff.
36
+
24
37
  ## On completion
25
38
 
26
39
  Update `status.json` (`currentAgent`: `feature-developer`, `state`: `completed`). Handoff: tasks done, files by layer, unit specs, validation result, gaps for build-verifier/reviewer.
@@ -15,9 +15,11 @@ You are a frontend security reviewer for a Next.js TypeScript application.
15
15
 
16
16
  ## Review scope
17
17
 
18
- - Secrets, tokens, API keys in source or committed env files.
18
+ Load `security-next.mdc` for coding-time invariants. Focus on:
19
+
20
+ - Secrets, tokens, API keys in source or committed env files; never in `NEXT_PUBLIC_*`.
19
21
  - `dangerouslySetInnerHTML`, unsanitized HTML, URL injection.
20
- - Auth token storage (cookies vs localStorage), refresh flows, 401 handling.
22
+ - Auth token storage (cookies vs localStorage), server-side session verify, refresh flows, 401 handling.
21
23
  - CSRF considerations for state-changing requests (as applicable to frontend).
22
24
  - Open redirects in navigation/router usage.
23
25
  - Sensitive data in client-side logs or error messages.
@@ -42,7 +42,7 @@ Slash-команды копируются в `.cursor/commands/` при `ai-rule
42
42
 
43
43
  ## Связанные файлы
44
44
 
45
- - Subagents: `../agents/` (**21** ролей, включая `task-router.md`)
45
+ - Subagents: `../agents/` (**22** ролей, включая `task-router.md`, `codebase-analyzer.md`)
46
46
  - Оркестратор: `../rules/agent-team-orchestrator.mdc`
47
47
  - Skills: `../skills/` (`feature-delivery`, `code-review`, `debug-investigation`, `ci-investigation`, `unit-testing`, `playwright-e2e`, `technical-retro`)
48
48
  - Артефакты: `../team/README.md` (`pipeline.json`, `status.json`)
@@ -6,3 +6,7 @@
6
6
  | `guard-shell-command.sh` | Blocks/asks on destructive git commands and package-manager mismatches (`failClosed: true`) |
7
7
 
8
8
  `hooks.json`: `loop_limit: 15` for long pipelines (build-verifier + parallel reviewers + e2e).
9
+
10
+ ## Optional cookbook
11
+
12
+ See `hooks/examples/README.md` — secret-guard / format-edited / test-on-save. **Not** in default `hooks.json`.
@@ -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: **next** — recipes must stay stack-safe (no cross-stack lint/test commands).
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env bash
2
+ # Optional: format/lint edited JS/TS under app/ after save.
3
+ # NOT in default hooks.json. Requires yarn scripts in app/.
4
+ set -euo pipefail
5
+ ROOT="${CURSOR_PROJECT_DIR:-.}"
6
+ cd "$ROOT/app" 2>/dev/null || cd "$ROOT"
7
+ # Prefer project scripts; adjust names to match package.json
8
+ if command -v yarn >/dev/null 2>&1; then
9
+ yarn lint:js --fix 2>/dev/null || yarn eslint --fix . 2>/dev/null || true
10
+ fi
11
+ 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: scoped unit tests for changed files under app/src.
3
+ # NOT in default hooks.json. No Playwright here.
4
+ set -euo pipefail
5
+ ROOT="${CURSOR_PROJECT_DIR:-.}"
6
+ cd "$ROOT/app" 2>/dev/null || exit 0
7
+ yarn test --findRelatedTests --passWithNoTests 2>/dev/null || yarn test --passWithNoTests 2>/dev/null || true
8
+ exit 0
@@ -21,7 +21,7 @@
21
21
 
22
22
  - **`alwaysApply: true`** (Cursor) / **без `paths:`** (Claude) — только базовые инварианты (**3**):
23
23
  - `next-app-core`, `package-manager`, `code-quality-and-refactoring`
24
- - **On-demand / requestable** — `post-change-lint` (**обязателен после правок кода**, не always-on), `agent-team-intake` (через orchestrator/commands), `agent-team-orchestrator`, architecture, imports, UI, tests, feature-delivery-workflow, `design-guidance`, reference-features, next-app-router, react-a11y-coding, `technical-retro`
24
+ - **On-demand / requestable** — `post-change-lint` (**обязателен после правок кода**, не always-on), `agent-team-intake` (через orchestrator/commands), `agent-team-orchestrator`, architecture, imports, UI, tests, feature-delivery-workflow, `design-guidance`, reference-features, next-app-router, `security-next`, react-a11y-coding, `technical-retro`
25
25
  - **Preset author meta** (globs `packages/ai-rules/presets/**`, never alwaysApply): `preset-layering`, `preset-twin-sync`, `preset-token-budget`, `preset-pr-checklist`, `preset-no-cross-stack-leakage`
26
26
  - **Skills** — длинные процедуры (`feature-delivery`, `code-review`, …)
27
27
 
@@ -69,7 +69,8 @@ Claude twins + Cursor→Claude map: `presets/claude/next/rules/README.md`.
69
69
  | Файл | Назначение |
70
70
  |------|------------|
71
71
  | `reference-features.mdc` | Эталонные пути UI/store/API/types/tests |
72
- | `next-app-router.mdc` | App Router, RSC, loading/error |
72
+ | `next-app-router.mdc` | App Router, RSC, loading/error, anti-hallucination banlist |
73
+ | `security-next.mdc` | Secrets, auth, XSS, Server Actions (coding-time) |
73
74
  | `react-a11y-coding.mdc` | A11y при написании UI |
74
75
  | `feature-delivery-workflow.mdc` | Сквозной чеклист (on-demand, не always-on) |
75
76
  | `agent-team-intake.mdc` | Подсказка `/task` при work-запросе (on-demand, через orchestrator) |
@@ -89,7 +90,7 @@ Claude twins + Cursor→Claude map: `presets/claude/next/rules/README.md`.
89
90
  | `layer-barrel-exports.mdc` | Двухуровневые barrel для слоёв с public API (`@/api`, `@/types`, `@/core`, …) |
90
91
  | `types-jsdoc.mdc` | JSDoc для типов в `app/src/types` (русский текст, `[computed]`, без `@param`/`@returns`) |
91
92
  | `no-type-assertion-as-import-export.mdc` | Ограничение `as`, в т.ч. `instanceof` для ошибок транспорта в `catch` |
92
- | `code-review-mr.mdc` | Чеклист ревью MR, в т.ч. HTTP‑клиент и тесты |
93
+ | `code-review-mr.mdc` | Чеклист ревью MR + output contract (`path:line`, severity, verdict) |
93
94
  | `tests-unit.mdc` | Unit‑тесты и behavior‑тесты HTTP‑клиента |
94
95
  | `playwright-agents.mdc`, `tests-e2e-structure.mdc` | E2E |
95
96
  | `react-ui.mdc` | React/Next UI: структура компонентов, соседние `ComponentName.data.ts` / `.utils.ts`, стили, пропсы |
@@ -11,6 +11,6 @@ When the user message looks like a **work request** (implement, add, fix, refact
11
11
 
12
12
  1. Prefer **`/task <their request>`** or invoke **task-router** first.
13
13
  2. Do not jump straight to coding without router + pipeline when scope is non-trivial.
14
- 3. Pure questions («как работает X», «объясни») — answer normally, no `/task`.
14
+ 3. Pure questions («как работает X», «объясни») — prefer agent **`codebase-analyzer`** (explain-as-is); trivial one-liners may be answered inline. Do not open `/task`.
15
15
 
16
16
  Exceptions: user explicitly says «без pipeline», «просто сделай», or continues an active slug.
@@ -151,7 +151,7 @@ If `pipeline.json` is missing (old `/feature-start` tasks), fall back to fixed p
151
151
 
152
152
  Do **not** run `/task` + router for:
153
153
 
154
- - Pure questions («как работает X», «объясни»).
154
+ - Pure questions («как работает X», «объясни») — prefer agent **`codebase-analyzer`** for deep traces; inline OK for trivial one-liners.
155
155
  - Typo / one-file fix / trivial config with no architecture risk.
156
156
  - User explicitly says «без pipeline», «просто сделай», or continues an active slug.
157
157
  - Single-line `docs-only` with no code impact.
@@ -2,6 +2,7 @@
2
2
  description: Конвенции API сервисов и мапперов
3
3
  globs: app/src/api/services/**/*.ts
4
4
  alwaysApply: false
5
+ impact: HIGH
5
6
  ---
6
7
 
7
8
  # Роль API слоя
@@ -55,4 +56,24 @@ alwaysApply: false
55
56
  - компоненты не должны зависеть от DTO;
56
57
  - store не должен сам собирать URL/коды эндпоинтов и не обходить сервисы; **транспортный тип ответа** и **контракт ошибки** из `@/types` (как у прикладного клиента) допустимы во thunk при разборе `catch`/payload, если так выстроен сервис (см. `store-rtk.mdc`, `http-client.mdc`).
57
58
  - При использовании API‑сервисов в UI, store и утилитах **вне** `app/src/api/**` импортировать **только** из `@/api` (корневой barrel), см. **`public-imports.mdc`**; внутри слоя API — по относительным путям или `@/api/services/**` / `@/api/clients/**`, не дублируя публичный контракт мимо корневого barrel для внешних потребителей.
59
+ ## Incorrect
58
60
 
61
+ ```ts
62
+ // Returning raw DTO to store/UI without mapping
63
+ export const getCard = async (id: string) => {
64
+ const { data } = await cardsClient.get(`/cards/${id}`)
65
+ return data // backend DTO leaked upward
66
+ }
67
+ ```
68
+
69
+ ## Correct
70
+
71
+ ```ts
72
+ import type { TCard } from '@/types'
73
+ import { mapCardResponse } from './cardResponseMappers'
74
+
75
+ export const getCard = async (id: string): Promise<TCard> => {
76
+ const { data } = await cardsClient.get(`/cards/${id}`)
77
+ return mapCardResponse(data)
78
+ }
79
+ ```
@@ -2,6 +2,7 @@
2
2
  description: Архитектурные границы и правила импортов
3
3
  globs: app/src/api/**/*,app/src/store/**/*,app/src/types/**/*,app/src/lib/**/*
4
4
  alwaysApply: false
5
+ impact: CRITICAL
5
6
  ---
6
7
 
7
8
  # Границы между слоями
@@ -63,4 +64,30 @@ alwaysApply: false
63
64
  - Разместить файлы в **соответствующих слоях**.
64
65
  - Проверить существующие фичи с аналогичной структурой и **повторить их организацию**.
65
66
  - Не "коротить" слои (например, не вызывать API прямо из компонента только ради упрощения).
67
+ ## Incorrect
66
68
 
69
+ ```ts
70
+ // UI calling HTTP client / deep service path directly
71
+ import { httpClient } from '@/lib/clients/HttpClient'
72
+ import { fetchOrders } from '@/api/services/OrdersApi/orders.service'
73
+
74
+ export const OrdersPage = () => {
75
+ // bypasses store and @/api barrel
76
+ void httpClient.get('/orders')
77
+ return null
78
+ }
79
+ ```
80
+
81
+ ## Correct
82
+
83
+ ```ts
84
+ import { useAppDispatch } from '@/store'
85
+ import { loadOrders } from '@/store/slices/Orders'
86
+
87
+ export const OrdersPage = () => {
88
+ const dispatch = useAppDispatch()
89
+ // UI → store → services from @/api (inside thunk)
90
+ void dispatch(loadOrders())
91
+ return null
92
+ }
93
+ ```
@@ -2,45 +2,30 @@
2
2
  description: Предпочитать стрелочные функции при написании кода
3
3
  globs: app/src/**/*.{ts,tsx,js,jsx}
4
4
  alwaysApply: false
5
+ impact: LOW
5
6
  ---
6
-
7
7
  # Стрелочные функции
8
8
 
9
- При разработке **использовать стрелочный синтаксис** для функций, где это допустимо в TypeScript/JavaScript.
10
-
11
- ## Что делать
9
+ Предпочитать стрелочный синтаксис для нового кода в `app/src/**`, где это допустимо в TypeScript/JavaScript.
12
10
 
13
- - Объявлять функции как **`const имя = (...) => { ... }`** вместо **`function имя(...) { ... }`**, если не нужны особенности объявления `function`.
14
- - Колбэки и обработчики — стрелочные функции: `.map((x) => ...)`, `onClick={() => ...}`.
15
- - React-компоненты и хуки — как стрелочные функции с явной типизацией пропсов/возврата по принятому в проекте стилю.
11
+ **Style enforcement:** детальные pref в ESLint (`app/eslint.config.mjs`) и Stylelint; после правок **`post-change-lint`**. Это правило краткий intent, не дублировать линтер.
16
12
 
17
- ## Исключения (допустимо не стрелка)
13
+ ## Исключения
18
14
 
19
- - **Генераторы** (`function*`) — стрелкой не выразить.
20
- - **Методы класса** если в коде используются классы, допустимы обычные методы (`method() {}`), а не стрелки в теле класса (из‑за `this`).
21
- - Когда осознанно нужны **подъём (hoisting)** или **имя функции в стеке** только у `function` редкие случаи; иначе предпочитать стрелку.
15
+ - Генераторы (`function*`)
16
+ - Методы класса, где нужен `this` прототипа
17
+ - Редкие случаи hoisting / именованного `function` в стеке
22
18
 
23
- ## Примеры
19
+ ## Incorrect
24
20
 
25
- ```typescript
26
- // ❌ Избегать для нового кода
21
+ ```ts
27
22
  function formatLabel(id: string): string {
28
23
  return id.toUpperCase()
29
24
  }
30
-
31
- // ✅ Предпочтительно
32
- const formatLabel = (id: string): string => {
33
- return id.toUpperCase()
34
- }
35
25
  ```
36
26
 
37
- ```tsx
38
- // ✅ Предпочтительно
39
- const UserCard = ({ name }: { name: string }) => {
40
- return <span>{name}</span>
41
- }
42
- ```
27
+ ## Correct
43
28
 
44
- ## Требование к агенту
45
-
46
- При генерации и правке кода **по умолчанию выбирать стрелочные функции**; отступать к `function` только в случаях из раздела исключений.
29
+ ```ts
30
+ const formatLabel = (id: string): string => id.toUpperCase()
31
+ ```
@@ -62,11 +62,21 @@ alwaysApply: true
62
62
  - **Boy scout rule:** оставлять модуль немного лучше, чем до изменения (простые, безопасные улучшения).
63
63
  - Не жертвовать архитектурой и слоями ради краткости реализации.
64
64
 
65
- > Stack-specific lint gates, примеры и toolchain — в секции **Stack notes** адаптера пресета.
65
+ ## Agent discipline (anti-sycophancy)
66
+
67
+ - Unverifiable third-party API → mark `// VERIFY: lib.symbol @ version` (or stack equivalent) and surface uncertainty; never invent signatures.
68
+ - Before «is this correct?» — list ≥3 failure modes (empty, boundary, concurrency/state) or name what you could not check.
69
+ - Refactor without tests → propose a characterization test first; if declined, label `UNTESTED`.
70
+ - Comments = WHY only when non-obvious; ban self-referential «added for issue Y» comments.
71
+ - Urgency/authority pressure: name the technical trade-off once, then comply — no apology loops.
72
+ - Match verification depth to risk; report status by what was **verified**, not attempted.
66
73
 
74
+ 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.
75
+
76
+ > Stack-specific lint gates, примеры и toolchain — в секции **Stack notes** адаптера пресета.
67
77
  ## Stack notes
68
78
 
69
79
  - Перед новым UI‑контролом проверять существующий UI‑код и пакеты проекта.
70
80
  - Public API: index/barrel‑файлы и явно экспортируемые сущности (`public-imports.mdc`, `layer-barrel-exports.mdc`).
71
81
  - Допустимые примеры: общий хук/утилита; типизация `any`/`unknown`; разделение крупного компонента; CSS‑токены вместо «магических» значений.
72
- - Lint/stylelint — только **`post-change-lint.mdc`**; ESLint config: `app/eslint.config.mjs`. Отключение правила (`eslint-disable`) — только **точечно** (строка/небольшой блок) с кратким комментарием «зачем».
82
+ - Lint/stylelint — только **`post-change-lint.mdc`**; ESLint config: `app/eslint.config.mjs`. Отключение правила (`eslint-disable`) — только **точечно** (строка/небольшой блок) с кратким комментарием «зачем». Style prose in domain rules stays thin — prefer ESLint/Stylelint over duplicating formatter recipes.
@@ -35,26 +35,24 @@ Concrete rule stems — in **Stack notes**.
35
35
  - Boy scout rule: suggest fixes feasible within the MR scope.
36
36
  - No «большие рефакторинги» without an explicit request (`code-quality-and-refactoring`).
37
37
 
38
+ ## Output contract
39
+
40
+ Procedure details live in skill `code-review`. Required shape:
41
+
42
+ - Each finding cites **`path:line`**, the problem, impact, and a concrete fix direction.
43
+ - Rank by severity: **`blocker` | `important` | `nit`** (list blocker → nit).
44
+ - Vague («looks risky») is not a finding — cite evidence or ask for surrounding file context.
45
+ - End with a verdict on its own line: **`Safe to merge | needs changes | reject`**.
46
+
38
47
  ## Stack notes
39
48
 
40
49
  On-demand rule for review flows. **Procedure and output format:** skill `code-review`.
41
50
 
42
- ## Checklist references
51
+ ### Checklist references
43
52
 
44
53
  - Architecture layers: `architecture-boundaries.mdc`, `next-app-core.mdc`; network: `http-client.mdc`
45
54
  - Imports: `public-imports.mdc`, `layer-barrel-exports.mdc`
46
55
  - UI: `react-ui.mdc`
56
+ - Security: `security-next.mdc`
47
57
  - Tests: `tests-unit.mdc`, `playwright-agents.mdc`, `tests-e2e-structure.mdc`
48
58
  - Lint gate before final report: `post-change-lint.mdc`
49
-
50
- ## When to load
51
-
52
- - User asks for review/MR/diff
53
- - Pipeline step `code-reviewer`
54
- - BUGBOT automated review
55
-
56
- ## Constraints
57
-
58
- - Focus on MR diff, not the whole repo.
59
- - Use local `git diff` — do not invent hosting metadata.
60
- - Boy scout rule: suggest fixes feasible within the MR scope.
@@ -4,6 +4,7 @@ globs:
4
4
  - app/src/lib/clients/HttpClient/**/*.ts
5
5
  - app/src/api/clients/**/*.ts
6
6
  alwaysApply: false
7
+ impact: HIGH
7
8
  ---
8
9
 
9
10
  # HTTP-транспорт
@@ -40,3 +41,23 @@ alwaysApply: false
40
41
 
41
42
  - Меняя реализацию общего клиента — **обновить или добавить behavior‑тесты** рядом с модулем клиента (`tests-unit.mdc`).
42
43
  - Не вводить **второй полноценный HTTP‑стек** без явной задачи и согласования с архитектурой репозитория.
44
+ ## Incorrect
45
+
46
+ ```ts
47
+ // Inside api/services — ad-hoc fetch bypasses shared client
48
+ export const getSettings = async () => {
49
+ const res = await fetch('/api/settings')
50
+ return res.json()
51
+ }
52
+ ```
53
+
54
+ ## Correct
55
+
56
+ ```ts
57
+ import { appHttpClient } from '@/api/clients/appHttpClient'
58
+
59
+ export const getSettings = async () => {
60
+ const { data } = await appHttpClient.get('/settings')
61
+ return mapSettingsResponse(data)
62
+ }
63
+ ```
@@ -2,6 +2,7 @@
2
2
  description: Двухуровневые barrel-экспорты для слоёв с регламентированным public API
3
3
  globs: app/src/**/index.ts
4
4
  alwaysApply: false
5
+ impact: MEDIUM
5
6
  ---
6
7
 
7
8
  # Barrel-экспорты слоёв с public API
@@ -57,3 +58,17 @@ alwaysApply: false
57
58
  | Core | `app/src/core/index.ts` | ESLint: `@/core/index` |
58
59
 
59
60
  Иллюстрация двух уровней (API): локальный `services/.../<Feature>/index.ts` → фасад `*ApiService.ts` → `app/src/api/index.ts`.
61
+ ## Incorrect
62
+
63
+ ```ts
64
+ // app/src/api/index.ts — leaking internals
65
+ export { mapCardResponse } from './services/CardsApi/cardResponseMappers'
66
+ export { rawCardsClient } from './clients/rawCardsClient'
67
+ ```
68
+
69
+ ## Correct
70
+
71
+ ```ts
72
+ // app/src/api/index.ts — public facade only
73
+ export { cardsApi } from './services/CardsApi'
74
+ ```
@@ -22,7 +22,7 @@ alwaysApply: false
22
22
 
23
23
  ## Маршруты и UX
24
24
 
25
- - Для async routes использовать **`loading.tsx`**, **`error.tsx`**, **`not-found.tsx`** по образцу соседних routes.
25
+ - Для async data routes **обязательны** sibling **`loading.tsx`** и **`error.tsx`** (и `not-found.tsx` где уместно) — по образцу соседних routes.
26
26
  - **Suspense** — для медленных client/server секций; fallback согласован с дизайн-системой.
27
27
  - Навигация — `navigation-router-stack.mdc` + router/link паттерны проекта.
28
28
 
@@ -31,6 +31,18 @@ alwaysApply: false
31
31
  - RSC/route handlers **не импортируют UI-компоненты с client-only зависимостями** напрямую в server tree без `'use client'` границы.
32
32
  - Доменные типы — `@/types`; вызовы backend — через `@/api` / services, не raw `fetch` из page.tsx без слоя API.
33
33
 
34
+ ## Anti-hallucination (App Router)
35
+
36
+ Меньше угаданного кода лучше, чем больше. Сверяй API с версией Next в `package.json` и соседними routes.
37
+
38
+ | ❌ Avoid | ✅ Prefer |
39
+ |---------|----------|
40
+ | Sync `params` / `searchParams` / `cookies()` / `headers()` when the installed Next treats them as async | `await params` / `await cookies()` / patterns from existing pages |
41
+ | Invented `getSession()`-only server auth without project verify | Server session verify used by the repo (`security-next.mdc`) |
42
+ | Auth enforcement only in Edge middleware | Layout/page/Server Action checks + middleware refresh if present |
43
+ | New App Router APIs not in the installed Next major | Copy from a sibling route; mark `VERIFY` if unsure |
44
+ | Client `fetch` in `page.tsx` bypassing `@/api` | Services via `@/api` / established data loaders |
45
+
34
46
  ## Эталон
35
47
 
36
48
  Смотри существующий route той же сложности в `app/src/app/**` и повтори структуру (`reference-features.mdc`).
@@ -24,7 +24,7 @@ alwaysApply: false
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 @@ alwaysApply: false
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).