Repository Refactoring Methodology & Plan
Комплексная методология для решения проблем контекста и восстановления эффективности AI-агента
🎯 Проблемы, которые мы решаем
- Потеря контекста AI-агентом - слишком много несвязанного кода в одном репо
- Снижение качества разработки - мелкие баги из-за неправильного контекста
- Медленное восстановление контекста - 10+ действий вместо 2-3
- Смешение приоритетов - продакшн код (Mercury) смешан с экспериментами
- Устаревшая FDD методология - не учитывает специфику AI workflow
🏆 Выбранное решение: Smart Monorepo с AI-контекстными Workspace'ами (Cursor 0.50.7 Edition)
Источник: Изначальная концепция Gemini 2.5-pro, o3, deepthink r1, grok3, обновленная под реалии Cursor 0.50.7.
Почему именно этот подход?
- ✅ Сохраняет все преимущества pnpm monorepo (shared modules, единая сборка)
- ✅ Минимальные изменения в структуре кода по сравнению с радикальным разделением
- ✅ Максимальная эффективность для AI через:
- Multi-root Workspaces: Изоляция доменов на уровне IDE.
- @folders: Мгновенный полный контекст для домена.
- AI-Manifest.md: Высокоуровневые инструкции и описание домена.
- Path-based .cursor/rules: Автоматическое применение правил внутри домена.
- Background Agents: Автономное выполнение задач в четко определенном контексте.
- ✅ Постепенное внедрение без рисков для продакшна.
- ✅ Масштабируемость - легко перейти к multi-repo при необходимости.
- ✅ Обучающий компонент: Помогает освоить новые фичи Cursor.
📁 Новая структура репозитория
ton-arcana/
├── products/ # Основные продукты
│ ├── mercury/ # 🥇 Приоритет #1
│ │ ├── backend/ # apps/mercury
│ │ ├── dashboard/ # apps/mercury-dashboard
│ │ ├── ai-manifest.md # AI-навигация
│ │ └── package.json
│ ├── arcana/
│ │ ├── backend/ # apps/arcana-backend
│ │ ├── twa/ # apps/arcana-twa
│ │ ├── ai-manifest.md
│ │ └── package.json
│ ├── anytracker/
│ │ ├── backend/ # apps/anytracker-backend
│ │ ├── mini-app/ # apps/anytracker-mini-app
│ │ └── ai-manifest.md
│ └── maschine/ # Консолидированные фичи
├── shared/ # Общие пакеты (packages/*)
│ ├── core/
│ │ ├── common-utils/
│ │ ├── types/
│ │ └── auth-utils/
│ ├── integrations/
│ │ ├── kaido-telegram/
│ │ ├── kaido-ton/
│ │ ├── kaido-ollama/
│ │ └── openai-utils/
│ └── domain/
│ ├── kaido-talib/ # TS wrapper для TA
│ └── curvinator/ # Legacy но используемый
├── platform/ # Инфраструктура и документация
│ ├── infra/
│ │ ├── ansible/
│ │ ├── docker/
│ │ └── grafana/
│ ├── docs/
│ │ ├── mercury/ # Продукт-специфичная документация
│ │ ├── arcana/
│ │ └── platform/ # Общая документация, ADR
│ └── scripts/ # Утилиты разработки
├── archive/ # Deprecated код
│ ├── mercury-ta/ # Python TA API (deprecated)
│ ├── k8s/ # Неактуальные k8s конфиги
│ ├── mcp-task-warrior/ # Эксперимент MCP
│ └── kaido.team/ # Пустой публичный блог
├── workspaces/ # VS Code Multi-Root Workspace конфиги
│ ├── mercury.code-workspace # Фокус на Mercury
│ ├── arcana.code-workspace # Фокус на Arcana
│ ├── anytracker.code-workspace # Фокус на AnyTracker
│ └── platform.code-workspace # Фокус на Platform/Infra
├── pnpm-workspace.yaml
└── package.json
🤖 AI-First Context Recovery Система (Cursor 0.50.7 Native)
1. AI-Manifest файлы (Сохраняются)
Каждый продукт (products/mercury/ai-manifest.md, products/arcana/ai-manifest.md и т.д.) по-прежнему содержит ai-manifest.md. Это высокоуровневое описание домена, его назначения, ключевых технологий, модулей и специфичных AI-инструкций. AI-Manifest НЕ ЗАМЕНЯЕТ Rules, а дополняет их, давая "человеческое" описание проекта.
# Mercury AI Manifest
## Назначение
Торговая система с мифологической архитектурой модулей для автоматического трейдинга.
## Статус: production (высокий приоритет)
## Ключевые технологии
- NestJS (backend)
- React (dashboard)
- TypeScript
- Redis (очереди)
- PostgreSQL + MicroORM
## Основные модули
- **APOLLO**: Анализ портфеля и метрики
- **DIKE**: Турнирная система сравнения рынков
- **TYCHE**: Ранжирование рынков и поиск sweet spots
- **KAIROS**: Исполнение стратегий в правильный момент
## Точки входа
- `backend/src/main.ts` - основное приложение
- `dashboard/src/main.tsx` - фронтенд
## AI-инструкции (Высокоуровневые, дополняют .cursor/rules)
- ИСПОЛЬЗУЙ `kaido-talib` (TS) вместо `mercury-ta` (Python) - _Это будет продублировано в .cursor/rules_
- НЕ используй дефолтные порты (dangerous*defaults rule) - *Это будет продублировано в .cursor/rules\_
- Все модули именованы по греческим/римским богам - _Это будет продублировано в .cursor/rules_
- Фокус на модуле DIKE в текущем спринте
2. Multi-Root VS Code Workspace Configuration (Вместо старых .code-workspace)
Создаются Multi-Root Workspaces для каждого основного домена. Например, workspaces/mercury.code-workspace будет включать:
// workspaces/mercury.code-workspace
{
"folders": [
{ "path": "../products/mercury", "name": "Product: Mercury" }, // Относительный путь от файла .code-workspace
{ "path": "../shared/core", "name": "Shared: Core Libs" },
{ "path": "../shared/domain/kaido-talib", "name": "Shared: Kaido TALib" },
{ "path": "../platform/docs/mercury", "name": "Docs: Mercury" }
// При необходимости можно добавить другие релевантные shared/* или platform/* папки
],
"settings": {
// Настройки специфичные для этого воркспейса
"editor.rulers": [80, 120],
"files.exclude": {
// Можно скрыть нерелевантные части монорепо, если необходимо
// Но @folders и так обеспечит точность контекста AI
},
"search.exclude": {
// Исключаем все, что не относится к Mercury и его прямым зависимостям
"**/products/arcana/**": true,
"**/products/anytracker/**": true,
"**/archive/**": true,
"**/node_modules/**": true
},
// Cursor 0.50.7+ specific settings
"cursor.chat.defaultModel": "claude-3.5-sonnet", // Пример
"cursor.ai.projectStructure.includeInContext": true, // Помогает AI понимать структуру в воркспейсе
"cursor.ai.projectStructure.prioritize": ["products/mercury"] // Приоритет для авто-контекста
},
"extensions": {
"recommendations": [
"ms-vscode.vscode-typescript-next",
"bradlc.vscode-tailwindcss",
"esbenp.prettier-vscode"
]
}
}
Ключевое отличие: Каждый .code-workspace файл теперь определяет изолированное рабочее окружение для конкретного домена, явно включая нужные части монорепо.
3. Контекст и Управление AI с Cursor 0.50.7 (Замена Dynamic Context Switching)
Старый механизм cp .ai-contexts/mercury.json .ai-context.json полностью заменяется нативными функциями Cursor:
- Открытие Workspace: Разработчик открывает нужный
workspaces/mercury.code-workspaceдля работы над Mercury. Это автоматически устанавливает правильныеfoldersиsettings. - @folders: Для предоставления AI полного контекста домена используется команда
@folders products/mercury(или более специфичные пути внутри воркспейса). AI увидит все файлы в указанных папках. - Path-based
.cursor/rules: Внутриproducts/mercury/.cursor/rulesсоздаются правила, специфичные для Mercury (например, запретmercury-ta, использование мифологических имен). Эти правила применяются автоматически, когда AI работает с файлами вproducts/mercury/.# products/mercury/.cursor/rules
When working in products/mercury/:
- NEVER import from mercury-ta, ALWAYS use kaido-talib
- Use mythological naming (APOLLO, DIKE, TYCHE, etc.)
- NO hardcoded ports (dangerous_defaults rule)
- Background jobs MUST use Redis queues - Background Agents: Задачи для AI можно делегировать Background Agent'ам. Агент будет работать в контексте активного воркспейса и примененных
@foldersи правил.Background Agent: "@folders products/mercury - Refactor DIKE module to use new TournamentService" - Rules Generation: Успешные взаимодействия с AI, приведшие к хорошему коду, можно использовать для генерации новых правил командой
/Generate Cursor Rules.
package.json scripts:
Скрипты ctx:* теперь будут просто открывать соответствующий .code-workspace файл, если это удобно, или могут быть удалены за ненадобностью, так как переключение происходит через IDE.
{
"scripts": {
// Старые ctx:* скрипты заменяются
"workspace:mercury": "code workspaces/mercury.code-workspace", // Открывает VS Code с нужным воркспейсом
"workspace:arcana": "code workspaces/arcana.code-workspace",
// ... другие полезные скрипты
"lint": "eslint .",
"test:mercury": "echo 'Running Mercury tests...'" // Пример
}
}
Удаляется директория .ai-contexts/.
4. 🎓 Cursor Mastery Bootcamp (Адаптировано)
Этот план также включает обучение новым возможностям Cursor.
Problem 1: Rules в бардаке (Решается Path-based rules и генерацией)
Что освоить:
- Иерархия Rules (Always vs Auto Attached by path vs Manual).
- Создание Auto Attached rules в
.cursor/rulesвнутри каждогоproducts/*домена. - Генерация Rules из успешных диалогов.
- Дебаг активных Rules.
Problem 2: Неэффективное использование контекста (Решается @folders и Multi-root)
Что освоить:
- Использование
@folders path/to/productдля дачи полного контекста домена. - Настройка и использование Multi-root workspaces (
workspaces/*.code-workspace). - Оптимизация контекста: когда
@foldersвсего продукта, когда более специфичные подпапки. - Дебаг контекста (что AI видит).
Problem 3: Sequential workflow (Решается Background Agents)
Что освоить:
- Делегирование задач Background Agent'ам.
- Мониторинг и управление Background Agents.
- Декомпозиция задач для агентов.
🚀 План миграции (поэтапный, с учетом Cursor 0.50.7)
Фаза 0: Подготовка и Обучение (3 дня) - Cursor Mastery Bootcamp
- День 1: Rules & @folders
- Изучить документацию Cursor по Rules (Always, Auto Attached, Manual) и
@folders. - Создать базовые
.cursor/rulesв корне проекта (глобальные, типаdangerous_defaults). - Практика с
@foldersна примереproducts/mercury.
- Изучить документацию Cursor по Rules (Always, Auto Attached, Manual) и
- День 2: Multi-Root Workspaces
- Создать
workspaces/mercury.code-workspaceкак Multi-root workspace, включающийproducts/mercury/и нужныеshared/папки. - Настроить
settingsиsearch.excludeв нем. - Попрактиковаться в работе внутри этого воркспейса.
- Создать
- День 3: Background Agents & Rules Generation
- Включить Background Agent (Beta).
- Дать агенту простые задачи в контексте
mercury.code-workspace+@folders products/mercury. - Попробовать
/Generate Cursor Rulesпосле успешного взаимодействия.
Фаза 1: Начальная Структуризация (2-3 дня)
- Создать
archive/- переместить deprecated код (как и в оригинальном плане).mercury-ta/→archive/mercury-ta/// ... (остальные элементы для архивации)
- Создать AI-manifest файлы для
products/mercuryиproducts/arcana. - Создать базовые
.cursor/rulesвproducts/mercury/.cursor/rules(например, запретmercury-ta). - Настроить
workspaces/mercury.code-workspaceиworkspaces/arcana.code-workspaceкак Multi-Root.
Фаза 2: Mercury Migration & Refinement (3-4 дня) - Фокус на одном домене
- Создать
products/mercury/(если еще не сделано). - Переместить
apps/mercury→products/mercury/backend/. - Переместить
apps/mercury-dashboard→products/mercury/dashboard/. - Обновить импорты и
package.jsonвproducts/mercury. - Тщательно протестировать сборку и функциональность Mercury.
- Активно использовать
mercury.code-workspace:- Работать над Mercury ИСКЛЮЧИТЕЛЬНО через этот воркспейс.
- Применять
@folders products/mercury/backend(или другие нужные части) для задач AI. - Использовать Background Agent для рефакторинга, добавления тестов в Mercury.
- Генерировать и уточнять правила в
products/mercury/.cursor/rules.
Фаза 3: Shared Libraries Reorganization (2 дня)
- Создать
shared/структуру (как в оригинальном плане). - Переместить
packages/→shared/. - Обновить импорты во всех продуктах, которые уже в
products/. - Валидировать dependency graph (можно использовать
pnpm listили инструменты Nx, если он будет добавлен позже). - Убедиться, что
shared/библиотеки корректно доступны из Multi-root воркспейсов.
Фаза 4: Остальные продукты (по необходимости)
- Arcana migration: Повторить шаги Фазы 2 для
products/arcana/иworkspaces/arcana.code-workspace. // ... (аналогично для AnyTracker, Maschine)
Фаза 5: Validation & Optimization (1-2 дня)
- Тестирование AI workflow:
- Попросить нового AI (или в новой сессии) выполнить задачу в
mercury.code-workspaceпосле применения@folders products/mercury. AI должен быстро понять контекст. - Проверить, что Background Agent корректно выполняет задачи.
- Убедиться, что path-based rules применяются автоматически.
- Попросить нового AI (или в новой сессии) выполнить задачу в
- Измерение времени восстановления контекста (должно сократиться до открытия воркспейса + одной
@foldersкоманды). - Настройка CI/CD для новой структуры (если есть).
- Документирование новой методологии для команды (включая использование воркспейсов,
@folders, правил).
📊 Ожидаемые результаты
Метрики успеха
- Время восстановления контекста AI: с 10+ действий до открытия воркспейса + 1 команды
@folders. - Качество кода: снижение багов за счет четкого контекста и автоматических правил.
- Скорость разработки: увеличение за счет Background Agents и более точных советов AI.
- Уверенность в коде: "работает с первого раза" становится чаще.
Преимущества
- Mercury (и другие продукты) получают чистый, изолированный контекст в своих воркспейсах.
- Сохранены все плюсы монорепо.
- AI-агент работает предсказуемо благодаря Multi-root,
@foldersи path-based rules. // ... (остальные преимущества из оригинального плана)
🔧 Технические детали
pnpm-workspace.yaml
packages:
- 'products/*/backend'
- 'products/*/dashboard'
- 'products/*/mini-app'
- 'shared/*/*'
- 'platform/scripts/*'
.cursorignore (по умолчанию)
archive/**
node_modules/**
dist/**
.next/**
*.log
AI Context файл (.ai-context.json) - УДАЛЯЕТСЯ / ЗАМЕНЯЕТСЯ
Этот файл и директория .ai-contexts/ больше не нужны. Контекст управляется через:
- Multi-Root Workspaces (
workspaces/*.code-workspace) - определяют доступные папки. - @folders команда в чате - определяет активный файловый контекст для AI.
- Path-based
.cursor/rules- определяют постоянные инструкции для AI при работе в определенных директориях. - AI-Manifest.md - высокоуровневое описание домена.
🎯 Sacred Grail Achievement (Cursor 0.50.7 Version)
С этой системой ты сможешь:
- Открыть
workspaces/mercury.code-workspace. - Сказать AI:
@folders products/mercury(или более конкретно, например,@folders products/mercury/backend/src/dike) "Добавь новую фичу в DIKE модуль согласноproducts/mercury/ai-manifest.md". - ИЛИ Поручить Background Agent'у:
Background Agent: "@folders products/mercury/backend/src/dike - Implement feature X as described in DIKE section of products/mercury/ai-manifest.md, following all rules in products/mercury/.cursor/rules" - AI выполнит:
- Будет работать в контексте
mercury.code-workspace. - Благодаря
@foldersполучит полный и точный контекст указанных файлов. - Автоматически применит правила из
products/mercury/.cursor/rules. - Прочитает
products/mercury/ai-manifest.mdдля высокоуровневого понимания задачи и архитектуры. - Реализует фичу с пониманием мифологической архитектуры, правильным использованием
kaido-talibи т.д.
- Будет работать в контексте
- Результат: Код работает с первого раза, без багов от неправильного контекста, с соблюдением всех доменных правил.
Это твой Sacred Grail - высокоуровневый инструмент управления AI в режиме агента с минимальной болью и максимальной предсказуемостью, основанный на нативных возможностях Cursor 0.50.7.