@bonesofspring/ai-rules 0.2.0 → 0.2.2

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 (193) hide show
  1. package/README.md +10 -18
  2. package/bin/cli.js +73 -258
  3. package/package.json +3 -4
  4. package/presets/claude/ios-swift/CLAUDE.md +27 -0
  5. package/presets/claude/ios-swift/README.md +29 -0
  6. package/presets/claude/ios-swift/commands/README.md +3 -0
  7. package/presets/claude/ios-swift/rules/README.md +44 -0
  8. package/presets/claude/ios-swift/rules/api-and-data/README.md +9 -0
  9. package/presets/claude/ios-swift/rules/api-and-data/networking.md +49 -0
  10. package/presets/claude/ios-swift/rules/architecture/README.md +10 -0
  11. package/presets/claude/ios-swift/rules/architecture/boundaries.md +33 -0
  12. package/presets/claude/ios-swift/rules/architecture/feature-delivery.md +60 -0
  13. package/presets/claude/ios-swift/rules/stack/README.md +10 -0
  14. package/presets/claude/ios-swift/rules/stack/ios-app-core.md +42 -0
  15. package/presets/claude/ios-swift/rules/stack/swift-conventions.md +51 -0
  16. package/presets/claude/ios-swift/rules/testing/README.md +10 -0
  17. package/presets/claude/ios-swift/rules/testing/ui.md +41 -0
  18. package/presets/claude/ios-swift/rules/testing/unit.md +41 -0
  19. package/presets/claude/ios-swift/rules/tooling-and-review/README.md +11 -0
  20. package/presets/claude/ios-swift/rules/tooling-and-review/code-quality.md +38 -0
  21. package/presets/claude/ios-swift/rules/tooling-and-review/code-review.md +41 -0
  22. package/presets/claude/ios-swift/rules/tooling-and-review/post-change-build.md +31 -0
  23. package/presets/claude/ios-swift/rules/ui-and-accessibility/README.md +10 -0
  24. package/presets/claude/ios-swift/rules/ui-and-accessibility/swiftui.md +61 -0
  25. package/presets/claude/ios-swift/rules/ui-and-accessibility/viewmodels.md +43 -0
  26. package/presets/claude/next/CLAUDE.md +5 -29
  27. package/presets/claude/next/README.md +0 -10
  28. package/presets/claude/next/agents/README.md +0 -125
  29. package/presets/claude/next/commands/README.md +2 -10
  30. package/presets/claude/next/hooks/README.md +2 -5
  31. package/presets/claude/next/rules/README.md +11 -25
  32. package/presets/claude/next/rules/api-and-data/README.md +1 -7
  33. package/presets/claude/next/rules/architecture/README.md +2 -9
  34. package/presets/claude/next/rules/stack/README.md +1 -9
  35. package/presets/claude/next/rules/testing/README.md +1 -9
  36. package/presets/claude/next/rules/tooling-and-review/README.md +1 -14
  37. package/presets/claude/next/rules/ui-and-accessibility/README.md +1 -8
  38. package/presets/claude/next/skills/README.md +1 -11
  39. package/presets/cursor/ios-swift/README.md +17 -0
  40. package/presets/cursor/ios-swift/commands/README.md +3 -0
  41. package/presets/cursor/ios-swift/rules/README.md +33 -0
  42. package/presets/cursor/ios-swift/rules/architecture-boundaries.mdc +34 -0
  43. package/presets/cursor/ios-swift/rules/code-quality-and-refactoring.mdc +39 -0
  44. package/presets/cursor/ios-swift/rules/code-review-mr.mdc +42 -0
  45. package/presets/cursor/ios-swift/rules/feature-delivery-workflow.mdc +61 -0
  46. package/presets/cursor/ios-swift/rules/ios-app-core.mdc +43 -0
  47. package/presets/cursor/ios-swift/rules/networking-services.mdc +49 -0
  48. package/presets/cursor/ios-swift/rules/post-change-build.mdc +32 -0
  49. package/presets/cursor/ios-swift/rules/state-and-viewmodels.mdc +43 -0
  50. package/presets/cursor/ios-swift/rules/swift-conventions.mdc +51 -0
  51. package/presets/cursor/ios-swift/rules/swiftui-ui.mdc +61 -0
  52. package/presets/cursor/ios-swift/rules/tests-ui.mdc +41 -0
  53. package/presets/cursor/ios-swift/rules/tests-unit.mdc +41 -0
  54. package/presets/cursor/next/commands/README.md +1 -49
  55. package/presets/cursor/next/rules/README.md +0 -47
  56. package/presets/cursor/next/rules/api-services.mdc +10 -12
  57. package/presets/cursor/next/rules/architecture-boundaries.mdc +12 -31
  58. package/presets/cursor/next/rules/code-quality-and-refactoring.mdc +4 -5
  59. package/presets/cursor/next/rules/code-review-mr.mdc +7 -14
  60. package/presets/cursor/next/rules/next-app-core.mdc +61 -18
  61. package/presets/cursor/next/rules/no-props-spread.mdc +4 -27
  62. package/presets/cursor/next/rules/playwright-agents.mdc +1 -2
  63. package/presets/cursor/next/rules/react-ui.mdc +3 -32
  64. package/presets/cursor/next/rules/store-rtk.mdc +6 -13
  65. package/presets/cursor/next/rules/tests-unit.mdc +10 -30
  66. package/CHANGELOG.md +0 -22
  67. package/presets/claude/next/agents/accessibility-reviewer.md +0 -65
  68. package/presets/claude/next/agents/api-contract-reviewer.md +0 -69
  69. package/presets/claude/next/agents/build-verifier.md +0 -64
  70. package/presets/claude/next/agents/ci-investigator.md +0 -62
  71. package/presets/claude/next/agents/code-reviewer.md +0 -62
  72. package/presets/claude/next/agents/debugger.md +0 -63
  73. package/presets/claude/next/agents/feature-developer.md +0 -27
  74. package/presets/claude/next/agents/migration-specialist.md +0 -69
  75. package/presets/claude/next/agents/performance-auditor.md +0 -68
  76. package/presets/claude/next/agents/qa-tester.md +0 -56
  77. package/presets/claude/next/agents/security-reviewer.md +0 -64
  78. package/presets/claude/next/agents/solution-architect.md +0 -70
  79. package/presets/claude/next/agents/task-analyst.md +0 -109
  80. package/presets/claude/next/agents/task-router.md +0 -70
  81. package/presets/claude/next/agents/tech-writer.md +0 -60
  82. package/presets/claude/next/agents/unit-test-generator.md +0 -37
  83. package/presets/claude/next/agents/unit-test-healer.md +0 -38
  84. package/presets/claude/next/agents/unit-test-planner.md +0 -62
  85. package/presets/claude/next/commands/feature-continue.md +0 -51
  86. package/presets/claude/next/commands/feature-start.md +0 -30
  87. package/presets/claude/next/commands/task-continue.md +0 -49
  88. package/presets/claude/next/commands/task.md +0 -50
  89. package/presets/claude/next/commands/technical-retro.md +0 -58
  90. package/presets/claude/next/hooks/chain-team-phases.sh +0 -342
  91. package/presets/claude/next/hooks/guard-shell-command.sh +0 -77
  92. package/presets/claude/next/rules/api-and-data/api-services.md +0 -57
  93. package/presets/claude/next/rules/api-and-data/http-client.md +0 -40
  94. package/presets/claude/next/rules/api-and-data/store-rtk.md +0 -65
  95. package/presets/claude/next/rules/architecture/api-public-imports.md +0 -8
  96. package/presets/claude/next/rules/architecture/architecture-boundaries.md +0 -72
  97. package/presets/claude/next/rules/architecture/feature-delivery-workflow.md +0 -79
  98. package/presets/claude/next/rules/architecture/layer-barrel-exports.md +0 -58
  99. package/presets/claude/next/rules/architecture/public-imports.md +0 -46
  100. package/presets/claude/next/rules/architecture/reference-features.md +0 -37
  101. package/presets/claude/next/rules/architecture/types-public-imports.md +0 -8
  102. package/presets/claude/next/rules/stack/arrow-functions.md +0 -45
  103. package/presets/claude/next/rules/stack/navigation-router.md +0 -61
  104. package/presets/claude/next/rules/stack/next-app-core.md +0 -33
  105. package/presets/claude/next/rules/stack/next-app-router.md +0 -36
  106. package/presets/claude/next/rules/stack/no-type-assertion.md +0 -59
  107. package/presets/claude/next/rules/stack/types-jsdoc.md +0 -37
  108. package/presets/claude/next/rules/testing/playwright-agents.md +0 -74
  109. package/presets/claude/next/rules/testing/tests-e2e-structure.md +0 -52
  110. package/presets/claude/next/rules/testing/tests-unit.md +0 -66
  111. package/presets/claude/next/rules/tooling-and-review/agent-team-intake.md +0 -15
  112. package/presets/claude/next/rules/tooling-and-review/agent-team-orchestrator.md +0 -134
  113. package/presets/claude/next/rules/tooling-and-review/code-quality.md +0 -42
  114. package/presets/claude/next/rules/tooling-and-review/code-review-mr.md +0 -67
  115. package/presets/claude/next/rules/tooling-and-review/package-manager.md +0 -11
  116. package/presets/claude/next/rules/tooling-and-review/post-change-lint.md +0 -33
  117. package/presets/claude/next/rules/ui-and-accessibility/component-styles.md +0 -56
  118. package/presets/claude/next/rules/ui-and-accessibility/css-property-order.md +0 -14
  119. package/presets/claude/next/rules/ui-and-accessibility/no-props-spread.md +0 -57
  120. package/presets/claude/next/rules/ui-and-accessibility/react-a11y-coding.md +0 -37
  121. package/presets/claude/next/rules/ui-and-accessibility/react-ui.md +0 -90
  122. package/presets/claude/next/skills/ci-investigation/SKILL.md +0 -36
  123. package/presets/claude/next/skills/code-review/SKILL.md +0 -26
  124. package/presets/claude/next/skills/debug-investigation/SKILL.md +0 -28
  125. package/presets/claude/next/skills/feature-delivery/SKILL.md +0 -15
  126. package/presets/claude/next/skills/playwright-e2e/SKILL.md +0 -31
  127. package/presets/claude/next/skills/technical-retro/SKILL.md +0 -40
  128. package/presets/claude/next/skills/unit-testing/SKILL.md +0 -32
  129. package/presets/claude/next/team/README.md +0 -46
  130. package/presets/claude/next/team/tasks/.gitkeep +0 -1
  131. package/presets/cursor/next/AGENTS.md +0 -43
  132. package/presets/cursor/next/BUGBOT.md +0 -14
  133. package/presets/cursor/next/agents/README.md +0 -158
  134. package/presets/cursor/next/agents/accessibility-reviewer.md +0 -67
  135. package/presets/cursor/next/agents/api-contract-reviewer.md +0 -71
  136. package/presets/cursor/next/agents/build-verifier.md +0 -66
  137. package/presets/cursor/next/agents/ci-investigator.md +0 -64
  138. package/presets/cursor/next/agents/code-reviewer.md +0 -64
  139. package/presets/cursor/next/agents/debugger.md +0 -64
  140. package/presets/cursor/next/agents/feature-developer.md +0 -27
  141. package/presets/cursor/next/agents/migration-specialist.md +0 -71
  142. package/presets/cursor/next/agents/performance-auditor.md +0 -70
  143. package/presets/cursor/next/agents/playwright-test-generator.md +0 -26
  144. package/presets/cursor/next/agents/playwright-test-healer.md +0 -26
  145. package/presets/cursor/next/agents/playwright-test-planner.md +0 -28
  146. package/presets/cursor/next/agents/qa-tester.md +0 -57
  147. package/presets/cursor/next/agents/security-reviewer.md +0 -66
  148. package/presets/cursor/next/agents/solution-architect.md +0 -71
  149. package/presets/cursor/next/agents/task-analyst.md +0 -112
  150. package/presets/cursor/next/agents/task-router.md +0 -71
  151. package/presets/cursor/next/agents/tech-writer.md +0 -62
  152. package/presets/cursor/next/agents/unit-test-generator.md +0 -39
  153. package/presets/cursor/next/agents/unit-test-healer.md +0 -40
  154. package/presets/cursor/next/agents/unit-test-planner.md +0 -64
  155. package/presets/cursor/next/commands/feature-continue.md +0 -19
  156. package/presets/cursor/next/commands/feature-start.md +0 -33
  157. package/presets/cursor/next/commands/task-continue.md +0 -49
  158. package/presets/cursor/next/commands/task.md +0 -50
  159. package/presets/cursor/next/commands/technical-retro.md +0 -81
  160. package/presets/cursor/next/hooks/README.md +0 -8
  161. package/presets/cursor/next/hooks/chain-team-phases.sh +0 -380
  162. package/presets/cursor/next/hooks/guard-shell-command.sh +0 -77
  163. package/presets/cursor/next/hooks.json +0 -17
  164. package/presets/cursor/next/rules/agent-team-intake.mdc +0 -14
  165. package/presets/cursor/next/rules/agent-team-orchestrator.mdc +0 -139
  166. package/presets/cursor/next/rules/api-public-imports.mdc +0 -8
  167. package/presets/cursor/next/rules/arrow-functions.mdc +0 -46
  168. package/presets/cursor/next/rules/css-property-order-stylelint.mdc +0 -16
  169. package/presets/cursor/next/rules/feature-delivery-workflow.mdc +0 -76
  170. package/presets/cursor/next/rules/http-client.mdc +0 -42
  171. package/presets/cursor/next/rules/layer-barrel-exports.mdc +0 -59
  172. package/presets/cursor/next/rules/navigation-router-stack.mdc +0 -62
  173. package/presets/cursor/next/rules/next-app-router.mdc +0 -36
  174. package/presets/cursor/next/rules/no-cross-component-styles-import.mdc +0 -58
  175. package/presets/cursor/next/rules/no-type-assertion-as-import-export.mdc +0 -60
  176. package/presets/cursor/next/rules/package-manager.mdc +0 -16
  177. package/presets/cursor/next/rules/post-change-lint.mdc +0 -38
  178. package/presets/cursor/next/rules/public-imports.mdc +0 -48
  179. package/presets/cursor/next/rules/react-a11y-coding.mdc +0 -37
  180. package/presets/cursor/next/rules/reference-features.mdc +0 -39
  181. package/presets/cursor/next/rules/technical-retro.mdc +0 -12
  182. package/presets/cursor/next/rules/types-jsdoc.mdc +0 -42
  183. package/presets/cursor/next/rules/types-public-imports.mdc +0 -8
  184. package/presets/cursor/next/skills/README.md +0 -15
  185. package/presets/cursor/next/skills/ci-investigation/SKILL.md +0 -36
  186. package/presets/cursor/next/skills/code-review/SKILL.md +0 -26
  187. package/presets/cursor/next/skills/debug-investigation/SKILL.md +0 -28
  188. package/presets/cursor/next/skills/feature-delivery/SKILL.md +0 -15
  189. package/presets/cursor/next/skills/playwright-e2e/SKILL.md +0 -31
  190. package/presets/cursor/next/skills/technical-retro/SKILL.md +0 -40
  191. package/presets/cursor/next/skills/unit-testing/SKILL.md +0 -32
  192. package/presets/cursor/next/team/README.md +0 -104
  193. package/presets/cursor/next/team/tasks/.gitkeep +0 -0
