Skip to content

Справка по CLI

CLI OpenSpec (openspec) предоставляет командные строки для настройки проекта, валидации, проверки статуса и управления. Эти команды дополняют AI-команды слэш (такие как /opsx:propose), описанные в Commands.

Обзор

КатегорияКомандыНазначение
Настройкаinit, updateИнициализировать и обновлять OpenSpec в вашем проекте
Хранилища (автономные репозитории OpenSpec)store setup, store register, store unregister, store remove, store list, store doctorУправлять хранилищами — автономными репозиториями OpenSpec, которые вы зарегистрировали
СостояниеdoctorОтчитываться о состоянии связей для разрешенного корня
Рабочий контекстcontextСобрать рабочий набор (корень + ссылочные хранилища)
Личные рабочие наборыworkset create, workset list, workset open, workset removeСохранять и открывать личные локальные рабочие представления в вашем инструменте
Просмотрlist, view, showИзучать изменения и спецификации
ВалидацияvalidateПроверять изменения и спецификации на наличие проблем
Жизненный циклarchiveФинализировать завершенные изменения
Рабочий процессnew change, status, instructions, templates, schemasПоддержка рабочего процесса, управляемого артефактами
Схемыschema init, schema fork, schema validate, schema whichСоздавать и управлять пользовательскими рабочими процессами
КонфигурацияconfigПросматривать и изменять настройки
Утилитаfeedback, completionОбратная связь и интеграция с оболочкой

Команды для человека и агентов

Большинство CLI-команд предназначены для использования человеком в терминале. Некоторые команды также поддерживают использование агентами/скриптами через вывод JSON.

Команды только для человека

Эти команды интерактивны и предназначены для использования в терминале:

CommandНазначение
openspec initИнициализация проекта (интерактивные подсказки)
openspec viewИнтерактивная панель мониторинга
openspec workset open <name>Открытие сохраненного рабочего набора (окно редактора или сессия агента в терминале)
openspec config editОткрытие конфигурации в редакторе
openspec feedbackОтправка обратной связи через GitHub
openspec completion installУстановка дополнений оболочки (shell completions)

Команды, совместимые с агентами

Эти команды поддерживают вывод --json для программного использования AI-агентами и скриптами:

CommandИспользование человекомИспользование агентом
openspec listПросмотр изменений/спецификаций--json для структурированных данных
openspec show <item>Чтение содержимого--json для парсинга
openspec validateПроверка на наличие проблем--all --json для массовой валидации
openspec statusПросмотр прогресса артефакта--json для структурированного статуса
openspec instructionsПолучение следующих шагов--json для инструкций агента
openspec templatesПоиск путей шаблонов--json для разрешения пути
openspec schemasСписок доступных схем--json для обнаружения схем
openspec store setup <id>Создание и регистрация локального хранилища--json с явными входными данными для структурированного выходного результата настройки
openspec store register <path>Регистрация существующего хранилища--json для структурированного выходного результата регистрации
openspec store unregister <id>Забыть регистрацию локального хранилища--json для структурированной очистки
openspec store remove <id>Удаление папки зарегистрированного локального хранилища--yes --json для неинтерактивного удаления
openspec store listПросмотр зарегистрированных хранилищ--json для структурированной регистрации
openspec store doctorПроверка настройки локального хранилища--json для структурированной диагностики
openspec new change <id>Создание шаблона изменения на уровне репозитория--json, а также --store <id> для использования зарегистрированного хранилища в качестве корневого OpenSpec
openspec workset create [name]Составление личного рабочего представления--member <path> --json для неинтерактивного составления
openspec workset listПросмотр сохраненных рабочих наборов--json для структурированных представлений
openspec workset remove <name>Удаление сохраненного представления--yes --json для неинтерактивного удаления

Глобальные опции

Эти опции работают со всеми командами:

OptionОписание
--version, -VПоказать номер версии
--no-colorОтключить вывод цвета
--help, -hОтобразить справку для команды

Команды настройки

openspec init

Инициализирует OpenSpec в вашем проекте. Создает структуру папок и настраивает интеграции с AI-инструментами.

