Skip to content

Навыки ​

Каждый навык OpenSpec: аргументы, что он создаёт и что он возвращает.

Навыки поставляются в двух наборах:

  • Core: устанавливаются по умолчанию, основной цикл планирования.
  • Optional: устанавливаются только при добавлении через Профили.

Каждый навык ожидает, что проект уже использует OpenSpec. Перед первым шагом, который что-либо записывает, навык проверяет наличие определённого корня. Что происходит, если его нет, зависит от того, как был вызван навык:

  • Автоматический выбор: ваш агент выбрал навык самостоятельно, без упоминания OpenSpec. Он отключает OpenSpec и отвечает на ваш запрос обычным образом, так же, как если бы OpenSpec не был установлен.
  • Явный запрос OpenSpec: вы упомянули OpenSpec, назвали навык или выполнили его команду. Он останавливается перед записью и спрашивает, как поступить: выполнить openspec init здесь, указать store через --store <id> или продолжить без OpenSpec. Он ждёт вашего ответа.

Команды всегда относятся ко второму случаю. Проект, чей openspec/config.yaml указывает на store, который эта машина не может определить (не зарегистрирован или некорректная строка store:), не считается неинициализированным: навык останавливается и показывает ошибку store с способом её исправления. Ни один навык не создаёт каталог openspec/ самостоятельно ни в одном из случаев. Записи ниже описывают, что делает каждый навык, когда корень определён.

НавыкНазначениеТип
openspec-exploreПроработать идею до того, как она станет предложением об измененииCore
openspec-proposeСоздать предложение об изменении со всеми артефактами планирования за один шагCore
openspec-apply-changeРеализовать задачи предложения об измененииCore
openspec-update-changeПересмотреть план предложения об измененииCore
openspec-sync-specsСлить обновления спецификации из предложения об изменении в specs/Core
openspec-archive-changeПереместить завершённое предложение об изменении в архивCore
openspec-new-changeНачать предложение об изменении с пустого каркасаOptional
openspec-continue-changeСоздать следующий артефакт планирования по одному за разOptional
openspec-ff-changeСоздать предложение об изменении со всеми артефактами, необходимыми для реализации, за один проходOptional
openspec-verify-changeПроверить соответствие реализации плануOptional
openspec-bulk-archive-changeАрхивировать несколько предложений об изменении одновременноOptional
openspec-onboardИзучить рабочий процесс, выполнив одно реальное предложение об изменении от начала до концаOptional

Каждая запись ниже указывает навык, который отвечает за следующий шаг. Когда ваш профиль не включает этот навык, установленные файлы никогда не упоминают его: передача становится эквивалентной командой openspec, или простым запросом к вам, а строка, существующая только для указания на отсутствующий навык, вообще не записывается. Таким образом, имеющиеся у вас навыки всегда передают работу навыкам, которые у вас есть. Какой набор вы получите, определяется в Профилях.

openspec-explore ​

Обдумайте идею до того, как она станет предложением изменений.

КонтрактОписание
АргументыТема: идея, проблема, сравнение или название существующего предложения изменений для исследования в контексте. Если ничего не указано, активируется режим исследования.
СоздаётПо умолчанию ничего. Только читает и исследует. По запросу фиксирует выводы: новое предложение изменений в openspec/changes/<name>/ или обновления к предложению, дизайну, спецификациям или задачам существующего. Никогда не пишет код.
ОтветОткрытый разговор без обязательного результата. Когда мысль проясняется, резюмирует проблему, подход, открытые вопросы и следующие шаги, предлагает зафиксировать их. Вы решаете. Реализация здесь никогда не начинается.

openspec-propose ​

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

КонтрактОписание
АргументыИмя в формате kebab-case (add-dark-mode) или обычное описание. Запрашивает, если не указано ни то, ни другое.
Создаётopenspec/changes/<name>/ со всеми артефактами, определёнными схемой, в порядке зависимостей (spec-driven: предложение, дельта-спецификации, дизайн, задачи). Никогда не пишет код.
ОтветСозданные артефакты, готовые к проверке, и следующий шаг. На этом останавливается; реализация ждёт openspec-apply-change.

openspec-apply-change ​

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

КонтрактОписание
АргументыНазвание предложения изменений (add-auth), необязательно. Если цель неоднозначна, выводит список активных предложений изменений и просит выбрать.
СоздаётКод: минимальные изменения, которых требует каждая задача, в файлах вашего проекта. В предложении изменений отмечает каждую завершённую задачу (- [ ] → - [x]) в отслеживаемом файле, идентифицируемом по sourcePath и номеру строки line (нумерация с единицы). Схема может отслеживать задачи в нескольких файлах.
ОтветПрогресс по каждой задаче, затем общий счётчик (N/M задач выполнено). Все выполнены: предлагает openspec-archive-change. Заблокировано из-за отсутствующих артефактов: указывает на openspec-continue-change или на openspec status и openspec instructions, если этот навык не установлен (в профиле core он отсутствует). Нечёткие задачи или ошибки: приостанавливается и задаёт вопросы.

openspec-update-change ​

Пересмотрите существующие артефакты планирования предложения изменений и обеспечьте их согласованность.

КонтрактОписание
АргументыНазвание предложения изменений, необязательно, плюс требуемая ревизия. Если ревизия не указана, запускает проверку согласованности: артефакты сверяются друг с другом на предмет противоречий, пробелов и дублирования.
СоздаётРедактирует уже существующие файлы артефактов. Одно исключение: для артефакта, записанного как glob, например specs/**/*.md, у которого уже есть хотя бы один файл, может добавить отсутствующий сопутствующий файл после подтверждения пути. Артефакт без файлов — это задача openspec-continue-change. Без этого навыка (в профиле core он отсутствует) указывает на openspec status и openspec instructions. Никогда не пишет код.
ОтветПоказывает каждую предлагаемую ревизию и записывает её только после вашего подтверждения, по одному артефакту за раз. Завершается перечнем изменённого и следующим шагом; реализация ждёт openspec-apply-change.