@@ -0,0 +1,43 @@
1
+ ---
2
+ description: ViewModels, состояние экрана и domain flow
3
+ paths:
4
+ - "**/{Presentation,Domain}/**/*ViewModel*.swift"
5
+ ---
6
+
7
+ # Общие принципы
8
+
9
+ - ViewModel — **единственная точка** orchestration для экрана: load, submit, validation, navigation intents.
10
+ - Хранить и отдавать во View **domain models** и UI-specific state (loading, error message, selected tab).
11
+ - `@MainActor` на ViewModel; тяжёлую работу — в use case / repository (`async`), не блокировать main thread.
12
+ - Unidirectional flow: View → intent → ViewModel → use case → state update → View.
13
+
14
+ # State
15
+
16
+ - Явный enum или struct для UI state где уместно:
17
+ - `idle`, `loading`, `loaded(Data)`, `failed(Error)` — или аналог из репо.
18
+ - Избегать множества несинхронизированных `@Published` флагов, если один enum покрывает сценарий.
19
+ - `@Observable` / `ObservableObject` — как в проекте; не смешивать стили в одной фиче без причины.
20
+
21
+ # Use cases и repositories
22
+
23
+ - ViewModel зависит от **протоколов** (`LoadOrdersUseCase`, `OrderRepository`), не от `*RepositoryImpl`.
24
+ - Один use case — одна бизнес-операция; не раздувать ViewModel сотнями строк — выносить use cases в Domain.
25
+ - Кэширование и offline — в repository/Data, не во ViewModel.
26
+
27
+ # Side effects
28
+
29
+ - Analytics, haptics, deep links — через injected services или middleware-паттерн, не hardcode синглтонов.
30
+ - `Task` в ViewModel: отмена при `deinit` / `onDisappear` где нужно (`task(id:)`, хранение `Task?` с cancel).
31
+
32
+ # Тестируемость
33
+
34
+ - Инициализатор ViewModel принимает протоколы (DI); без скрытых singleton для сети/БД.
35
+ - Бизнес-ветки покрывать unit-тестами с mock use cases.
36
+
37
+ # Требование к агенту
38
+
39
+ При создании ViewModel:
40
+ - Не вызывать `URLSession` / API client напрямую.
41
+ - Не парсить JSON и не объявлять DTO во ViewModel.
42
+ - Именование: `FeatureViewModel`, методы — глаголы (`loadOrders()`, `submitOrder()`).
43
+ - Следовать стилю существующих ViewModels в той же фиче.
@@ -1,35 +1,11 @@
1
1
  # Next.js stack — project instructions
