6.3 KiB
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.