Codex workflow для рефакторинга
Сейчас я делаю кодексом довольно много работы, в том числе рефакторинги кодовой базы. Отработался некий пайплайн, которым делюсь.
1️⃣ Конечно, сначала мы обсуждаем план. Читаем меморибанк, праймим контекст. После этого обсуждаем некий момент/идею/доработку, обсждение - в свободной форме. В завершение я прошу кодекс проработать интеграцию этой идеи в текущую кодовую базу, снять все неопределённости. Итогом обсуждения будет проработанная сформулированная идея.
2️⃣ Из обсуждавшегося плана мы делаем штуку, которую я назвал "протокол" - это схема реализации рефакторинга/фичи/и тд.
Структура такая:
- протокол разбит на шаги, шаги - на задачи.
- для шага определён чек-лист приёмки, когда мы считаем его успешно реализованным;
- отдельно прописана необходимость обновления меморибанка (кратко - основные принципы + ссылки на индексный файл правил ведения меморибанка)
- требуем работать:
* без оверининиринга/усложнений
* без легаси, фоллбэков, совместимости со старыми версиями - только новый код, все старое мигрируем;
* делаем все максимально простым способом, но с сохранением функциональности;
* определяем контроль качества: typecheck, lint, build ключевых пакетов, unit test
* определяем политику тестирования: общие хелперы, прописывать - что тестируем, для каких целей, что проверяем, зачем;
* прописываем что после каждого шага сохраняем контекст и прогресс в файл протокола
- технические решения оформляем как мини-ADR
- прописываем схему сохранения прогресса и контекста
- прописываем контекст первого шага
Итог: получаем в папке .protocols/ очередной файл вида "0XXX-some-planned-refactor.md".
3️⃣ Дальше зависит от обстановки: если рефакторинг маленький, и контекста осталось больше 50%, я стартую в этом же экземпляре кодекса командой /protocol-go "работай по плану из протокола, фиксируй прогресс и контекст в файле протокола"
Если рефакторинг большой, то я начинаю новую сессию кодекса (на самом деле у меня есть уже готовые 2-3 сессии с праймингом меморибанком, то у меня 1-2 минуты занимает, поэтому они "в запасе"). Для прайминга задачей у меня есть промпт:
- прочитай протокол из .protocols/ под номером 0-XXX.
- восстановки контекст, подготовься к обсуждению указанных в протоколе задач;
- возвращайся как будешь готов
Как агент закончит подготовку контекста - приступаем обычной командой /protocol-go
4️⃣ Когда кончается контекст - я останавливаю после шага агента (оцениваю - если есть риск исчерпания контекста посередине шага). Стартуем/берем очередной экземпляр кодекса с праймингом меморибанком. Праймим его дополнительно промптом "возобнови задачу" (из пункта 3) чтобы он прочитал контекст из протокола. И - /protocol-go!
Примерно такой пайплайн.
Для СС был примерно такой же с нюансами (там планмод использовал в обсуждении, и явно указывал прописывать todo на базе протокола). Думаю, для любого агента пойдёт.
❓ А вы как тащите большие рефакторинги?
#post
@deksden_notes
Post #144
548
- 🔥 8
- 👍 5
- 🥱 1