2
2
 
3
- Краткая точка входа для Claude Code. Подробные правила модульные файлы под `rules/` (подпапки по темам).
3
+ Краткая точка входа для Claude Code. Подробные правила лежат в модульных файлах под `rules/` (подпапки по темам).
4
4
 
5
- See @rules/README.md for the full catalog and loading strategy.
5
+ See @rules/README.md for how this preset splits instructions.
6
6
 
7
7
  ## Conventions
8
8
 
9
- - **Одна тема на файл**; для больших областей — подпапки в `rules/<topic>/`.
10
- - **Session-start rules**только базовые инварианты (`next-app-core`, lint, package manager, code-quality).
11
- - **Domain-specific rules** YAML frontmatter `paths:` (подгружаются при работе с matching-файлами).
12
- - Slash-команды — в `commands/`; сценарии — в `skills/`; subagents — в `agents/`.
13
-
14
- ## Quick start
15
-
16
- | Задача | Куда смотреть |
17
- |--------|----------------|
18
- | Любая новая work-задача | `commands/task.md` + `rules/tooling-and-review/agent-team-orchestrator.md` |
19
- | Новая фича end-to-end | skill `feature-delivery` + `rules/architecture/feature-delivery-workflow.md` |
20
- | Эталонные фичи | `rules/architecture/reference-features.md` (заполнить TBD в репо) |
21
- | Стек и слои | `rules/stack/next-app-core.md` |
22
- | App Router | `rules/stack/next-app-router.md` |
23
- | A11y при кодинге UI | `rules/ui-and-accessibility/react-a11y-coding.md` |
24
- | После правок кода | `rules/tooling-and-review/post-change-lint.md` |
25
- | Валидация перед review | agent `build-verifier` |
26
- | Code review MR | skill `code-review` + `rules/tooling-and-review/code-review-mr.md` |
27
- | Техническое ретро | `commands/technical-retro.md` + skill `technical-retro` |
28
-
29
- ## Install
30
-
31
- ```bash
32
- npx @bonesofspring/ai-rules init claude --preset next
33
- ```
34
-
35
- Копирует `CLAUDE.md`, `rules/**`, `commands/**`, `agents/**`, `hooks/**`, `team/**` и др. в `.claude/` целевого репозитория.
9
+ - Держите **одну тему на файл**; для больших областей — подпапки в `rules/<topic>/`.
10
+ - Скоуп по путям проекта через frontmatter `paths:` в отдельных `.md` (см. официальные docs по path-specific rules).
11
+ - Slash-командыв `commands/`; переиспользуемые сценарии в `skills/`.
@@ -10,15 +10,5 @@
10
10
  | `skills/**` | `.claude/skills/**` (если папка есть) |
