9ffe812844
Made-with: Cursor
48 lines
4.8 KiB
Markdown
48 lines
4.8 KiB
Markdown
# Воркспейс `dnd_project` (корень: `cursorAi`)
|
||
|
||
Этот каталог — **единая точка входа** в Cursor для всей экосистемы DNDGamePlayer: общие правила, агенты, пайплайн и чеклисты лежат в **`.cursor/`** здесь, а не в отдельных репозиториях.
|
||
|
||
Родительская папка на диске: **`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/`.
|
||
- **`DndGamePlayerLicenseServer`**: `npm start` (или `node src/server.mjs`); синтаксис: `node --check` для `src/` и `lib/`.
|
||
|
||
Хук **`stop`** в Cursor (см. `.cursor/hooks.json`) запускает финальную проверку: стадии в `.cursor/pipeline-state.json` и команды **`lint` / `typecheck` / `test`** выполняются в каталоге **`dnd_player`**, если воркспейс открыт из `cursorAi` (см. логику в `.cursor/hooks/final-verify.cjs`). Переопределение пути: переменная окружения **`DND_PLAYER_ROOT`**.
|
||
|
||
---
|
||
|
||
## Пайплайн и правила
|
||
|
||
- Правила агента по умолчанию: **`.cursor/rules/project.mdc`** (future-pipeline: implementation → review → tests → verify).
|
||
- Пошаговый сценарий с под-агентами: **`.cursor/skills/feature-pipeline/SKILL.md`**.
|
||
- Под-агенты: **`.cursor/agents/`** (`frontend-senior`, `reviewer`, `unit-tests`).
|
||
- PR-чеклисты: **`.cursor/pr-checklists/`** (пути к файлам в чеклистах заданы относительно репозитория **`dnd_player/`**).
|
||
|
||
При работе **только** в `project-converter` или `DndGamePlayerLicenseServer` соблюдай смысл пайплайна (минимальный diff, тесты по возможности), а формальные команды `npm run lint` и т.д. из плеера запускай, когда менялся общий контракт или есть смысл прогнать регрессию всего монорепо по смыслу (или по требованию задачи).
|
||
|
||
---
|
||
|
||
## Multi-root в Cursor (по желанию)
|
||
|
||
Чтобы видеть все папки в одном окне, можно добавить в файл `*.code-workspace` блок `folders` с путями к `cursorAi`, `dnd_player`, `project-converter`, `DndGamePlayerLicenseServer`. Корнем с правилами остаётся папка, где лежит актуальный **`.cursor/`** (рекомендуется **`cursorAi`**).
|