@bonesofspring/ai-rules 0.2.7 → 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 (227) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/README.md +4 -2
  3. package/bin/cli.js +2 -0
  4. package/package.json +1 -1
  5. package/presets/_shared/README.md +1 -1
  6. package/presets/_shared/core/meta/preset-layering.md +1 -1
  7. package/presets/_shared/core/meta/preset-no-cross-stack-leakage.md +6 -4
  8. package/presets/_shared/core/meta/preset-pr-checklist.md +1 -1
  9. package/presets/_shared/core/meta/preset-twin-sync.md +2 -0
  10. package/presets/claude/go/agents/build-verifier.md +5 -5
  11. package/presets/claude/go/rules/tooling-and-review/preset-layering.md +1 -1
  12. package/presets/claude/go/rules/tooling-and-review/preset-no-cross-stack-leakage.md +6 -8
  13. package/presets/claude/go/rules/tooling-and-review/preset-pr-checklist.md +1 -1
  14. package/presets/claude/go/rules/tooling-and-review/preset-twin-sync.md +2 -0
  15. package/presets/claude/go/team/fixtures/feature-full.json +5 -23
  16. package/presets/claude/ios-swift/agents/build-verifier.md +6 -7
  17. package/presets/claude/ios-swift/rules/stack/ios-app-core.md +5 -28
  18. package/presets/claude/ios-swift/rules/tooling-and-review/preset-layering.md +1 -1
  19. package/presets/claude/ios-swift/rules/tooling-and-review/preset-no-cross-stack-leakage.md +6 -4
  20. package/presets/claude/ios-swift/rules/tooling-and-review/preset-pr-checklist.md +1 -1
  21. package/presets/claude/ios-swift/rules/tooling-and-review/preset-twin-sync.md +2 -0
  22. package/presets/claude/java/CLAUDE.md +29 -0
  23. package/presets/claude/java/MCP.md +13 -0
  24. package/presets/claude/java/README.md +26 -0
  25. package/presets/claude/java/REPO_AGENTS.md +45 -0
  26. package/presets/claude/java/agents/README.md +32 -0
  27. package/presets/claude/java/agents/api-contract-reviewer.md +23 -0
  28. package/presets/claude/java/agents/build-verifier.md +45 -0
  29. package/presets/claude/java/agents/ci-investigator.md +17 -0
  30. package/presets/claude/java/agents/code-reviewer.md +40 -0
  31. package/presets/claude/java/agents/codebase-analyzer.md +28 -0
  32. package/presets/claude/java/agents/debugger.md +25 -0
  33. package/presets/claude/java/agents/feature-developer.md +43 -0
  34. package/presets/claude/java/agents/integration-test-generator.md +22 -0
  35. package/presets/claude/java/agents/integration-test-healer.md +22 -0
  36. package/presets/claude/java/agents/integration-test-planner.md +22 -0
  37. package/presets/claude/java/agents/migration-specialist.md +31 -0
  38. package/presets/claude/java/agents/performance-auditor.md +22 -0
  39. package/presets/claude/java/agents/qa-tester.md +24 -0
  40. package/presets/claude/java/agents/security-reviewer.md +20 -0
  41. package/presets/claude/java/agents/solution-architect.md +28 -0
  42. package/presets/claude/java/agents/task-analyst.md +25 -0
  43. package/presets/claude/java/agents/task-router.md +69 -0
  44. package/presets/claude/java/agents/tech-writer.md +15 -0
  45. package/presets/claude/java/agents/unit-test-generator.md +21 -0
  46. package/presets/claude/java/agents/unit-test-healer.md +13 -0
  47. package/presets/claude/java/agents/unit-test-planner.md +26 -0
  48. package/presets/claude/java/commands/README.md +13 -0
  49. package/presets/claude/java/commands/feature-continue.md +51 -0
  50. package/presets/claude/java/commands/feature-start.md +30 -0
  51. package/presets/claude/java/commands/task-continue.md +49 -0
  52. package/presets/claude/java/commands/task.md +49 -0
  53. package/presets/claude/java/commands/technical-retro.md +58 -0
  54. package/presets/claude/java/hooks/README.md +16 -0
  55. package/presets/claude/java/hooks/chain-team-phases.sh +381 -0
  56. package/presets/claude/java/hooks/examples/README.md +18 -0
  57. package/presets/claude/java/hooks/examples/format-edited.example.sh +11 -0
  58. package/presets/claude/java/hooks/examples/secret-guard.example.sh +10 -0
  59. package/presets/claude/java/hooks/examples/test-on-save.example.sh +18 -0
  60. package/presets/claude/java/hooks/guard-shell-command.sh +80 -0
  61. package/presets/claude/java/mcp.json +11 -0
  62. package/presets/claude/java/rules/README.md +60 -0
  63. package/presets/claude/java/rules/api-and-data/README.md +14 -0
  64. package/presets/claude/java/rules/api-and-data/adapters-driven.md +38 -0
  65. package/presets/claude/java/rules/api-and-data/adapters-driving.md +38 -0
  66. package/presets/claude/java/rules/api-and-data/api-grpc.md +29 -0
  67. package/presets/claude/java/rules/api-and-data/api-http.md +36 -0
  68. package/presets/claude/java/rules/api-and-data/messaging-adapters.md +24 -0
  69. package/presets/claude/java/rules/api-and-data/persistence-adapters.md +33 -0
  70. package/presets/claude/java/rules/architecture/README.md +16 -0
  71. package/presets/claude/java/rules/architecture/application-usecases.md +32 -0
  72. package/presets/claude/java/rules/architecture/boundaries.md +29 -0
  73. package/presets/claude/java/rules/architecture/composition-root.md +31 -0
  74. package/presets/claude/java/rules/architecture/domain-layer.md +38 -0
  75. package/presets/claude/java/rules/architecture/feature-delivery.md +52 -0
  76. package/presets/claude/java/rules/architecture/module-public-api.md +31 -0
  77. package/presets/claude/java/rules/architecture/ports-interfaces.md +34 -0
  78. package/presets/claude/java/rules/architecture/reference-features.md +34 -0
  79. package/presets/claude/java/rules/stack/README.md +10 -0
  80. package/presets/claude/java/rules/stack/java-app-core.md +32 -0
  81. package/presets/claude/java/rules/stack/java-conventions.md +52 -0
  82. package/presets/claude/java/rules/testing/README.md +11 -0
  83. package/presets/claude/java/rules/testing/e2e.md +22 -0
  84. package/presets/claude/java/rules/testing/integration.md +27 -0
  85. package/presets/claude/java/rules/testing/unit.md +33 -0
  86. package/presets/claude/java/rules/tooling-and-review/README.md +21 -0
  87. package/presets/claude/java/rules/tooling-and-review/agent-team-intake.md +26 -0
  88. package/presets/claude/java/rules/tooling-and-review/agent-team-orchestrator.md +179 -0
  89. package/presets/claude/java/rules/tooling-and-review/code-quality.md +83 -0
  90. package/presets/claude/java/rules/tooling-and-review/code-review.md +59 -0
  91. package/presets/claude/java/rules/tooling-and-review/design-guidance.md +110 -0
  92. package/presets/claude/java/rules/tooling-and-review/java-tooling.md +36 -0
  93. package/presets/claude/java/rules/tooling-and-review/post-change-test.md +32 -0
  94. package/presets/claude/java/rules/tooling-and-review/preset-layering.md +36 -0
  95. package/presets/claude/java/rules/tooling-and-review/preset-no-cross-stack-leakage.md +56 -0
  96. package/presets/claude/java/rules/tooling-and-review/preset-pr-checklist.md +39 -0
  97. package/presets/claude/java/rules/tooling-and-review/preset-token-budget.md +41 -0
  98. package/presets/claude/java/rules/tooling-and-review/preset-twin-sync.md +44 -0
  99. package/presets/claude/java/rules/tooling-and-review/security-java.md +29 -0
  100. package/presets/claude/java/rules/tooling-and-review/technical-retro.md +20 -0
  101. package/presets/claude/java/rules/ui-and-accessibility/README.md +5 -0
  102. package/presets/claude/java/skills/README.md +5 -0
  103. package/presets/claude/java/skills/ci-investigation/SKILL.md +11 -0
  104. package/presets/claude/java/skills/code-review/SKILL.md +25 -0
  105. package/presets/claude/java/skills/debug-investigation/SKILL.md +15 -0
  106. package/presets/claude/java/skills/feature-delivery/SKILL.md +30 -0
  107. package/presets/claude/java/skills/integration-testing/SKILL.md +15 -0
  108. package/presets/claude/java/skills/technical-retro/SKILL.md +54 -0
  109. package/presets/claude/java/skills/unit-testing/SKILL.md +14 -0
  110. package/presets/claude/java/skills/write-adr/SKILL.md +41 -0
  111. package/presets/claude/java/team/README.md +27 -0
  112. package/presets/claude/java/team/conventions.md +21 -0
  113. package/presets/claude/java/team/fixtures/bugfix-standard.json +37 -0
  114. package/presets/claude/java/team/fixtures/feature-full.json +25 -0
  115. package/presets/claude/java/team/fixtures/feature-light.json +17 -0
  116. package/presets/claude/next/agents/build-verifier.md +4 -4
  117. package/presets/claude/next/rules/tooling-and-review/preset-layering.md +1 -1
  118. package/presets/claude/next/rules/tooling-and-review/preset-no-cross-stack-leakage.md +6 -4
  119. package/presets/claude/next/rules/tooling-and-review/preset-pr-checklist.md +1 -1
  120. package/presets/claude/next/rules/tooling-and-review/preset-twin-sync.md +2 -0
  121. package/presets/cursor/go/agents/build-verifier.md +5 -5
  122. package/presets/cursor/go/rules/preset-layering.mdc +1 -1
  123. package/presets/cursor/go/rules/preset-no-cross-stack-leakage.mdc +6 -8
  124. package/presets/cursor/go/rules/preset-pr-checklist.mdc +1 -1
  125. package/presets/cursor/go/rules/preset-twin-sync.mdc +2 -0
  126. package/presets/cursor/go/team/fixtures/feature-full.json +5 -23
  127. package/presets/cursor/ios-swift/agents/build-verifier.md +6 -7
  128. package/presets/cursor/ios-swift/rules/ios-app-core.mdc +5 -28
  129. package/presets/cursor/ios-swift/rules/preset-layering.mdc +1 -1
  130. package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +6 -4
  131. package/presets/cursor/ios-swift/rules/preset-pr-checklist.mdc +1 -1
  132. package/presets/cursor/ios-swift/rules/preset-twin-sync.mdc +2 -0
  133. package/presets/cursor/java/AGENTS.md +37 -0
  134. package/presets/cursor/java/BUGBOT.md +11 -0
  135. package/presets/cursor/java/MCP.md +15 -0
  136. package/presets/cursor/java/README.md +26 -0
  137. package/presets/cursor/java/REPO_AGENTS.md +45 -0
  138. package/presets/cursor/java/agents/README.md +36 -0
  139. package/presets/cursor/java/agents/api-contract-reviewer.md +23 -0
  140. package/presets/cursor/java/agents/build-verifier.md +45 -0
  141. package/presets/cursor/java/agents/ci-investigator.md +17 -0
  142. package/presets/cursor/java/agents/code-reviewer.md +40 -0
  143. package/presets/cursor/java/agents/codebase-analyzer.md +28 -0
  144. package/presets/cursor/java/agents/debugger.md +25 -0
  145. package/presets/cursor/java/agents/feature-developer.md +43 -0
  146. package/presets/cursor/java/agents/integration-test-generator.md +22 -0
  147. package/presets/cursor/java/agents/integration-test-healer.md +22 -0
  148. package/presets/cursor/java/agents/integration-test-planner.md +22 -0
  149. package/presets/cursor/java/agents/migration-specialist.md +31 -0
  150. package/presets/cursor/java/agents/performance-auditor.md +22 -0
  151. package/presets/cursor/java/agents/qa-tester.md +24 -0
  152. package/presets/cursor/java/agents/security-reviewer.md +20 -0
  153. package/presets/cursor/java/agents/solution-architect.md +28 -0
  154. package/presets/cursor/java/agents/task-analyst.md +25 -0
  155. package/presets/cursor/java/agents/task-router.md +69 -0
  156. package/presets/cursor/java/agents/tech-writer.md +15 -0
  157. package/presets/cursor/java/agents/unit-test-generator.md +21 -0
  158. package/presets/cursor/java/agents/unit-test-healer.md +13 -0
  159. package/presets/cursor/java/agents/unit-test-planner.md +26 -0
  160. package/presets/cursor/java/commands/README.md +54 -0
  161. package/presets/cursor/java/commands/feature-continue.md +19 -0
  162. package/presets/cursor/java/commands/feature-start.md +33 -0
  163. package/presets/cursor/java/commands/task-continue.md +49 -0
  164. package/presets/cursor/java/commands/task.md +49 -0
  165. package/presets/cursor/java/commands/technical-retro.md +81 -0
  166. package/presets/cursor/java/hooks/README.md +12 -0
  167. package/presets/cursor/java/hooks/chain-team-phases.sh +381 -0
  168. package/presets/cursor/java/hooks/examples/README.md +18 -0
  169. package/presets/cursor/java/hooks/examples/format-edited.example.sh +11 -0
  170. package/presets/cursor/java/hooks/examples/secret-guard.example.sh +10 -0
  171. package/presets/cursor/java/hooks/examples/test-on-save.example.sh +18 -0
  172. package/presets/cursor/java/hooks/guard-shell-command.sh +80 -0
  173. package/presets/cursor/java/hooks.json +17 -0
  174. package/presets/cursor/java/mcp.json +11 -0
  175. package/presets/cursor/java/rules/README.md +97 -0
  176. package/presets/cursor/java/rules/adapters-driven.mdc +40 -0
  177. package/presets/cursor/java/rules/adapters-driving.mdc +40 -0
  178. package/presets/cursor/java/rules/agent-team-intake.mdc +20 -0
  179. package/presets/cursor/java/rules/agent-team-orchestrator.mdc +173 -0
  180. package/presets/cursor/java/rules/api-grpc.mdc +31 -0
  181. package/presets/cursor/java/rules/api-http.mdc +38 -0
  182. package/presets/cursor/java/rules/application-usecases.mdc +34 -0
  183. package/presets/cursor/java/rules/architecture-boundaries.mdc +30 -0
  184. package/presets/cursor/java/rules/code-quality-and-refactoring.mdc +84 -0
  185. package/presets/cursor/java/rules/code-review-mr.mdc +54 -0
  186. package/presets/cursor/java/rules/composition-root.mdc +33 -0
  187. package/presets/cursor/java/rules/design-guidance.mdc +112 -0
  188. package/presets/cursor/java/rules/domain-layer.mdc +40 -0
  189. package/presets/cursor/java/rules/feature-delivery-workflow.mdc +47 -0
  190. package/presets/cursor/java/rules/java-app-core.mdc +33 -0
  191. package/presets/cursor/java/rules/java-conventions.mdc +54 -0
  192. package/presets/cursor/java/rules/java-tooling.mdc +34 -0
  193. package/presets/cursor/java/rules/messaging-adapters.mdc +26 -0
  194. package/presets/cursor/java/rules/module-public-api.mdc +33 -0
  195. package/presets/cursor/java/rules/persistence-adapters.mdc +35 -0
  196. package/presets/cursor/java/rules/ports-interfaces.mdc +36 -0
  197. package/presets/cursor/java/rules/post-change-test.mdc +30 -0
  198. package/presets/cursor/java/rules/preset-layering.mdc +36 -0
  199. package/presets/cursor/java/rules/preset-no-cross-stack-leakage.mdc +56 -0
  200. package/presets/cursor/java/rules/preset-pr-checklist.mdc +39 -0
  201. package/presets/cursor/java/rules/preset-token-budget.mdc +41 -0
  202. package/presets/cursor/java/rules/preset-twin-sync.mdc +44 -0
  203. package/presets/cursor/java/rules/reference-features.mdc +36 -0
  204. package/presets/cursor/java/rules/security-java.mdc +31 -0
  205. package/presets/cursor/java/rules/technical-retro.mdc +14 -0
  206. package/presets/cursor/java/rules/tests-e2e.mdc +24 -0
  207. package/presets/cursor/java/rules/tests-integration.mdc +29 -0
  208. package/presets/cursor/java/rules/tests-unit.mdc +35 -0
  209. package/presets/cursor/java/skills/README.md +5 -0
  210. package/presets/cursor/java/skills/ci-investigation/SKILL.md +11 -0
  211. package/presets/cursor/java/skills/code-review/SKILL.md +25 -0
  212. package/presets/cursor/java/skills/debug-investigation/SKILL.md +15 -0
  213. package/presets/cursor/java/skills/feature-delivery/SKILL.md +30 -0
  214. package/presets/cursor/java/skills/integration-testing/SKILL.md +15 -0
  215. package/presets/cursor/java/skills/technical-retro/SKILL.md +54 -0
  216. package/presets/cursor/java/skills/unit-testing/SKILL.md +14 -0
  217. package/presets/cursor/java/skills/write-adr/SKILL.md +41 -0
  218. package/presets/cursor/java/team/README.md +31 -0
  219. package/presets/cursor/java/team/conventions.md +21 -0
  220. package/presets/cursor/java/team/fixtures/bugfix-standard.json +37 -0
  221. package/presets/cursor/java/team/fixtures/feature-full.json +25 -0
  222. package/presets/cursor/java/team/fixtures/feature-light.json +17 -0
  223. package/presets/cursor/next/agents/build-verifier.md +4 -4
  224. package/presets/cursor/next/rules/preset-layering.mdc +1 -1
  225. package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +6 -4
  226. package/presets/cursor/next/rules/preset-pr-checklist.mdc +1 -1
  227. package/presets/cursor/next/rules/preset-twin-sync.mdc +2 -0
