Команды OpenCode: сохрани поручение, чтобы не объяснять заново

Опубликовано 09.11.20266 мин чтенияСредний
Артемий Миллер в кепке с логотипом OpenCode рядом с надписью «СОХРАНИ ПОРУЧЕНИЕ» и логотипами OpenCode.
Что узнаешь
  • Как различать команды терминала и команды внутри OpenCode
  • Как сохранить поручение в Markdown и передавать новые данные
  • Как проверить повторный вызов по условиям текущей задачи
Средний

Чтобы не объяснять OpenCode одно и то же, сохраните поручение в Markdown-файле и вызывайте его по имени через /. Новые данные передавайте через $ARGUMENTS, ответ проверяйте по условиям поручения. Не путайте с запуском: opencode открывает приложение из терминала, а /poruchenie вызывает сохранённый запрос внутри него.

Даёте агенту задачу, а приходится постоянно его поправлять, проверять по несколько раз, объяснять одно и то же. Я с этим тоже сталкивался в работе с Hermes. Мой принцип: сделав задачу 2-й раз, превращаете её в навык. В OpenCode для короткого поручения возьмём команду: способ работы сохраняется, данные меняются.

Команды OpenCode: что вводить в терминале, а что внутри

Что этоГде вводитьЧто делаетПример
Запуск приложенияВ оболочке терминалаОткрывает OpenCodeopencode
Встроенное действиеВ открытом OpenCodeПоказывает справку/help
Своё поручениеВ открытом OpenCodeОтправляет сохранённый запрос; файл сначала нужно создать/my-command

Из терминала можно передать запрос без интерактивного режима. Пример из официальной справки:

sh
opencode run "Explain how closures work in JavaScript"

Здесь запрос написан в строке запуска, а не сохранён в файле команды.

Внутри OpenCode также есть /init, /undo, /redo. Не называйте свой файл help.md, init.md, undo.md или redo.md: он переопределит встроенную команду.

opencode models показывает доступные модели настроенных поставщиков. В терминале модель задают через --model или -m в формате поставщик/модель; в настройках команды - полем model. В примере его не задаём.

Если OpenCode ещё не запускается, начните с установки и подключения модели.

Больше разборов работы с ИИ-агентами - в канале:

Никогда не пишем код сразу: сначала образ результата

Сначала опишите, что хотите получить по итогу. Возьмём пример: превратить текст поручения в карточку проверки. До сохранения файла определите:

  • Что подаёте: текст после /poruchenie.
  • Что неизменно: инструкция разбирать его без выдуманных условий.
  • Какой ответ нужен: «Задача», «Готово, когда», «Уточнить».
  • Как проверяете: условия поручения сохранены, о недостающих сведениях агент спросил.

Сразу договоритесь, что агент проверяет сам, а что приносит вам. Здесь он должен только подготовить карточку, без проверки формы заявки или поиска на сайте.

Шаг 1. Создайте файл поручения в проекте

В корне нужного проекта создайте .opencode/commands/poruchenie.md:

.opencode/
  commands/
    poruchenie.md

В пути commands написано во множественном числе. Для глобального хранения справка указывает ~/.config/opencode/commands/. Здесь работаем с файлом проекта; глобальная копия не нужна.

Шаг 2. Сохраните неизменную инструкцию

Вставьте в poruchenie.md весь текст, включая строки с ---:

markdown
---
description: Разобрать поручение на задачу и признаки готовности
---
Преобразуй входное поручение в карточку проверки.
Не выполняй само поручение, не используй инструменты и не меняй файлы.
Используй только сведения из входа. Не придумывай сроки, условия и результаты.
Ответь 3 разделами с точными заголовками:
Задача - что требуется сделать.
Готово, когда - перечисли явно указанные во входе признаки готовности.
Уточнить - перечисли недостающие сведения; если их нет, напиши «нет».
Если признак готовности не задан, не выдумывай его: вынеси вопрос в «Уточнить».
Не добавляй вступление и не заявляй, что работа уже выполнена.

