@bonesofspring/ai-rules 0.2.1 → 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.
- package/README.md +10 -20
- package/bin/cli.js +73 -260
- package/package.json +4 -13
- package/presets/claude/ios-swift/CLAUDE.md +27 -0
- package/presets/claude/ios-swift/README.md +29 -0
- package/presets/claude/ios-swift/commands/README.md +3 -0
- package/presets/claude/ios-swift/rules/README.md +44 -0
- package/presets/claude/ios-swift/rules/api-and-data/README.md +9 -0
- package/presets/claude/ios-swift/rules/api-and-data/networking.md +49 -0
- package/presets/claude/ios-swift/rules/architecture/README.md +10 -0
- package/presets/claude/ios-swift/rules/architecture/boundaries.md +33 -0
- package/presets/claude/ios-swift/rules/architecture/feature-delivery.md +60 -0
- package/presets/claude/ios-swift/rules/stack/README.md +10 -0
- package/presets/claude/ios-swift/rules/stack/ios-app-core.md +42 -0
- package/presets/claude/ios-swift/rules/stack/swift-conventions.md +51 -0
- package/presets/claude/ios-swift/rules/testing/README.md +10 -0
- package/presets/claude/ios-swift/rules/testing/ui.md +41 -0
- package/presets/claude/ios-swift/rules/testing/unit.md +41 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/README.md +11 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/code-quality.md +38 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/code-review.md +41 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/post-change-build.md +31 -0
- package/presets/claude/ios-swift/rules/ui-and-accessibility/README.md +10 -0
- package/presets/claude/ios-swift/rules/ui-and-accessibility/swiftui.md +61 -0
- package/presets/claude/ios-swift/rules/ui-and-accessibility/viewmodels.md +43 -0
- package/presets/claude/next/CLAUDE.md +5 -33
- package/presets/claude/next/README.md +0 -10
- package/presets/claude/next/agents/README.md +0 -126
- package/presets/claude/next/agents/playwright-test-generator.md +65 -16
- package/presets/claude/next/agents/playwright-test-healer.md +51 -16
- package/presets/claude/next/agents/playwright-test-planner.md +55 -15
- package/presets/claude/next/commands/README.md +2 -10
- package/presets/claude/next/hooks/README.md +2 -5
- package/presets/claude/next/rules/README.md +11 -29
- package/presets/claude/next/rules/api-and-data/README.md +1 -7
- package/presets/claude/next/rules/architecture/README.md +2 -10
- package/presets/claude/next/rules/stack/README.md +1 -10
- package/presets/claude/next/rules/testing/README.md +1 -9
- package/presets/claude/next/rules/tooling-and-review/README.md +1 -14
- package/presets/claude/next/rules/ui-and-accessibility/README.md +1 -7
- package/presets/claude/next/skills/README.md +1 -11
- package/presets/cursor/ios-swift/README.md +17 -0
- package/presets/cursor/ios-swift/commands/README.md +3 -0
- package/presets/cursor/ios-swift/rules/README.md +33 -0
- package/presets/cursor/ios-swift/rules/architecture-boundaries.mdc +34 -0
- package/presets/cursor/ios-swift/rules/code-quality-and-refactoring.mdc +39 -0
- package/presets/cursor/ios-swift/rules/code-review-mr.mdc +42 -0
- package/presets/cursor/ios-swift/rules/feature-delivery-workflow.mdc +61 -0
- package/presets/cursor/ios-swift/rules/ios-app-core.mdc +43 -0
- package/presets/cursor/ios-swift/rules/networking-services.mdc +49 -0
- package/presets/cursor/ios-swift/rules/post-change-build.mdc +32 -0
- package/presets/cursor/ios-swift/rules/state-and-viewmodels.mdc +43 -0
- package/presets/cursor/ios-swift/rules/swift-conventions.mdc +51 -0
- package/presets/cursor/ios-swift/rules/swiftui-ui.mdc +61 -0
- package/presets/cursor/ios-swift/rules/tests-ui.mdc +41 -0
- package/presets/cursor/ios-swift/rules/tests-unit.mdc +41 -0
- package/presets/cursor/next/commands/README.md +1 -49
- package/presets/cursor/next/rules/README.md +0 -67
- package/presets/cursor/next/rules/api-services.mdc +10 -12
- package/presets/cursor/next/rules/architecture-boundaries.mdc +12 -31
- package/presets/cursor/next/rules/code-quality-and-refactoring.mdc +4 -5
- package/presets/cursor/next/rules/code-review-mr.mdc +40 -21
- package/presets/cursor/next/rules/next-app-core.mdc +61 -18
- package/presets/cursor/next/rules/no-props-spread.mdc +4 -27
- package/presets/cursor/next/rules/playwright-agents.mdc +1 -2
- package/presets/cursor/next/rules/react-ui.mdc +3 -33
- package/presets/cursor/next/rules/store-rtk.mdc +6 -13
- package/presets/cursor/next/rules/tests-unit.mdc +10 -30
- package/CHANGELOG.md +0 -22
- package/CONTRIBUTING.md +0 -102
- package/fragments/BUGBOT.md +0 -23
- package/presets/claude/next/BUGBOT.md +0 -16
- package/presets/claude/next/agents/accessibility-reviewer.md +0 -65
- package/presets/claude/next/agents/api-contract-reviewer.md +0 -69
- package/presets/claude/next/agents/build-verifier.md +0 -64
- package/presets/claude/next/agents/ci-investigator.md +0 -62
- package/presets/claude/next/agents/code-reviewer.md +0 -62
- package/presets/claude/next/agents/debugger.md +0 -63
- package/presets/claude/next/agents/feature-developer.md +0 -27
- package/presets/claude/next/agents/migration-specialist.md +0 -69
- package/presets/claude/next/agents/performance-auditor.md +0 -68
- package/presets/claude/next/agents/qa-tester.md +0 -56
- package/presets/claude/next/agents/security-reviewer.md +0 -64
- package/presets/claude/next/agents/solution-architect.md +0 -70
- package/presets/claude/next/agents/task-analyst.md +0 -109
- package/presets/claude/next/agents/task-router.md +0 -94
- package/presets/claude/next/agents/tech-writer.md +0 -60
- package/presets/claude/next/agents/unit-test-generator.md +0 -37
- package/presets/claude/next/agents/unit-test-healer.md +0 -38
- package/presets/claude/next/agents/unit-test-planner.md +0 -62
- package/presets/claude/next/commands/feature-continue.md +0 -51
- package/presets/claude/next/commands/feature-start.md +0 -30
- package/presets/claude/next/commands/task-continue.md +0 -49
- package/presets/claude/next/commands/task.md +0 -50
- package/presets/claude/next/commands/technical-retro.md +0 -58
- package/presets/claude/next/hooks/chain-team-phases.sh +0 -342
- package/presets/claude/next/hooks/guard-shell-command.sh +0 -77
- package/presets/claude/next/hooks.json +0 -17
- package/presets/claude/next/rules/api-and-data/api-services.md +0 -57
- package/presets/claude/next/rules/api-and-data/http-client.md +0 -40
- package/presets/claude/next/rules/api-and-data/store-rtk.md +0 -65
- package/presets/claude/next/rules/architecture/api-public-imports.md +0 -8
- package/presets/claude/next/rules/architecture/architecture-boundaries-ui.md +0 -15
- package/presets/claude/next/rules/architecture/architecture-boundaries.md +0 -75
- package/presets/claude/next/rules/architecture/feature-delivery-workflow.md +0 -79
- package/presets/claude/next/rules/architecture/layer-barrel-exports.md +0 -58
- package/presets/claude/next/rules/architecture/public-imports.md +0 -46
- package/presets/claude/next/rules/architecture/reference-features.md +0 -37
- package/presets/claude/next/rules/architecture/types-public-imports.md +0 -8
- package/presets/claude/next/rules/stack/arrow-functions.md +0 -45
- package/presets/claude/next/rules/stack/navigation-router-ui.md +0 -15
- package/presets/claude/next/rules/stack/navigation-router.md +0 -62
- package/presets/claude/next/rules/stack/next-app-core.md +0 -33
- package/presets/claude/next/rules/stack/next-app-router.md +0 -36
- package/presets/claude/next/rules/stack/no-type-assertion.md +0 -59
- package/presets/claude/next/rules/stack/types-jsdoc.md +0 -37
- package/presets/claude/next/rules/testing/playwright-agents.md +0 -74
- package/presets/claude/next/rules/testing/tests-e2e-structure.md +0 -52
- package/presets/claude/next/rules/testing/tests-unit.md +0 -66
- package/presets/claude/next/rules/tooling-and-review/agent-team-intake.md +0 -15
- package/presets/claude/next/rules/tooling-and-review/agent-team-orchestrator.md +0 -140
- package/presets/claude/next/rules/tooling-and-review/code-quality.md +0 -42
- package/presets/claude/next/rules/tooling-and-review/code-review-mr.md +0 -30
- package/presets/claude/next/rules/tooling-and-review/package-manager.md +0 -11
- package/presets/claude/next/rules/tooling-and-review/post-change-lint.md +0 -33
- package/presets/claude/next/rules/ui-and-accessibility/css-property-order.md +0 -14
- package/presets/claude/next/rules/ui-and-accessibility/no-props-spread.md +0 -57
- package/presets/claude/next/rules/ui-and-accessibility/react-a11y-coding.md +0 -37
- package/presets/claude/next/rules/ui-and-accessibility/react-ui.md +0 -91
- package/presets/claude/next/skills/ci-investigation/SKILL.md +0 -36
- package/presets/claude/next/skills/code-review/SKILL.md +0 -26
- package/presets/claude/next/skills/debug-investigation/SKILL.md +0 -28
- package/presets/claude/next/skills/feature-delivery/SKILL.md +0 -15
- package/presets/claude/next/skills/playwright-e2e/SKILL.md +0 -31
- package/presets/claude/next/skills/technical-retro/SKILL.md +0 -40
- package/presets/claude/next/skills/unit-testing/SKILL.md +0 -32
- package/presets/claude/next/team/README.md +0 -47
- package/presets/claude/next/team/fixtures/bugfix-standard.json +0 -15
- package/presets/claude/next/team/fixtures/feature-full.json +0 -16
- package/presets/claude/next/team/fixtures/feature-light.json +0 -17
- package/presets/claude/next/team/tasks/.gitkeep +0 -1
- package/presets/cursor/next/AGENTS.md +0 -36
- package/presets/cursor/next/BUGBOT.md +0 -16
- package/presets/cursor/next/agents/README.md +0 -159
- package/presets/cursor/next/agents/accessibility-reviewer.md +0 -67
- package/presets/cursor/next/agents/api-contract-reviewer.md +0 -71
- package/presets/cursor/next/agents/build-verifier.md +0 -66
- package/presets/cursor/next/agents/ci-investigator.md +0 -64
- package/presets/cursor/next/agents/code-reviewer.md +0 -64
- package/presets/cursor/next/agents/debugger.md +0 -64
- package/presets/cursor/next/agents/feature-developer.md +0 -27
- package/presets/cursor/next/agents/migration-specialist.md +0 -71
- package/presets/cursor/next/agents/performance-auditor.md +0 -70
- package/presets/cursor/next/agents/playwright-test-generator.md +0 -26
- package/presets/cursor/next/agents/playwright-test-healer.md +0 -26
- package/presets/cursor/next/agents/playwright-test-planner.md +0 -28
- package/presets/cursor/next/agents/qa-tester.md +0 -57
- package/presets/cursor/next/agents/security-reviewer.md +0 -66
- package/presets/cursor/next/agents/solution-architect.md +0 -71
- package/presets/cursor/next/agents/task-analyst.md +0 -112
- package/presets/cursor/next/agents/task-router.md +0 -95
- package/presets/cursor/next/agents/tech-writer.md +0 -62
- package/presets/cursor/next/agents/unit-test-generator.md +0 -39
- package/presets/cursor/next/agents/unit-test-healer.md +0 -40
- package/presets/cursor/next/agents/unit-test-planner.md +0 -64
- package/presets/cursor/next/commands/feature-continue.md +0 -19
- package/presets/cursor/next/commands/feature-start.md +0 -33
- package/presets/cursor/next/commands/task-continue.md +0 -49
- package/presets/cursor/next/commands/task.md +0 -50
- package/presets/cursor/next/commands/technical-retro.md +0 -81
- package/presets/cursor/next/hooks/README.md +0 -8
- package/presets/cursor/next/hooks/chain-team-phases.sh +0 -380
- package/presets/cursor/next/hooks/guard-shell-command.sh +0 -77
- package/presets/cursor/next/hooks.json +0 -17
- package/presets/cursor/next/rules/agent-team-intake.mdc +0 -14
- package/presets/cursor/next/rules/agent-team-orchestrator.mdc +0 -139
- package/presets/cursor/next/rules/api-public-imports.mdc +0 -8
- package/presets/cursor/next/rules/architecture-boundaries-ui.mdc +0 -15
- package/presets/cursor/next/rules/arrow-functions.mdc +0 -46
- package/presets/cursor/next/rules/css-property-order-stylelint.mdc +0 -16
- package/presets/cursor/next/rules/feature-delivery-workflow.mdc +0 -76
- package/presets/cursor/next/rules/http-client.mdc +0 -42
- package/presets/cursor/next/rules/layer-barrel-exports.mdc +0 -59
- package/presets/cursor/next/rules/navigation-router-stack.mdc +0 -62
- package/presets/cursor/next/rules/navigation-router-ui.mdc +0 -16
- package/presets/cursor/next/rules/next-app-router.mdc +0 -36
- package/presets/cursor/next/rules/no-cross-component-styles-import.mdc +0 -8
- package/presets/cursor/next/rules/no-type-assertion-as-import-export.mdc +0 -60
- package/presets/cursor/next/rules/package-manager.mdc +0 -16
- package/presets/cursor/next/rules/post-change-lint.mdc +0 -38
- package/presets/cursor/next/rules/public-imports.mdc +0 -48
- package/presets/cursor/next/rules/react-a11y-coding.mdc +0 -37
- package/presets/cursor/next/rules/reference-features.mdc +0 -39
- package/presets/cursor/next/rules/technical-retro.mdc +0 -12
- package/presets/cursor/next/rules/types-jsdoc.mdc +0 -42
- package/presets/cursor/next/rules/types-public-imports.mdc +0 -8
- package/presets/cursor/next/skills/README.md +0 -15
- package/presets/cursor/next/skills/ci-investigation/SKILL.md +0 -36
- package/presets/cursor/next/skills/code-review/SKILL.md +0 -26
- package/presets/cursor/next/skills/debug-investigation/SKILL.md +0 -28
- package/presets/cursor/next/skills/feature-delivery/SKILL.md +0 -15
- package/presets/cursor/next/skills/playwright-e2e/SKILL.md +0 -31
- package/presets/cursor/next/skills/technical-retro/SKILL.md +0 -40
- package/presets/cursor/next/skills/unit-testing/SKILL.md +0 -32
- package/presets/cursor/next/team/README.md +0 -105
- package/presets/cursor/next/team/fixtures/bugfix-standard.json +0 -15
- package/presets/cursor/next/team/fixtures/feature-full.json +0 -16
- package/presets/cursor/next/team/fixtures/feature-light.json +0 -17
- package/presets/cursor/next/team/tasks/.gitkeep +0 -0
- package/scripts/README.md +0 -84
- package/scripts/golden-prompts.json +0 -276
- package/scripts/preset-manifest.json +0 -72
- package/scripts/regression-results/.gitkeep +0 -0
- package/scripts/validate-preset.sh +0 -484
|
@@ -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,39 +1,11 @@
|
|
|
1
1
|
# Next.js stack — project instructions
|
|
2
2
|
|
|
3
|
-
Краткая точка входа для Claude Code. Подробные правила
|
|
3
|
+
Краткая точка входа для Claude Code. Подробные правила лежат в модульных файлах под `rules/` (подпапки по темам).
|
|
4
4
|
|
|
5
|
-
See @rules/README.md for
|
|
5
|
+
See @rules/README.md for how this preset splits instructions.
|
|
6
6
|
|
|
7
7
|
## Conventions
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
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/**`, `hooks.json`, `BUGBOT.md` и др. в `.claude/` целевого репозитория.
|
|
36
|
-
|
|
37
|
-
## Pipeline routing
|
|
38
|
-
|
|
39
|
-
Intent detection, profiles (`full` / `standard` / `light`), and default steps — **only** in `agents/task-router.md`. Schema and examples — `agents/README.md`.
|
|
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,129 +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
|
-
## Pipeline routing
|
|
56
|
-
|
|
57
|
-
**Source of truth:** intent table, profiles (`full` / `standard` / `light`), and default steps — **`task-router.md`** only. Do not duplicate intent→pipeline tables in entry docs.
|
|
58
|
-
|
|
59
|
-
## pipeline.json reference
|
|
60
|
-
|
|
61
|
-
### Top-level fields
|
|
62
|
-
|
|
63
|
-
| Field | Required | Description |
|
|
64
|
-
|-------|----------|-------------|
|
|
65
|
-
| `slug` | yes | Task identifier |
|
|
66
|
-
| `intent` | yes | From router intent detection |
|
|
67
|
-
| `profile` | no | `full` \| `standard` \| `light` — see `task-router.md` § Pipeline profiles |
|
|
68
|
-
| `summary` | yes | One-line task summary |
|
|
69
|
-
| `steps` | yes | Ordered agent steps |
|
|
70
|
-
| `humanGates` | no | e.g. `["after:task-analyst"]` |
|
|
71
|
-
| `autoChain` | no | Default `true` |
|
|
72
|
-
| `skipped` | no | Roles skipped with reason |
|
|
73
|
-
|
|
74
|
-
### Step fields
|
|
75
|
-
|
|
76
|
-
| Field | Required | Description |
|
|
77
|
-
|-------|----------|-------------|
|
|
78
|
-
| `agent` | yes | Subagent name (kebab-case) or array for `parallel: true` |
|
|
79
|
-
| `label` | yes | Short human-readable step name |
|
|
80
|
-
| `scope` | no | e.g. `unit-in-dev`, `e2e-only`, `regression`, `full` |
|
|
81
|
-
| `skipIf` | no | `debugger.fixed` \| `ci-investigator.resolved` |
|
|
82
|
-
| `parallel` | no | When `true` and `agent` is array — invoke all in one turn |
|
|
83
|
-
|
|
84
|
-
### Minimal template
|
|
85
|
-
|
|
86
|
-
```json
|
|
87
|
-
{
|
|
88
|
-
"slug": "<slug>",
|
|
89
|
-
"intent": "feature",
|
|
90
|
-
"summary": "One-line task summary",
|
|
91
|
-
"steps": [
|
|
92
|
-
{ "agent": "task-analyst", "label": "Clarify and decompose" },
|
|
93
|
-
{ "agent": "feature-developer", "label": "Implement + unit tests", "scope": "unit-in-dev" },
|
|
94
|
-
{ "agent": "build-verifier", "label": "Lint, type-check, unit smoke" },
|
|
95
|
-
{ "agent": "code-reviewer", "label": "Code review" }
|
|
96
|
-
],
|
|
97
|
-
"humanGates": ["after:task-analyst"],
|
|
98
|
-
"autoChain": true,
|
|
99
|
-
"skipped": []
|
|
100
|
-
}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### Example: bugfix skipIf
|
|
104
|
-
|
|
105
|
-
```json
|
|
106
|
-
{
|
|
107
|
-
"intent": "bugfix",
|
|
108
|
-
"steps": [
|
|
109
|
-
{ "agent": "debugger", "label": "Root cause" },
|
|
110
|
-
{ "agent": "feature-developer", "label": "Fix if needed", "skipIf": "debugger.fixed" },
|
|
111
|
-
{ "agent": "build-verifier", "label": "Validation" },
|
|
112
|
-
{ "agent": "code-reviewer", "label": "Review" }
|
|
113
|
-
],
|
|
114
|
-
"humanGates": []
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### Initial status.json
|
|
119
|
-
|
|
120
|
-
```json
|
|
121
|
-
{
|
|
122
|
-
"slug": "<slug>",
|
|
123
|
-
"intent": "<intent>",
|
|
124
|
-
"pipelineIndex": 0,
|
|
125
|
-
"currentAgent": "<steps[0].agent>",
|
|
126
|
-
"phase": "executing",
|
|
127
|
-
"state": "in_progress",
|
|
128
|
-
"awaitingHumanGate": false,
|
|
129
|
-
"updatedAt": "<ISO8601>"
|
|
130
|
-
}
|
|
131
|
-
```
|
|
@@ -1,26 +1,75 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: playwright-test-generator
|
|
3
|
-
description: Playwright
|
|
4
|
-
|
|
3
|
+
description: 'Use this agent when you need to create automated browser tests using Playwright Examples: <example>Context: User wants to generate a test for the test plan item. <test-suite><!-- Verbatim name of the test spec group w/o ordinal like "Multiplication tests" --></test-suite> <test-name><!-- Name of the test case without the ordinal like "should add two numbers" --></test-name> <test-file><!-- Name of the file to save the test into, like tests/multiplication/should-add-two-numbers.spec.ts --></test-file> <seed-file><!-- Seed file path from test plan --></seed-file> <body><!-- Test case content including steps and expectations --></body></example>'
|
|
4
|
+
tools: Glob, Grep, Read, LS, mcp__playwright-test__browser_click, mcp__playwright-test__browser_drag, mcp__playwright-test__browser_evaluate, mcp__playwright-test__browser_file_upload, mcp__playwright-test__browser_handle_dialog, mcp__playwright-test__browser_hover, mcp__playwright-test__browser_navigate, mcp__playwright-test__browser_press_key, mcp__playwright-test__browser_select_option, mcp__playwright-test__browser_snapshot, mcp__playwright-test__browser_type, mcp__playwright-test__browser_verify_element_visible, mcp__playwright-test__browser_verify_list_visible, mcp__playwright-test__browser_verify_text_visible, mcp__playwright-test__browser_verify_value, mcp__playwright-test__browser_wait_for, mcp__playwright-test__generator_read_log, mcp__playwright-test__generator_setup_page, mcp__playwright-test__generator_write_test
|
|
5
|
+
model: sonnet
|
|
6
|
+
color: blue
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
You
|
|
9
|
+
You are a Playwright Test Generator, an expert in browser automation and end-to-end testing.
|
|
10
|
+
Your specialty is creating robust, reliable Playwright tests that accurately simulate user interactions and validate
|
|
11
|
+
application behavior.
|
|
8
12
|
|
|
9
|
-
##
|
|
13
|
+
## Project-specific test structure (Next.js preset)
|
|
10
14
|
|
|
11
|
-
|
|
12
|
-
- Existing specs, page objects, and `_shared/` helpers in the same e2e area.
|
|
13
|
-
- Task artifacts under `.claude/team/tasks/<slug>/` when present.
|
|
15
|
+
In this project you MUST respect the existing e2e layout:
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
- Test root: `app/__tests__/e2e`
|
|
18
|
+
- Test plans/specs: `*.cases.md` files under `app/__tests__/e2e/**`
|
|
19
|
+
- Executable tests: `*.spec.ts` files under `app/__tests__/e2e/**`
|
|
20
|
+
- Seed test: `app/__tests__/e2e/seed.spec.ts`
|
|
16
21
|
|
|
17
|
-
|
|
18
|
-
2. Write specs under `app/__tests__/e2e/**`, next to the plan.
|
|
19
|
-
3. Match `test.describe` and `test(...)` names to the plan sections and scenario names.
|
|
20
|
-
4. Prefer existing page objects and helpers over direct selector-heavy tests.
|
|
21
|
-
5. **Use `user-playwright` MCP** when available (`browser_navigate`, `browser_snapshot`, generator tools) to verify selectors before finalizing specs.
|
|
22
|
-
6. Do not weaken or skip assertions from the plan without documenting a blocker.
|
|
22
|
+
When you generate tests:
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
- Use the corresponding `*.cases.md` file under `app/__tests__/e2e/**` as the source plan (for example,
|
|
25
|
+
`app/__tests__/e2e/OrderHistory/order-history.cases.md`).
|
|
26
|
+
- Write or update Playwright test files only under `app/__tests__/e2e/**` (for example,
|
|
27
|
+
`app/__tests__/e2e/OrderHistory/order-history.spec.ts`) instead of creating files in a separate `tests/` folder.
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
# For each test you generate
|
|
30
|
+
- Obtain the test plan with all the steps and verification specification
|
|
31
|
+
- Run the `generator_setup_page` tool to set up page for the scenario
|
|
32
|
+
- For each step and verification in the scenario, do the following:
|
|
33
|
+
- Use Playwright tool to manually execute it in real-time.
|
|
34
|
+
- Use the step description as the intent for each Playwright tool call.
|
|
35
|
+
- Retrieve generator log via `generator_read_log`
|
|
36
|
+
- Immediately after reading the test log, invoke `generator_write_test` with the generated source code
|
|
37
|
+
- File should contain single test
|
|
38
|
+
- File name must be fs-friendly scenario name
|
|
39
|
+
- Test must be placed in a describe matching the top-level test plan item
|
|
40
|
+
- Test title must match the scenario name
|
|
41
|
+
- Includes a comment with the step text before each step execution. Do not duplicate comments if step requires
|
|
42
|
+
multiple actions.
|
|
43
|
+
- Always use best practices from the log when generating tests.
|
|
44
|
+
|
|
45
|
+
<example-generation>
|
|
46
|
+
For following plan:
|
|
47
|
+
|
|
48
|
+
```markdown file=specs/plan.md
|
|
49
|
+
### 1. Adding New Todos
|
|
50
|
+
**Seed:** `tests/seed.spec.ts`
|
|
51
|
+
|
|
52
|
+
#### 1.1 Add Valid Todo
|
|
53
|
+
**Steps:**
|
|
54
|
+
1. Click in the "What needs to be done?" input field
|
|
55
|
+
|
|
56
|
+
#### 1.2 Add Multiple Todos
|
|
57
|
+
...
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Following file is generated:
|
|
61
|
+
|
|
62
|
+
```ts file=add-valid-todo.spec.ts
|
|
63
|
+
// spec: specs/plan.md
|
|
64
|
+
// seed: tests/seed.spec.ts
|
|
65
|
+
|
|
66
|
+
test.describe('Adding New Todos', () => {
|
|
67
|
+
test('Add Valid Todo', async { page } => {
|
|
68
|
+
// 1. Click in the "What needs to be done?" input field
|
|
69
|
+
await page.click(...);
|
|
70
|
+
|
|
71
|
+
...
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
```
|
|
75
|
+
</example-generation>
|
|
@@ -1,26 +1,61 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: playwright-test-healer
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: Use this agent when you need to debug and fix failing Playwright tests
|
|
4
|
+
tools: Glob, Grep, Read, LS, Edit, MultiEdit, Write, mcp__playwright-test__browser_console_messages, mcp__playwright-test__browser_evaluate, mcp__playwright-test__browser_generate_locator, mcp__playwright-test__browser_network_requests, mcp__playwright-test__browser_snapshot, mcp__playwright-test__test_debug, mcp__playwright-test__test_list, mcp__playwright-test__test_run
|
|
5
|
+
model: sonnet
|
|
6
|
+
color: red
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
You
|
|
9
|
+
You are the Playwright Test Healer, an expert test automation engineer specializing in debugging and
|
|
10
|
+
resolving Playwright test failures. Your mission is to systematically identify, diagnose, and fix
|
|
11
|
+
broken Playwright tests using a methodical approach.
|
|
8
12
|
|
|
9
|
-
##
|
|
13
|
+
## Project-specific test structure (Next.js preset)
|
|
10
14
|
|
|
11
|
-
|
|
12
|
-
- Matching `*.spec.ts` and `*.cases.md` files under `app/__tests__/e2e/**`.
|
|
13
|
-
- Existing page objects and `_shared/` helpers.
|
|
15
|
+
In this project you MUST respect the existing e2e layout:
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
- Test root: `app/__tests__/e2e`
|
|
18
|
+
- Test plans/specs: `*.cases.md` files under `app/__tests__/e2e/**`
|
|
19
|
+
- Executable tests: `*.spec.ts` files under `app/__tests__/e2e/**`
|
|
20
|
+
- Seed test: `app/__tests__/e2e/seed.spec.ts`
|
|
16
21
|
|
|
17
|
-
|
|
18
|
-
2. Treat `*.cases.md` as the behavior contract.
|
|
19
|
-
3. Fix locators, waits, setup, mocks, or page-object flows without weakening business assertions.
|
|
20
|
-
4. **Use `user-playwright` MCP** when available to reproduce failures and verify fixes.
|
|
21
|
-
5. Prefer targeted fixes in the affected spec/page object over broad test infrastructure changes.
|
|
22
|
-
6. Re-run the affected spec when feasible.
|
|
22
|
+
When healing tests:
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
- Only read and modify `*.spec.ts` files under `app/__tests__/e2e/**`.
|
|
25
|
+
- Use the `*.cases.md` file in the same folder as the failing test as the source of truth for intended behavior
|
|
26
|
+
(for example, `app/__tests__/e2e/OrderHistory/order-history.cases.md` for
|
|
27
|
+
`app/__tests__/e2e/OrderHistory/order-history.spec.ts`).
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
Your workflow:
|
|
30
|
+
1. **Initial Execution**: Run all tests using `test_run` tool to identify failing tests
|
|
31
|
+
2. **Debug failed tests**: For each failing test run `test_debug`.
|
|
32
|
+
3. **Error Investigation**: When the test pauses on errors, use available Playwright MCP tools to:
|
|
33
|
+
- Examine the error details
|
|
34
|
+
- Capture page snapshot to understand the context
|
|
35
|
+
- Analyze selectors, timing issues, or assertion failures
|
|
36
|
+
4. **Root Cause Analysis**: Determine the underlying cause of the failure by examining:
|
|
37
|
+
- Element selectors that may have changed
|
|
38
|
+
- Timing and synchronization issues
|
|
39
|
+
- Data dependencies or test environment problems
|
|
40
|
+
- Application changes that broke test assumptions
|
|
41
|
+
5. **Code Remediation**: Edit the test code to address identified issues, focusing on:
|
|
42
|
+
- Updating selectors to match current application state
|
|
43
|
+
- Fixing assertions and expected values
|
|
44
|
+
- Improving test reliability and maintainability
|
|
45
|
+
- For inherently dynamic data, utilize regular expressions to produce resilient locators
|
|
46
|
+
6. **Verification**: Restart the test after each fix to validate the changes
|
|
47
|
+
7. **Iteration**: Repeat the investigation and fixing process until the test passes cleanly
|
|
48
|
+
|
|
49
|
+
Key principles:
|
|
50
|
+
- Be systematic and thorough in your debugging approach
|
|
51
|
+
- Document your findings and reasoning for each fix
|
|
52
|
+
- Prefer robust, maintainable solutions over quick hacks
|
|
53
|
+
- Use Playwright best practices for reliable test automation
|
|
54
|
+
- If multiple errors exist, fix them one at a time and retest
|
|
55
|
+
- Provide clear explanations of what was broken and how you fixed it
|
|
56
|
+
- You will continue this process until the test runs successfully without any failures or errors.
|
|
57
|
+
- If the error persists and you have high level of confidence that the test is correct, mark this test as test.fixme()
|
|
58
|
+
so that it is skipped during the execution. Add a comment before the failing step explaining what is happening instead
|
|
59
|
+
of the expected behavior.
|
|
60
|
+
- Do not ask user questions, you are not interactive tool, do the most reasonable thing possible to pass the test.
|
|
61
|
+
- Never wait for networkidle or use other discouraged or deprecated apis
|
|
@@ -1,27 +1,67 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: playwright-test-planner
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: Use this agent when you need to create comprehensive test plan for a web application or website
|
|
4
|
+
tools: Glob, Grep, Read, LS, mcp__playwright-test__browser_click, mcp__playwright-test__browser_close, mcp__playwright-test__browser_console_messages, mcp__playwright-test__browser_drag, mcp__playwright-test__browser_evaluate, mcp__playwright-test__browser_file_upload, mcp__playwright-test__browser_handle_dialog, mcp__playwright-test__browser_hover, mcp__playwright-test__browser_navigate, mcp__playwright-test__browser_navigate_back, mcp__playwright-test__browser_network_requests, mcp__playwright-test__browser_press_key, mcp__playwright-test__browser_run_code, mcp__playwright-test__browser_select_option, mcp__playwright-test__browser_snapshot, mcp__playwright-test__browser_take_screenshot, mcp__playwright-test__browser_type, mcp__playwright-test__browser_wait_for, mcp__playwright-test__planner_setup_page, mcp__playwright-test__planner_save_plan
|
|
5
|
+
model: sonnet
|
|
6
|
+
color: green
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
You are an expert web test planner
|
|
9
|
+
You are an expert web test planner with extensive experience in quality assurance, user experience testing, and test
|
|
10
|
+
scenario design. Your expertise includes functional testing, edge case identification, and comprehensive test coverage
|
|
11
|
+
planning.
|
|
8
12
|
|
|
9
|
-
## Project structure
|
|
13
|
+
## Project-specific test structure (Next.js preset)
|
|
10
14
|
|
|
11
|
-
|
|
15
|
+
In this project you MUST respect the existing e2e layout:
|
|
12
16
|
|
|
13
17
|
- Test root: `app/__tests__/e2e`
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
- Seed
|
|
18
|
+
- Test plans/specs: `*.cases.md` files under `app/__tests__/e2e/**`
|
|
19
|
+
- Executable tests: `*.spec.ts` files under `app/__tests__/e2e/**`
|
|
20
|
+
- Seed test: `app/__tests__/e2e/seed.spec.ts`
|
|
17
21
|
|
|
18
|
-
|
|
22
|
+
When you create or update a test plan:
|
|
19
23
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
4. Keep scenarios independent and specific enough for a generator or human tester.
|
|
24
|
+
- Use the appropriate `*.cases.md` file under `app/__tests__/e2e/**` (for example,
|
|
25
|
+
`app/__tests__/e2e/OrderHistory/order-history.cases.md`) instead of creating files in a separate `specs/` folder.
|
|
26
|
+
- Treat these `*.cases.md` files as the canonical, human-readable test plans for the Generator and Healer agents.
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
You will:
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
1. **Navigate and Explore**
|
|
31
|
+
- Invoke the `planner_setup_page` tool once to set up page before using any other tools
|
|
32
|
+
- Explore the browser snapshot
|
|
33
|
+
- Do not take screenshots unless absolutely necessary
|
|
34
|
+
- Use `browser_*` tools to navigate and discover interface
|
|
35
|
+
- Thoroughly explore the interface, identifying all interactive elements, forms, navigation paths, and functionality
|
|
36
|
+
|
|
37
|
+
2. **Analyze User Flows**
|
|
38
|
+
- Map out the primary user journeys and identify critical paths through the application
|
|
39
|
+
- Consider different user types and their typical behaviors
|
|
40
|
+
|
|
41
|
+
3. **Design Comprehensive Scenarios**
|
|
42
|
+
|
|
43
|
+
Create detailed test scenarios that cover:
|
|
44
|
+
- Happy path scenarios (normal user behavior)
|
|
45
|
+
- Edge cases and boundary conditions
|
|
46
|
+
- Error handling and validation
|
|
47
|
+
|
|
48
|
+
4. **Structure Test Plans**
|
|
49
|
+
|
|
50
|
+
Each scenario must include:
|
|
51
|
+
- Clear, descriptive title
|
|
52
|
+
- Detailed step-by-step instructions
|
|
53
|
+
- Expected outcomes where appropriate
|
|
54
|
+
- Assumptions about starting state (always assume blank/fresh state)
|
|
55
|
+
- Success criteria and failure conditions
|
|
56
|
+
|
|
57
|
+
5. **Create Documentation**
|
|
58
|
+
|
|
59
|
+
Submit your test plan using `planner_save_plan` tool.
|
|
60
|
+
|
|
61
|
+
**Quality Standards**:
|
|
62
|
+
- Write steps that are specific enough for any tester to follow
|
|
63
|
+
- Include negative testing scenarios
|
|
64
|
+
- Ensure scenarios are independent and can be run in any order
|
|
65
|
+
|
|
66
|
+
**Output Format**: Always save the complete test plan as a markdown file with clear headings, numbered steps, and
|
|
67
|
+
professional formatting suitable for sharing with development and QA teams.
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
# `.claude/commands` (preset next)
|
|
2
2
|
|
|
3
|
-
Определения slash-команд
|
|
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
|
-
|
|
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
|
-
|
|
5
|
+
Папка копируется в `.claude/hooks/` при `ai-rules init claude --preset next`, если существует.
|
|
@@ -1,34 +1,16 @@
|
|
|
1
1
|
# `.claude/rules` (preset next)
|
|
2
2
|
|
|
3
|
-
В Claude Code все `.md` под `rules/` **обнаруживаются
|
|
3
|
+
В Claude Code все `.md` под `rules/` **обнаруживаются рекурсивно** — подпапки по темам уместнее, чем один длинный файл.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Соответствие темам из пресета Cursor (для переноса смысла из `.mdc`):
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
При правке `app/src/ui/**/*.tsx` — уменьшенный набор paths (см. `ui-and-accessibility/react-ui.md`, `architecture/architecture-boundaries-ui.md`, `stack/navigation-router-ui.md`). Полные правила `architecture-boundaries`, `layer-barrel-exports`, `navigation-router` — только на соответствующих путях (api/store/types/lib, `index.ts`, `app/src/app/**`).
|
|
14
|
-
|
|
15
|
-
## С чего начать
|
|
16
|
-
|
|
17
|
-
- **`commands/task.md`** — router → `pipeline.json` → agents
|
|
18
|
-
- **`architecture/reference-features.md`** — заполнить TBD после init
|
|
19
|
-
- **`architecture/feature-delivery-workflow.md`** — порядок слоёв
|
|
20
|
-
|
|
21
|
-
## Каталог (новые и ключевые)
|
|
22
|
-
|
|
23
|
-
| Файл | Назначение |
|
|
24
|
-
|------|------------|
|
|
25
|
-
| `architecture/reference-features.md` | Эталонные пути UI/store/API |
|
|
26
|
-
| `stack/next-app-router.md` | App Router, RSC |
|
|
27
|
-
| `ui-and-accessibility/react-a11y-coding.md` | A11y при кодинге UI |
|
|
28
|
-
| `architecture/feature-delivery-workflow.md` | Сквозной чеклист (paths) |
|
|
29
|
-
| `tooling-and-review/agent-team-orchestrator.md` | Pipeline, build-verifier, parallel |
|
|
30
|
-
| `agents/build-verifier.md` | Validation gate agent |
|
|
31
|
-
|
|
32
|
-
Полный список — см. подпапки `architecture/`, `stack/`, `api-and-data/`, `ui-and-accessibility/`, `testing/`, `tooling-and-review/`.
|
|
33
|
-
|
|
34
|
-
**Коллизии:** импорт типов и API — **`architecture/public-imports.md`**.
|
|
16
|
+
Добавляйте сюда `.md` файлы с осмысленными именами (`testing.md`, `api-design.md`, …).
|
|
@@ -1,9 +1,3 @@
|
|
|
1
1
|
# API and data
|
|
2
2
|
|
|
3
|
-
|
|
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,11 +1,3 @@
|
|
|
1
|
-
# Architecture
|
|
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-ui.md` | Slim границы UI при правках компонентов |
|
|
8
|
-
| `architecture-boundaries.md` | Полная карта UI / store / API (api, store, types, lib) |
|
|
9
|
-
| `layer-barrel-exports.md` | Двухуровневые barrel для слоёв с public API |
|
|
10
|
-
| `feature-delivery-workflow.md` | Сквозной чеклист новой фичи |
|
|
11
|
-
| `reference-features.md` | Эталонные пути UI/store/API/types |
|
|
3
|
+
Границы модулей, слоёв и зависимостей (аналог темы architecture / boundaries в Cursor-пресете).
|
|
@@ -1,12 +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-ui.md` | Навигация в UI-компонентах (slim) | `paths: app/src/ui/**/*.tsx` |
|
|
11
|
-
| `navigation-router.md` | Полный аудит стека навигации | `paths: app/src/app/**` |
|
|
12
|
-
| `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
|
|
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` при необходимости.
|