Поведение по умолчанию использует глобальные значения конфигурации: профиль core, доставка both, рабочие процессы propose, explore, apply, sync, archive.

openspec init [path] [options]

Аргументы:

ArgumentОбязателен?Описание
pathНетЦелевой каталог (по умолчанию: текущий каталог)

Опции:

OptionОписание
--tools <list>Настройка AI-инструментов в неинтерактивном режиме. Используйте all, none или список, разделенный запятыми
--forceАвтоматическая очистка устаревших файлов без запроса подтверждения
--profile <profile>Переопределение глобального профиля для этого запуска инициализации (core или custom)

--profile custom использует рабочие процессы, которые в данный момент выбраны в глобальной конфигурации (openspec config profile).

Поддерживаемые ID инструментов (--tools): amazon-q, antigravity, auggie, bob, claude, cline, codex, forgecode, codebuddy, continue, costrict, crush, cursor, factory, gemini, github-copilot, iflow, junie, kilocode, kimi, kiro, lingma, vibe, opencode, pi, qoder, qwen, roocode, trae, windsurf

Этот список отражает AI_TOOLS в src/core/config.ts. См. Supported Tools для навыков и путей команд каждого инструмента.

Примеры:

bash
# Интерактивная инициализация
openspec init

# Инициализация в определенном каталоге
openspec init ./my-project

# Неинтерактивно: настройка для Claude и Cursor
openspec init --tools claude,cursor

# Настройка для всех поддерживаемых инструментов
openspec init --tools all

# Переопределение профиля для этого запуска
openspec init --profile core

# Пропуск подсказок и автоматическая очистка устаревших файлов
openspec init --force

Что это создает:

openspec/
├── specs/              # Ваши спецификации (источник истины)
├── changes/            # Предлагаемые изменения
└── config.yaml         # Конфигурация проекта

.claude/skills/         # Навыки Claude Code (если выбран claude)
.cursor/skills/         # Навыки Cursor (если выбран cursor)
.cursor/commands/       # Команды OPSX для Cursor (если доставка включает команды)
... (другие конфигурации инструментов)

openspec update

Обновляет файлы инструкций OpenSpec после обновления CLI. Перегенерирует файлы конфигурации AI-инструментов, используя ваш текущий глобальный профиль, выбранные рабочие процессы и режим доставки.

openspec update [path] [options]

Аргументы:

ArgumentОбязателен?Описание
pathНетЦелевой каталог (по умолчанию: текущий каталог)

Опции:

OptionОписание
--forceПринудительное обновление, даже если файлы актуальны

Пример:

bash
# Обновление файлов инструкций после npm upgrade
npm update @fission-ai/openspec
openspec update

Хранилища (независимые репозитории OpenSpec)

Бета. Хранилища и функции, построенные на них (ссылки, рабочий контекст, рабочие наборы), являются новыми; названия команд, флаги, форматы файлов и вывод JSON могут меняться между релизами. Для ознакомительного руководства по работе с хранилищами см. stores guide.

Хранилище — это независимый репозиторий OpenSpec, который вы зарегистрировали на этой машине — например, репозиторий планирования или репозиторий контрактов. Регистрация хранилища позволяет обычным командам (list, show, status, validate, new change, archive, ...) действовать в нем из любой точки, передавая --store <id>.

openspec store setup

Создает и регистрирует локальное хранилище. При отсутствии аргументов в терминале OpenSpec направляет пользователя через процесс настройки. Агенты и скрипты должны передавать явные входные данные и использовать --json.

bash
openspec store setup [id] [options]

Опции:

OptionОписание
--path <path>Папка, в которой должно находиться хранилище (например, ~/openspec/<id>)
--remote <url>Запись канонического удаленного репозитория в файл store.yaml нового хранилища
--init-gitИнициализация Git-репозитория с начальным коммитом (по умолчанию)
--no-init-gitПропуск всех действий Git: без инициализации, без начального коммита
--jsonВывод JSON

Неинтерактивные запуски (--json, скрипты, агенты) должны передавать как ID хранилища, так и --path. В интерактивном терминале процесс настройки запрашивает местоположение с редактируемым предложением в видимом месте, принадлежащем пользователю (например, ~/openspec/<id>); он никогда не использует каталог данных OpenSpec по умолчанию.

