Co-authored-by: Cursor <cursoragent@cursor.com>
6.0 KiB
Воркспейс dnd_project (корень: cursorAi)
Этот каталог — единая точка входа в Cursor для всей экосистемы DNDGamePlayer: общие правила, агенты, пайплайн и чеклисты лежат в .cursor/ здесь, а не в отдельных репозиториях. Обзор продукта и карта репозиториев для агентов: AGENTS.md (читать в начале сессии).
Родительская папка на диске: D:\Work\my_projects\dnd_project (рядом с cursorAi лежат остальные репозитории).
Каталог dnd_player/.cursor на Windows — это junction (символическая связь каталога) на cursorAi/.cursor: один источник правил и хуков, без дублирования. Клонировать репозитории лучше в соседние папки с тем же относительным расположением; после клона только dnd_player junction нужно создать заново (или держать .cursor только в cursorAi и не коммитить его в dnd_player).
Репозитории
| Каталог | Репозиторий | Назначение |
|---|---|---|
cursorAi |
воркспейс Cursor | Документация (этот файл), единые настройки .cursor/. Отдельного приложения нет. |
../dnd_player |
DNDGamePlayer | Electron: редактор и проигрыватель игр (React, Pixi.js, .dnd.zip, лицензирование). Основной код и полный CI-набор: lint, typecheck, test, build. |
../project-converter |
dnd-project-converter | Утилита: конвертация .dnd.zip, добавление превью сцен (WebP). Свой package.json, отдельный Electron-пакет. |
../DndGamePlayerLicenseServer |
dndgameplayer-license-server | HTTP-сервис лицензий (Ed25519, активация, отзыв). Node ≥20, без npm-зависимостей в манифесте. |
Связь клиента и сервера лицензий описана в README сервера и в коде плеера (bundledPublicKey и переменные окружения).
Сборка и проверки
dnd_player: из каталога репозитория —npm install,npm run dev,npm run build,npm run lint,npm run typecheck,npm run test.project-converter: отдельногоbuildнет;npm install,npm run dev. Синтаксис:node --checkпо файлам вsrc/.npm run test— обязателен после появления скриптаtest(вариант A, см.project.mdc).DndGamePlayerLicenseServer:npm start(илиnode src/server.mjs);node --checkдляsrc/иlib/.npm run test— обязателен после появления скриптаtest(вариант A).
Хук stop (.cursor/hooks/final-verify.cjs): читает .cursor/pipeline-state.json. Если verify_repo = none (правки только в cursorAi), хук сразу завершается успехом. Иначе при четырёх done пайплайна запускает проверки целевого репо: dnd_player — lint / typecheck / test; project-converter — npm run lint, node --check по src/, обязательный npm run test (скрипт test должен быть в package.json); DndGamePlayerLicenseServer — node --check по src/ и lib/, обязательный npm run test. Переопределение репо для хука: VERIFY_REPO; корень соседних репозиториев: DND_PROJECT_ROOT; для плеера: DND_PLAYER_ROOT.
Пайплайн и правила
- Правила агента по умолчанию:
.cursor/rules/project.mdc, порядок этапов:agents-pipeline-order.mdc, стандарты:frontend-agent-core.mdc,frontend-development-standards.mdc, гейты:agent-test-gates-mandatory.mdc. - Пошаговый сценарий с под-агентами:
.cursor/skills/feature-pipeline/SKILL.md. - Под-агенты:
.cursor/agents/(frontend-developer,ui-test-developer,code-reviewer,ui-tester). - PR-чеклисты:
.cursor/pr-checklists/(пути к файлам в чеклистах заданы относительно репозиторияdnd_player/).
Для project-converter и DndGamePlayerLicenseServer действуют те же требования пайплайна и гейтов, что и для dnd_player (см. project.mdc, agents-pipeline-order.mdc). Политика тестов — вариант A: любое изменение поведения в том же PR добавляет/обновляет npm test и сами тесты; откладывать на отдельный эпик нельзя. Запуск проверок из dnd_player при задаче только в другом репо не заменяет verify целевого репозитория.
Multi-root в Cursor (по желанию)
Чтобы видеть все папки в одном окне, можно добавить в файл *.code-workspace блок folders с путями к cursorAi, dnd_player, project-converter, DndGamePlayerLicenseServer. Корнем с правилами остаётся папка, где лежит актуальный .cursor/ (рекомендуется cursorAi).