@bonesofspring/ai-rules 0.1.36 → 0.1.39
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 +7 -3
- package/bin/cli.js +55 -31
- package/package.json +1 -1
- package/presets/claude/next/CLAUDE.md +24 -5
- package/presets/claude/next/agents/code-reviewer.md +56 -0
- package/presets/claude/next/agents/debugger.md +58 -0
- package/presets/claude/next/agents/feature-developer.md +45 -0
- package/presets/claude/next/agents/qa-tester.md +54 -0
- package/presets/claude/next/agents/solution-architect.md +70 -0
- package/presets/claude/next/agents/task-analyst.md +105 -0
- package/presets/claude/next/agents/task-router.md +105 -0
- package/presets/claude/next/commands/README.md +5 -1
- package/presets/claude/next/commands/feature-continue.md +46 -0
- package/presets/claude/next/commands/feature-start.md +25 -0
- package/presets/claude/next/commands/task-continue.md +43 -0
- package/presets/claude/next/commands/task.md +40 -0
- package/presets/claude/next/commands/technical-retro.md +53 -0
- package/presets/claude/next/rules/README.md +47 -11
- package/presets/claude/next/rules/api-and-data/README.md +7 -1
- package/presets/claude/next/rules/api-and-data/api-services.md +57 -0
- package/presets/claude/next/rules/api-and-data/http-client.md +40 -0
- package/presets/claude/next/rules/api-and-data/store-rtk.md +65 -0
- package/presets/claude/next/rules/architecture/README.md +11 -1
- package/presets/claude/next/rules/architecture/api-public-imports.md +25 -0
- package/presets/claude/next/rules/architecture/architecture-boundaries.md +67 -0
- package/presets/claude/next/rules/architecture/feature-delivery-workflow.md +99 -0
- package/presets/claude/next/rules/architecture/layer-barrel-exports.md +53 -0
- package/presets/claude/next/rules/architecture/types-public-imports.md +28 -0
- package/presets/claude/next/rules/stack/README.md +9 -1
- package/presets/claude/next/rules/stack/arrow-functions.md +40 -0
- package/presets/claude/next/rules/stack/navigation-router.md +56 -0
- package/presets/claude/next/rules/stack/next-app-core.md +83 -0
- package/presets/claude/next/rules/stack/no-type-assertion.md +52 -0
- package/presets/claude/next/rules/stack/types-jsdoc.md +37 -0
- package/presets/claude/next/rules/testing/README.md +9 -1
- package/presets/claude/next/rules/testing/playwright-agents.md +69 -0
- package/presets/claude/next/rules/testing/tests-e2e-structure.md +52 -0
- package/presets/claude/next/rules/testing/tests-unit.md +66 -0
- package/presets/claude/next/rules/tooling-and-review/README.md +12 -1
- package/presets/claude/next/rules/tooling-and-review/agent-team-intake.md +9 -0
- package/presets/claude/next/rules/tooling-and-review/agent-team-orchestrator.md +97 -0
- package/presets/claude/next/rules/tooling-and-review/code-quality.md +50 -0
- package/presets/claude/next/rules/tooling-and-review/code-review-mr.md +67 -0
- package/presets/claude/next/rules/tooling-and-review/package-manager.md +20 -0
- package/presets/claude/next/rules/tooling-and-review/post-change-lint.md +43 -0
- package/presets/claude/next/rules/ui-and-accessibility/README.md +8 -1
- package/presets/claude/next/rules/ui-and-accessibility/component-styles.md +50 -0
- package/presets/claude/next/rules/ui-and-accessibility/css-property-order.md +20 -0
- package/presets/claude/next/rules/ui-and-accessibility/no-props-spread.md +52 -0
- package/presets/claude/next/rules/ui-and-accessibility/react-ui.md +90 -0
- package/presets/claude/next/team/README.md +64 -0
- package/presets/claude/next/team/tasks/.gitkeep +1 -0
- package/presets/cursor/next/agents/README.md +25 -0
- package/presets/cursor/next/agents/code-reviewer.md +57 -0
- package/presets/cursor/next/agents/debugger.md +59 -0
- package/presets/cursor/next/agents/feature-developer.md +46 -0
- package/presets/cursor/next/agents/qa-tester.md +55 -0
- package/presets/cursor/next/agents/solution-architect.md +71 -0
- package/presets/cursor/next/agents/task-analyst.md +111 -0
- package/presets/cursor/next/agents/task-router.md +106 -0
- package/presets/cursor/next/commands/README.md +33 -1
- package/presets/cursor/next/commands/feature-continue.md +14 -0
- package/presets/cursor/next/commands/feature-start.md +28 -0
- package/presets/cursor/next/commands/task-continue.md +43 -0
- package/presets/cursor/next/commands/task.md +40 -0
- package/presets/cursor/next/commands/technical-retro.md +76 -0
- package/presets/cursor/next/hooks/chain-team-phases.sh +216 -0
- package/presets/cursor/next/hooks.json +11 -0
- package/presets/cursor/next/rules/README.md +11 -3
- package/presets/cursor/next/rules/agent-team-intake.mdc +14 -0
- package/presets/cursor/next/rules/agent-team-orchestrator.mdc +102 -0
- package/presets/cursor/next/rules/api-public-imports.mdc +1 -0
- package/presets/cursor/next/rules/api-services.mdc +1 -0
- package/presets/cursor/next/rules/architecture-boundaries.mdc +1 -1
- package/presets/cursor/next/rules/code-quality-and-refactoring.mdc +9 -0
- package/presets/cursor/next/rules/code-review-mr.mdc +6 -7
- package/presets/cursor/next/rules/css-property-order-stylelint.mdc +25 -0
- package/presets/cursor/next/rules/feature-delivery-workflow.mdc +5 -5
- package/presets/cursor/next/rules/layer-barrel-exports.mdc +58 -0
- package/presets/cursor/next/rules/next-app-core.mdc +1 -1
- package/presets/cursor/next/rules/no-cross-component-styles-import.mdc +55 -0
- package/presets/cursor/next/rules/no-props-spread.mdc +26 -3
- package/presets/cursor/next/rules/package-manager.mdc +25 -0
- package/presets/cursor/next/rules/post-change-lint.mdc +48 -0
- package/presets/cursor/next/rules/react-ui.mdc +31 -2
- package/presets/cursor/next/rules/technical-retro.mdc +5 -51
- package/presets/cursor/next/rules/tests-unit.mdc +1 -0
- package/presets/cursor/next/rules/types-public-imports.mdc +1 -0
- package/presets/cursor/next/team/README.md +106 -0
- package/presets/cursor/next/team/tasks/.gitkeep +0 -0
|
@@ -1,58 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Роль агента для проведения технического ретроспективы (retro) команды /
|
|
2
|
+
description: Роль агента для проведения технического ретроспективы (retro) команды / спринта. On-demand — предпочтительнее slash-команда /technical-retro.
|
|
3
3
|
alwaysApply: false
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Техническое ретро —
|
|
6
|
+
# Техническое ретро — rule alias
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Полный сценарий (включая блок **«Работа агентов»** для slug из `.cursor/team/tasks/`) — в slash-комmand:
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
**`.cursor/commands/technical-retro.md`** → `/technical-retro`
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
- Есть контекст: период (спринт, квартал), тема (релиз, инцидент, миграция), или приложены заметки/линки.
|
|
14
|
-
|
|
15
|
-
## Входные данные (запросить при нехватке)
|
|
16
|
-
|
|
17
|
-
- **Период и фокус** (например: две недели, релиз X, постмортем).
|
|
18
|
-
- **Участники/роли** (если важно для формулировок): только разработка или весь кросс‑функциональный поток.
|
|
19
|
-
- **Ограничения**: время (15 / 30 / 60 мин), формат (async в чате vs синхронная повестка).
|
|
20
|
-
- По желанию: список deliverables, метрики, ссылки на тикеты/MR — **без выдумывания** фактов, которых нет в сообщении или репозитории.
|
|
21
|
-
|
|
22
|
-
Если контекста мало — задать **1–3 коротких уточняющих вопроса**, затем продолжить с явными допущениями в шапке вывода.
|
|
23
|
-
|
|
24
|
-
## Принципы фасилитации
|
|
25
|
-
|
|
26
|
-
- **Безопасность и нейтральность**: формулировки про процесс и систему, не про «виноватых»; избегать ярлыков к людям.
|
|
27
|
-
- **Конкретика**: от абстрактного «надо лучше общаться» — к наблюдаемым событиям и договорённостям.
|
|
28
|
-
- **Баланс**: зафиксировать и позитив (что усилить), и зоны роста.
|
|
29
|
-
- **Один владелец и срок** у каждого action item; избегать списка «сделает команда» без имени/роли.
|
|
30
|
-
- **Не смешивать с code review**: ретро не заменяет построчный разбор диффа; при запросе «и ретро, и ревью» — развести два блока в ответе.
|
|
31
|
-
|
|
32
|
-
## Рекомендуемая структура сессии (по умолчанию)
|
|
33
|
-
|
|
34
|
-
Подстроить под указанное время. Для короткого async‑формата — сжать до шагов 2–4.
|
|
35
|
-
|
|
36
|
-
1. **Цель и рамки** (1–2 предложения): зачем встреча, что в фокусе / что вне скоупа.
|
|
37
|
-
2. **Сбор фактов** (молча в чате — списком от пользователя; агент структурирует):
|
|
38
|
-
- что шло хорошо,
|
|
39
|
-
- что мешало / вызывало риски,
|
|
40
|
-
- сюрпризы (технический долг, узкие места, зависимости).
|
|
41
|
-
3. **Группировка тем**: объединить дубли, выделить 3–7 тем для обсуждения (приоритет — влияние × изменяемость).
|
|
42
|
-
4. **Корневые причины (легко)**: для 1–2 самых болезненных тем — кратко «5 почему» или «что в процессе/артефактах позволило этому случиться», без морализаторства.
|
|
43
|
-
5. **Эксперименты на следующий цикл**: не больше 1–3 изменений процесса/инструментов; каждое — измеримое или с явным критерием «успех/не успех».
|
|
44
|
-
6. **Action items**: таблица или список с **что / владелец / до когда / как поймём, что сработало**.
|
|
45
|
-
|
|
46
|
-
## Формат ответа агента
|
|
47
|
-
|
|
48
|
-
- Краткая **шапка**: период, фокус, допущения (если были).
|
|
49
|
-
- **Повестка** или итог по этапам выше.
|
|
50
|
-
- **Темы** — буллеты; по спорным местам — **вопросы команде**, а не окончательные выводы без данных.
|
|
51
|
-
- **Решения и эксперименты** отдельным блоком.
|
|
52
|
-
- **Action items** — в конце, каждый пункт с владельцем и дедлайном (или пометка «нужно назначить на встрече»).
|
|
53
|
-
|
|
54
|
-
## Ограничения
|
|
55
|
-
|
|
56
|
-
- Не приписывать команде цитаты или факты, которых не было во входе.
|
|
57
|
-
- Не выдавать юридические/HR‑рекомендации; при явных конфликтах или токсичности — мягко предложить эскалацию человеку, ответственному за команду, без детализации «наказаний».
|
|
58
|
-
- Если пользователь просит только шаблон — выдать **шаблон повестки и доски** (колонки, таймбоксы) без выдуманного контента.
|
|
12
|
+
Используй rule только если command недоступен. Не дублируй содержимое command в ответе — следуй command-файлу.
|
|
@@ -15,6 +15,7 @@ alwaysApply: false
|
|
|
15
15
|
- **Именование unit‑тестов** (строки в `describe` / `it` / `test`):
|
|
16
16
|
- формулировки **только на русском языке** — понятные бизнес‑фразы (что проверяется и какой ожидается результат);
|
|
17
17
|
- **каждое предложение** в названии **начинается с заглавной буквы** (в том числе после `.`, `!`, `?` и при нескольких предложениях в одной строке); первая буква всей строки — тоже заглавная.
|
|
18
|
+
- **Проверка в CI:** ESLint (`jest/valid-title` в `app/eslint.config.mjs`) требует, чтобы строка начиналась с русской заглавной (А–Я, Ё), и запрещает пробел после точки, за которым сразу идёт строчная буква (типичный случай нарушения «с заглавной после точки»).
|
|
18
19
|
|
|
19
20
|
```typescript
|
|
20
21
|
// ✅ Хорошо
|
|
@@ -27,3 +27,4 @@ import { TransportError } from '@/types/TransportError'
|
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
При ревью и правках кода **не добавлять** новые импорты типов из `@/types/...` кроме `@/types` и `@/types/enums`.
|
|
30
|
+
- Новые публичные типы — реэкспорт в `app/src/types/index.ts` по **`layer-barrel-exports.mdc`**.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Agent team artifacts
|
|
2
|
+
|
|
3
|
+
Каталог артефактов пайплайна «команда агентов» Cursor.
|
|
4
|
+
|
|
5
|
+
## Layout
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
.cursor/team/
|
|
9
|
+
active-task.json # { "slug": "current-task-slug" }
|
|
10
|
+
tasks/
|
|
11
|
+
<slug>/
|
|
12
|
+
pipeline.json # Router: intent, steps, humanGates
|
|
13
|
+
status.json # Current step and state machine
|
|
14
|
+
brief.md # Analyst: Definition of Ready
|
|
15
|
+
decomposition.md # Analyst: task breakdown
|
|
16
|
+
debug-report.md # Debugger (bugfix)
|
|
17
|
+
architecture.md # Solution architect (spike / complex)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Slug
|
|
21
|
+
|
|
22
|
+
- kebab-case, derived from task title
|
|
23
|
+
- max 48 characters
|
|
24
|
+
- example: `order-history-date-filter`
|
|
25
|
+
|
|
26
|
+
## pipeline.json schema
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"slug": "order-history-date-filter",
|
|
31
|
+
"intent": "feature",
|
|
32
|
+
"summary": "Add date filter to Order History",
|
|
33
|
+
"steps": [
|
|
34
|
+
{ "agent": "task-analyst", "label": "Clarify and decompose" },
|
|
35
|
+
{ "agent": "feature-developer", "label": "Implement" },
|
|
36
|
+
{ "agent": "code-reviewer", "label": "Code review" },
|
|
37
|
+
{ "agent": "qa-tester", "label": "Tests", "scope": "full" }
|
|
38
|
+
],
|
|
39
|
+
"humanGates": ["after:task-analyst"],
|
|
40
|
+
"autoChain": true,
|
|
41
|
+
"skipped": []
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### intent values
|
|
46
|
+
|
|
47
|
+
`feature` | `bugfix` | `review-only` | `test-only` | `refactor` | `spike` | `retro`
|
|
48
|
+
|
|
49
|
+
## status.json schema (pipeline mode)
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"slug": "order-history-date-filter",
|
|
54
|
+
"intent": "feature",
|
|
55
|
+
"pipelineIndex": 0,
|
|
56
|
+
"currentAgent": "task-analyst",
|
|
57
|
+
"phase": "executing",
|
|
58
|
+
"state": "in_progress",
|
|
59
|
+
"awaitingHumanGate": false,
|
|
60
|
+
"updatedAt": "2026-05-29T12:00:00.000Z"
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### phase
|
|
65
|
+
|
|
66
|
+
| Value | Description |
|
|
67
|
+
|-------|-------------|
|
|
68
|
+
| `executing` | Pipeline step in progress (preferred) |
|
|
69
|
+
| `analysis` | Legacy: analyst phase |
|
|
70
|
+
| `development` | Legacy: developer phase |
|
|
71
|
+
| `review` | Legacy: review phase |
|
|
72
|
+
| `testing` | Legacy: QA phase |
|
|
73
|
+
| `done` | All steps complete |
|
|
74
|
+
|
|
75
|
+
### state
|
|
76
|
+
|
|
77
|
+
| Value | Description |
|
|
78
|
+
|-------|-------------|
|
|
79
|
+
| `in_progress` | Current step running |
|
|
80
|
+
| `completed` | Current step finished |
|
|
81
|
+
| `awaiting_approval` | Human gate; use `/task-continue` |
|
|
82
|
+
| `changes_requested` | Reviewer requires fixes |
|
|
83
|
+
| `approved` | Legacy: approved via continue |
|
|
84
|
+
|
|
85
|
+
## Git
|
|
86
|
+
|
|
87
|
+
Commit task artifacts if you want them to survive `ai-rules clean cursor`. Alternatively copy finished tasks to `docs/agent-workflow/tasks/<slug>/`.
|
|
88
|
+
|
|
89
|
+
## Workflow entry
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
/task <описание задачи>
|
|
93
|
+
# при human gate после analyst:
|
|
94
|
+
/task-continue <slug>
|
|
95
|
+
# или
|
|
96
|
+
/feature-continue <slug>
|
|
97
|
+
# после пайплайна:
|
|
98
|
+
/technical-retro <slug>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Legacy:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
/feature-start <описание>
|
|
105
|
+
/feature-continue <slug>
|
|
106
|
+
```
|
|
File without changes
|