Входное поручение:
$ARGUMENTS

Это пример инструкции. Просьба не использовать инструменты не заменяет настройку доступа к ним у агента.

В навыки пишем, как выполнять работу. А цены, акции и условия агент каждый раз берёт из актуальных документов. Здесь тот же принцип: в файле остаётся способ разбора, условия формы или поиска передавайте при вызове.

Шаг 3. Проверьте имя, описание и место для новых данных

  • poruchenie.md задаёт имя вызова /poruchenie.
  • Блок между --- задаёт свойства. Ключ description оставьте как есть; его значение будет описанием в интерфейсе.
  • Текст после блока становится шаблоном запроса.
  • $ARGUMENTS заменяется данными после имени команды.

Укажите $ARGUMENTS буквально.

Вместо файла можно использовать раздел command в конфигурации с обязательным template. Для нашего примера настройка в конфигурации не нужна.

Шаг 4. Откройте OpenCode и найдите поручение

В терминале получите номер версии:

sh
opencode --version

Запишите его. Из корня проекта, где лежит файл, откройте приложение:

sh
opencode

Запишите выбранную модель. Внутри OpenCode введите / и найдите poruchenie с описанием «Разобрать поручение на задачу и признаки готовности».

Если имени нет, переходите к разделу про ошибки. Версия и модель понадобятся, чтобы разобрать, что пошло не так.

Шаг 5. Передайте поручение о форме заявки

Внутри OpenCode введите:

/poruchenie Проверить форму заявки: поле почты обязательно; после отправки показать подтверждение.

В ответе должны быть все 3 заголовка. В «Готово, когда» - обязательность поля почты и подтверждение после отправки. В «Уточнить» - вопросы о недостающих сведениях.

«Форма проверена, всё работает» - ошибка: агенту поручили составить карточку, результатов проверки сайта во входе нет. Если потерялась обязательность почты или появилась придуманная дата сдачи, ответ тоже не подходит.

Шаг 6. Замените вход и проверьте тот же файл

poruchenie.md не редактируйте. Передайте другое поручение:

/poruchenie Проверить поиск: по названию находит товар; пустой запрос не отправляется.

Теперь в «Готово, когда» должны быть поиск товара по названию и запрет отправки пустого запроса. Условия формы заявки туда попадать не должны. Формат ответа прежний, выдуманных результатов быть не должно.

Для каждого вызова запишите, что получилось:

Версия OpenCode:
Выбранная модель:
Команда появилась, описание совпало:
Вход:
Фактический ответ:
Новые данные подставлены:
Формат сохранён:
Критерий выполнен:

Сохраните сам ответ: по отметке «хорошо» потом не разобрать, что получилось. Проверка пройдена, если оба ответа соответствуют инструкции. Одинакового текста добиваться не нужно.

Если вы собираете свои проекты с ИИ-агентами, посмотрите программу практикума СмыслоКода.

Практикум по вайб-кодингу
+Твой второй мозг
3 вечера - инструменты, метод, первый проект
Старт 17–19 ноября  ·  2 000 ₽
Записаться →

Не получилось: что сверить в файле и ответе

Команда не появилась

Сверьте открытый проект, путь .opencode/commands/poruchenie.md, расширение и имя с официальной справкой Commands. При вводе / проверьте, есть ли poruchenie и его описание.

Нашли отличие - исправьте и проверьте список. Всё совпадает, но имени нет - ищите в справке сведения для своей версии. Не переименовывайте каталоги наугад. Запуск и получение версии описаны в справке CLI.

Кстати, я снял видео о том, как сохранять проверенный способ работы в навык на примере Hermes Agent. Посмотрите:

Видео загрузится при скролле
Полный гайд - Связка для первого агента Hermes Agent

В нём показал, как задать правила навыка, образец и показатели, проверить работу на разных моделях. Посмотрите, как закреплять исправления в инструкции на Hermes, без синтаксиса OpenCode.

