opus-review

$npx mdskill add SteelMorgan/1c-agent-based-dev-framework/opus-review

Launches 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
---

More from SteelMorgan/1c-agent-based-dev-framework

SkillDescription
1c-ai-agent-cliCLI 1C BSL Agent Framework — tools/install.py (clone, install). Используй при клонировании репозитория, установке компонентов в проект, настройке IDE (Cursor, Claude Code, Windsurf, VS Code+Continue).
agent-debugПаттерн отладочных сообщений для 1С BSL. Используй, когда стандартная диагностика (event-log, скриншоты) не даёт понять фактическое поведение системы — нужно вставить временные точки логирования в код, запустить тест и проанализировать записи ЖР.
agent-developmentCreate custom subagents for specialized AI tasks. Use when the user wants to create a new type of subagent, set up task-specific agents, configure code reviewers, debuggers, or domain-specific assistants with custom prompts.
agent-development-ext>
agent-git-workflowStandardizes git workflow for the AI agent in the sandbox devcontainer: work in agent/<task>-<yyyymmdd>, integrate via agent, never push to main/master, open PRs via GitHub CLI. Use when the user asks to create branches, push changes, open PRs, or follow this sandbox repo setup.
auto-skill-bootstrapDeterministic helper to inventory existing project skills, detect missing capability coverage, search skills.sh via Skills CLI, and (optionally) install missing skills under a trust policy. Uses skills-manifest.json + state.json to stay idempotent across changing requirements.
code-navigationНавигация по коду (Code Navigation). Навык учит агента **эффективно перемещаться по BSL-коду** с помощью LSP (Language Server Protocol).
config-operationsОперации с конфигурацией 1С (CF) — init, info, edit, validate. Используй при создании конфигурации, анализе структуры, изменении свойств и ChildObjects, валидации Configuration.xml.
epf-buildСобрать EPF/ERF из XML-исходников. Используй после внесения временных диагностических правок в разобранную обработку.
epf-dumpРазобрать EPF/ERF в XML-исходники. Используй, когда нужно быстро получить исходный код внешней обработки или отчета для анализа и временной модификации.