Примеры:

bash
openspec store setup
openspec store setup team-context
openspec store setup team-context --path ~/openspec/team-context --no-init-git
openspec store setup team-context --path ~/openspec/team-context --no-init-git --json

openspec store register

Регистрирует существующую локальную папку хранилища.

bash
openspec store register [path] [options]

Опции:

OptionОписание
--id <id>ID хранилища; по умолчанию берется из метаданных хранилища или имени папки
--yesПодтвердить создание метаданных идентичности хранилища для здорового корневого OpenSpec
--jsonВывод JSON

openspec store unregister

Забывает регистрацию локального хранилища без удаления файлов.

bash
openspec store unregister <id> [--json]

Используйте это, если хранилище было перемещено, клонировано в другое место или больше не должно отображаться OpenSpec на этой машине.

openspec store remove

Забывает регистрацию локального хранилища и удаляет его локальную папку.

bash
openspec store remove <id> [--yes] [--json]

Команда remove показывает точную папку перед удалением в интерактивном терминале. Агенты, скрипты и вызывающие JSON должны передать --yes для подтверждения удаления. OpenSpec отказывается удалять папку, которая не содержит соответствующих метаданных хранилища.

openspec store list

Список локально зарегистрированных хранилищ.

bash
openspec store list [--json]
openspec store ls [--json]

openspec store doctor

Проверка регистрации локального хранилища, метаданных и наличия Git.

bash
openspec store doctor [id] [--json]

Doctor предназначен только для диагностики; он сообщает о недостающих корнях, несоответствиях метаданных и недействительном состоянии локальной регистрации без изменения хранилища.

Ссылки на хранилища из проекта

Репозиторий проекта может объявить, на какие хранилища опирается его работа, в файле openspec/config.yaml:

yaml
schema: spec-driven
references:
  - team-context

С этого момента вывод openspec instructions в этом репозитории (как для каждого артефакта, так и для поверхности apply, режимы JSON и человека) содержит индекс спецификаций каждого ссылочного хранилища — ID спецификаций, однострочное резюме из раздела Назначение каждой спецификации и команда получения (openspec show <spec-id> --type spec --store <id>). Индекс строится в реальном времени на основе зарегистрированного чекаута при каждом запуске; содержимое спецификаций никогда не копируется в вывод.

Ссылки являются контекстом только для чтения. Они никогда не меняют места, где действуют команды: работа остается в собственном корне репозитория, а запись в ссылочное хранилище остается явным действием --store. Ссылка, которую невозможно разрешить (например, хранилище, которое не зарегистрировано на этой машине), превращается в предупреждение в индексе с точным исправлением, и инструкции все равно генерируются. openspec doctor сообщает о состоянии ссылок в одном месте.

Регистрация источника клонирования хранилища

Хранилище может записать свой канонический источник клонирования в файл идентичности, который он коммитит, чтобы процесс адаптации никогда не заходил в тупик на "зарегистрируйте хранилище":

bash
openspec store setup team-context --path ~/openspec/team-context \
  --remote git@github.com:acme/team-context.git

Удаленный репозиторий записывается в .openspec-store/store.yaml внутри начального коммита, поэтому каждый клон рождается со знанием об этом. Для существующего хранилища отредактируйте store.yaml вручную и закоммитьте. store doctor показывает записанный удаленный репозиторий (и наблюдаемый Git-ориджин чекаута); setup/register называет его, а register записывает ориджин чекаута в локальный реестр машины.

Объявление ссылки также может содержать источник клонирования, поэтому товарищ по команде, у которого еще нет хранилища, получает полное, копируемое исправление (git clone <remote> <path> && openspec store register <path> --id <id>):

yaml
references:
  - { id: team-context, remote: "git@github.com:acme/team-context.git" }

Запись удаленного репозитория не является синхронизацией: OpenSpec никогда не клонирует, не скачивает и не отправляет самостоятельно.

Объявление хранилища по умолчанию

Репозиторий, чье планирование полностью внешне (нет локальных openspec/specs/ или openspec/changes/), может объявить свое хранилище один раз вместо передачи --store при каждой команде:

