Skip to content

Навички ​

Усі навички OpenSpec: аргументи, що вони створюють і що повертають.

Навички поділяються на два набори:

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

Кожна навичка очікує, що проект уже використовує OpenSpec. Перед першим кроком, який щось записує, навичка перевіряє наявність визначеного кореня. Те, що станеться, якщо його немає, залежить від того, як було викликано навичку:

  • Автовибір: ваш агент самостійно обрав цю навичку без прямого згадування OpenSpec вами. Він ігнорує OpenSpec і відповідає на ваше запитання у звичайному режимі, ніби OpenSpec не встановлено.
  • Явне звернення до OpenSpec: ви згадали OpenSpec, назвали конкретну навичку або запустили її команду. Вона зупиняється перед записом і запитує, як продовжити: запустити openspec init тут, вказати сховище за допомогою --store <id> або продовжити без OpenSpec. Вона чекає на вашу відповідь.

Команди завжди потрапляють у другий випадок. Проект, у якому openspec/config.yaml вказує сховище, яке цей комп’ютер не може розпізнати (не зареєстроване або рядок 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>/ з усіма артефактами, які визначає схема, у порядку залежностей (керований специфікаціями: пропозиція, дельти специфікацій, дизайн, завдання). Ніколи не створює код.
ВідповідьСтворені артефакти, готові до перегляду, і наступний крок. На цьому зупиняється; реалізація чекає на openspec-apply-change.

openspec-apply-change ​

Реалізуйте завдання пропозиції змін, просуваючись списком, доки їх не буде виконано або не виникне блокування.

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

openspec-update-change ​

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

КонтрактОпис
АргументиНазва пропозиції змін, необов’язково, а також бажана редакція. Якщо редакцію не вказано, виконує перевірку узгодженості: артефакти перевіряються один проти одного на суперечності, прогалини й дублювання.
СтворюєРедагує файли артефактів, які вже існують. Один виняток: для артефакту, записаного як glob, наприклад specs/**/*.md, який уже має принаймні один файл, може додати відсутній супутній файл після вашого підтвердження шляху. Артефакт, що ще не має файлів, — це завдання для openspec-continue-change. Без цього скіла (базовий профіль його не включає) вказує на 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>/ і всі артефакти планування, потрібні для реалізації, у порядку залежностей (керований специфікаціями: пропозиція, специфікації, дизайн, завдання), пропускаючи лише артефакти, позначені як пропущені або умовні. Код ніколи не створюється.
ВідповідьНазва й розташування пропозиції змін, кожен створений артефакт, а також будь-який пропущений умовний артефакт і причина. На цьому зупиняється; реалізація чекає на 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 хвилин.