Files

6.3 KiB
Raw Permalink Blame History

name, description
name description
bug-work Принимает баг в уже сделанном, при необходимости обсуждает путь и чинит. Файлы в docs/bugs/, индекс отдельно от фаз. Используй при «баг», «почини», «регрессия», «сломалось», «fix the bug», «возьми баг N». Не для новой фичи (/side-work), нового среза (/slice-work), фазы среза (/phase-work), волны агентов (/phase-orch) и ревью (/phase-review).

Баги

Это не фаза и не срез. Сломалось то, что уже должно работать: принять, при нужде согласовать путь, починить. Документы — docs/bugs/, индекс — docs/bugs/README.md. В docs/phases/ и «Вне очереди» не класть.

Один запуск — один баг. Код до записи в индекс не писать.

Когда это, а когда нет

Прочитай docs/bugs/README.md и инварианты в AGENTS.md. Оглавление фаз (docs/phases/README.md) — только если нужно отличить баг от открытой .

  • Уже стоит /🔄 в индексе багов — бери его, не заводи второй.
  • Это ещё не сделанная фаза в docs/phases/ — скажи и отдай /phase-work.
  • Склейка систем, DX — /side-work. Новый кусок игры — /slice-work.
  • Ревью среза — /phase-review.
  • Волну фаз — /phase-orch.

Номер передали (/bug-work 3) — берёшь его. Нет — первая в индексе, у которой нет ветки bug/<N>-*. Нет свободных и пользователь только что описал симптом — заводи новый.

1. Принять

Записать симптом так, чтобы следующий агент его узнал без этого чата: что видит игрок / падающий тест / лог; чего ждали; как воспроизвести, если путь не в одну строку.

Пользователь предложил фикс — проверь, что это причина, а не симптом. Лучший путь рядом — назови его, не чини молча худший.

2. Обсудить, когда нужно

Путь один и не трогает протокол, сейв и инвариант — чинить, не спрашивать.

Два+ разумных пути или правка протокола / сейва / инварианта — два–три варианта и рекомендация. Стоп, пока не сказали «ок», «делай», «как рекомендуешь». Молчание — нет. Соседнее «заодно» в отчёт, не в объём.

3. Документ

docs/bugs/<NN>-<slug>.md и строка в индексе. Номер: максимум по папке и индексу, плюс один, затем git branch --list "bug/<N>-*". Занято — следующий. Гонку ловят ветки, не индекс: у нового бага на main строки ещё нет.

Каркас короче фазы, не копия:

  • Симптом — что сломано и как увидеть
  • Причина — когда известна; иначе «ищу» и дописать тем же коммитом, что код
  • Путь — выбранный фикс; отвергнутые — одной строкой, если обсуждали
  • Задачи — чеклист
  • Тест, без которого не закрыт — обычно один, по Testing policy в AGENTS.md
  • Стоп — чего не трогать

Дизайн-док не писать. «Было / Стало» не нужно: это регрессия, не решение.

Индекс — новая строка, статус 🔄, если сразу чинишь; , если просили только записать. Просил только документ — здесь конец.

4. Работа

Заявка git branch bug/<N>-<slug> main до кода (от main, не от чужого HEAD). Новые файлы и 🔄 живут на этой ветке. Не коммить заявку фазы в дерево бага и наоборот.

Дальше — как phase-work, с отличиями:

  • префикс ветки bug/, не phase/; индекс — docs/bugs/README.md;
  • worktree обязателен, только если основное дерево грязное или рядом идёт другая ветка. Чистое main — можно в этом дереве;
  • шаблон фазы не заполнять. Тест из файла бага — да, «Критерий готовности» фазы — нет;
  • тесты — только проект из Testing policy и --filter на новый тест. Полный dotnet test, клиентский Vitest без правок клиента и повтор после слияния статус-строки не наследовать из /phase-work;
  • в индексе — последним коммитом ветки, в нём только строка статуса.

Слияние и замок merge/lock — как у /phase-work. Замок общий с фазами и ревью: чужой не снимать и не воровать. Основное дерево не на main — не checkout. Не пушь.

Не смог закрыть тест — оставь и напиши почему. Полработы с честной пометкой лучше, чем с дырой.

Отчёт

Симптом одной строкой; путь, если выбирали; баг и ветка; какой тест добавлен; что прогнал; что осталось ; слита ли ветка в main.