opus-review
$
npx mdskill add SteelMorgan/1c-agent-based-dev-framework/opus-reviewLaunches independent artifact reviews via a subagent with isolated context for second opinions.
- Helps users get unbiased feedback on plans, specifications, code, or architecture.
- Integrates with the Task tool to run a subagent using the same Opus model.
- Triggers on commands like /review-opus or when users request independent checks.
- Delivers synchronous results directly without requiring monitoring or CLI setup.
SKILL.md
.github/skills/opus-reviewView on GitHub ↗
--- name: opus-review description: Ревью через второй независимый инстанс Opus. Навык учит агента запускать независимое ревью артефактов через субагент Task с изолированным контекстом. Используй при вызове /review-opus, /review-all, или когда пользователь просит проверить план, спецификацию, код или архитектуру независимым взглядом той же модели. --- # Ревью через второй независимый инстанс Opus Независимое ревью через Task tool (субагент с изолированным контекстом). Результат синхронный — мониторинг не нужен. Отличие от `codex-review`: не требует CLI, мгновенный старт, но та же модель — Opus и GPT дополняют друг друга. --- ## Когда применять | Триггер | Действие | |---------|----------| | Пользователь вызывает `/review-opus` | Запустить ревью через Task субагент | | Пользователь вызывает `/review-all` | Запустить Opus-ревью параллельно с GPT | | Пользователь просит «второе мнение» | Предложить `/review-opus` как быстрый вариант | | Сложная архитектура, > 5 файлов | Рекомендовать ревью | | Перед реализацией спецификации | Предложить ревью плана | --- ## Формирование промпта Промпт для ревьювера состоит из трёх обязательных блоков. Подробный шаблон: [references/prompt-template.md](references/prompt-template.md). ### Блок 1: Роль и задача Роль задаётся явно — это критически важно для качества ревью: ``` Ты — старший ревьюер 1С BSL с опытом 10+ лет. Ревьюишь независимо от автора. Находишь реальные проблемы, а не придираешься к мелочам. Критика конструктивна: не «это плохо», а «это плохо, потому что X, исправь так: Y». Задача: проведи ревью <тип> — <описание и контекст>. ``` ### Блок 2: Артефакт Конкретный объект проверки. **Всегда передавать пути к файлам — ревьювер читает их самостоятельно. Никогда не вставлять содержимое файлов в промпт.** Правила по типу: - **Спецификация** — путь к файлу спецификации + пути к исходным материалам (задача, анализ) - **Код** — основание изменений (спека или задача) + подсказка использовать `git diff --name-only HEAD~1` + ключевые файлы - **Тесты** — путь к файлам/каталогу тестов + тестируемый модуль + основание (спека) - **Форма** — путь к модулю формы + основание изменений - **Архитектура** — путь к архитектурному документу + ключевые файлы реализации - **Если файлов нет** (артефакт только в чате) — передать текстом как исключение ### Блок 3: Навыки (критерии ревью) Пути к файлам `SKILL.md`, которые ревьювер прочитает сам: | Тип артефакта | Навыки | |---------------|--------| | Код BSL | `coding-standards`, `error-handling`, `query-patterns`, `ssl-patterns`, `form-patterns` | | Спецификация / план | `spec-standard` | | Форма (UI) | `form-patterns`, `form-visual-requirements` | | Архитектура | `ssl-patterns`, `query-patterns`, `coding-standards` | | Тесты | `coding-standards`, `error-handling` | Пути относительно корня проекта: ``` framework/skills/bsl-practices/<name>/SKILL.md framework/skills/spec-writing/<name>/SKILL.md ``` ### Блок 4: Формат ответа (обязательный) Субагенту нужно явно задать формат — иначе ответ может быть произвольным: ``` ## Формат ответа Для каждого замечания: [BLOCK|WARN|INFO] <файл>:<строка> (или <раздел> для спецификаций) Проблема: <что не так> Причина: <почему это проблема> Исправление: <направление исправления> В конце — сводка: - Количество BLOCK / WARN / INFO - Общая оценка: принято | нужны исправления | требуется переработка - Топ-3 проблемы по приоритету Если артефакт чистый — скажи «замечаний нет» и не выдумывай проблемы. ``` --- ## Вызов субагента ### Команда Использовать Task tool с `subagent_type: "general-purpose"`: ``` Task( subagent_type: "general-purpose", description: "Независимое ревью <тип> через Opus", prompt: "<сформированный промпт>" ) ``` ### Особенности - **Синхронный вызов** — результат возвращается напрямую, не нужен мониторинг фонового процесса - **Изолированный контекст** — субагент не видит историю текущей сессии, только то что в промпте - **Доступ к файлам** — субагент использует те же инструменты (Read, Glob, Grep, Bash), видит весь проект - **Параллельный запуск** — можно запустить несколько Task одновременно (в одном сообщении) ### Пример вызова ``` Task( subagent_type: "general-purpose", description: "Ревью спецификации резервирования товаров", prompt: """ Ты — старший ревьюер 1С BSL с опытом 10+ лет. Ревьюишь независимо от автора. Находишь реальные проблемы, а не придираешься к мелочам. Задача: проведи ревью спецификации механизма резервирования товаров. Контекст: доработка типовой УТ, задача #42. # Артефакт Тип: спецификация Прочитай: docs/specs/SPEC-резервирование-товаров.md Исходные материалы: docs/tasks/task-42.md # Навыки (критерии) Прочитай и используй как критерии: - framework/skills/spec-writing/spec-standard/SKILL.md # Формат ответа [BLOCK|WARN|INFO] <раздел> Проблема: ... Причина: ... Исправление: ... Сводка: BLOCK/WARN/INFO, общая оценка, топ-3 проблемы. """ ) ``` --- ## Получение результата Task возвращает отзыв синхронно. Показать пользователю. Если есть BLOCK-замечания — предложить исправить. Финальное решение за пользователем. --- ## Обработка ошибок | Ситуация | Действие | |----------|----------| | Task вернул пустой результат | Повторить с более явным промптом — добавить «Начни ревью прямо сейчас» | | Субагент не нашёл файл артефакта | Проверить путь, передать правильный путь относительно корня проекта | | Субагент пишет общие слова без привязки к коду | Уточнить промпт: «Привязывай каждое замечание к конкретному файлу и строке» | | Субагент отказывается критиковать | Усилить роль в промпте: «Ты обязан найти проблемы — если их нет, объясни почему» | --- ## Типичные ошибки | Ошибка | Последствие | |--------|------------| | Нет роли ревьювера в промпте | Субагент ведёт себя как помощник, а не критик | | Нет блока «Формат ответа» | Произвольная структура | | Содержимое навыков вместо путей | Раздувание промпта — передавать только пути | | Артефакт без описания задачи | Субагент не понимает контекст | | Ожидание контекста сессии | Субагент изолирован — включать все пути явно | --- Шаблон промпта: `references/prompt-template.md`. GPT-ревью: `codex-review`. --- depends_on: - framework/skills/bsl-practices/coding-standards/SKILL.md - framework/skills/bsl-practices/error-handling/SKILL.md - framework/skills/bsl-practices/query-patterns/SKILL.md - framework/skills/bsl-practices/ssl-patterns/SKILL.md - framework/skills/bsl-practices/form-patterns/SKILL.md - framework/skills/bsl-practices/form-visual-requirements/SKILL.md - framework/skills/spec-writing/spec-standard/SKILL.md ---