yaml
# openspec/config.yaml (единственный файл в openspec/)
store: team-context

Обычные команды затем автоматически разрешаются к объявленному хранилищу; корневой баннер и блок root в JSON сообщают source: "declared" с ID хранилища, а выведенные подсказки все еще содержат --store <id>. Объявление является запасным вариантом, никогда не переопределяя: явный --store всегда побеждает, а каталог с реальными папками планирования игнорирует указатель (с предупреждением). Чтобы преобразовать репозиторий-указатель в локальный корень OpenSpec, удалите строку store: и запустите openspec init — init отказывается создавать шаблоны при наличии объявления.

Doctor (проверка состояния репозитория)

Один вопрос только для чтения, одно место: здоров ли корневой OpenSpec и доступны ли хранилища, на которые он ссылается, на этой машине?

bash
openspec doctor [--store <id>] [--json]

Отчет разделяет состояние корня, состояние метаданных хранилищ (включая примечание о расхождении записанного удаленного и происхождения чекаута) и состояние ссылок (те же диагностические инструкции, с исправлениями клонирования для неразрешенных ссылок). Обнаружение проблем любого уровня завершается кодом 0 — агенты читают массивы status; только ошибки команды (нет корня, неизвестное хранилище) завершаются кодом 1. Doctor никогда не клонирует, не синхронизирует и не исправляет. Чтобы получить собранный набор, а не его состояние, используйте openspec context.

Рабочий контекст (собранный набор)

Все, что связано с этим через декларации OpenSpec, в одном рабочем наборе: корневой OpenSpec и хранилища, на которые он ссылается.

bash
openspec context [--store <id>] [--json] [--code-workspace <path> [--force]]

JSON-краткое описание пригодно для потребления агентом (каждое доступное ссылаемое хранилище несет свой рецепт получения; неразрешенные члены несут те же инструкции по исправлению и вывод Doctor). --code-workspace дополнительно записывает файл рабочего пространства VS Code, содержащий корень плюс доступные ссылаемые хранилища (ref:<id> папки) — это единственное действие, которое выполняет эта команда, отклоняемое без --force, если файл существует. Недоступные члены сообщаются, а не предполагаются.

"Рабочий контекст" — это собранный набор; поле context: в openspec/config.yaml является фоном проекта, внедренным в инструкции — две разные вещи. openspec doctor отвечает на вопрос о том, здоров ли этот набор; openspec context отвечает на вопрос о том, какой этот набор.

Персональные рабочие наборы

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

Рабочий набор — это личный, именованный вид папок, над которыми вы работаете вместе — корневой план плюс все остальное, что вы выбираете — который хранится на вашей машине и открывается по имени в вашем инструменте. Он чисто локальный: никогда не коммитится, никогда не делится, никогда не выводится из деклараций, и удаление одного никогда не затрагивает папку-член.

bash
openspec workset create [name] [--member <path> | --member <name>=<path>]... [--tool <id>] [--json]
openspec workset list [--json]
openspec workset open <name> [--tool <id>]
openspec workset remove <name> [--yes] [--json]

create запускает короткий управляемый процесс (или принимает флаги --member неинтерактивно; первый член является основным — сессии начинаются оттуда). open запускает выбранный инструмент: редакторы (VS Code, Cursor) открывают окно со всеми членами и возвращаются; CLI-агенты (Claude Code, codex) берут этот терминал в качестве сессии со всеми прикрепленными членами без предварительно заполненного промпта, завершаясь, когда вы выходите. Если папка-член отсутствует во время открытия, она пропускается с примечанием; остальные открываются. Сохраненное предпочтение инструмента может быть переопределено при открытии с помощью --tool.

Поддержка нового инструмента — это конфигурация, а не код. Каждый инструмент имеет один из двух стилей запуска — workspace-file (запускается с сгенерированным .code-workspace) или attach-dirs (один флаг присоединения на члена) — и ключ openers в глобальном config.json (откройте его с помощью openspec config edit) добавляет инструменты или настраивает встроенные функции по полю:

json
{
  "openers": {
    "zed": { "style": "workspace-file" },
    "claude": { "attach_flag": "--dir" }
  }
}

