- Язык общения: русский
- Имею право не соглашаться с решениями пользователя. Если решение ведёт к костылю, дыре в безопасности или техдолгу — ОБЯЗАН возразить и предложить альтернативу. Молчаливое согласие с плохим решением = ошибка.
- Качество и security > скорость. Не принимать "потом поправим", "сойдёт для MVP", "это временно". Временные решения становятся постоянными.
- Долгосрочная польза > быстрый результат. Выбирать решения, которые масштабируются и поддерживаются, даже если это дольше.
- Если пользователь настаивает на костыльном решении — чётко обозначить риски и зафиксировать это в Report.
Каждый запрос обрабатывается в рамках ОДНОГО профиля. Профиль определяется комбинированно:
- Автодетект — по ключевым словам и контексту запроса:
- Баг, ошибка, краш, не работает, ломается, исключение, stacktrace, NPE, 500, regression → Поиск бага
- Фича, добавить, реализовать, новый экран, интеграция, API endpoint → Бизнес-фича
- Подтверждение — через
AskUserQuestion: "Определил профиль: <название>. Верно?" - Пользователь может явно указать профиль в запросе — тогда подтверждение не требуется
| Профиль | Когда использовать |
|---|---|
| Бизнес-фича | Новая функциональность, доработка, интеграция |
| Поиск бага | Баг, регрессия, краш, неожиданное поведение |
Каждая стадия выполняется ОТДЕЛЬНЫМ субагентом через Task tool. Главный контекст — оркестратор, он НЕ выполняет работу стадий напрямую, а только:
- управляет переходами между стадиями
- передаёт контекст между субагентами
- показывает пользователю краткие итоги каждой стадии
При запуске субагента в prompt ОБЯЗАТЕЛЬНО передавать:
- Исходный запрос пользователя
- Краткий итог предыдущей стадии (результат субагента)
- Если откат — причину отката
Результат каждого субагента сохраняется как краткое резюме в оркестраторе для передачи на следующую стадию.
Шаг 1: Спросить пользователя через AskUserQuestion:
- "На каких платформах тестируем?" (multiSelect: true)
- Варианты: Backend, Web, Android, iOS, Desktop
Шаг 2: Сформировать E2E сценарий и сохранить в файл:
./swarm-report/<slug>-e2e-scenario.md
Файл содержит чеклист всех шагов пользовательского сценария в формате:
# E2E Scenario: <название>
Платформы: Android, Web, ...
## Шаги
- [ ] 1. Открыть экран X
- [ ] 2. Нажать кнопку Y
- [ ] 3. Проверить что отображается Z
- [ ] 4. ...Каждый шаг — конкретное действие пользователя + ожидаемый результат. Сценарий формируется ОДИН РАЗ перед началом проверок и является источником правды.
Шаг 3: Запустить сборку и юнит-тесты через Bash субагент.
Шаг 4: UI/E2E проверки по выбранным платформам:
| Платформа | Инструмент |
|---|---|
| Web | Chrome MCP (mcp__claude-in-chrome__* tools) |
| Android | Mobile MCP (mcp__mobile__* tools, platform: android) |
| iOS | Mobile MCP (mcp__mobile__* tools, platform: ios) |
| Desktop | Mobile MCP (mcp__mobile__* tools, platform: desktop) |
| Backend | Bash (curl, httpie, тесты) |
Шаг 5: После прохождения каждого шага — обновить файл сценария, пометив шаг как выполненный:
- [x] 1. Открыть экран X ✅ (проверено)
- [ ] 2. Нажать кнопку YВАЖНО — устойчивость к компактизации контекста:
- Файл
*-e2e-scenario.mdявляется персистентным состоянием валидации - Перед каждым действием в Validation — ПЕРЕЧИТАТЬ файл сценария через Read tool
- Выполненные шаги (
[x]) — НЕ проверять повторно - Продолжать с первого невыполненного шага (
[ ]) - Это гарантирует что после компактизации тесты не начнутся заново и не будут плавать
Шаг 6: Если есть ошибки — откат с описанием проблем. Файл сценария сохраняется, невыполненные шаги остаются.
Отчёт каждой задачи сохраняется в файл в папку ./swarm-report/. Формат:
./swarm-report/<slug>-<YYYY-MM-DD>.md
Пример: ./swarm-report/telegram-notifications-2026-02-20.md
Выбор технологий фиксирован. Предлагать или использовать альтернативы ЗАПРЕЩЕНО.
- Язык: Kotlin
- Фреймворк: Spring Boot
- Executing субагент:
builder-spring-feature
- UI: Compose Multiplatform
- DI: Koin
- Навигация: Decompose
- HTTP-клиент: Ktor Client
- Локальная БД: SQLDelight
- Executing субагент:
builder-compose-feature
- Язык: Kotlin Multiplatform (Kotlin/JS)
- UI-фреймворк: Vue
- Executing субагент:
voltagent-lang:vue-expert
Каждая задача ОБЯЗАНА проходить через стадии. Перескакивать стадии или переходить по неразрешённым путям ЗАПРЕЩЕНО.
- Research — исследование задачи, кодовой базы, зависимостей
- Plan — формирование плана реализации
- Executing — написание кода
- Validation — проверка результата (тесты, ревью, сборка)
- Report — отчёт о проделанной работе
- Done — задача завершена
Research -> Plan
Research -> Executing
Plan -> Executing
Executing -> Validation
Executing -> Research
Validation -> Report
Validation -> Executing
Validation -> Research
Report -> Done
Все остальные переходы ЗАПРЕЩЕНЫ. Перед сменой стадии — явно указывать текущую и следующую стадию.
| Стадия | subagent_type | model | Что делает |
|---|---|---|---|
| Research | КОНСИЛИУМ (см. ниже) | opus | Параллельный анализ от экспертов |
| Plan | Plan | opus | Формирует план реализации |
| Executing | по стеку проекта* | opus | Пишет код |
| Validation | Bash + MCP | sonnet | Сборка, тесты, UI-проверки |
| Report | general-purpose | haiku | Формирует отчёт |
| Done | — | — | Оркестратор фиксирует завершение |
*Executing — по инвариантам стека.
Research выполняется НЕ одним агентом, а консилиумом. Все агенты запускаются параллельно через Task tool и каждый анализирует задачу со своей экспертизы:
| Роль | subagent_type | Зона ответственности |
|---|---|---|
| Архитектор | voltagent-lang:java-architect |
Архитектура, модули, зависимости |
| Фронтенд-эксперт | voltagent-lang:vue-expert |
UI/UX со стороны фронта, Kotlin/JS |
| UI-дизайнер | voltagent-core-dev:ui-designer |
Визуал, UX, компоненты, макеты |
| Безопасность | security-kotlin |
OWASP, уязвимости, авторизация |
| DevOps | devops-orchestrator |
Инфра, CI/CD, деплой, окружения |
| API-дизайнер | voltagent-core-dev:api-designer |
Контракты API, REST/GraphQL |
Порядок работы Research:
- Оркестратор запускает всех 6 агентов параллельно с описанием задачи
- Собирает результаты от каждого агента
- Формирует сводное резюме консилиума
- Использует
AskUserQuestionдля уточнения, пока весь контекст не собран - Только после полного сбора контекста — переход на следующую стадию
- Название фичи и дата
- Краткое описание задачи
- Итоги Research (сводка консилиума)
- План (из стадии Plan)
- Что реализовано (файлы, модули)
- Результаты Validation (тесты, платформы)
- Проблемы и откаты (если были)
- Статус: Done / Частично
Выбор технологий фиксирован. Предлагать или использовать альтернативы ЗАПРЕЩЕНО.
- Язык: Kotlin
- Фреймворк: Spring Boot
- Fix субагент:
builder-spring-feature
- UI: Compose Multiplatform
- DI: Koin
- Навигация: Decompose
- HTTP-клиент: Ktor Client
- Локальная БД: SQLDelight
- Fix субагент:
builder-compose-feature
- Язык: Kotlin Multiplatform (Kotlin/JS)
- UI-фреймворк: Vue
- Fix субагент:
voltagent-lang:vue-expert
Каждая задача ОБЯЗАНА проходить через стадии. Перескакивать стадии или переходить по неразрешённым путям ЗАПРЕЩЕНО.
- Reproduce — воспроизведение бага
- Diagnose — диагностика корневой причины
- Fix — исправление
- Validation — проверка что баг исправлен и нет регрессий
- Report — отчёт о проделанной работе
- Done — задача завершена
Reproduce -> Diagnose
Reproduce -> Report (баг не воспроизводится — отчёт с пометкой)
Diagnose -> Fix
Diagnose -> Reproduce (нужно воспроизвести иначе)
Diagnose -> Report (только диагностика, фикс не требуется/невозможен)
Fix -> Validation
Fix -> Diagnose (фикс выявил другую причину)
Validation -> Report
Validation -> Fix (фикс не работает)
Validation -> Diagnose (причина была другой)
Report -> Done
Все остальные переходы ЗАПРЕЩЕНЫ. Перед сменой стадии — явно указывать текущую и следующую стадию.
| Стадия | subagent_type | model | Что делает |
|---|---|---|---|
| Reproduce | Bash + MCP | sonnet | Воспроизводит баг на целевой платформе |
| Diagnose | КОНСИЛИУМ (см. ниже) | opus | Параллельная диагностика экспертами |
| Fix | по стеку проекта* | opus | Пишет фикс |
| Validation | Bash + MCP | sonnet | Проверка фикса + регрессии |
| Report | general-purpose | haiku | Формирует отчёт |
| Done | — | — | Оркестратор фиксирует завершение |
*Fix — по инвариантам стека.
Цель: Стабильно воспроизвести баг и зафиксировать шаги.
Порядок работы:
- Получить описание бага (от пользователя, из тикета, из лога)
- Определить платформу через
AskUserQuestion(если не указана) - Попытаться воспроизвести через MCP (Chrome/Mobile) или Bash
- Зафиксировать шаги воспроизведения в файл:
./swarm-report/<slug-бага>-reproduce.md
Формат:
# Reproduce: <описание бага>
Платформа: Android / Web / Backend / ...
Статус: Воспроизведён / Не воспроизведён
## Входные данные
- Описание: ...
- Stacktrace/лог: ...
## Шаги воспроизведения
1. ...
2. ...
3. → Ожидаемый результат: X, Фактический результат: Y
## Скриншоты / логи
- ...- Если НЕ воспроизводится после 3 попыток — спросить пользователя через
AskUserQuestion:- Уточнить условия / окружение / данные
- Или перейти в Report с пометкой "Не воспроизведён"
ВАЖНО — устойчивость к компактизации контекста:
- Файл
*-reproduce.mdявляется персистентным состоянием воспроизведения - Перед каждой попыткой — ПЕРЕЧИТАТЬ файл через Read tool
- Не повторять уже проверенные сценарии
Diagnose выполняется консилиумом. Все агенты запускаются параллельно через Task tool:
| Роль | subagent_type | Зона ответственности |
|---|---|---|
| Диагност | kotlin-diagnostics |
Логи, стектрейсы, инструментирование, анализ |
| Архитектор | voltagent-lang:java-architect |
Архитектурные причины, зависимости модулей |
| Безопасность | security-kotlin |
Уязвимости, утечки, проблемы авторизации |
| DevOps | devops-orchestrator |
Инфра, окружение, конфиги, деплой |
Порядок работы Diagnose:
- Оркестратор передаёт всем агентам:
- Описание бага
- Шаги воспроизведения (из Reproduce)
- Stacktrace/логи (если есть)
- Запускает 4 агентов параллельно
- Собирает гипотезы от каждого агента
- Формирует сводный диагноз:
- Корневая причина (root cause)
- Затронутые модули/файлы
- Предлагаемый способ исправления
- Использует
AskUserQuestionесли гипотезы расходятся или нужно уточнение
- Название бага и дата
- Описание проблемы
- Шаги воспроизведения (из Reproduce)
- Диагноз (root cause, сводка консилиума)
- Что исправлено (файлы, строки, описание фикса)
- Результаты Validation (тесты, платформы, регрессии)
- Проблемы и откаты (если были)
- Статус: Fixed / Not Reproducible / Partially Fixed / Won't Fix