@@ -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,27 @@
1
+ # Agent team artifacts (preset java)
2
+
3
+ Каталог артефактов пайплайна «команда агентов» для Java backend (hexagonal / ports & adapters).
4
+
5
+ ## Layout
6
+
7
+ ```
8
+ .claude/team/
9
+ active-task.json
10
+ fixtures/
11
+ tasks/<slug>/
12
+ pipeline.json
13
+ status.json
14
+ brief.md
15
+ decomposition.md
16
+
17
+ ```
18
+
19
+ ## Fixtures
20
+
21
+ | Fixture | Notes |
22
+ |---------|-------|
23
+ | `feature-full.json` | Full profile; QA scope `e2e-only` = **adapter/integration tests** (not UI e2e); Playwright/XCUITest stems in `skipped` |
24
+ | `feature-light.json` | developer → build-verifier (`mvn test` / `./gradlew test` / configured static analysis) |
25
+ | `bugfix-standard.json` | debugger → developer (skipIf) → verifier → reviewer |
26
+
27
+ **Never** schedule Playwright/XCUITest-only steps for this preset. Use `integration-test-*` (or QA with `e2e-only` = integration) for adapter-level coverage.
@@ -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,37 @@
1
+ {
2
+ "slug": "example-bugfix-standard",
3
+ "intent": "bugfix",
4
+ "profile": "standard",
5
+ "summary": "Regression fix with review",
6
+ "steps": [
7
+ {
8
+ "agent": "debugger",
9
+ "label": "Root cause"
10
+ },
11
+ {
12
+ "agent": "feature-developer",
13
+ "label": "Fix if needed",
14
+ "skipIf": "debugger.fixed"
15
+ },
16
+ {
17
+ "agent": "build-verifier",
18
+ "label": "mvn test / ./gradlew test / static analysis"
19
+ },
20
+ {
21
+ "agent": "code-reviewer",
22
+ "label": "Code review"
23
+ }
24
+ ],
25
+ "humanGates": [],
26
+ "autoChain": true,
27
+ "skipped": [
28
+ {
29
+ "agent": "playwright-test-planner",
30
+ "reason": "Java backend uses integration-test-* — not in this bugfix path"
31
+ },
32
+ {
33
+ "agent": "xcuitest-test-planner",
34
+ "reason": "Java backend uses integration-test-* — not in this bugfix path"
35
+ }
36
+ ]
37
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "slug": "example-feature-full",
3
+ "intent": "feature",
4
+ "profile": "full",
5
+ "summary": "Multi-layer Java use case with integration-test coverage",
6
+ "steps": [
7
+ { "agent": "task-analyst", "label": "Clarify and decompose" },
8
+ { "agent": "solution-architect", "label": "Design boundaries", "model": "strong" },
9
+ { "agent": "feature-developer", "label": "Implement + unit tests", "scope": "unit-in-dev" },
10
+ { "agent": "build-verifier", "label": "mvn test / ./gradlew test / static analysis", "model": "cheap" },
11
+ { "agent": "security-reviewer", "label": "Security review", "model": "strong" },
12
+ { "agent": "code-reviewer", "label": "Code review", "model": "cheap" },
13
+ { "agent": "qa-tester", "label": "Integration tests", "scope": "e2e-only" },
14
+ { "agent": "integration-test-planner", "label": "Plan integration coverage" },
15
+ { "agent": "integration-test-generator", "label": "Generate integration tests" }
16
+ ],
17
+ "humanGates": ["after:task-analyst"],
18
+ "autoChain": true,
19
+ "skipped": [
20
+ {
21
+ "agent": "accessibility-reviewer",
22
+ "reason": "Java backend has no UI surface"
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "slug": "example-feature-light",
3
+ "intent": "feature",
4
+ "profile": "light",
5
+ "summary": "Trivial single-package change with explicit AC",
6
+ "steps": [
7
+ { "agent": "feature-developer", "label": "Implement", "model": "cheap" },
8
+ { "agent": "build-verifier", "label": "mvn test / ./gradlew test / static analysis", "model": "cheap" }
9
+ ],
10
+ "humanGates": [],
11
+ "autoChain": true,
12
+ "skipped": [
13
+ { "agent": "task-analyst", "reason": "Explicit AC and single-package scope" },
14
+ { "agent": "code-reviewer", "reason": "Light profile — non-trivial module/service changes should use standard" },
15
+ { "agent": "qa-tester", "reason": "No integration-test AC" }
16
+ ]
17
+ }
@@ -35,14 +35,14 @@ When validating **preset packaging** changes (paths under `packages/ai-rules/pre
35
35
  2. **Leakage (next):** hooks/agents must not require `xcuitest-test-*` handoffs or `xcodebuild` as the default Next post-change gate. See `tooling-and-review/preset-no-cross-stack-leakage.md`.
36
36
  3. **Mapping / README:** `rules/README.md` must include a Cursor→Claude mapping table; document core→stack mapping when `_shared` consumers exist.
37
37
  4. **shared-core consumers:** if `_shared/core/**` changed, every file with matching `<!-- shared-core: … -->` in this PR must be updated (or intentional fork documented).
38
- 5. **Twin presence:** Cursor rule change without Claude twin same PR → **FAIL** (next, ios-swift, and go). Domain twin body ≥15 lines; thin aliases may be shorter.
38
+ 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 may be shorter.
39
39
  6. **Session-start body budget:** sum body lines of the **3** intended session-start rules ≤ **120** (stretch ≤100); do **not** include `**/README.md` — record in validation-report; FAIL if grossly over.
40
- 7. **Embed drift (soft by default):** run `packages/ai-rules/scripts/check-shared-core-drift.sh`. Document DRIFT; `AI_RULES_DRIFT_FAIL=1` to enforce. Lineage stems excluded from body equality.
40
+ 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 excluded from body equality.
41
41
  8. **Dogfood (monorepo soft):** prefer `packages/ai-rules/scripts/sync-dogfood-cursor.sh`; mass dogfood deletion without migration doc → risk / FAIL for maintainers.
42
42
 
43
- 9. **Root AGENTS template:** each installable preset (`cursor|claude` × `next|ios-swift|go`) must ship `REPO_AGENTS.md` when validating preset packaging → **FAIL** if missing.
43
+ 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.
44
44
  10. **Hooks cookbook:** default `hooks.json` must **not** reference `hooks/examples/` → **FAIL** if it does.
45
- 11. **No react-performance on ios/go:** skill directory / required handoff must be absent under ios-swift and go → **FAIL** (leakage). Prefer `check:preset-leakage`.
45
+ 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`.
46
46
  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`.
47
47
 
48
48
  ### Soft notes
@@ -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`.
@@ -25,11 +25,11 @@ From `packages/ai-rules/`:
25
25
  yarn check:preset-structure
26
26
  ```
27
27
 
28
- Hard gates: twin-map (stacks include **go**), token-budget (alwaysApply/session-start = 3), leakage (`GO_FORBIDDEN_*`, chain forks go≠next≠ios-swift).
28
+ Hard gates: twin-map (stacks include **go**), token-budget (alwaysApply/session-start = 3), leakage (`GO_FORBIDDEN_*`, chain forks go≠next≠ios-swift≠java), shared-core drift (`AI_RULES_DRIFT_FAIL=1` via `check:preset-structure`).
29
29
 
30
30
  Document PASS/FAIL in `validation-report.md`.
31
31
 
32
- 9. **Root AGENTS template:** each installable preset (`cursor|claude` × `next|ios-swift|go`) must ship `REPO_AGENTS.md` when validating preset packaging → **FAIL** if missing.
33
- 10. **Hooks cookbook:** default `hooks.json` must **not** reference `hooks/examples/` → **FAIL** if it does.
34
- 11. **No react-performance on ios/go:** skill directory / required handoff must be absent under ios-swift and go → **FAIL** (leakage). Prefer `check:preset-leakage`.
35
- 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`.
32
+ 1. **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.
33
+ 2. **Hooks cookbook:** default `hooks.json` must **not** reference `hooks/examples/` → **FAIL** if it does.
34
+ 3. **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`.
35
+ 4. **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`.
@@ -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,8 +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).
55
-
56
- ## Stack notes
57
-
58
- Forbidden positive handoffs on this stack are listed in core § go. Prefer `integration-test-*` and `post-change-test`.
56
+ `hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `ios-swift`, `go`, and `java` (per platform).
@@ -17,7 +17,7 @@ alwaysApply: false
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`.
@@ -10,34 +10,16 @@
10
10
  { "agent": "build-verifier", "label": "go test / go vet / golangci-lint", "model": "cheap" },
11
11
  { "agent": "security-reviewer", "label": "Security review", "model": "strong" },
12
12
  { "agent": "code-reviewer", "label": "Code review", "model": "cheap" },
13
- { "agent": "qa-tester", "label": "Integration tests", "scope": "e2e-only" }
13
+ { "agent": "qa-tester", "label": "Integration tests", "scope": "e2e-only" },
14
+ { "agent": "integration-test-planner", "label": "Plan integration coverage" },
15
+ { "agent": "integration-test-generator", "label": "Generate integration tests" }
14
16
  ],
15
17
  "humanGates": ["after:task-analyst"],
16
18
  "autoChain": true,
17
19
  "skipped": [
18
20
  {
19
- "agent": "playwright-test-planner",
20
- "reason": "Go backend uses integration-test-* not Playwright"
21
- },
22
- {
23
- "agent": "playwright-test-generator",
24
- "reason": "Go backend uses integration-test-*"
25
- },
26
- {
27
- "agent": "playwright-test-healer",
28
- "reason": "Go backend uses integration-test-*"
29
- },
30
- {
31
- "agent": "xcuitest-test-planner",
32
- "reason": "Go backend uses integration-test-* — not XCUITest"
33
- },
34
- {
35
- "agent": "xcuitest-test-generator",
36
- "reason": "Go backend uses integration-test-*"
37
- },
38
- {
39
- "agent": "xcuitest-test-healer",
40
- "reason": "Go backend uses integration-test-*"
21
+ "agent": "accessibility-reviewer",
22
+ "reason": "Go backend has no UI surface"
41
23
  }
42
24
  ]
43
25
  }
