Агенты
Агенты в oh-my-agent — это специализированные инженерные роли. У каждого агента определён домен, знания о технологическом стеке, файлы ресурсов, шлюзы качества и ограничения выполнения. Агенты — не универсальные чат-боты, а сфокусированные исполнители, которые работают в рамках своей зоны ответственности и следуют структурированным протоколам.
Категории агентов
| Категория | Агенты | Ответственность |
|---|---|---|
| Идеация | oma-brainstorm | Исследование идей, предложение подходов, создание документов проектирования |
| Архитектура | oma-architecture | Границы системы/модуля/сервиса, анализ в стиле ADR/ATAM/CBAM, записи о компромиссах |
| Планирование | oma-pm | Декомпозиция требований, разбиение на задачи, API-контракты, назначение приоритетов |
| Реализация | oma-frontend, oma-backend, oma-mobile, oma-db | Написание продакшн-кода в соответствующих доменах |
| Дизайн | oma-design | Дизайн-системы, DESIGN.md, токены, типографика, цвет, анимация, доступность |
| Инфраструктура | oma-tf-infra | Мульти-облачное развёртывание Terraform, IAM, оптимизация затрат, политики как код |
| DevOps | oma-dev-workflow | Раннер задач mise, CI/CD, миграции, координация релизов, автоматизация монорепозитория |
| Наблюдаемость | oma-observability | Конвейеры наблюдаемости, маршрутизация трассировки, сигналы MELT+P (metrics/logs/traces/profiles/cost/audit/privacy), управление SLO, криминалистика инцидентов, настройка транспорта |
| Качество | oma-qa | Аудит безопасности (OWASP), производительность, доступность (WCAG), ревью качества кода |
| Отладка | oma-debug | Воспроизведение ошибок, анализ корневых причин, минимальные исправления, регрессионные тесты |
| Локализация | oma-translator | Контекстно-зависимый перевод с сохранением тона, регистра и доменных терминов |
| Координация | oma-orchestrator, oma-coordination | Автоматическая и ручная мультиагентная оркестрация |
| Git | oma-scm | Генерация Conventional Commits, разбиение коммитов по фичам |
| Поиск и извлечение | oma-search | Маршрутизатор поиска на основе намерения с оценкой доверия (документы Context7, веб, код gh/glab, Serena локально) |
| Ретроспектива | oma-recap | Анализ истории бесед между инструментами и тематические сводки работы |
| Обработка документов | oma-hwp, oma-pdf | Конвертация HWP/HWPX/HWPML и PDF в Markdown для LLM/RAG |
Подробный справочник по агентам
oma-brainstorm
Домен: Идеация по принципу «сначала дизайн» перед планированием или реализацией.
Когда использовать: Исследование новой идеи фичи, понимание намерения пользователя, сравнение подходов. Используйте перед /plan для сложных или неоднозначных запросов.
Когда НЕ использовать: Чёткие требования (переходите к oma-pm), реализация (переходите к доменным агентам), ревью кода (переходите к oma-qa).
Основные правила:
- Никакой реализации или планирования до утверждения дизайна
- Один уточняющий вопрос за раз (не пакетами)
- Всегда предлагать 2-3 подхода с рекомендованным вариантом
- Посекционная проработка дизайна с подтверждением пользователя на каждом шаге
- YAGNI — проектируйте только то, что нужно
Рабочий процесс: 6 фаз: Исследование контекста, Вопросы, Подходы, Дизайн, Документация (сохранение в docs/plans/), Переход к /plan.
Ресурсы: Использует только общие ресурсы (clarification-protocol, reasoning-templates, quality-principles, skill-routing).
oma-architecture
Домен: Архитектура ПО/систем — границы модулей и сервисов, анализ компромиссов, синтез мнений заинтересованных сторон, протоколы решений.
Когда использовать: Выбор или ревью системной архитектуры, определение границ модуля/сервиса/ответственности, сравнение архитектурных вариантов с явными компромиссами, исследование архитектурных болей (амплификация изменений, скрытые зависимости, неудобные API), приоритизация архитектурных инвестиций или рефакторингов, написание архитектурных рекомендаций или ADR.
Когда НЕ использовать: Визуальные/дизайн-системы (используйте oma-design), планирование фич и декомпозиция задач (используйте oma-pm), реализация Terraform (используйте oma-tf-infra), диагностика багов (используйте oma-debug), ревью безопасности/производительности/доступности (используйте oma-qa).
Методологии: Диагностическая маршрутизация, сравнение design-twice, анализ рисков в стиле ATAM, приоритизация в стиле CBAM, протоколы решений в стиле ADR.
Основные правила:
- Диагностируйте архитектурную проблему до выбора метода
- Используйте самую лёгкую достаточную методологию для текущего решения
- Отделяйте архитектурный дизайн от UI/визуального дизайна и от поставки через Terraform
- Консультируйтесь с агентами-стейкхолдерами только когда решение достаточно сквозное, чтобы оправдать затраты
- Качество рекомендации важнее театра консенсуса: консультируйтесь широко, решайте явно
- Каждая рекомендация должна указывать предположения, компромиссы, риски и шаги валидации
- По умолчанию учитывайте стоимость: стоимость внедрения, эксплуатационную стоимость, сложность для команды, стоимость будущих изменений
Ресурсы: SKILL.md, каталог resources/ с методологическими руководствами (diagnostic-routing, design-twice, ATAM, CBAM, шаблоны ADR).
oma-pm
Домен: Управление продуктом — анализ требований, декомпозиция задач, API-контракты.
Когда использовать: Разбиение сложных фич, определение целесообразности, приоритизация работ, определение API-контрактов.
Основные правила:
- API-first дизайн: определить контракты до задач реализации
- Каждая задача имеет: агент, название, критерии приёмки, приоритет, зависимости
- Минимизировать зависимости для максимального параллельного выполнения
- Безопасность и тестирование — часть каждой задачи (не отдельные фазы)
- Задачи должны быть выполнимы одним агентом
- Вывод: JSON-план + task-board.md для совместимости с оркестратором
Вывод: .agents/results/plan-{sessionId}.json, .agents/brain/current-plan.md, запись в память для оркестратора.
Ресурсы: execution-protocol.md, examples.md, iso-planning.md, task-template.json, ../_shared/core/api-contracts/.
Лимит ходов: По умолчанию 10, максимум 15.
oma-frontend
Домен: Веб-UI — React, Next.js, TypeScript с FSD-lite архитектурой.
Когда использовать: Создание пользовательских интерфейсов, компонентов, клиентской логики, стилизации, валидации форм, интеграции с API.
Технологический стек:
- React + Next.js (Server Components по умолчанию, Client Components для интерактивности)
- TypeScript (strict)
- TailwindCSS v4 + shadcn/ui (только чтение примитивов, расширение через cva/обёртки)
- FSD-lite: корень
src/+ фичаsrc/features/*/(без кросс-фичевых импортов)
Библиотеки:
| Назначение | Библиотека |
|---|---|
| Даты | luxon |
| Стили | TailwindCSS v4 + shadcn/ui |
| Хуки | ahooks |
| Утилиты | es-toolkit |
| URL-состояние | nuqs |
| Серверное состояние | TanStack Query |
| Клиентское состояние | Jotai (минимизировать использование) |
| Формы | @tanstack/react-form + Zod |
| Аутентификация | better-auth |
Основные правила:
- shadcn/ui в первую очередь, расширение через cva, никогда не модифицировать
components/ui/*напрямую - Маппинг дизайн-токенов 1:1 (никогда не хардкодить цвета)
- Proxy вместо middleware (Next.js 16+ использует
proxy.ts, неmiddleware.tsдля логики прокси) - Без prop drilling более 3 уровней — используйте атомы Jotai
- Абсолютные импорты с
@/обязательны - Цель FCP < 1 сек
- Адаптивные брейкпоинты: 320px, 768px, 1024px, 1440px
Ресурсы: execution-protocol.md, tech-stack.md, tailwind-rules.md, component-template.tsx, snippets.md, error-playbook.md, checklist.md, examples/.
Чек-лист шлюза качества:
- Доступность: ARIA-лейблы, семантические заголовки, навигация с клавиатуры
- Мобильные устройства: проверено на мобильных вьюпортах
- Производительность: без CLS, быстрая загрузка
- Отказоустойчивость: Error Boundaries и Loading Skeletons
- Тесты: логика покрыта Vitest
- Качество: проходят typecheck и lint
Лимит ходов: По умолчанию 20, максимум 30.
oma-backend
Домен: API, серверная логика, аутентификация, операции с базами данных.
Когда использовать: REST/GraphQL API, миграции баз данных, аутентификация, серверная бизнес-логика, фоновые задачи.
Архитектура: Router (HTTP) -> Service (бизнес-логика) -> Repository (доступ к данным) -> Models.
Определение стека: Читает манифесты проекта (pyproject.toml, package.json, Cargo.toml, go.mod и т.д.) для определения языка и фреймворка. Использует директорию stack/ при наличии или просит пользователя запустить /stack-set.
Основные правила:
- Чистая архитектура: никакой бизнес-логики в обработчиках маршрутов
- Все входные данные валидируются библиотекой валидации проекта
- Только параметризованные запросы (никакой строковой интерполяции в SQL)
- JWT + bcrypt для аутентификации; ограничение частоты запросов на эндпоинтах аутентификации
- Асинхронность где поддерживается; аннотации типов на всех сигнатурах
- Пользовательские исключения через централизованный модуль ошибок
- Явная стратегия загрузки ORM, границы транзакций, безопасный жизненный цикл
Ресурсы: execution-protocol.md, examples.md, orm-reference.md, checklist.md, error-playbook.md. Стеко-специфичные ресурсы в stack/ (генерируются /stack-set): tech-stack.md, snippets.md, api-template.*, stack.yaml.
Лимит ходов: По умолчанию 20, максимум 30.
oma-mobile
Домен: Кроссплатформенные мобильные приложения — Flutter, React Native.
Когда использовать: Нативные мобильные приложения (iOS + Android), мобильные UI-паттерны, платформенные функции (камера, GPS, push-уведомления), offline-first архитектура.
Архитектура: Clean Architecture: domain -> data -> presentation.
Технологический стек: Flutter/Dart, Riverpod/Bloc (управление состоянием), Dio с интерсепторами (API), GoRouter (навигация), Material Design 3 (Android) + iOS HIG.
Основные правила:
- Riverpod/Bloc для управления состоянием (без raw setState для сложной логики)
- Все контроллеры освобождаются в методе
dispose() - Dio с интерсепторами для API-вызовов; корректная обработка offline
- Цель 60fps; тестирование на обеих платформах
Ресурсы: execution-protocol.md, tech-stack.md, snippets.md, screen-template.dart, checklist.md, error-playbook.md, examples.md.
Лимит ходов: По умолчанию 20, максимум 30.
oma-db
Домен: Архитектура баз данных — SQL, NoSQL, векторные базы данных.
Когда использовать: Проектирование схем, ER-диаграммы, нормализация, индексация, транзакции, планирование ёмкости, стратегия резервного копирования, проектирование миграций, архитектура векторных БД/RAG, обзор анти-паттернов, проектирование с учётом требований (ISO 27001/27002/22301).
Рабочий процесс по умолчанию: Исследование (определение сущностей, паттернов доступа, объёмов) -> Проектирование (схема, ограничения, транзакции) -> Оптимизация (индексы, секционирование, архивация, анти-паттерны).
Основные правила:
- Сначала выбрать модель, потом движок
- 3НФ по умолчанию для реляционных; документировать компромиссы BASE для распределённых
- Документировать все три слоя схемы: внешний, концептуальный, внутренний
- Целостность — первоклассная сущность: entity, domain, referential, business-rule
- Конкурентность никогда не бывает неявной: определить границы транзакций и уровни изоляции
- Векторные БД — инфраструктура поиска, а не источник истины
- Никогда не считать векторный поиск заменой лексического поиска
Обязательные артефакты: Резюме внешней схемы, концептуальная схема, внутренняя схема, таблица стандартов данных, глоссарий, оценка ёмкости, стратегия резервного копирования/восстановления. Для векторных/RAG: политика версий эмбеддингов, политика чанкинга, стратегия гибридного поиска.
Ресурсы: execution-protocol.md, document-templates.md, anti-patterns.md, vector-db.md, iso-controls.md, checklist.md, error-playbook.md, examples.md.
oma-design
Домен: Дизайн-системы, UI/UX, управление DESIGN.md.
Когда использовать: Создание дизайн-систем, лендингов, дизайн-токенов, цветовых палитр, типографики, адаптивных макетов, обзор доступности.
Рабочий процесс: 7 фаз: Настройка (сбор контекста) -> Извлечение (опционально, из URL-ссылок) -> Улучшение (расширение нечётких промптов) -> Предложение (2-3 дизайн-направления) -> Генерация (DESIGN.md + токены) -> Аудит (адаптивность, WCAG, Nielsen, проверка ИИ-мусора) -> Передача.
Применение анти-паттернов («без ИИ-мусора»):
- Типографика: системный стек шрифтов по умолчанию; без Google Fonts по умолчанию без обоснования
- Цвет: без фиолетово-синих градиентов, без орбов/капель с градиентом, без чистого белого на чистом чёрном
- Макет: без вложенных карточек, без десктоп-only макетов, без шаблонных макетов с 3 метриками
- Анимация: без bounce easing повсюду, без анимаций > 800 мс, обязательное уважение prefers-reduced-motion
- Компоненты: без glassmorphism повсюду, все интерактивные элементы должны иметь альтернативы для клавиатуры/тача
Основные правила:
- Сначала проверить
.design-context.md; создать при отсутствии - Системный стек шрифтов по умолчанию (CJK-совместимые шрифты для ko/ja/zh)
- Минимум WCAG AA для всех дизайнов
- Responsive-first (мобильные по умолчанию)
- Представить 2-3 направления, получить подтверждение
Ресурсы: execution-protocol.md, anti-patterns.md, checklist.md, design-md-spec.md, design-tokens.md, prompt-enhancement.md, stitch-integration.md, error-playbook.md, плюс директория reference/ (типографика, цвет и контраст, пространственный дизайн, анимация, адаптивный дизайн, паттерны компонентов, доступность, шейдеры и 3D) и examples/ (design-context-example, landing-page-prompt).
oma-tf-infra
Домен: Инфраструктура как код с Terraform, мульти-облако.
Когда использовать: Развёртывание на AWS/GCP/Azure/Oracle Cloud, конфигурация Terraform, аутентификация CI/CD (OIDC), CDN/балансировщики нагрузки/хранилище/сети, управление состоянием, инфраструктура соответствия ISO.
Определение облака: Читает провайдеры и префиксы ресурсов Terraform (google_* = GCP, aws_* = AWS, azurerm_* = Azure, oci_* = Oracle Cloud). Включает полную таблицу маппинга ресурсов мульти-облака.
Основные правила:
- Провайдер-агностичный: определять облако из контекста проекта
- Удалённое состояние с версионированием и блокировкой
- OIDC-first для аутентификации CI/CD
- Всегда plan перед apply
- IAM с минимальными привилегиями
- Тегировать всё (Environment, Project, Owner, CostCenter)
- Никаких секретов в коде
- Пинить версии всех провайдеров и модулей
- Без auto-approve в продакшене
Ресурсы: execution-protocol.md, multi-cloud-examples.md, cost-optimization.md, policy-testing-examples.md, iso-42001-infra.md, checklist.md, error-playbook.md, examples.md.
oma-dev-workflow
Домен: Автоматизация задач в монорепозитории и CI/CD.
Когда использовать: Запуск dev-серверов, выполнение lint/format/typecheck по приложениям, миграции баз данных, генерация API, i18n-сборки, продакшн-сборки, оптимизация CI/CD, валидация pre-commit.
Основные правила:
- Всегда использовать задачи
mise runвместо прямых команд пакетного менеджера - Запускать lint/test только для изменённых приложений
- Валидировать сообщения коммитов с помощью commitlint
- CI должен пропускать неизменённые приложения
- Никогда не использовать прямые команды пакетного менеджера, если существуют задачи mise
Ресурсы: validation-pipeline.md, database-patterns.md, api-workflows.md, i18n-patterns.md, release-coordination.md, troubleshooting.md.
oma-observability
Домен: Роутер наблюдаемости и трассировки на основе намерения, охватывающий уровни, границы и сигналы.
Когда использовать: Настройка конвейера наблюдаемости (OTel SDK + Collector + бэкенд вендора), трассировка через границы сервисов и доменов (W3C-пропагаторы, baggage, мультитенантность, мульти-облако), настройка транспорта (пороги UDP/MTU, OTLP gRPC vs HTTP, топология Collector DaemonSet vs sidecar, рецепты сэмплирования), криминалистика инцидентов (6-мерная локализация: code / service / layer / host / region / infra), выбор категории вендора (OSS full-stack vs коммерческий SaaS vs специалист по высокой кардинальности vs специалист по профилированию), observability-as-code (дашборды Grafana Jsonnet, CRD PrometheusRule, YAML OpenSLO, алерты SLO burn-rate), мета-наблюдаемость (самочувствие конвейера, расхождение часов, ограждения кардинальности, матрица хранения), покрытие сигналов MELT+P (metrics, logs, traces, profiles, cost, audit, privacy), миграция с устаревших инструментов (Fluentd -> Fluent Bit или OTel Collector).
Когда НЕ использовать: Наблюдаемость LLM ops / gen_ai (использовать Langfuse, Arize Phoenix, LangSmith, Braintrust), происхождение данных в data-конвейерах (OpenLineage + Marquez, dbt test, Airflow lineage), телеметрия физического уровня IoT / дата-центра (Nlyte, Sunbird, Device42), оркестрация chaos engineering (Chaos Mesh, Litmus, Gremlin, ChaosToolkit), GPU- / TPU-инфраструктура (NVIDIA DCGM Exporter), цепочка поставки ПО (sigstore, in-toto, SLSA), рабочий процесс реагирования на инциденты / пейджинг (PagerDuty, OpsGenie, Grafana OnCall), настройка одного вендора, уже покрываемая его собственным скиллом.
Основные правила:
- Классифицировать намерение до маршрутизации: setup | migrate | investigate | alert | trace | tune | route
- Сначала категория, а не реестр вендоров: делегировать вендор-специфичным скиллам через
resources/vendor-categories.md; не дублировать документацию вендора - Настройка транспорта — это ров: пороги UDP/MTU, выбор протокола OTLP, топология Collector и рецепты сэмплирования — это глубина, которую другие скиллы не покрывают
- Мета-наблюдаемость не обсуждается: проверить самочувствие конвейера, синхронизацию часов (< 100 мс дрейфа), кардинальность и хранение до объявления настройки завершённой
- Предпочтение CNCF-first: Prometheus, Jaeger, Thanos, Fluent Bit, OpenTelemetry, Cortex, OpenCost, OpenFeature, Flagger, Falco
- Fluentd устарел (CNCF 2025-10): рекомендовать Fluent Bit или OTel Collector для новых задач и миграций
- W3C Trace Context как пропагатор по умолчанию; транслировать в зависимости от облака (AWS X-Ray
X-Amzn-Trace-Id, GCP Cloud Trace, Datadog, Cloudflare, Linkerd) - Приватность раньше функций: редактирование PII, правила baggage с учётом сэмплирования, неизменяемый аудит SOC2/ISO + удаление GDPR/PIPA применяются на этапе сбора, а не только в хранилище
Ресурсы: SKILL.md, resources/execution-protocol.md, resources/intent-rules.md, resources/vendor-categories.md, resources/matrix.md, resources/checklist.md, resources/anti-patterns.md, resources/examples.md, resources/meta-observability.md, resources/observability-as-code.md, resources/incident-forensics.md, resources/standards.md, плюс углублённые ресурсы в resources/layers/ (L3-network, L4-transport, L7-application, mesh), resources/signals/ (metrics, logs, traces, profiles, cost, audit, privacy), resources/transport/ (collector-topology, otlp-grpc-vs-http, sampling-recipes, udp-statsd-mtu) и resources/boundaries/ (cross-application, multi-tenant, release, slo).
oma-qa
Домен: Обеспечение качества — безопасность, производительность, доступность, качество кода.
Когда использовать: Финальное ревью перед деплоем, аудиты безопасности, анализ производительности, проверка доступности, анализ покрытия тестами.
Приоритет ревью: Безопасность > Производительность > Доступность > Качество кода.
Уровни серьёзности:
- CRITICAL: Нарушение безопасности, риск потери данных
- HIGH: Блокирует запуск
- MEDIUM: Исправить в этом спринте
- LOW: Бэклог
Основные правила:
- Каждое замечание должно содержать файл:строка, описание и исправление
- Сначала запускать автоматические инструменты (npm audit, bandit, lighthouse)
- Без ложных срабатываний — каждое замечание должно быть воспроизводимым
- Предоставлять код исправления, а не только описания
Ресурсы: execution-protocol.md, iso-quality.md, checklist.md, self-check.md, error-playbook.md, examples.md.
Лимит ходов: По умолчанию 15, максимум 20.
oma-debug
Домен: Диагностика и исправление ошибок.
Когда использовать: Ошибки, о которых сообщают пользователи, падения, проблемы производительности, перемежающиеся сбои, состояния гонки, регрессионные ошибки.
Методология: Сначала воспроизведи, потом диагностируй. Никогда не угадывай исправления.
Основные правила:
- Определить корневую причину, а не просто симптом
- Минимальное исправление: менять только необходимое
- Каждое исправление сопровождается регрессионным тестом
- Искать похожие паттерны в других местах
- Документировать в
.agents/brain/bugs/
Используемые инструменты Serena MCP:
find_symbol("functionName")— найти функциюfind_referencing_symbols("Component")— найти все использованияsearch_for_pattern("error pattern")— найти похожие проблемы
Ресурсы: execution-protocol.md, common-patterns.md, debugging-checklist.md, bug-report-template.md, error-playbook.md, examples.md.
Лимит ходов: По умолчанию 15, максимум 25.
oma-translator
Домен: Контекстно-зависимый мультиязычный перевод.
Когда использовать: Перевод UI-строк, документации, маркетинговых текстов, ревью существующих переводов, создание глоссариев.
4-этапный метод: Анализ источника (регистр, намерение, доменные термины, культурные отсылки, эмоциональные коннотации, маппинг образной речи) -> Извлечение смысла (снять структуру источника) -> Реконструкция на целевом языке (естественный порядок слов, соответствие регистра, разбиение/объединение предложений) -> Проверка (рубрика естественности + проверка анти-ИИ паттернов).
Опциональный 7-этапный режим для публикационного качества: дополнен стадиями Критического обзора, Ревизии и Полировки.
Основные правила:
- Сначала просканировать существующие файлы локализации для соответствия соглашениям
- Переводить смысл, а не слова
- Сохранять эмоциональные коннотации
- Никогда не создавать пословный перевод
- Никогда не смешивать регистры внутри текста
- Сохранять доменную терминологию как есть
Ресурсы: translation-rubric.md, anti-ai-patterns.md.
oma-orchestrator
Домен: Автоматизированная координация мультиагентной системы через запуск CLI.
Когда использовать: Сложные фичи, требующие нескольких агентов параллельно, автоматизированное выполнение, fullstack-реализация.
Настройки по умолчанию:
| Настройка | По умолчанию | Описание |
|---|---|---|
| MAX_PARALLEL | 3 | Максимум параллельных субагентов |
| MAX_RETRIES | 2 | Количество попыток при ошибке |
| POLL_INTERVAL | 30 сек | Интервал проверки статуса |
| MAX_TURNS (impl) | 20 | Лимит ходов для backend/frontend/mobile |
| MAX_TURNS (review) | 15 | Лимит ходов для qa/debug |
| MAX_TURNS (plan) | 10 | Лимит ходов для pm |
Фазы рабочего процесса: Планирование -> Настройка (ID сессии, инициализация памяти) -> Выполнение (запуск по приоритетному уровню) -> Мониторинг (опрос прогресса) -> Верификация (автоматическая + цикл кросс-ревью) -> Сбор (компиляция результатов).
Цикл ревью агент-агент:
- Самопроверка: агент проверяет свой diff по критериям приёмки
- Автоматическая верификация:
oma verify {agent-type} --workspace {workspace} - Кросс-ревью: QA-агент проверяет изменения
- При сбое: замечания возвращаются для исправления (максимум 5 итераций цикла)
Мониторинг Clarification Debt: Отслеживает пользовательские коррекции во время сессий. События оцениваются: clarify (+10), correct (+25), redo (+40). CD >= 50 запускает обязательный RCA. CD >= 80 приостанавливает сессию.
Ресурсы: subagent-prompt-template.md, memory-schema.md.
oma-scm
Домен: Генерация Git-коммитов в формате Conventional Commits.
Когда использовать: После завершения изменений кода, при запуске /scm.
Типы коммитов: feat, fix, refactor, docs, test, chore, style, perf.
Рабочий процесс: Анализ изменений -> Разбиение по фичам (если > 5 файлов с разными областями) -> Определение типа -> Определение области -> Написание описания (императив, < 72 символа, строчные буквы, без точки в конце) -> Немедленное выполнение коммита.
Правила:
- Никогда не использовать
git add -Aилиgit add . - Никогда не коммитить файлы с секретами
- Всегда указывать файлы при индексации
- Использовать HEREDOC для многострочных сообщений коммитов
- Co-Author:
First Fluke <our.first.fluke@gmail.com>
oma-coordination
Домен: Руководство по ручной пошаговой координации мультиагентной системы.
Когда использовать: Сложные проекты, где требуется контроль человека в цикле на каждом шлюзе, ручное руководство по запуску агентов, пошаговые рецепты координации.
Когда НЕ использовать: Полностью автоматизированное параллельное выполнение (использовать oma-orchestrator), задачи в пределах одного домена (использовать доменного агента напрямую).
Основные правила:
- Всегда представлять план на подтверждение пользователем перед запуском агентов
- Один приоритетный уровень за раз -- ждать завершения перед следующим уровнем
- Пользователь одобряет каждый переход через шлюз
- QA-ревью обязательно перед слиянием
- Цикл устранения для замечаний CRITICAL/HIGH
Рабочий процесс: PM планирует → Пользователь подтверждает → Запуск по приоритетному уровню → Мониторинг → QA-ревью → Исправление проблем → Поставка.
Отличие от oma-orchestrator: Coordination — ручное и управляемое (пользователь контролирует темп), orchestrator — автоматизированное (агенты запускаются и работают с минимальным вмешательством пользователя).
oma-search
Домен: Маршрутизатор поиска на основе намерения с оценкой доверия домена — направляет запросы в Context7 (документы), нативный веб-поиск, gh/glab (код), Serena (локально).
Когда использовать: Поиск официальной документации библиотек/фреймворков, веб-исследование по туториалам/примерам/сравнениям/решениям, поиск кода в GitHub/GitLab по шаблонам реализации, любые запросы, где канал поиска неясен (автомаршрутизация), другие навыки, которым нужна инфраструктура поиска (общий вызов).
Когда НЕ использовать: Исследование только локального кода (используйте Serena MCP напрямую), анализ истории Git или blame (используйте oma-scm), полное архитектурное исследование (используйте oma-architecture, который может внутренне вызывать этот навык).
Основные правила:
- Классифицируйте намерение перед поиском — каждый запрос сначала проходит через IntentClassifier
- Один запрос — одна лучшая маршрутизация — избегайте избыточной мульти-маршрутизации, если намерение не неоднозначно
- Оцените доверие к каждому результату — все нелокальные результаты получают метки доверия домена из реестра
- Флаги переопределяют классификатор:
--docs,--code,--web,--strict,--wide,--gitlab - Fail forward: если основной маршрут падает, изящно откатывайтесь (docs→web, web→стратегии
oma search fetch) - Дополнительный MCP не требуется: Context7 для документов, runtime-native для веба, CLI для кода, Serena для локального
- Нейтральный относительно вендора веб-поиск: используйте то, что предоставляет текущий runtime (WebSearch, Google, Bing)
- Доверие только на уровне домена — никаких оценок на уровне подпути или страницы
Ресурсы: SKILL.md, каталог resources/ с классификатором намерений, определениями маршрутов и реестром доверия.
oma-recap
Домен: Анализ истории бесед из нескольких AI-инструментов (Claude, Codex, Gemini, Qwen, Cursor) с тематическими дневными/периодическими сводками работы.
Когда использовать: Суммирование дня или периода рабочей активности, понимание потока работы между несколькими AI-инструментами, анализ паттернов переключения инструментов между сессиями, подготовка ежедневных стендапов / еженедельных ретро / рабочих логов.
Когда НЕ использовать: Ретроспектива изменений кода на основе Git-коммитов (используйте oma retro), мониторинг агентов в реальном времени (используйте oma dashboard), метрики продуктивности (используйте oma stats).
Процесс:
- Разрешить дату или временной диапазон из ввода на естественном языке (today, yesterday, last Monday, явная дата)
- Получить данные беседы через
oma recap --date YYYY-MM-DDили--since/--until - Сгруппировать по инструменту и сессии
- Извлечь темы (над чем работали, какие баги исправлены, какие инструменты изучены)
- Отрендерить тематическую дневную/периодическую сводку
Ресурсы: SKILL.md — делегирует тяжёлую работу CLI oma recap.
oma-hwp
Домен: Конвертация HWP / HWPX / HWPML (корейский текстовый процессор) → Markdown с использованием kordoc.
Когда использовать: Преобразование корейских HWP-документов (.hwp, .hwpx, .hwpml) в Markdown, подготовка корейских государственных/корпоративных документов для контекста LLM или RAG, извлечение структурированного контента (таблицы, заголовки, списки, изображения, сноски, гиперссылки) из HWP.
Когда НЕ использовать: PDF-файлы (используйте oma-pdf), XLSX/DOCX (вне области), генерация/редактирование HWP (вне области), уже текстовые файлы (используйте инструмент Read напрямую).
Основные правила:
- Используйте
bunx kordoc@latestдля запуска — установка не требуется; всегда передавайте@latestили закреплённую версию - Формат вывода по умолчанию — Markdown
- Если каталог вывода не указан, вывод идёт в тот же каталог, что и вход
- kordoc обеспечивает сохранение структуры (заголовки, таблицы, вложенные таблицы, сноски, гиперссылки, изображения)
- Защиты безопасности (ZIP-бомба, XXE, SSRF, XSS) обеспечиваются kordoc — не добавляйте свои
- Для зашифрованных или защищённых DRM HWP чётко сообщите пользователю об ограничении
- Выполните постобработку через
resources/flatten-tables.ts, чтобы преобразовать HTML-блоки<table>в GFM pipe-таблицы и удалить символы Private Use Area шрифта Hancom
Ресурсы: SKILL.md, config/, resources/flatten-tables.ts.
oma-pdf
Домен: Конвертация PDF в Markdown с использованием opendataloader-pdf.
Когда использовать: Преобразование PDF-документов в Markdown для контекста LLM или RAG, извлечение структурированного контента (таблицы, заголовки, списки) из PDF, подготовка PDF-данных для потребления AI.
Когда НЕ использовать: Генерация/создание PDF (используйте соответствующие инструменты документирования), редактирование существующих PDF (вне области), простое чтение уже текстовых файлов (используйте инструмент Read напрямую).
Основные правила:
- Используйте
uvx opendataloader-pdfдля запуска — установка не требуется - Формат вывода по умолчанию — Markdown
- Если каталог вывода не указан, вывод идёт в тот же каталог, что и входной PDF
- Сохраняйте структуру документа (заголовки, таблицы, списки, изображения)
- Для сканированных PDF используйте гибридный режим с OCR
- Всегда запускайте
uvx mdformatна выходе, чтобы нормализовать форматирование Markdown - Валидируйте, что выходной Markdown читаем и хорошо структурирован
- Сообщайте пользователю о любых проблемах конвертации (отсутствующие таблицы, искажённый текст)
Ресурсы: SKILL.md, config/, resources/.
Предполётная проверка устава (CHARTER_CHECK)
Перед написанием любого кода каждый агент реализации должен вывести блок CHARTER_CHECK:
CHARTER_CHECK:
- Clarification level: {LOW | MEDIUM | HIGH}
- Task domain: {домен агента}
- Must NOT do: {3 ограничения из области задачи}
- Success criteria: {измеримые критерии}
- Assumptions: {применённые умолчания}
Назначение:
- Декларирует, что агент будет и не будет делать
- Предотвращает расширение объёма до написания кода
- Делает допущения явными для проверки пользователем
- Предоставляет тестируемые критерии успеха
Уровни уточнения:
- LOW: Ясные требования. Продолжить с указанными допущениями.
- MEDIUM: Частично неоднозначно. Перечислить варианты, продолжить с наиболее вероятным.
- HIGH: Очень неоднозначно. Установить статус «заблокировано», перечислить вопросы, НЕ писать код.
В режиме субагента (запущенного через CLI) агенты не могут спрашивать пользователей напрямую. LOW продолжает, MEDIUM сужает и интерпретирует, HIGH блокируется и возвращает вопросы оркестратору для передачи.
Двухуровневая загрузка навыков
Знания каждого агента разделены на два уровня:
Уровень 1 — SKILL.md (~800 байт): Всегда загружен. Содержит фронтматтер (имя, описание), когда использовать / не использовать, основные правила, обзор архитектуры, список библиотек и ссылки на ресурсы Уровня 2.
Уровень 2 — resources/ (загружается по требованию): Загружается только при активной работе агента и только ресурсы, соответствующие типу и сложности задачи:
| Сложность | Загружаемые ресурсы |
|---|---|
| Простая | Только execution-protocol.md |
| Средняя | execution-protocol.md + examples.md |
| Сложная | execution-protocol.md + examples.md + tech-stack.md + snippets.md |
Дополнительные ресурсы загружаются по мере необходимости:
checklist.md— на этапе верификацииerror-playbook.md— только при возникновении ошибокcommon-checklist.md— для финальной верификации сложных задач
Ограниченное выполнение
Агенты работают в строгих доменных границах:
- Фронтенд-агент не будет модифицировать бэкенд-код
- Бэкенд-агент не будет трогать UI-компоненты
- БД-агент не будет реализовывать API-эндпоинты
- Агенты документируют внедоменные зависимости для других агентов
Когда в процессе выполнения обнаруживается задача из другого домена, агент документирует её в файле результатов как элемент эскалации, вместо того чтобы пытаться обработать самостоятельно.
Стратегия рабочих пространств
Для мультиагентных проектов отдельные рабочие пространства предотвращают конфликты файлов:
./apps/api -> рабочее пространство бэкенд-агента
./apps/web -> рабочее пространство фронтенд-агента
./apps/mobile -> рабочее пространство мобильного агента
Рабочие пространства указываются флагом -w при запуске агентов:
oma agent:spawn backend "Implement auth API" session-01 -w ./apps/api
oma agent:spawn frontend "Build login form" session-01 -w ./apps/web
Поток оркестрации
При запуске мультиагентного рабочего процесса (/orchestrate или /work):
- PM-агент декомпозирует запрос в доменные задачи с приоритетами (P0, P1, P2) и зависимостями
- Инициализация сессии — генерация ID сессии, создание
orchestrator-session.mdиtask-board.mdв памяти - Задачи P0 запускаются параллельно (до MAX_PARALLEL параллельных агентов)
- Мониторинг прогресса — оркестратор опрашивает файлы
progress-{agent}.mdкаждые POLL_INTERVAL - Задачи P1 запускаются после завершения P0, и так далее
- Цикл верификации запускается для каждого завершённого агента (самопроверка -> автоматическая верификация -> кросс-ревью QA)
- Сбор результатов из всех файлов
result-{agent}.md - Финальный отчёт с резюме сессии, изменёнными файлами, оставшимися проблемами
Определения агентов
Агенты определены в двух местах:
.agents/agents/ — Содержит 7 файлов определений субагентов:
backend-engineer.mdfrontend-engineer.mdmobile-engineer.mddb-engineer.mdqa-reviewer.mddebug-investigator.mdpm-planner.md
Эти файлы определяют идентичность агента, ссылку на протокол выполнения, шаблон CHARTER_CHECK, резюме архитектуры и правила. Они используются при запуске субагентов через Task/Agent tool (Claude Code) или CLI.
.claude/agents/ — IDE-специфичные определения субагентов, ссылающиеся на файлы .agents/agents/ через символические ссылки или прямые копии для совместимости с Claude Code.
Оперативное состояние (Serena Memory)
Во время сессий оркестрации агенты координируются через общие файлы памяти в .serena/memories/ (настраивается через mcp.json):
| Файл | Владелец | Назначение | Для остальных |
|---|---|---|---|
orchestrator-session.md | Оркестратор | ID сессии, статус, время начала, отслеживание фаз | Только чтение |
task-board.md | Оркестратор | Назначения задач, приоритеты, обновления статуса | Только чтение |
progress-{agent}.md | Конкретный агент | Прогресс по ходам: выполненные действия, прочитанные/изменённые файлы, текущий статус | Оркестратор читает |
result-{agent}.md | Конкретный агент | Финальный вывод: статус (completed/failed), резюме, изменённые файлы, чек-лист критериев приёмки | Оркестратор читает |
session-metrics.md | Оркестратор | Отслеживание Clarification Debt, прогрессия Quality Score | QA читает |
experiment-ledger.md | Оркестратор/QA | Отслеживание экспериментов при активном Quality Score | Все читают |
Инструменты памяти настраиваются. По умолчанию используется Serena MCP (read_memory, write_memory, edit_memory), но пользовательские инструменты можно настроить в mcp.json:
{
"memoryConfig": {
"provider": "serena",
"basePath": ".serena/memories",
"tools": {
"read": "read_memory",
"write": "write_memory",
"edit": "edit_memory"
}
}
}
Дашборды (oma dashboard и oma dashboard:web) наблюдают за этими файлами памяти для мониторинга в реальном времени.