Files
CursorAi/WORKSPACE.md
T
2026-05-11 22:20:28 +08:00

6.0 KiB
Raw Blame History

Воркспейс 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_playerlint / typecheck / test; project-converternpm run lint, node --check по src/, обязательный npm run test (скрипт test должен быть в package.json); DndGamePlayerLicenseServernode --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).