Версия: 1.0.0
Дата: 2025-11-19
Статус: Active
Этот документ описывает концепцию платформы — философию, принципы и идеи, лежащие в основе дизайна.
Это НЕ:
- ❌ Архитектура (см. ARCHITECTURE.md)
- ❌ Спецификации (см. specifications/)
- ❌ Примеры реализации
- ❌ Технические детали
Это:
- ✅ Почему платформа устроена так
- ✅ Философия подхода
- ✅ Принципы принятия решений
- ✅ Идеи, которые определяют дизайн
Проблема:
Работа с множеством проектов, инфраструктур, агентов приводит к:
- Хаосу в структуре
- Дублированию информации
- Несогласованности между частями
- Сложности понимания системы
- Огромному расходу токенов
Решение:
Платформа создаёт единую согласованную систему, где:
- Каждый элемент имеет чёткое место
- Информация не дублируется
- Структура самодокументирующаяся
- Расход токенов минимален
Любая сложная система требует множественных независимых взглядов (срезов) для полного понимания.
Один взгляд не может описать всю систему. Нужно видеть систему с разных сторон, но каждый срез должен быть независим и чист.
Система анализируется через 8 независимых измерений (срезов):
Эти 8 измерений покрывают все аспекты системы:
Эти 8 измерений — минимальный достаточный набор для полного понимания.
Ключевое правило:
Каждое измерение имеет свою логику и НЕ смешивается с другими.
Почему это важно?
- Изменение в одном срезе не ломает другие
- Можно анализировать систему с одной стороны, не загружая всё остальное
- Легче находить проблемы (они всегда в конкретном измерении)
- Экономия токенов (загружаем только нужный срез)
Пример:
- Структурное измерение: "Проект находится в projects/marketplace/"
- Функциональное измерение: "Проект управляет каналами продаж"
- Это разные вопросы, требующие разных ответов, но описывающие один объект.
Измерения независимы, но связаны через объекты:
Объект: "marketplace"
Структурно → projects/marketplace/
Функционально → "Управление Ozon"
Процессно → "Workflow обработки заказов"
Ролево → "Project-agent выполняет"
Технически → "Python + Streamlit"
Информационно → "SQLite БД + YAML конфиги"
Временно → "v1.0.0 → v1.1.0"
Пространственно → "@infra-dev-pro"
Все измерения описывают один объект, но с разных сторон.
Каждый элемент системы выполняет ОДНУ роль и выполняет её хорошо.
Применение:
- Один файл = одна роль
- Одна папка = один контекст
- Один агент = один тип задач
- Одно измерение = один аспект системы
Антипример:
- ❌ Файл, который содержит и концепцию, и архитектуру, и спецификации
- ❌ Агент, который создаёт проекты и работает с API
- ❌ Документ, который описывает и философию, и конкретные форматы файлов
Каждый факт имеет единственный источник истины.
Применение:
- Информация хранится в одном месте
- Другие места ссылаются на источник
- При изменении обновляется только источник
Почему это важно:
- Нет рассогласованности при изменениях
- Экономия токенов (одна информация загружается раз)
- Проще поддерживать (изменение в одном месте)
Механизмы:
- Символические ссылки (@latest → v2.0.0)
- References в YAML (infra: @infra-dev-pro)
- Компоненты и templates
Каждый элемент знает свою зону ответственности и не выходит за неё.
Применение:
- Папка определяет контекст работы
- Агент работает ТОЛЬКО в своей области
- Измерение описывает ТОЛЬКО свой аспект
Почему это важно:
- Безопасность (агент не может сломать чужой код)
- Предсказуемость (знаем, где что искать)
- Изоляция ошибок (проблема в одной зоне)
AI агенты работают в рамках ограниченного контекста (tokens).
Наивный подход:
Загрузить весь код и всю документацию → 100K+ tokens
Результат:
- Медленная работа
- Высокая стоимость
- Достижение лимитов
Идея:
Большинство задач решается малым контекстом. Загружаем минимум, расширяем по необходимости.
Уровни:
- Уровень 1 (80% задач) — Минимальный контекст (~1-2K tokens)
- Уровень 2 (15% задач) — Расширенный контекст (~5-10K tokens)
- Уровень 3 (5% задач) — Полный контекст (~20-50K tokens)
Почему 80/15/5?
- Эмпирическое наблюдение: большинство задач простые
- Закон Парето (80/20) + детализация остатка
- Оптимизация среднего случая
Идея:
Загружать только то, что реально нужно, когда нужно.
Механизмы:
- Загрузка документов по требованию
- Индексы (index.yaml) вместо полных файлов
- Агенты загружаются только при использовании
Идея:
Один раз написать, много раз использовать.
Механизмы:
- Компоненты (FSD) — код, используемый в разных проектах
- Templates — структуры для создания новых элементов
- Shared vendor — общие зависимости
Экономия:
- Компоненты: 80-90%
- Templates: 60%
- Shared vendor: 78-85%
Риски:
- Сломать работающий код
- Потерять данные
- Внести несовместимые изменения
- Не иметь возможности отката
Идея:
Любое изменение проходит через серию этапов с возможностью отката на каждом.
Принципы:
- Чекпоинты (сохранение состояния)
- Валидация (проверка корректности)
- Rollback (откат при проблемах)
- Staging (тестирование перед продакшеном)
Идея:
Агент всегда спрашивает перед необратимыми действиями.
Применение:
- ВСЕГДА спрашивать перед изменением файлов
- ВСЕГДА спрашивать перед удалением
- БЕЗ подтверждения: только чтение и анализ
Почему это важно:
- Оператор контролирует процесс
- Нет неожиданных изменений
- Безопасность критичных операций
Идея:
При наличии нескольких решений показать ВСЕ, отсортированные по качеству.
Почему это важно:
- Оператор видит все варианты
- Может выбрать оптимальный для своей ситуации
- Понимает компромиссы (плюсы/минусы каждого варианта)
Реальность:
Через 3 месяца:
- Забыл, зачем это сделано
- Забыл, как это работает
- Забыл, где что лежит
Идея:
Структура сама объясняет, что где и зачем.
Механизмы:
- Имя папки = назначение (projects/ очевидно для проектов)
- Имя файла = роль (CLAUDE.md очевидно для агентов)
- Структура = логика (design/ → management/ → solution/ понятна)
Проверка:
Можно ли через 3 месяца вернуться и понять систему без объяснений?
Критерии:
- ✅ Понятны названия
- ✅ Понятна структура
- ✅ Есть README.md для людей
- ✅ Есть CLAUDE.md для агентов
- ✅ Есть index.yaml для навигации
Идея:
Система легко меняется и растёт без переписывания с нуля.
Механизмы:
- Версионирование (v1.0.0 → v1.1.0 → v2.0.0)
- Миграции (плавный переход между версиями)
- Архивирование (сохранение старых версий)
- Обратная совместимость (старое продолжает работать)
Подходит для:
- ✅ Множество проектов (5+)
- ✅ Работа с AI агентами
- ✅ Требуется согласованность
- ✅ Требуется экономия токенов
- ✅ Долгосрочная поддержка (годы)
НЕ подходит для:
- ❌ Одноразовый скрипт
- ❌ Быстрый прототип (2 часа)
- ❌ Система без AI агентов
- ❌ Нет требований к структуре
Альтернатива 1: Монорепозиторий
- Всё в одной папке
- Подходит: маленький проект, один разработчик
- Не подходит: множество проектов, команда
Альтернатива 2: Микросервисная архитектура
- Каждый проект полностью независим
- Подходит: большие команды, разные технологии
- Не подходит: общие компоненты, единая система
Альтернатива 3: Без структуры
- Папки создаются по необходимости
- Подходит: эксперименты, временные проекты
- Не подходит: долгосрочная поддержка
Целевой сценарий:
- Множество проектов (marketplace, pim, platform-v2, ...)
- Работа с AI агентами (Orchestrator, Project-agent, ...)
- Долгосрочная поддержка (годы)
- Экономия токенов критична
- Требуется согласованность
Для этого сценария:
- 8 измерений → полное понимание
- Архитектурная чистота → легко поддерживать
- Экономика токенов → быстро и дёшево
- Безопасность изменений → можно эволюционировать
- Maintenance-friendly → понятно через месяцы/годы
v0.x — Хаос
- Проекты в разных местах
- Дублирование документации
- Нет согласованности
v1.0 — Platform v1
- Появилась структура
- Определены стандарты
- Создан workspace
v2.0 — Platform v2 (текущая)
- 8 измерений
- Архитектурная чистота
- Экономика токенов
- 4 кластера (система, platform v1, platform v2, проекты)
Изменения концепции:
- Мажорные (1.x → 2.x) — изменение фундаментальных принципов
- Минорные (2.0 → 2.1) — добавление новых идей
- Патчи (2.1.0 → 2.1.1) — уточнение формулировок
Обратная совместимость:
- Старые проекты продолжают работать (platform v1)
- Новые создаются по новой концепции (platform v2)
- Миграция постепенная, не обязательная
Возможные направления:
- Автоматизация создания структур
- AI-помощники для каждого измерения
- Интеграция с внешними системами
- Расширение на другие языки (PLATFORM-V2 language)
ARCHITECTURE.md — как концепция реализованаarchitecture/1-8.md — детализация каждого измеренияspecifications/ — технические требованияreference/ — быстрый доступ к информацииВерсия: 1.0.0
Дата: 2025-11-19
Статус: Active
Следующий документ: ARCHITECTURE.md