11
11
  | `agents/**` | `.claude/agents/**` (если папка есть) |
12
12
  | `hooks/**` | `.claude/hooks/**` (если папка есть) |
13
- | `team/**` | `.claude/team/**` (шаблон артефактов agent team) |
14
13
 
15
14
  Файлы правил — обычный Markdown с опциональным YAML frontmatter (`paths:` для скоупа по путям), не формат `.mdc` Cursor.
16
-
17
- ## Agent team workflow
18
-
19
- Cursor-пресет и Claude-пресет используют один и тот же смысловой workflow:
20
-
21
- - `/task <desc>` → `task-router` → `pipeline.json`;
22
- - `/task-continue <slug>` → продолжение после human gate;
23
- - `.claude/agents/*.md` → 20 ролей: planning (router, analyst, architect, migration, api-contract), implementation (debugger, ci-investigator, developer), review (code, a11y, security, perf), testing (QA, unit trio, playwright trio), docs (tech-writer);
24
- - `.claude/team/tasks/<slug>/` → handoff-артефакты (`brief.md`, `decomposition.md`, `review.md`, `migration-plan.md`, `ci-report.md`, `status.json`, …).
@@ -3,128 +3,3 @@
3
3
  Специализированные подагенты (personas) — по [документации Claude Code](https://code.claude.com/docs), если используете их в проекте.
4
4
 
5
5
  Папка копируется в `.claude/agents/` при `ai-rules init claude --preset next`, если существует.
6
-
7
- ## Planning and routing
8
-
9
- | Agent | Может менять production-код | Назначение |
10
- |-------|-----------------------------|------------|
11
- | `task-router` | no | Классифицирует intent и пишет `pipeline.json` |
12
- | `task-analyst` | no | DoR, acceptance criteria, decomposition |
13
- | `solution-architect` | no | Cross-layer design, spike, architecture.md |
14
- | `migration-specialist` | no | Phased migration plan, rollback |
15
- | `api-contract-reviewer` | no | DTO/mapper vs backend contract |
16
-
17
- ## Implementation and CI
18
-
19
- | Agent | Может менять production-код | Назначение |
20
- |-------|-----------------------------|------------|
21
- | `debugger` | yes, минимально | Root cause, debug-report.md, простые fixes |
22
- | `ci-investigator` | yes, минимально | CI failure diagnosis and minimal fix |
23
- | `build-verifier` | no | Lint, type-check, unit smoke; validation-report.md |
24
- | `feature-developer` | yes | Реализация по decomposition + unit tests |
25
-
26
- ## Review specialists
27
-
28
- | Agent | Может менять production-код | Назначение |
29
- |-------|-----------------------------|------------|
30
- | `code-reviewer` | no | Review artifact, status update |
31
- | `accessibility-reviewer` | no | A11y audit, a11y-review.md |
32
- | `security-reviewer` | no | Security audit, security-review.md |
33
- | `performance-auditor` | no | Perf audit, perf-report.md |
34
-
35
- ## Testing
36
-
37
- | Agent | Может менять production-код | Назначение |
38
- |-------|-----------------------------|------------|
39
- | `qa-tester` | tests only | Unit/e2e тесты |
40
- | `unit-test-planner` | no | Unit coverage plan |
41
- | `unit-test-generator` | tests only | Unit spec generation |
42
- | `unit-test-healer` | tests only | Failing/flaky unit fixes |
43
- | `playwright-test-planner` | no | Планирование e2e сценариев |
44
- | `playwright-test-generator` | tests only | Генерация Playwright specs |
45
- | `playwright-test-healer` | tests only | Исправление flaky/failing e2e |
46
-
47
- ## Documentation
48
-
49
- | Agent | Может менять production-код | Назначение |
50
- |-------|-----------------------------|------------|
51
- | `tech-writer` | docs only | README, changelog, ADR, documentation.md |
52
-
53
- Оркестрация: `/task`, `/task-continue`, `rules/tooling-and-review/agent-team-orchestrator.md`, артефакты `.claude/team/**`.
54
-
55
- ## Intent → pipeline (кратко)
56
-
57
- | intent | Типичный pipeline |
58
- |--------|-------------------|
59
- | `feature` | analyst → developer → reviewer → QA |
60
- | `bugfix` | debugger → developer → reviewer → QA |
61
- | `ci-fix` | ci-investigator → developer → reviewer |
62
- | `migration` | analyst → migration-specialist → developer → reviewer → QA |
63
- | `perf-audit` | performance-auditor |
64
- | `a11y` | analyst → developer → a11y-reviewer → code-reviewer |
65
- | `unit-only` | unit-planner → unit-generator (или healer) |
66
- | `e2e-only` | playwright planner → generator (или healer) |
67
- | `docs-only` | analyst → tech-writer |
68
-
69
- Опциональные шаги (router добавляет по контексту): `api-contract-reviewer`, `accessibility-reviewer`, `security-reviewer`, `performance-auditor`, `tech-writer`.
70
-
71
- ## pipeline.json reference
72
-
73
- ### Step fields
74
-
75
- | Field | Required | Description |
76
- |-------|----------|-------------|
77
- | `agent` | yes | Subagent name (kebab-case) or array for `parallel: true` |
78
- | `label` | yes | Short human-readable step name |
79
- | `scope` | no | e.g. `unit-in-dev`, `e2e-only`, `regression`, `full` |
80
- | `skipIf` | no | `debugger.fixed` \| `ci-investigator.resolved` |
81
- | `parallel` | no | When `true` and `agent` is array — invoke all in one turn |
82
-
83
- ### Minimal template
84
-
85
- ```json
86
- {
87
- "slug": "<slug>",
88
- "intent": "feature",
89
- "summary": "One-line task summary",
90
- "steps": [
91
- { "agent": "task-analyst", "label": "Clarify and decompose" },
92
- { "agent": "feature-developer", "label": "Implement + unit tests", "scope": "unit-in-dev" },
93
- { "agent": "build-verifier", "label": "Lint, type-check, unit smoke" },
94
- { "agent": "code-reviewer", "label": "Code review" }
95
- ],
96
- "humanGates": ["after:task-analyst"],
97
- "autoChain": true,
98
- "skipped": []
99
- }
100
- ```
101
-
102
- ### Example: bugfix skipIf
103
-
104
- ```json
105
- {
106
- "intent": "bugfix",
107
- "steps": [
108
- { "agent": "debugger", "label": "Root cause" },
109
- { "agent": "feature-developer", "label": "Fix if needed", "skipIf": "debugger.fixed" },
110
- { "agent": "build-verifier", "label": "Validation" },
111
- { "agent": "code-reviewer", "label": "Review" }
112
- ],
113
- "humanGates": []
114
- }
115
- ```
116
-
117
- ### Initial status.json
118
-
119
- ```json
120
- {
121
- "slug": "<slug>",
122
- "intent": "<intent>",
123
- "pipelineIndex": 0,
124
- "currentAgent": "<steps[0].agent>",
125
- "phase": "executing",
126
- "state": "in_progress",
127
- "awaitingHumanGate": false,
128
- "updatedAt": "<ISO8601>"
129
- }
130
- ```
@@ -1,13 +1,5 @@
1
1
  # `.claude/commands` (preset next)
2
2
 
3
- Определения slash-команд и on-demand сценариев. Копируются в `.claude/commands/` при `ai-rules init claude --preset next`.
3
+ Определения slash-команд для проекта. Копируются в `.claude/commands/` при `ai-rules init claude --preset next`.
4
4
 
5
- | Файл | Назначение |
6
- |------|------------|
7
- | `task.md` | Единая точка входа: router → dynamic pipeline → первый agent |
8
- | `task-continue.md` | Продолжение после human gate / паузы по `pipeline.json` |
9
- | `feature-start.md` | Legacy analyst-only старт без router |
10
- | `feature-continue.md` | Legacy продолжение; для `pipeline.json` делегирует смысл `/task-continue` |
11
- | `technical-retro.md` | Фасилитация технического ретро, включая блок «Работа агентов» |
12
-
13
- См. также корневой `README.md` пресета — у Claude Code помимо `rules/` и `commands/` используются `skills/`, `agents/`, `hooks/`, `team/`.
5
+ См. также корневой `README.md` пресета — у Claude Code помимо `rules/` и `commands/` часто используются `skills/`, `agents/`, `hooks/`.
@@ -1,8 +1,5 @@
1
1
  # `.claude/hooks` (preset next)
2
2
 
3
- | File | Purpose |
4
- |------|---------|
5
- | `chain-team-phases.sh` | Pipeline chaining after subagent stop; `skipIf`, parallel, `validation_failed`, `retryAfterFix` |
6
- | `guard-shell-command.sh` | Destructive git / package-manager guard |
3
+ Событийные хуки автоматизации Claude Code — по документации продукта, если включены в репозитории.
7
4
 
8
- Wire into Claude Code hooks per project documentation when enabling agent team auto-chain.
5
+ Папка копируется в `.claude/hooks/` при `ai-rules init claude --preset next`, если существует.
@@ -1,30 +1,16 @@
1
1
  # `.claude/rules` (preset next)
2
2
 
3
- В Claude Code все `.md` под `rules/` **обнаруживаются рекурсивно**. Правила без YAML frontmatter загружаются **в начале сессии**; с `paths:` — **только при работе** с matching-файлами.
3
+ В Claude Code все `.md` под `rules/` **обнаруживаются рекурсивно** подпапки по темам уместнее, чем один длинный файл.
4
4
 
5
- ## Loading strategy
5
+ Соответствие темам из пресета Cursor (для переноса смысла из `.mdc`):
6
6
 
7
- - **Session start (no `paths:`):** `next-app-core`, `post-change-lint`, `package-manager`, `code-quality`
8
- - **On-demand (`paths:` or via commands):** `agent-team-intake`, orchestrator, architecture, imports, UI, tests, feature-delivery-workflow, reference-features, next-app-router, react-a11y-coding
9
- - **Skills:** long workflows (`feature-delivery`, `code-review`, …)
7
+ | Папка | О чём |
8
+ |-------|--------|
9
+ | `stack/` | Next.js, React, TypeScript |
10
+ | `architecture/` | границы слоёв, модули |
11
+ | `api-and-data/` | сервисы, API, данные |
12
+ | `testing/` | unit, e2e, Playwright |
13
+ | `ui-and-accessibility/` | UI, a11y, без spread props там, где это правило команды |
14
+ | `tooling-and-review/` | качество кода, ревью MR |
10
15
 
11
- ## С чего начать
12
-
13
- - **`commands/task.md`** — router → `pipeline.json` → agents
14
- - **`architecture/reference-features.md`** — заполнить TBD после init
15
- - **`architecture/feature-delivery-workflow.md`** — порядок слоёв
16
-
17
- ## Каталог (новые и ключевые)
18
-
19
- | Файл | Назначение |
20
- |------|------------|
21
- | `architecture/reference-features.md` | Эталонные пути UI/store/API |
22
- | `stack/next-app-router.md` | App Router, RSC |
23
- | `ui-and-accessibility/react-a11y-coding.md` | A11y при кодинге UI |
24
- | `architecture/feature-delivery-workflow.md` | Сквозной чеклист (paths) |
25
- | `tooling-and-review/agent-team-orchestrator.md` | Pipeline, build-verifier, parallel |
26
- | `agents/build-verifier.md` | Validation gate agent |
27
-
28
- Полный список — см. подпапки `architecture/`, `stack/`, `api-and-data/`, `ui-and-accessibility/`, `testing/`, `tooling-and-review/`.
29
-
30
- **Коллизии:** импорт типов и API — **`architecture/public-imports.md`**.
16
+ Добавляйте сюда `.md` файлы с осмысленными именами (`testing.md`, `api-design.md`, …).
@@ -1,9 +1,3 @@
1
1
  # API and data
2
2
 
3
- HTTP-транспорт, сервисы, Redux store.
4
-
5
- | Файл | Содержание | `paths:` |
6
- |------|------------|----------|
7
- | `http-client.md` | Единый HTTP-клиент, ошибки, связь со store | `app/src/lib/clients/**`, `app/src/api/clients/**` |
8
- | `api-services.md` | Сервисы, мапперы, DTO → домен | `app/src/api/services/**` |
9
- | `store-rtk.md` | Redux Toolkit, thunk'и, типизация | `app/src/store/**` |
3
+ Конвенции сервисов, API-слоя и работы с данными.
@@ -1,10 +1,3 @@
1
- # Architecture rules
1
+ # Architecture
2
2
 
3
- | Файл | Назначение |
4
- |------|------------|
5
- | `public-imports.md` | Импорты `@/types`, `@/types/enums`, `@/api` (вне `app/src/api/**`) |
6
- | `types-public-imports.md`, `api-public-imports.md` | Deprecated stubs → `public-imports.md` |
7
- | `architecture-boundaries.md` | Границы UI / store / API, порты‑адаптеры |
8
- | `layer-barrel-exports.md` | Двухуровневые barrel для слоёв с public API |
9
- | `feature-delivery-workflow.md` | Сквозной чеклист новой фичи |
10
- | `reference-features.md` | Эталонные пути UI/store/API/types |
3
+ Границы модулей, слоёв и зависимостей (аналог темы architecture / boundaries в Cursor-пресете).
@@ -1,11 +1,3 @@
1
1
  # Stack (Next.js, React, TypeScript)
2
2
 
3
- Правила уровня фреймворка и языка.
4
-
5
- | Файл | Содержание | Загрузка |
6
- |------|------------|----------|
7
- | `next-app-core.md` | Стек, структура `app/`, слои, принципы агента | session start |
8
- | `arrow-functions.md` | Стрелочный синтаксис | session start |
9
- | `no-type-assertion.md` | Ограничение `as` на границах модулей | session start |
10
- | `navigation-router.md` | Next vs React Router — выбор по репозиторию | session start |
11
- | `types-jsdoc.md` | JSDoc в `app/src/types` | `paths: app/src/types/**/*.ts` |
3
+ Правила уровня фреймворка и языка для пресета `next`.
@@ -1,11 +1,3 @@
1
1
  # Testing
2
2
 
3
- Unit, e2e, Playwright agents.
4
-
5
- | Файл | Содержание | Загрузка |
6
- |------|------------|----------|
7
- | `playwright-agents.md` | Planner / generator / healer — структура e2e | session start |
8
- | `tests-unit.md` | Unit/integration, именование на русском | `paths: app/src/**/*.spec.*`, `*.test.*` |
9
- | `tests-e2e-structure.md` | `*.cases.md`, page objects, data-testid | `paths: app/__tests__/e2e/**` |
10
-
11
- См. также `.claude/agents/playwright-test-*.md` после `ai-rules init`.
3
+ Unit-тесты, e2e, структура Playwright-агентов — по отдельным `.md` при необходимости.
@@ -1,16 +1,3 @@
1
1
  # Tooling and review
2
2
 
3
- Lint, package manager, качество кода, code review MR.
4
-
5
- | Файл | Содержание |
6
- |------|------------|
7
- | `package-manager.md` | yarn / pnpm / npm / bun — определить по lockfile |
8
- | `agent-team-intake.md` | Когда предлагать `/task` и router pipeline |
9
- | `agent-team-orchestrator.md` | Dynamic agent team workflow: router, pipeline, gates |
10
- | `post-change-lint.md` | Обязательный `lint:js` + `lint:css` после изменений |
11
- | `code-quality.md` | Boy scout rule, рефакторинг, ESLint |
12
- | `code-review-mr.md` | Чеклист ревью merge request |
13
-
14
- Все — **session start**.
15
-
16
- On-demand: **`commands/technical-retro.md`** (фасилитация ретро, не грузится как rule).
3
+ Рефакторинг, качество кода, процесс ревью MR.
@@ -1,10 +1,3 @@
1
1
  # UI and accessibility
2
2
 
3
- Компоненты, стили, пропсы.
4
-
5
- | Файл | Содержание | Загрузка |
6
- |------|------------|----------|
7
- | `no-props-spread.md` | Явные пропсы, без `{...props}` | session start |
8
- | `component-styles.md` | Колокация стилей, `Root` | session start |
9
- | `css-property-order.md` | Порядок CSS (Stylelint idiomatic-order) | session start |
10
- | `react-ui.md` | Структура компонентов, `.data.ts`, хуки | `paths: app/src/ui/**` |
3
+ Компоненты, стили, доступность, паттерны React UI.
@@ -1,15 +1,5 @@
1
1
  # `.claude/skills` (preset next)
2
2
 
3
- [Skills](https://code.claude.com/docs/en/skills) в Claude Code — сценарии, которые подгружаются по необходимости, а не в каждой сессии целиком. Они синхронизированы по смыслу с `.cursor/skills` из Cursor-пресета.
4
-
5
- | Skill | Когда использовать |
6
- |-------|--------------------|
7
- | `feature-delivery` | End-to-end feature work across types, API, store, UI, tests |
8
- | `code-review` | MR/diff review using project architecture and test standards |
9
- | `debug-investigation` | Reproducing and fixing bugs with root-cause evidence |
10
- | `ci-investigation` | Diagnosing and fixing failing CI checks on PRs/branches |
11
- | `unit-testing` | Planning, generating, or healing unit test coverage |
12
- | `playwright-e2e` | Planning, generating, or healing Playwright e2e coverage |
13
- | `technical-retro` | Technical retrospective for a task, sprint, incident, or agent pipeline |
3
+ [Skills](https://code.claude.com/docs/en/skills) в Claude Code — сценарии, которые подгружаются по необходимости, а не в каждой сессии целиком. Добавьте сюда `SKILL.md` или структуру skills по документации инструмента.
14
4
 
15
5
  Папка копируется в `.claude/skills/` при `ai-rules init claude --preset next`, если существует.
@@ -0,0 +1,17 @@
1
+ # iOS Swift preset (Cursor)
2
+
3
+ Правила для разработки iOS-приложений на Swift (SwiftUI, MVVM/Clean Architecture).
4
+
5
+ Установка:
6
+
7
+ ```bash
8
+ npx @bonesofspring/ai-rules init cursor --preset ios-swift
9
+ ```
10
+
11
+ См. `rules/README.md` — карта `.mdc` и бюджет alwaysApply.
12
+
13
+ Ключевые requestable-правила доставки:
14
+
15
+ - `feature-delivery-workflow.mdc` — порядок слоёв при реализации фичи
16
+ - `post-change-build.mdc` — сборка / lint после правок Swift
17
+ - `code-review-mr.mdc` — ревью MR/diff (не always-on)
@@ -0,0 +1,3 @@
1
+ # Cursor commands (ios-swift preset)
2
+
3
+ Place command definitions for this preset here. They are copied to `.cursor/commands` when you run `ai-rules init cursor --preset ios-swift`.
@@ -0,0 +1,33 @@
1
+ ### Разница .mdc и .md в .cursor/rules
2
+
3
+ #### .md
4
+ Обычный markdown‑файл. Cursor видит его как документацию/контент, но не как правило, которое нужно автоматически применять.
5
+
6
+ #### .mdc
7
+ Специальный формат Cursor Rule:
8
+ - сверху обязателен YAML‑frontmatter с полями вроде description, globs, alwaysApply;
9
+ - файл лежит в .cursor/rules/;
10
+ - Cursor интерпретирует его как конфигурацию поведения ассистента для этого репо (автоматически подмешивает содержимое в контекст, когда правило подходит).
11
+
12
+ - То есть .mdc = “markdown + config для Cursor”, .md = просто текст без управляющего смысла для ассистента.
13
+
14
+ ### Пресет ios-swift — карта правил
15
+
16
+ **alwaysApply budget:** целевой потолок — **≤3** always-on правила и **≤130** строк тела (после YAML) суммарно. Новые alwaysApply только вместе с сокращением существующего бюджета.
17
+
18
+ | Файл | Скоуп | Тема |
19
+ |------|--------|------|
20
+ | `ios-app-core.mdc` | always | Стек, структура проекта, tips агента |
21
+ | `architecture-boundaries.mdc` | always | Границы Presentation / Domain / Data, DI |
22
+ | `code-quality-and-refactoring.mdc` | always | Качество и лёгкий refactor |
23
+ | `code-review-mr.mdc` | requestable / on review | Ревью MR/diff/PR |
24
+ | `feature-delivery-workflow.mdc` | requestable / on feature | Чеклист доставки фичи |
25
+ | `post-change-build.mdc` | requestable / after Swift edits | Сборка, SwiftLint/Format |
26
+ | `swiftui-ui.mdc` | Presentation, DesignSystem | SwiftUI, a11y, Design System |
27
+ | `networking-services.mdc` | Data, Network | API, DTO, mappers |
28
+ | `state-and-viewmodels.mdc` | ViewModels | State, use cases, DI |
29
+ | `swift-conventions.mdc` | `**/*.swift` | Swift style, concurrency |
30
+ | `tests-unit.mdc` | `*Tests` | Unit / integration |
31
+ | `tests-ui.mdc` | `*UITests` | XCUITest |
32
+
33
+ Установка: `npx @bonesofspring/ai-rules init cursor --preset ios-swift`
@@ -0,0 +1,34 @@
1
+ ---
2
+ description: Архитектурные границы и правила зависимостей iOS приложения
3
+ alwaysApply: true
4
+ ---
5
+
6
+ # Границы между слоями
7
+
8
+ - **Presentation** (Views, ViewModels, DesignSystem):
9
+ - Может: Domain (entities, use case protocols), DesignSystem, Core (без UI).
10
+ - Не должен: импортировать Data (репозитории, DTO, API-клиенты); знать HTTP/Codable/эндпоинты; маппить DTO → domain.
11
+ - **Domain**:
12
+ - Может: Core (базовые типы, протоколы).
13
+ - Не должен: импортировать SwiftUI, UIKit, сеть; знать конкретные реализации репозиториев.
14
+ - **Data**:
15
+ - Может: Domain (протоколы, entities), Core.
16
+ - Не должен: импортировать SwiftUI/UIKit; зависеть от View/ViewModel.
17
+
18
+ # Зависимости и модули
19
+
20
+ - Направление: **Presentation → Domain ← Data**.
21
+ - Переиспользуемое — в Core / DesignSystem; к другой фиче — только **public API** (протокол, facade, coordinator), не deep-import.
22
+ - SPM: Domain не линкуется с Data; реализации Data подключаются через DI в `App/`.
23
+ - Раскладка фичи — как в `ios-app-core.mdc` / соседних `Features/*` репо (Presentation / Domain / Data + тесты).
24
+
25
+ # DI и composition root
26
+
27
+ - Сборка графа — в `App/` (или `DI/` / CompositionRoot), не во View.
28
+ - ViewModel получает **протоколы** (use case / repository), не конкретные Data-типы.
29
+ - Preview и тесты — mock/stub реализаций.
30
+
31
+ # Требование к агенту
32
+
33
+ - Файлы — в соответствующих слоях; протоколы репозиториев в Domain, реализации в Data.
34
+ - Не «коротить» слои (API из View «ради скорости»).
@@ -0,0 +1,39 @@
1
+ ---
2
+ description: Поддержка и улучшение качества кода и архитектуры iOS
3
+ alwaysApply: true
4
+ ---
5
+
6
+ # Поддержка существующего стиля
7
+
8
+ - Новые изменения должны:
9
+ - следовать существующим паттернам (имена, структура, DI, error handling);
10
+ - минимизировать «стилистический шум» (лишний reformat, rename без нужды).
11
+ - Перед новым решением:
12
+ - искать аналог в коде и **повторять подход**;
13
+ - проверять DesignSystem и существующие компоненты перед новым UI-контролом;
14
+ - обращаться к другим фичам только через public API (протоколы, facades).
15
+
16
+ # Рефакторинг при изменениях
17
+
18
+ - Допустим лёгкий refactor, если он:
19
+ - уменьшает дублирование;
20
+ - повышает читаемость;
21
+ - не ломает публичные контракты.
22
+ - Примеры:
23
+ - вынести дублирующийся mapper или validation;
24
+ - заменить force unwrap на безопасные конструкции;
25
+ - разбить перегруженный ViewModel на use cases;
26
+ - заменить magic numbers/colors на design tokens;
27
+ - убрать прямую зависимость View от Data в пользу протокола.
28
+
29
+ # Ограничения
30
+
31
+ - Не делать «большой» рефакторинг при точечной задаче:
32
+ - не менять структуру модулей/таргетов;
33
+ - не переименовывать public API без запроса.
34
+ - Крупные изменения — минимальными шагами, код остаётся компилируемым.
35
+
36
+ # Требование к агенту
37
+
38
+ - **Boy scout rule:** оставлять модуль чуть лучше (безопасность optional, typed errors, tests).
39
+ - Не жертвовать слоями ради краткости.
@@ -0,0 +1,42 @@
1
+ ---
2
+ description: Требования к code review для iOS merge requests. Use when reviewing MR/diff/PR, evaluating a branch, or when the user asks for code review.
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # Code review merge requests
7
+
8
+ On-demand правило для review-потоков (не always-on).
9
+
10
+ - **Когда применять**
11
+ - Запросы: «проведи ревью», «оцени MR/ветку/дифф», «посмотри изменения».
12
+ - Опираться на локальный репозиторий: ветка, `git diff`, открытые файлы.
13
+
14
+ - **Что обязан проверить агент**
15
+ - **Архитектура и слои** (`architecture-boundaries.mdc`, `ios-app-core.mdc`):
16
+ - View не вызывает API и не знает DTO.
17
+ - ViewModel не зависит от Data-реализаций напрямую.
18
+ - Domain не импортирует SwiftUI/UIKit.
19
+ - Data не тянет Presentation.
20
+ - **Зависимости и модули**:
21
+ - DI через протоколы; composition root в App.
22
+ - Нет deep-import между фичами.
23
+ - Файлы в правильных слоях (`Presentation`, `Domain`, `Data`, `DesignSystem`).
24
+ - **Swift и concurrency** (`swift-conventions.mdc`):
25
+ - `@MainActor` на UI; нет необоснованных force unwrap.
26
+ - Typed errors; корректная отмена Task где нужно.
27
+ - **UI** (`swiftui-ui.mdc`):
28
+ - Тонкие Views; Design System tokens; accessibility identifiers для тестируемых элементов.
29
+ - **Сеть и data** (`networking-services.mdc`):
30
+ - DTO отделены от domain; mappers покрывают edge cases.
31
+ - **Тесты**:
32
+ - Нетривиальная логика — unit (`tests-unit.mdc`); пользовательские потоки — UI (`tests-ui.mdc`).
33
+ - Указать, какие тесты добавить или обновить.
34
+
35
+ - **Глубина и формат**
36
+ - Фокус на **диффе MR**, не на всём проекте.
37
+ - Сначала обзор (цель MR, риски), затем конкретные комментарии с файлом и предложением fix по паттернам репо.
38
+ - Без «больших рефакторингов» без запроса (`code-quality-and-refactoring.mdc`).
39
+
40
+ - **Ограничения**
41
+ - Не выдумывать метаданные CI/MR с хостинга без локальных данных.
42
+ - Boy scout rule в рамках MR.