Все состояния рабочего набора хранятся в папке worksets/ глобального каталога данных (сохраненные виды плюс сгенерированные файлы <name>.code-workspace, которые перегенерируются при каждом открытии); удаление этой папки стирает все следы.


Команды просмотра

openspec list

Список изменений или спецификаций в вашем проекте.

openspec list [options]

Опции:

ОпцияОписание
--specsСписок спецификаций вместо изменений
--changesСписок изменений (по умолчанию)
--sort <order>Сортировать по recent (по умолчанию) или name
--jsonВывод в формате JSON

Примеры:

bash
# Показать все активные изменения
openspec list

# Показать все спецификации
openspec list --specs

# Вывод в формате JSON для скриптов
openspec list --json

Вывод (текст):

Изменения:
  add-dark-mode     Нет задач      только что

openspec view

Отображение интерактивной панели мониторинга для изучения спецификаций и изменений.

openspec view

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


openspec show

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

openspec show [item-name] [options]

Аргументы:

АргументТребуетсяОписание
item-nameНетИмя изменения или спецификации (запрашивает, если опущено)

Опции:

ОпцияОписание
--type <type>Указать тип: change или spec (автоматически определяется, если недвусмысленно)
--jsonВывод в формате JSON
--no-interactiveОтключить запросы

Опции, специфичные для изменений:

ОпцияОписание
--deltas-onlyПоказать только дельта-спецификации (режим JSON)

Опции, специфичные для спецификаций:

ОпцияОписание
--requirementsПоказать только требования, исключить сценарии (режим JSON)
--no-scenariosИсключить содержимое сценариев (режим JSON)
-r, --requirement <id>Показать конкретное требование по индексу, начиная с 1 (режим JSON)

Примеры:

bash
# Интерактивный выбор
openspec show

# Показать конкретное изменение
openspec show add-dark-mode

# Показать конкретную спецификацию
openspec show auth --type spec

# Вывод в формате JSON для парсинга
openspec show add-dark-mode --json

Команды валидации

openspec validate

Проверка изменений и спецификаций на структурные проблемы.

openspec validate [item-name] [options]

Аргументы:

АргументТребуетсяОписание
item-nameНетКонкретный элемент для проверки (запрашивает, если опущено)

Опции:

ОпцияОписание
--allПроверить все изменения и спецификации
--changesПроверить все изменения
--specsПроверить все спецификации
--type <type>Указать тип, когда имя неоднозначно: change или spec
--strictВключить строгий режим проверки
--jsonВывод в формате JSON
--concurrency <n>Максимальное количество параллельных проверок (по умолчанию: 6, или переменная окружения OPENSPEC_CONCURRENCY)
--no-interactiveОтключить запросы

Примеры:

bash
# Интерактивная проверка
openspec validate

# Проверить конкретное изменение
openspec validate add-dark-mode

# Проверить все изменения
openspec validate --changes

# Проверить всё с выводом в формате JSON (для CI/скриптов)
openspec validate --all --json

# Строгая проверка с повышенным параллелизмом
openspec validate --all --strict --concurrency 12

Вывод (текст):

Проверка add-dark-mode...
  ✓ proposal.md действителен
  ✓ specs/ui/spec.md действителен
  ⚠ design.md: отсутствует раздел "Технический подход"

Найдено 1 предупреждение

Вывод (JSON):

json
{
  "version": "1.0.0",
  "results": {
    "changes": [
      {
        "name": "add-dark-mode",
        "valid": true,
        "warnings": ["design.md: отсутствует раздел 'Технический подход'"]
      }
    ]
  },
  "summary": {
    "total": 1,
    "valid": 1,
    "invalid": 0
  }
}

Команды жизненного цикла

openspec archive

Архивировать завершенное изменение и объединять дельта-спецификации в основные спецификации.

openspec archive [change-name] [options]

Аргументы:

АргументТребуетсяОписание
change-nameНетИзменение для архивирования (запрашивает, если опущено)

Опции:

ОпцияОписание
-y, --yesПропустить запросы подтверждения
--skip-specsПропустить обновления спецификаций (для изменений только инфраструктуры/инструментов/документации)
--no-validateПропустить проверку (требует подтверждения)

