Files
CursorAi/WORKSPACE.md
T
2026-07-01 15:56:46 +08:00

7.1 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-зависимостей в манифесте.
../ttrpg-player-landing ttrpg-player-landing Статический маркетинговый лендинг НРИ Плеер (React + Vite + TypeScript). Не входит в сборку плеера.

Связь клиента и сервера лицензий описана в README сервера и в коде плеера (bundledPublicKey и переменные окружения).


Публичные домены (продакшен)

Сервис Домен Репозиторий / путь на VPS
Лендинг https://ttrpgplayer.ru/ ttrpg-player-landing/var/www/ttrpgplayer_ru/www
Автообновления https://updates.ttrpgplayer.ru/ артефакты в /var/www/updates_mailib_ru
Лицензии https://license.ttrpgplayer.ru/ DndGamePlayerLicenseServer/var/www/license_mailib_ru (PM2 dnd-license, порт 3847)
API https://api.ttrpgplayer.ru/ PM2 mailib, порт 3000

Git: git.mailib.ru — без изменений.


Сборка и проверки

  • 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).
  • ttrpg-player-landing: npm install, npm run dev, npm run build, npm run lint, npm run typecheck, npm run test.

Хук stop (.cursor/hooks/final-verify.cjs): читает .cursor/pipeline-state.json. Если verify_repo = none (правки только в cursorAi), хук сразу завершается успехом. Иначе при четырёх done пайплайна запускает проверки целевого репо: dnd_player / ttrpg-player-landinglint / typecheck / test; project-converternpm run lint, node --check по src/, обязательный npm run test; 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). ttrpg-player-landing — полный набор lint / typecheck / test как у плеера. Политика тестов — вариант A: любое изменение поведения в том же PR добавляет/обновляет npm test и сами тесты; откладывать на отдельный эпик нельзя. Запуск проверок из dnd_player при задаче только в другом репо не заменяет verify целевого репозитория.


Multi-root в Cursor (по желанию)

Чтобы видеть все папки в одном окне, можно добавить в файл *.code-workspace блок folders с путями к cursorAi, dnd_player, project-converter, DndGamePlayerLicenseServer. Корнем с правилами остаётся папка, где лежит актуальный .cursor/ (рекомендуется cursorAi).