openspec-sync-specs ​

Перенесите обновления спецификаций предложения изменений в specs/ без архивации.

КонтрактОписание
АргументыНазвание предложения изменений, необязательно. Также можно указать подмножество его дельта-спецификаций — синхронизируются только они.
СоздаётРедактирует или создаёт openspec/specs/<capability-path>/spec.md для каждой дельта-спецификации, сливая добавленные, изменённые, удалённые и переименованные требования в основную спецификацию. Никогда не пишет код.
ОтветСводка по каждой возможности: добавленные, изменённые, удалённые или переименованные требования, после валидации обновлённых спецификаций. Предложение изменений остаётся активным; архивация ждёт openspec-archive-change.

openspec-archive-change ​

Переместите завершённое предложение изменений в архив.

КонтрактОписание
АргументыНазвание предложения изменений, необязательно.
СоздаётПеремещает папку предложения изменений в openspec/changes/archive/YYYY-MM-DD-<name>/ (дата не добавляется, если название уже начинается с неё). С вашего одобрения предварительно синхронизирует незавершённые дельта-спецификации. Если установлен openspec-sync-specs, запускает этот процесс. В противном случае самостоятельно сливает дельта-спецификации с основными. Никогда не пишет код.
ОтветПредупреждает и спрашивает перед архивацией при неполных артефактах или задачах, а также спрашивает о синхронизации при наличии дельта-спецификаций. Завершается сводкой: название, схема, расположение архива, статус синхронизации спецификаций и предупреждения.

openspec-new-change ​

Начните предложение изменений как пустой каркас.

КонтрактОписание
АргументыИмя в формате kebab-case (add-user-auth) или обычное описание, плюс название схемы только для нестандартного процесса. Запрашивает, что вы хотите создать, если не указано ни то, ни другое.
Создаётopenspec/changes/<name>/ как пустой каркас: артефактов пока нет, никогда не пишет код.
ОтветНазвание и расположение каркаса, последовательность артефактов процесса, статус (0/N выполнено) и шаблон первого артефакта. Создание артефактов ждёт openspec-continue-change.

openspec-continue-change ​

Создайте следующий артефакт планирования в предложении изменений, по одному за раз.

КонтрактОписание
АргументыНазвание предложения изменений, необязательно. Если всё ещё неоднозначно, просит выбрать из недавно изменённых.
СоздаётЕдинственный следующий готовый артефакт в последовательности схемы, записываемый в папку предложения изменений. Один артефакт за запуск, никогда не пишет код.
ОтветСозданный артефакт, прогресс (N из M выполнено) и какие артефакты это разблокировало. Когда планирование завершено, сообщает об этом; реализация переходит к openspec-apply-change.

openspec-ff-change ​

Создайте предложение изменений и все артефакты планирования, необходимые для реализации, за один проход.

КонтрактОписание
АргументыИмя в формате kebab-case или обычное описание. Запрашивает, если не указано ни то, ни другое. Если предложение изменений с таким названием уже существует, предлагает продолжить его.
Создаётopenspec/changes/<name>/ и все артефакты планирования, необходимые для реализации, в порядке зависимостей (spec-driven: предложение, спецификации, дизайн, задачи), исключая только артефакты, отмеченные как пропущенные или условные. Никогда не пишет код.
ОтветНазвание и расположение предложения изменений, каждый созданный артефакт и пропущенные условные артефакты с указанием причин. На этом останавливается; реализация ждёт openspec-apply-change.

openspec-verify-change ​

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

КонтрактОписание
АргументыНазвание предложения изменений, необязательно. При неоднозначности запрашивает, выводя список предложений изменений, имеющих артефакт задач.
СоздаётНичего. Читает артефакты предложения изменений и кодовую базу. Проверка только формирует отчёт.
ОтветОтчёт: оценочная карта по критериям Полнота, Корректность и Согласованность, затем проблемы уровня CRITICAL, WARNING и SUGGESTION с рекомендациями и итоговая оценка готовности к архивации. Ничего не изменяет и не архивирует.

openspec-bulk-archive-change ​

Архивируйте несколько предложений изменений одновременно.

КонтрактОписание
АргументыНет. Выводит список активных предложений изменений и просит выбрать любое количество, с возможностью выбрать все. Если активных нет, сообщает об этом и останавливается.
Создаётopenspec/changes/archive/YYYY-MM-DD-<name>/ для каждого архивированного предложения изменений (названия с датой сохраняют свой префикс). Дельта-спецификации каждого сначала синхронизируются через openspec-sync-specs. Никогда не пишет код.
ОтветТаблица статусов по каждому предложению изменений и одно подтверждение для всей партии, затем сводка по архивированным, пропущенным и завершённым с ошибкой, а также результаты синхронизации спецификаций. Когда два предложения изменений затрагивают одну спецификацию, проверяет кодовую базу и синхронизирует реализованные дельты от старых к новым.

openspec-onboard ​

Изучите процесс работы, выполнив одно реальное предложение изменений от начала до конца.

КонтрактОписание
АргументыНет. Сканирует вашу кодовую базу в поисках небольших начальных задач и просит выбрать одну или описать собственную.
СоздаётРеальное предложение изменений для выбранной задачи, по одному артефакту за раз, затем реальный код после подтверждения реализации. Архивирует предложение изменений в конце.
ОтветПошаговое проведение по полному циклу с паузами для вашего ввода: исследование, создание, построение каждого артефакта, реализация, архивация. Завершается резюме и указанием на openspec-propose. Занимает около 15–20 минут.