chore: cursor agents, rules, hooks and workspace docs
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
**База путей:** репозиторий **`dnd_player/`** (не каталог `cursorAi`).
|
||||
|
||||
Связь с **feature-pipeline** (`.cursor/skills/feature-pipeline/SKILL.md`): критерии ниже сгруппированы по стадиям; после merge обновляют `.cursor/pipeline-state.json` по мере прохождения стадий.
|
||||
Связь с **feature-pipeline** (`.cursor/skills/feature-pipeline/SKILL.md`): критерии ниже сгруппированы по стадиям; после merge обновляют **`.cursor/pipeline-state.json`** по мере прохождения стадий.
|
||||
|
||||
---
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
---
|
||||
|
||||
## Stage 1 — Implementation (subagent: `frontend-senior`)
|
||||
## Stage 1 — Implementation (subagent: `frontend-developer`)
|
||||
|
||||
### Чеклист PR
|
||||
|
||||
@@ -39,7 +39,23 @@
|
||||
|
||||
---
|
||||
|
||||
## Stage 2 — Review (subagent: `reviewer`)
|
||||
## Stage 2 — UI-автотесты (subagent: `ui-test-developer`)
|
||||
|
||||
### Чеклист PR
|
||||
|
||||
- [ ] Добавлены или обновлены тесты на **чистую логику** (например, хелпер разметки чипов по `Scene`, если вынесен в `app/shared`).
|
||||
- [ ] Либо задокументировано в PR, что изменения только презентационные и покрыты smoke-тестом пайплайна.
|
||||
|
||||
### Критерии приёмки (Stage 2)
|
||||
|
||||
1. Из **`dnd_player/`**: `npm run test` завершается с кодом 0.
|
||||
2. Новые тесты не flaky, не зависят от Electron UI там, где это не нужно.
|
||||
|
||||
**Definition of Done (Stage 2):** `ui_autotests: done` в `.cursor/pipeline-state.json`.
|
||||
|
||||
---
|
||||
|
||||
## Stage 3 — Code review (subagent: `code-reviewer`)
|
||||
|
||||
### Чеклист PR
|
||||
|
||||
@@ -47,32 +63,32 @@
|
||||
- [ ] a11y: фокус/клавиатура на интерактивах не сломаны; `aria-*` не ухудшены.
|
||||
- [ ] Нет лишнего diff вне файлов задачи.
|
||||
|
||||
### Критерии приёмки (Stage 2)
|
||||
### Критерии приёмки (Stage 3)
|
||||
|
||||
1. Reviewer фиксирует замечания с **Severity**; все **high** устранены или явно отклонены с причиной в PR.
|
||||
1. Ревьювер фиксирует замечания с **критичностью**; все **блокирующие** устранены или явно отклонены с причиной в PR.
|
||||
2. После правок по review снова выполняется из **`dnd_player/`**: `npm run build`.
|
||||
|
||||
**Definition of Done (Stage 2):** review-замечания закрыты; state `review: done`.
|
||||
**Definition of Done (Stage 3):** `code_review: done` в `.cursor/pipeline-state.json`.
|
||||
|
||||
---
|
||||
|
||||
## Stage 3 — Tests (subagent: `unit-tests`)
|
||||
## Stage 4 — UI в браузере / Electron (subagent: `ui-tester`)
|
||||
|
||||
### Чеклист PR
|
||||
|
||||
- [ ] Добавлены или обновлены тесты на **чистую логику** (например, хелпер разметки чипов по `Scene`, если вынесен в `app/shared`).
|
||||
- [ ] Либо задокументировано в PR, что изменения только презентационные и покрыты smoke-тестом пайплайна.
|
||||
- [ ] Проверены ключевые сценарии редактора и пульта в **запущенном приложении** (renderer).
|
||||
- [ ] Состояния загрузки/ошибки/пусто не регрессировали там, где затронуто.
|
||||
|
||||
### Критерии приёмки (Stage 3)
|
||||
### Критерии приёмки (Stage 4)
|
||||
|
||||
1. Из **`dnd_player/`**: `npm run test` завершается с кодом 0.
|
||||
2. Новые тесты не flaky, не зависят от Electron UI.
|
||||
1. Нет блокирующих/важных визуальных дефектов по чеклисту Stage 1.
|
||||
2. Зафиксирован краткий отчёт по шаблону `pipeline-execution-template.mdc`.
|
||||
|
||||
**Definition of Done (Stage 3):** `tests: done` в `.cursor/pipeline-state.json`.
|
||||
**Definition of Done (Stage 4):** `ui_browser_verification: done` в `.cursor/pipeline-state.json`.
|
||||
|
||||
---
|
||||
|
||||
## Stage 4 — Verify (локально / hook `final-verify.cjs`)
|
||||
## Stage 5 — Verify (локально / hook `final-verify.cjs`)
|
||||
|
||||
Выполнить подряд из **`dnd_player/`**:
|
||||
|
||||
@@ -91,11 +107,11 @@ npm run test
|
||||
npm run build
|
||||
```
|
||||
|
||||
### Критерии приёмки (Stage 4)
|
||||
### Критерии приёмки (Stage 5)
|
||||
|
||||
1. Из **`dnd_player/`**: `npm run typecheck`, `npm run test`, `npm run build` — **exit 0**.
|
||||
2. Линт: либо полный `npm run lint` — **exit 0**, либо (при известном eol-долге репозитория) scoped-ESLint по файлам PR — **exit 0**, как в блоке выше.
|
||||
3. Из корня воркспейса (`cursorAi`): `node .cursor/hooks/final-verify.cjs` — успешное завершение пайплайна только когда полный `npm run lint` в **`dnd_player/`** зелёный (хук вызывает полный lint; при падении lint хук пишет `followup_message` в stdout).
|
||||
3. Из корня воркспейса (`cursorAi`): `node .cursor/hooks/final-verify.cjs` — при **`verify_repo`: `dnd_player`** (по умолчанию для этого чеклиста): все четыре ключа пайплайна **`done`**, затем в **`dnd_player/`** зелёные `lint` / `typecheck` / `test` (см. **`project.mdc`**).
|
||||
|
||||
---
|
||||
|
||||
@@ -105,9 +121,11 @@ npm run build
|
||||
|
||||
```json
|
||||
{
|
||||
"implementation": "done",
|
||||
"review": "done",
|
||||
"tests": "done"
|
||||
"frontend_development": "done",
|
||||
"ui_autotests": "done",
|
||||
"code_review": "done",
|
||||
"ui_browser_verification": "done",
|
||||
"verify_repo": "dnd_player"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user