Примеры:

bash
# Интерактивный архив
openspec archive

# Архивировать конкретное изменение
openspec archive add-dark-mode

# Архив без запросов (CI/скрипты)
openspec archive add-dark-mode --yes

# Архивирование изменения инструментария, не затрагивающего спецификации
openspec archive update-ci-config --skip-specs

Что это делает:

  1. Проверяет изменение (если нет --no-validate)
  2. Запрашивает подтверждение (если нет --yes)
  3. Объединяет дельта-спецификации в openspec/specs/
  4. Перемещает папку изменения в openspec/changes/archive/YYYY-MM-DD-<name>/

Команды рабочего процесса

Эти команды поддерживают рабочий процесс OPSX, основанный на артефактах. Они полезны как для людей, проверяющих прогресс, так и для агентов, определяющих следующие шаги.

openspec new change

Создает каталог изменения и необязательные метаданные, зафиксированные в корневом каталоге OpenSpec.

bash
openspec new change <name> [options]

Опции:

ОпцияОписание
--description <text>Описание для добавления в index.md
--goal <text>Необязательные метаданные цели для хранения с изменением
--schema <name>Схема рабочего процесса для использования
--store <id>ID хранилища, используемый как корень OpenSpec (хранилище — это автономное репозиторий OpenSpec, который вы зарегистрировали)
--jsonВывод JSON

Примеры:

bash
openspec new change add-billing-api
openspec new change add-billing-api --store team-context --json

openspec status

Отображает статус завершения артефакта для изменения.

openspec status [options]

Опции:

ОпцияОписание
--change <id>Имя изменения (запрашивает, если опущено)
--schema <name>Переопределение схемы (автоматически определяется из конфигурации изменения)
--jsonВывод в формате JSON

Примеры:

bash
# Интерактивная проверка статуса
openspec status

# Статус для конкретного изменения
openspec status --change add-dark-mode

# JSON для использования агентом
openspec status --change add-dark-mode --json

Вывод (текст):

Изменение: add-dark-mode
Схема: spec-driven
Прогресс: 2/4 артефакта завершены

[x] proposal
[ ] design
[x] specs
[-] tasks (заблокировано: design)

Вывод (JSON):

json
{
  "changeName": "add-dark-mode",
  "schemaName": "spec-driven",
  "isComplete": false,
  "applyRequires": ["tasks"],
  "artifacts": [
    {"id": "proposal", "outputPath": "proposal.md", "status": "done"},
    {"id": "design", "outputPath": "design.md", "status": "ready"},
    {"id": "specs", "outputPath": "specs/**/*.md", "status": "done"},
    {"id": "tasks", "outputPath": "tasks.md", "status": "blocked", "missingDeps": ["design"]}
  ]
}

openspec instructions

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

openspec instructions [artifact] [options]

Аргументы:

АргументТребуетсяОписание
artifactНетID артефакта: proposal, specs, design, tasks или apply

Опции:

ОпцияОписание
--change <id>Имя изменения (требуется в неинтерактивном режиме)
--schema <name>Переопределение схемы
--jsonВывод в формате JSON

Особый случай: Используйте apply как артефакт, чтобы получить инструкции по реализации задачи.

Примеры:

bash
# Получить инструкции для следующего артефакта
openspec instructions --change add-dark-mode

# Получить инструкции для конкретного артефакта
openspec instructions design --change add-dark-mode

# Получить инструкции apply/реализации
openspec instructions apply --change add-dark-mode

# JSON для потребления агентом
openspec instructions design --change add-dark-mode --json

Вывод включает:

  • Шаблон содержимого для артефакта
  • Контекст проекта из конфигурации
  • Содержимое зависимых артефактов
  • Правила для каждого артефакта из конфигурации

openspec templates

Показать разрешенные пути шаблонов для всех артефактов в схеме.

openspec templates [options]

Опции:

ОпцияОписание
--schema <name>Схема для инспекции (по умолчанию: spec-driven)
--jsonВывод в формате JSON

Примеры:

bash
# Показать пути шаблонов для схемы по умолчанию
openspec templates

# Показать шаблоны для пользовательской схемы
openspec templates --schema my-workflow

