Основні концепції наочно
OpenSpec — це легкий рівень узгодження між вами та вашим ШІ. Ви описуєте, що має робити зміна; ШІ створює деталі; ви обоє переглядаєте один і той самий план, і лише потім код пишеться. Ця сторінка є повною ментальною моделлю на одному екрані. Якщо вам потрібна повна версія, Concepts містить її.
Ось вся суть у п'яти словах: спочатку погодитися, а потім впевнено будувати.
П’ять ідей
Усе в OpenSpec побудовано на основі п'яти концепцій. Вивчіть їх, і решта — це деталі.
1. Специфікації є правдою. Spec описує те, як працює ваша система зараз. Вони знаходяться у openspec/specs/ та організовані за доменами (auth/, payments/, ui/). Specs складаються з вимог ("система МАЄ закінчувати сесії через 30 хвилин") та сценаріїв (конкретних прикладів given/when/then). Уявіть specs як єдину узгоджену відповідь на питання: "що робить це програмне забезпечення?".
2. Зміна — це одиниця роботи. Коли ви хочете додати, змінити або видалити поведінку, ви створюєте зміну: папку в openspec/changes/, яка містить усе про цю роботу в одному місці. Пропозиція, дизайн, список завдань та редагування специфікацій. Одна зміна — одна папка — одна функція.
3. Delta specs описують зміни, а не весь світ. У межах однієї зміни ви не переписуєте всю специфікацію. Ви пишете невелику дельту: ADDED ця вимога, MODIFIED та інша, REMOVED третя. Це той трюк, який робить OpenSpec хорошим у редагуванні існуючих систем, а не лише нових. Ви описуєте різницю (diff), а не кінцевий стан.
4. Артефакти будуються одне на одному. Зміна містить декілька документів, створених у природному порядку, кожен з яких є основою для наступного:
text
proposal ──► specs ──► design ──► tasks ──► implement
why what how steps do itВи можете повернутися до будь-якого з них у будь-який час. Вони є фасилітаторами, а не перешкодами. (Більше про це нижче.)
5. Архівування повертає зміну назад у правду. Коли робота виконана, ви архівуєте зміну. Її delta specs зливаються з вашими основними специфікаціями, а папка зміни переміщується до changes/archive/ із міткою дати. Тепер ваші специфікації описують нову реальність, і ви готові до наступної зміни. Цикл закривається.
Зображення
text
┌─────────────────────────────────────────────────────────────────┐
│ openspec/ │
│ │
│ ┌──────────────────┐ ┌──────────────────────────┐ │
│ │ specs/ │ │ changes/ │ │
│ │ │ ◄───── │ │ │
│ │ source of truth │ merge │ one folder per change │ │
│ │ how things work │ on │ proposal · design · │ │
│ │ today │ archive │ tasks · delta specs │ │
│ └──────────────────┘ └──────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘Дві папки. specs/ — це правда. changes/ — це те, що ви пропонуєте. Архівування переносить пропозицію у сферу правди.
Цикл, який ви насправді будете виконувати
У стандартній конфігурації ваш день виглядатиме так. Опційно спочатку подумайте над цим; потім одна команда створює план, ви його читаєте, наступна будує його, а остання зберігає файли.
text
/opsx:explore → (опціонально) спочатку обміркувати з ШІ
/opsx:propose add-dark-mode → ШІ створює пропозицію, specs, дизайн та завдання
(ви читаєте та коригуєте план)
/opsx:apply → ШІ будує це, відзначаючи виконані завдання
/opsx:archive → specs оновлені, зміна заархівованаКоли ви сумніваєтеся, почніть з дослідження. /opsx:explore — це партнер для мислення без ризиків: він читає ваш код, розкладає варіанти та перетворює невизначену ідею на конкретний план до появи будь-якого артефакту. Це найкращий антидот проти ШІ, який інакше створить щось з розпливчастого запиту. Уже знаєте, що саме хочете? Пропустіть прямо до /opsx:propose. У будь-якому випадку, дослідження є у стандартному профілі, тому воно завжди доступне. Дивіться Explore guide.
Це slash commands, які вводяться в чаті вашого помічника ШІ. Налаштування (openspec init) виконується у терміналі. Якщо цей поділ вам незвичний, спочатку прочитайте How Commands Work; це найпоширеніша точка плутанини.
"Фасилітатори, а не бар'єри"
Ця фраза зустрічається всюдині в OpenSpec, тому ось що вона означає простими словами.
Старі процеси специфікації — це водоспади: спочатку завершуєте планування, потім вам дозволено реалізувати, і повернення назад болісне. OpenSpec цього не допускає. Порядок proposal → specs → design → tasks показує те, що стає можливим далі, а не те, що ви змушені зробити наступним.
Виявляєте під час реалізації, що дизайн був неправильним? Редагуйте design.md і продовжуйте. Зрозуміли, що обсяг має зменшитися? Оновіть пропозицію. Ніщо не блокується. Залежності існують лише для того, щоб ШІ мав необхідний контекст (ви не можете написати хороші завдання без специфікацій як основу), а не для того, щоб вас обмежувати.
Сила тут полягає в чесності: реальна робота хаотична та ітеративна, і OpenSpec це дозволяє. Компроміс положено на дисципліну: оскільки ніщо вас не змушує рухатися вперед, ви самі повинні тримати зміну сфокусованою, а не дозволити їй розростатися. Гайд Workflows містить хороші звички для цього.
Чому це варто невеличкого навантаження
Проста правда: OpenSpec додає крок. Ви пишете короткий план перед тим, як будуєте. То що ви отримуєте за це?
- Ви ловите помилки до того, як вони коштувати почнуть. Виправлення непорозуміння в одній параграфічній пропозиції — це безкоштовно. Виправлення після того, як ШІ написав 400 рядків — ні.
- План та код залишаються в одному репозиторії. Через пів року специфікація скаже вам (і наступному сеансу ШІ), чому система працює саме так.
- Зміни можна переглянути. Папка зміни — це охайний пакет: прочитайте пропозицію, швидко перегляньте дельти, перевірте завдання. Жодної археології через історію чату.
- Це підходить для існуючих кодових баз. Дельти означають, що ви можете специфікувати зміну у 50 000-рядковій програмі, не документуючи всю її суть спочатку.
І чесний компроміс: для справді тривіального однорядкового виправлення церемонія може не окупитися, і це нормально. OpenSpec створений бути легким, але він не безкоштовний. Використовуйте його там, де важлива згода, а це, як виявляється, більшість часу, коли ви працюєте з ШІ, який впевнено створить те, що ви невиразно попросили.
Куди рухатися далі
- Новички? Getting Started повністю проходить першу зміну.
- Не впевнені, що будувати? Explore First — це місце для початку.
- Збентежені щодо того, де виконуються команди? How Commands Work.
- Хочете глибоку версію всього вищесказаного? Concepts.
- Навчання на прикладах? Examples & Recipes.
- Потрібно визначити термін? Glossary.