Новые данные не попали в ответ

Проверьте, есть ли $ARGUMENTS в тексте файла и само поручение после /poruchenie в вызове. В ответе условия поиска или снова условия формы?

Нет $ARGUMENTS или текста поручения - добавьте и повторите вызов. Если всё записано верно, сохраните вызов вместе с ответом, чтобы разбираться дальше.

Ответ нарушил критерий

Запишите, что именно не так: пропущен заголовок, потеряно условие, добавлен срок, заявлено о выполненной работе.

Посмотрите, что пришлось исправить. Эти исправления записывайте в инструкцию, чтобы в следующий раз не объяснять то же самое. Уточните poruchenie.md и заново проверьте оба поручения на той же модели. Вы изменили файл - нужно проверить его заново, старых ответов недостаточно.

Если вместо встроенной команды срабатывает ваша, проверьте имя файла: например, help.md переопределяет /help.

А если нужны отдельные аргументы или файл

Для свободного текста оставьте $ARGUMENTS. Если нужно передать отдельные поля, используйте $1, $2, $3. Нашему поручению это не требуется.

Для ссылки на файл в шаблоне есть запись:

@src/components/Button.tsx

Она включает содержимое файла в запрос. Это путь из справки; укажите файл вашего проекта. Секреты в пример не включайте.

Для команды можно задать модель полем model, исполнителя - agent. Оба поля необязательны. Без agent используется текущий агент. После смены модели снова проверьте ответы по тем же требованиям.

Команда, навык и агент: что выбирать для поручения

Для /poruchenie достаточно файла команды: он хранит шаблон запроса для вызова через /.

Инструкции навыка лежат в SKILL.md и загружаются по требованию инструментом skill. Ради короткого поручения такой файл не нужен: команда и навык - разные механизмы.

Если нужен именно навык, вот как установить и проверить его в OpenCode.

Агент - исполнитель со своими инструкциями, моделью и доступом к инструментам. Для нашего шаблона отдельный агент не нужен.

Если хотите поручить проверку отдельному агенту, вот как настроить проверяющего в OpenCode.

Частые вопросы

Какое поручение вы даёте агенту по кругу? Напишите в комментариях в канале, что повторяется и как вы проверяете результат.

Источники

Практикум по вайб-кодингу
+Твой второй мозг
3 вечера - инструменты, метод, первый проект
Старт 17–19 ноября  ·  2 000 ₽
Записаться →

Новые материалы - дайджестом, без спама

Гайды выходят регулярно. Подпишись, чтобы не пропускать: пришлю подборку в Telegram или на email. Раз в неделю или каждый день - выбираешь сам.

Была инструкция полезна?
Артемий Миллер
Автор
Артемий Миллер
Предприниматель и вайб-кодер

Артемий Миллер - предприниматель и вайб-кодер. Бывший программист, собирает продукты исключительно вместе с ИИ-агентами, без найма разработчиков.

Связанные инструкции

Ошибка OpenCode: одна проблема, одна правка, потом проверка

При ошибке OpenCode сначала определите, что отказало: приложение, модель, расширение или задача. Сохраните состояние, проверьте одну правку повтором исходной работы.

7 мин

GitHub MCP: как дать агенту доступ к репозиторию без лишних прав

GitHub MCP даёт агенту доступ к репозиторию в пределах выданных разрешений. Начните с отдельного токена для выбранного проекта и режима только чтения.

8 мин

Figma MCP: передай макет и проверь цвета, шрифты, отступы

Figma MCP передаёт агенту компоненты, переменные и структуру макета. Дайте ссылку на нужный фрейм, укажите правила проекта и проверьте реализацию по коду и виду страницы.

10 мин

Codex MCP: подключи нужное и проверь, какие права дал агенту

MCP подключается к Codex через команду codex mcp add или config.toml. Запись в списке серверов подтверждает настройку; работу проверяют через активное подключение и вызов инструмента с результатом.

7 мин