# JSON для программного использования
openspec templates --json

Вывод (текст):

Схема: spec-driven

Шаблоны:
  proposal  → ~/.openspec/schemas/spec-driven/templates/proposal.md
  specs     → ~/.openspec/schemas/spec-driven/templates/specs.md
  design    → ~/.openspec/schemas/spec-driven/templates/design.md
  tasks     → ~/.openspec/schemas/spec-driven/templates/tasks.md

openspec schemas

Список доступных схем рабочего процесса с их описаниями и потоками артефактов.

openspec schemas [options]

Опции:

ОпцияОписание
--jsonВывод в формате JSON

Пример:

bash
openspec schemas

Вывод:

Доступные схемы:

  spec-driven (package)
    Рабочий процесс разработки, основанный на спецификациях по умолчанию
    Поток: proposal → specs → design → tasks

  my-custom (project)
    Пользовательский рабочий процесс для этого проекта
    Поток: research → proposal → tasks

Команды схем

Команды для создания и управления пользовательскими схемами рабочих процессов.

openspec schema init

Создает новую локальную для проекта схему.

openspec schema init <name> [options]

Аргументы:

АргументОбязательноОписание
nameДаИмя схемы (kebab-case)

Опции:

ОпцияОписание
--description <text>Описание схемы
--artifacts <list>Список артефактов, разделенных запятыми (по умолчанию: proposal,specs,design,tasks)
--defaultУстановить как схему по умолчанию для проекта
--no-defaultНе запрашивать установку в качестве схемы по умолчанию
--forceПерезаписать существующую схему
--jsonВывод в формате JSON

Примеры:

bash
# Интерактивное создание схемы
openspec schema init research-first

# Неинтерактивно с указанием конкретных артефактов
openspec schema init rapid \
  --description "Rapid iteration workflow" \
  --artifacts "proposal,tasks" \
  --default

Что создается:

openspec/schemas/<name>/
├── schema.yaml           # Определение схемы
└── templates/
    ├── proposal.md       # Шаблон для каждого артефакта
    ├── specs.md
    ├── design.md
    └── tasks.md

openspec schema fork

Копирует существующую схему в ваш проект для настройки.

openspec schema fork <source> [name] [options]

Аргументы:

АргументОбязательноОписание
sourceДаСхема для копирования
nameНетНовое имя схемы (по умолчанию: <source>-custom)

Опции:

ОпцияОписание
--forceПерезаписать существующее место назначения
--jsonВывод в формате JSON

Пример:

bash
# Форк встроенной схемы, управляемой спецификациями
openspec schema fork spec-driven my-workflow

openspec schema validate

Проверяет структуру схемы и шаблоны.

openspec schema validate [name] [options]

Аргументы:

АргументОбязательноОписание
nameНетСхема для проверки (проверяются все, если опущено)

Опции:

ОпцияОписание
--verboseПоказать подробные шаги валидации
--jsonВывод в формате JSON

Пример:

bash
# Проверка конкретной схемы
openspec schema validate my-workflow

# Проверка всех схем
openspec schema validate

openspec schema which

Показывает, откуда разрешается схема (полезно для отладки приоритетов).

openspec schema which [name] [options]

Аргументы:

АргументОбязательноОписание
nameНетИмя схемы

Опции:

ОпцияОписание
--allСписок всех схем с их источниками
--jsonВывод в формате JSON

Пример:

bash
# Проверка, откуда берется схема
openspec schema which spec-driven

Вывод:

spec-driven resolves from: package
  Source: /usr/local/lib/node_modules/@fission-ai/openspec/schemas/spec-driven

Приоритет схем:

  1. Проект: openspec/schemas/<name>/
  2. Пользователь: ~/.local/share/openspec/schemas/<name>/
  3. Пакет: Встроенные схемы

Команды конфигурации

openspec config

Просмотр и изменение глобальной конфигурации OpenSpec.

openspec config <subcommand> [options]

Подкоманды:

ПодкомандаОписание
pathПоказать расположение файла конфигурации
listПоказать все текущие настройки
get <key>Получить определенное значение
set <key> <value>Установить значение
unset <key>Удалить ключ
resetСбросить до значений по умолчанию
editОткрыть в $EDITOR
profile [preset]Интерактивно или через пресет настроить профиль рабочего процесса

