Редактирование и итерации изменений
Каждый артефакт изменения — это просто файл Markdown, который вы можете редактировать в любое время. Нет заблокированной «плановой фазы», нет шлюза утверждения, нет специального режима редактирования. Хотите изменить предложение после того, как начали разработку? Откройте proposal.md и измените его. Осознали, что дизайн неверен во время реализации? Исправьте design.md и продолжайте работу. Это весь ответ, и это сделано намеренно.
Эта страница предназначена для момента, когда вы думаете: «подождите, могу ли я вернуться и изменить это?» Да. Вот как это сделать в каждом распространенном случае.
Два способа редактирования чего угодно
У вас всегда есть оба варианта:
Отредактируйте файл напрямую. Артефакты — это обычный Markdown-код в
openspec/changes/<name>/. Откройтеproposal.md,design.md,tasks.mdили спецификацию дельты вspecs/в вашем редакторе и измените их. Ничего другого не требуется.Попросите ИИ пересмотреть его. В чате просто скажите, что вы хотите: «Обновите предложение, чтобы исключить идею кэширования и добавить раздел о лимитах запросов» или «дизайн должен использовать очередь, а не опросы (polling)». ИИ редактирует артефакт для вас, используя остальную часть изменения в качестве контекста.
Используйте тот, который подходит моменту. Небольшая формулировка? Отредактируйте файл. Существенное переосмысление? Пусть ИИ проведет ревизию с полным контекстом.
«Как мне обновить предложение (или спецификации) после того, как я начал?»
Просто обновите. То же изменение, но в улучшенном виде.
Если вы используете расширенные команды, естественный порядок действий таков: отредактируйте артефакт, а затем выполните /opsx:continue, чтобы продолжить работу с нового состояния, или /opsx:apply, чтобы продолжать реализацию на основе обновленного плана. Если вы используете стандартные команды core, отредактируйте артефакт и выполните /opsx:apply; он читает текущие файлы, поэтому он строит код на основе того, что написано в артефактах.
Ментальная модель: артефакты — это живой план, а не подписанный контракт. ИИ всегда работает с их текущим содержимым, поэтому редактирование этих файлов направляет работу.
text
Вы: Я хочу изменить подход в этом изменении.
Вы: [отредактируйте design.md или скажите ИИ:]
Обновите design.md, чтобы использовать фоновую задачу вместо синхронного вызова.
ИИ: design.md обновлен. Список задач все еще подходит; хотите ли вы, чтобы я продолжил применение?
Вы: /opsx:applyЭто ответ на очень частый вопрос: нет отдельной команды «обновить предложение», потому что она не нужна. Файл является источником истины, и его редактирование (вручную или через ИИ) — это обновление.
«Как мне вернуться к просмотру после реализации?»
Вам не нужно «возвращаться», потому что вы никогда не уходили. Рабочий процесс гибок: просмотр, редактирование и реализация — это не последовательные фазы, в которые вы застряли.
Конкретно, после некоторой работы /opsx:apply:
- Хотите ли вы пересмотреть план? Откройте артефакты и прочитайте их или выполните
openspec show <change>в терминале для консолидированного просмотра. - Нашли что-то, что нужно изменить? Отредактируйте артефакт (или попросите ИИ), а затем продолжайте работу.
- Хотите структурированную проверку того, соответствует ли код плану? Выполните
/opsx:verify(расширенная команда). Он сообщает о полноте, корректности и связности без блокировки чего-либо. См. Workflows: Verify.
Нет «фазы просмотра», к которой можно было бы вернуться, потому что просмотр — это то, что вы можете делать в любой момент, включая после реализации.
«Я отредактировал код вручную. Как мне согласовать это с OpenSpec?»
Это происходит постоянно, и это нормально. Вы внесли изменения в своем редакторе, и теперь код и артефакты расходятся. Верните их в синхронизацию в любом направлении:
- Код теперь корректен, а спецификация устарела. Обновите спецификацию дельты (и задачи, если это применимо), чтобы описать поведение, которое вы фактически выпустили. Спецификация должна соответствовать реальности до архивирования, поскольку архивирование объединяет спецификацию с вашим источником истины.
- Спецификация корректна, а код отклонился. Продолжайте работу или исправляйте, пока код не совпадет со спецификацией.
Быстрый способ выявить несоответствия — это /opsx:verify: он читает ваши артефакты и ваш код и говорит вам, где они расходятся. Относитесь к его выводу как к списку задач для согласования, а затем архивируйте, когда они согласуются.
Принцип таков: на момент архивация ваши спецификации становятся истиной записи. Поэтому перед архивированием сделайте так, чтобы спецификации честно отражали то, что делает код. Ручное редактирование приветствуется; просто не позволяйте ему незаметно рассинхронизировать спецификацию.
Улучшение предложения, которое вас не устраивает
Если сгенерированное предложение не соответствует ожиданиям, у вас есть три хороших варианта:
- Итерируйте на месте. Скажите ИИ, что не так («область слишком широка, исключите функции администратора»), и позвольте ему пересмотреть. Это самый дешевый и обычно правильный вариант.
- Сначала исследуйте, а затем заново предлагайте. Если проблема в том, что сама идея неясна, вернитесь к
/opsx:explore, обдумайте это и дайте более четкое предложение. См. Explore First. - Начните с нуля. Если намерение изменилось фундаментально, новое изменение может быть яснее, чем исправление старого.
Этот последний вариант имеет собственное руководство по принятию решений, далее.
Когда обновлять, а когда начинать новое изменение
Коротко: обновляйте, если это та же работа в улучшенном виде; начинайте новую, если намерение изменилось фундаментально или область работы разрослась до других задач.
- Та же цель, но лучший подход? Обновите.
- Сужение области (выпустить MVP сейчас, остальное позже)? Обновите, затем заархивируйте, а потом создайте новое изменение для фазы два.
- Сама проблема изменилась («добавить темную тему» превратилось в «построить полноценную систему тем») ? Новое изменение.
Полная блок-схема и примеры работы приведены в Workflows: When to Update vs Start Fresh, а более глубокое рассмотрение — в OPSX: When to Update vs. Start Fresh.
Примечание о задачах
tasks.md — это живой контрольный список, а не замороженный план. По мере реализации вы можете добавлять обнаруженные задачи, удалять те, которые оказались ненужными, или менять их порядок. ИИ отмечает пункты в процессе выполнения /opsx:apply, и он возобновляется с первой непомеченной задачей, если вы вернетесь позже. Редактирование списка в процессе работы ожидаемо.
Куда двигаться дальше
- Workflows — шаблоны, а также руководство по принятию решения (обновить vs. новое)
- Explore First — место, куда можно вернуться, когда идея нуждается в переосмыслении
- Commands —
/opsx:continue,/opsx:applyи/opsx:verifyподробно - Concepts: Artifacts — для чего нужен каждый артефакт