Skip to content

Исследование в первую очередь

/opsx:explore — ваш партнер по размышлениям. Обращайтесь к нему всякий раз, когда у вас есть проблема, но еще нет плана. Он исследует вашу кодовую базу, помогает взвешивать варианты и проясняет, чего вы на самом деле хотите, и все это до того, как только будет создан какой-либо артефакт или строка кода. Когда картина становится ясной, он передает работу /opsx:propose.

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

Вот почему это важно. AI-помощники по кодированию очень увлечены. Задайте расплывчатый вопрос, и они уверенно создадут что-то, но, возможно, не то, что вам нужно. Исследование — это лекарство. Это бессмысленный разговор, в ходе которого вы с AI вместе находите правильный путь, чтобы к моменту предложения вы предлагали именно то, что нужно.

Когда следует исследовать

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

  • Вы знаете проблему, но не решение. ("Страницы работают медленно." "Аутентификация — бардак." "Мы постоянно получаем дубликаты заказов.")
  • Вы выбираете между подходами и хотите, чтобы компромиссы были представлены на фоне вашего реального кода.
  • Вы новичок в кодовой базе и вам нужно понять, как что-то работает, прежде чем вы это измените.
  • Требования нечеткие, и вы хотите их уточнить, прежде чем принимать обязательства.
  • Вы подозреваете, что работа больше или меньше, чем кажется, и хотите честно оценить объем задачи.

Пропускайте исследование только в том случае, если вы уже точно знаете, чего хотите и как это сделать. В этом случае переходите сразу к /opsx:propose.

Что он делает (а что нет)

Исследование — это разговор, а не генератор.

Он делает:

  • Читает и ищет информацию в вашей кодовой базе, чтобы ответить на реальные вопросы.
  • Сравнивает варианты и называет компромиссы для каждого из них.
  • Рисует диаграммы, делая дизайн понятным.
  • Помогает сузить расплывчатую идею до конкретного, реализуемого объема работ.
  • Переходит к /opsx:propose, когда вы готовы.

Он не делает:

  • Создает папку для изменений.
  • Пишет какие-либо артефакты (никаких предложений, спецификаций, дизайна или задач).
  • Пишет или изменяет код.

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

Он уже установлен

Хорошие новости: /opsx:explore входит в состав стандартного профиля core вместе с propose, apply, sync и archive. Вам не нужно ничего включать. Если OpenSpec настроен в вашем проекте, исследование готово в вашем AI-чате. (Как и для всех команд /opsx:*, вы вводите его в чат своего помощника, а не в терминале. См. Как работают команды.)

Полный пример

Посмотрите, как расплывчатое беспокойство превращается в четкое, реализуемое изменение.

text
You: /opsx:explore

AI:  What would you like to explore?

You: Our checkout sometimes creates duplicate orders. I don't know why
     and I don't know how to fix it safely.

AI:  Let me dig into the checkout path...
     [reads the order service, the payment webhook handler, and the
      client submit logic]

     Here's what I found. There are two ways a duplicate can happen:

     1. The client can submit twice (double-click, retry on slow network).
        Nothing debounces it.
     2. The payment webhook can fire more than once, and the handler
        creates an order each time. There's no idempotency key.

     Cause #2 is the dangerous one: it can charge and fulfill twice.

     Three ways to fix it, roughly in order of robustness:
     - Idempotency key on the order-creation endpoint (handles both causes)
     - Dedup on the webhook by payment-intent id (handles #2 only)
     - Client-side debounce (handles #1 only, papers over the real bug)

     Given your code already stores the payment-intent id, the
     idempotency-key approach is a small change with the biggest payoff.
     Want me to scope that?

You: Yes, let's do the idempotency key.

You: /opsx:propose add-order-idempotency-key

AI:  Created openspec/changes/add-order-idempotency-key/, with a proposal
     and delta spec grounded in what we just found. Ready for implementation.

Обратите внимание, что произошло. Начальная точка была "что-то не так, и я боюсь трогать это". Двадцать секунд исследования превратили это в названную корневую причину, три ранжированных варианта, рекомендацию, связанную с существующим кодом, и точное изменение. Последующее предложение является четким, потому что сначала произошло мышление.

Передача работы на этап предложения (propose)

Исследование никуда не архивируется. Когда вы готовы, вы просто начинаете изменение, и AI переносит контекст из вашего разговора в артефакты.

text
explore  ──►  propose  ──►  apply  ──►  archive
 (think)     (agree)       (build)     (record)

Вы можете сказать это обычным языком ("давайте превратим это в изменение") или запустить /opsx:propose <name> напрямую. В любом случае, исследование, которое вы только что провели, становится основой предложения, а не случайным чатом.

Если вы используете расширенный набор команд, explore может передать работу /opsx:new для пошагового создания артефактов. См. Рабочие процессы.

Советы для хорошего исследования

  • Приносите проблему, а не решение. "Логины работают медленно" дает AI возможность исследовать. А вот "Добавить кэш Redis" заранее обязывает вас ответом, который вы еще не протестировали.
  • Говорите о компромиссах вслух. "Каковы недостатки каждого варианта?" — это даст вам более честное сравнение.
  • Позвольте ему читать сначала. Лучшие исследования начинаются с того, что AI действительно изучает ваш код, а не гадает. Укажите на соответствующую область, если это поможет.
  • Ничего страшного, если придется отступить. Если исследование показывает, что идея не стоит затрат, это победа. Вы узнали об этом недорого.
  • Исследуйте снова во время изменения. Застряли во время /opsx:apply? Вы можете вернуться назад и исследовать подпроблему, а затем вернуться к работе.

Честные компромиссы

Что вы получаете: explore ловит ошибки на самом дешевом этапе, до того как существует какой-либо артефакт. Это особенно мощно при работе с незнакомым кодом, где способность AI читать и обобщать систему экономит вам целый день "исследований".

Какова цена: немного терпения. Исследование — это разговор, поэтому оно медленнее, чем мгновенный запуск /opsx:propose в надежде. Для работы, которую вы уже действительно понимаете, этот дополнительный шаг — чистый оверхед, и его следует пропустить.

Общее правило: чем расплывчатее задача, тем больше пользы приносит explore. Чем яснее задача, тем больше можно сразу перейти к предложению.

Куда двигаться дальше