Примеры:

bash
# Показать путь к файлу конфигурации
openspec config path

# Вывести все настройки
openspec config list

# Получить определенное значение
openspec config get telemetry.enabled

# Установить значение
openspec config set telemetry.enabled false

# Явно установить строковое значение
openspec config set user.name "My Name" --string

# Удалить пользовательскую настройку
openspec config unset user.name

# Сбросить всю конфигурацию
openspec config reset --all --yes

# Редактировать конфигурацию в вашем редакторе
openspec config edit

# Настроить профиль с помощью мастера на основе действий
openspec config profile

# Быстрый пресет: переключить рабочие процессы на core (сохраняя режим доставки)
openspec config profile core

openspec config profile начинается с сводки текущего состояния, а затем позволяет вам выбрать:

  • Изменить доставку + рабочие процессы
  • Изменить только доставку
  • Изменить только рабочие процессы
  • Сохранить текущие настройки (выход)

Если вы сохраняете текущие настройки, никакие изменения не записываются и запрос на обновление не показывается. Если нет изменений в конфигурации, но файлы текущего проекта не синхронизированы с вашим глобальным профилем/доставкой, OpenSpec покажет предупреждение и предложит openspec update. Нажатие Ctrl+C также отменяет процесс корректно (без трассировки стека) и завершает работу кодом 130. В контрольном списке рабочих процессов [x] означает, что рабочий процесс выбран в глобальной конфигурации. Чтобы применить эти выборы к файлам проекта, выполните openspec update (или выберите «Применить изменения в этом проекте сейчас?» при запросе внутри проекта).

Интерактивные примеры:

bash
# Обновление только доставки
openspec config profile
# выбрать: Изменить только доставку
# выбрать delivery: Только навыки

# Обновление только рабочих процессов
openspec config profile
# выбрать: Изменить только рабочие процессы
# переключить рабочие процессы в контрольном списке, затем подтвердить

Утилиты

openspec feedback

Отправить отзыв о OpenSpec. Создает задачу в GitHub.

openspec feedback <message> [options]

Аргументы:

АргументОбязательноОписание
messageДаСообщение с отзывом

Опции:

ОпцияОписание
--body <text>Подробное описание

Требования: Для работы требуется установленный и аутентифицированный GitHub CLI (gh).

Пример:

bash
openspec feedback "Add support for custom artifact types" \
  --body "I'd like to define my own artifact types beyond the built-in ones."

openspec completion

Управление автодополнением командной строки OpenSpec.

openspec completion <subcommand> [shell]

Подкоманды:

ПодкомандаОписание
generate [shell]Вывести скрипт автодополнения в stdout
install [shell]Установить автодополнение для вашей оболочки
uninstall [shell]Удалить установленное автодополнение

Поддерживаемые оболочки: bash, zsh, fish, powershell

Примеры:

bash
# Установка автодополнения (автоматическое определение оболочки)
openspec completion install

# Установка для конкретной оболочки
openspec completion install zsh

# Генерация скрипта для ручной установки
openspec completion generate bash > ~/.bash_completion.d/openspec

# Удаление
openspec completion uninstall

Коды завершения

КодЗначение
0Успех
1Ошибка (сбой валидации, отсутствующие файлы и т. д.)

Переменные окружения

ПеременнаяОписание
OPENSPEC_TELEMETRYУстановите в 0, чтобы отключить телеметрию
DO_NOT_TRACKУстановите в 1, чтобы отключить телеметрию (стандартный сигнал DNT)
OPENSPEC_CONCURRENCYПо умолчанию для пакетной валидации (по умолчанию: 6)
EDITOR или VISUALРедактор для openspec config edit
NO_COLORОтключить вывод цвета при установке

Связанная документация

  • Commands - Слэш-команды AI (/opsx:propose, /opsx:apply и т. д.)
  • Workflows - Общие шаблоны и когда использовать каждую команду
  • Customization - Создание пользовательских схем и шаблонов
  • Getting Started - Руководство для первого запуска