@@ -35,11 +35,11 @@ When validating **ios-swift preset** changes (or `scope: preset-structure-valida
35
35
  3. **Forbidden handoff strings** in ios-swift `chain-team-phases.sh` (Cursor + Claude): `playwright-test-`, `playwright-agents`, `playwright-e2e`, `user-playwright`, `app/__tests__/e2e`, and positive yarn lint recipes (`lint:js` / `lint:css` as commands to run — negation prose alone is not enough; prefer zero occurrences). See `preset-no-cross-stack-leakage.mdc`.
36
36
  4. **Required handoff stems:** `AGENT_HANDOFF` must include `xcuitest-test-planner` (or generator/healer) and `build-verifier` text must mention `xcodebuild` or `post-change-build` / `xcode-tooling`.
37
37
  5. **Roster:** 21 agent stems; no `playwright-test-*` files under ios-swift `agents/`.
38
- 6. **Twin presence (hard):** Cursor rule change → Claude twin present **same PR** — **FAIL** if missing (next, ios-swift, and go).
38
+ 6. **Twin presence (hard):** Cursor rule change → Claude twin present **same PR** — **FAIL** if missing (next, ios-swift, go, and java).
39
39
  7. **Mapping / README:** `claude/ios-swift/rules/README.md` mapping table present; core→stack mapping documented when `_shared` consumers exist.
40
40
  8. **shared-core consumers:** if `_shared/core/**` changed, every matching `<!-- shared-core: … -->` consumer in this PR must be updated (or intentional fork documented).
41
41
  9. **Session-start body budget:** sum of the **3** intended always-on / session-start rule bodies ≤ **120** lines (stretch ≤100); do **not** include `**/README.md` — record in report.
42
- 10. **Embed drift (soft by default):** `packages/ai-rules/scripts/check-shared-core-drift.sh`; `AI_RULES_DRIFT_FAIL=1` to enforce.
42
+ 10. **Embed drift (hard in `check:preset-structure`):** `packages/ai-rules/scripts/check-shared-core-drift.sh` with `AI_RULES_DRIFT_FAIL=1`.
43
43
  11. **Dogfood (monorepo soft):** `packages/ai-rules/scripts/sync-dogfood-cursor.sh`; mass deletion without migration doc → risk / FAIL for maintainers.
44
44
 
45
45
  ### Soft rules (do not FAIL alone)
@@ -47,11 +47,10 @@ When validating **ios-swift preset** changes (or `scope: preset-structure-valida
47
47
  - **Thin aliases:** `agent-team-intake`, `technical-retro` may be &lt;15 body lines. Enforce ≥15 on **domain** rules (navigation, persistence, security, modules, networking, UI).
48
48
  - Embed vs lineage modes: `docs/PRESET-CONTRIBUTION.md`, `_shared/README.md`.
49
49
 
50
-
51
- 9. **Root AGENTS template:** each installable preset (`cursor|claude` × `next|ios-swift|go`) must ship `REPO_AGENTS.md` when validating preset packaging → **FAIL** if missing.
52
- 10. **Hooks cookbook:** default `hooks.json` must **not** reference `hooks/examples/` → **FAIL** if it does.
53
- 11. **No react-performance on ios/go:** skill directory / required handoff must be absent under ios-swift and go **FAIL** (leakage). Prefer `check:preset-leakage`.
54
- 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`.
50
+ 12. **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.
51
+ 13. **Hooks cookbook:** default `hooks.json` must **not** reference `hooks/examples/` → **FAIL** if it does.
52
+ 14. **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`.
53
+ 15. **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`.
55
54
 
56
55
  ## Output
57
56
 
@@ -5,40 +5,17 @@ alwaysApply: true
5
5
 
6
6
  # Стек и окружение
7
7
 
8
- Версии Swift, iOS SDK, зависимостей и инструментов**из Xcode-проекта, Package.swift и конфигов целевого репозитория**. Рамка preset:
9
-
10
- - **Язык / платформа:** Swift, iOS (min — из таргета).
11
- - **UI:** SwiftUI — приоритет для нового кода; UIKit — где уже принято в репо.
12
- - **Сборка:** Xcode; SPM и/или CocoaPods — как в репозитории.
13
- - **Concurrency:** `async`/`await`, `Task`, `Actor`; UI — `@MainActor`.
14
- - **Тесты:** XCTest или Swift Testing; UI — XCUITest.
15
- - **Сеть:** `URLSession` или клиент репо; DTO через `Codable`.
16
- - **Дизайн-система:** токены/примитивы из `DesignSystem/` (или аналога); без «магических» значений.
17
- - **Наблюдаемость:** только если уже в проекте — централизованно.
8
+ Версии — **из Xcode / Package.swift / конфигов репо**. Рамка: Swift, iOS; SwiftUI приоритет (UIKit где принято); Xcode + SPM/CocoaPods как в репо; `async`/`await`, `@MainActor`; XCTest/Swift Testing + XCUITest; сеть `URLSession`/`Codable`; UI токены `DesignSystem/`; наблюдаемость только если уже в проекте.
18
9
 
19
10
  # Структура проекта
20
11
 
21
- Ориентир — **feature-first + слои внутри фичи** или **слои на верхнем уровне** (как в репо):
22
-
23
- - `App/` — `@main`, composition root, DI, навигация верхнего уровня.
24
- - `Features/<FeatureName>/` — `Presentation/` (Views, ViewModels), `Domain/` (entities, use cases, протоколы), `Data/` (repos, API, DTO, mappers).
25
- - `Core/` — общие утилиты, extensions, базовые ошибки.
26
- - `DesignSystem/` — UI-примитивы без бизнес-логики.
27
- - `Tests/` / `*Tests/` — unit и UI по конвенции Xcode.
28
-
29
- Новые файлы — в том же слое/модуле, что и аналогичная функциональность.
30
-
31
- Границы зависимостей и DI — **`architecture-boundaries.mdc`**.
12
+ Feature-first или слои сверху (как в репо): `App/` (composition root), `Features/<Name>/` (Presentation / Domain / Data), `Core/`, `DesignSystem/`, `Tests/`. Новые файлы — рядом с аналогами. Границы/DI — **`architecture-boundaries.mdc`**.
32
13
 
33
14
  # Swift и качество
34
15
 
35
- - Swift API Design Guidelines + SwiftLint/SwiftFormat репо (если есть).
36
- - Избегать `!` / `try!` в production; `guard` / `if let` / typed errors.
37
- - Копировать существующие паттерны фичи/слоя.
16
+ API Design Guidelines + SwiftLint/SwiftFormat репо; без `!`/`try!` в production; `guard` / typed errors; паттерны соседних файлов.
38
17
 
39
18
  # Работа агента
40
19
 
41
- - Определить слой (Presentation / Domain / Data / DesignSystem / Tests); повторить паттерн соседних файлов.
42
- - Не тянуть `URLSession` во View и DTO во ViewModelдетали в `architecture-boundaries.mdc`.
43
- - Доставка фичи — `feature-delivery-workflow.mdc`; после правок Swift — **вызвать** `post-change-build.mdc` (requestable).
44
- - Toolchain перед сборкой — `xcode-tooling.mdc` (requestable).
20
+ - Слой паттерн соседей; без `URLSession` во View и DTO во ViewModel (`architecture-boundaries.mdc`).
21
+ - Фичи: `feature-delivery-workflow.mdc`; после Swift **вызвать** `post-change-build.mdc`; toolchain — `xcode-tooling.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).
@@ -17,7 +17,7 @@ alwaysApply: false
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`.
@@ -0,0 +1,37 @@
1
+ # Java hexagonal stack — Cursor agent team
2
+
3
+ **Repo-root agents:** see [`AGENTS.md`](../../AGENTS.md) at the project root (cross-tool setup, commands, security, living conventions pointers).
4
+
5
+ | Задача | Куда смотреть |
6
+ |--------|----------------|
7
+ | Новая work-задача | `/task` → `commands/task.md` + `agent-team-orchestrator.mdc` |
8
+ | Фича end-to-end | skill `feature-delivery` + `feature-delivery-workflow.mdc` |
9
+ | Стек и слои | `java-app-core.mdc`, `architecture-boundaries.mdc` |
10
+ | После правок Java | `post-change-test.mdc` (+ `java-tooling.mdc`) |
11
+ | Integration tests | `integration-test-*` + skill `integration-testing` |
12
+ | Unit tests | `unit-test-*` + skill `unit-testing` |
13
+ | Code review | skill `code-review` + `code-review-mr.mdc` |
14
+ | ADR | skill `write-adr` (on-demand) |
15
+ | Как работает X | agent `codebase-analyzer` (explain-as-is; без `/task`) |
16
+
17
+ ## Install
18
+
19
+ ```bash
20
+ npx @bonesofspring/ai-rules init cursor --preset java
21
+ ```
22
+
23
+ Копирует rules/agents/hooks/skills/commands/team + `REPO_AGENTS.md` → корневой `AGENTS.md`.
24
+
25
+ ## Inventory
26
+
27
+ - **21 agents** — see `agents/README.md` (no a11y / Playwright / XCUITest)
28
+ - **8 skills** — `feature-delivery`, `unit-testing`, `integration-testing`, `ci-investigation`, `debug-investigation`, `code-review`, `technical-retro`, `write-adr`
29
+ - **5 commands** — `/task`, `/task-continue`, `/feature-start`, `/feature-continue`, `/technical-retro`
30
+
31
+ ## Dogfood (5 сценариев)
32
+
33
+ 1. `/task` — новый use case (domain → ports → adapters → wire).
34
+ 2. Баг маппинга HTTP — debugger + MockMvc/focused controller test.
35
+ 3. Repository contract — integration-test trio (Testcontainers).
36
+ 4. Unit use case — unit-test planner/generator (JUnit 5 + port fake/mock).
37
+ 5. Secrets in logs — security-reviewer + `security-java`.
@@ -0,0 +1,11 @@
1
+ # Bugbot — Java / Spring hexagonal
2
+
3
+ Priority review signals for this preset:
4
+
5
+ - Domain purity: no Spring/JPA/HTTP types in `domain/`
6
+ - Ports in `application/`; adapters map at the edge
7
+ - Secrets, PII, and authz checks — never log tokens/credentials
8
+ - Persistence models must not leak upward past outbound ports
9
+ - Prefer existing Maven/Gradle/CI gates over inventing new static-analysis tools
10
+ - Prefer `integration-test-*` for adapter contracts — never Playwright/XCUITest
11
+ - After production edits: `post-change-test` / `java-tooling` (`mvn test` / `./gradlew test`)