Files
dev-skills/av-dev-backlog/skills/backlog/references/from-review.md
T
avandClaude Opus 4.8 074c6f3448 backlog: переименовать плагин в av-dev-backlog, скилл — в backlog
Соглашение об именах: длинное имя плагина с префиксом av-dev- (уникально в
маркетплейсе), короткие имена скилов внутри. Вызов — /av-dev-backlog:backlog,
единообразно для будущих плагинов.

Путь к backlog.py в SKILL.md обновлён под новую раскладку
($CLAUDE_PLUGIN_ROOT/skills/backlog/scripts/backlog.py).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-24 08:52:16 +03:00

85 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Задачи из аудита и ревью
Ревью и аудиты — код-ревью, архитектурный проход, аудит безопасности, любой
разбор другим агентом — порождают находки, часть которых становится задачами
беклога. Это отдельный интейк со своей опасностью, **зеркальной** интейку из
диалога.
- Интейк из диалога грешит переполнением: из одной мысли рождается пять файлов.
- Интейк из ревью грешит сваливанием: сорок сырых находок превращаются в сорок
файлов. Беклог раздувается, а следующий груминг склеивает их обратно.
Защита от сваливания — та же, что в самом ревью: **кластеризация по причине, а не
файл-на-находку.** Если у ревью был триаж — половина работы уже сделана, бери его
выход. Если нет — триажируй сам, прежде чем заводить.
## Находка агента — не задача
Мнение агента — **гипотеза, пока у неё нет свидетельства** (падающий тест,
воспроизводимый шаг, положение гайда). Согласие нескольких находок само по себе
достоверность не повышает: это один источник, высказавшийся несколько раз.
Отсюда фильтр входа, поверх обычного «не делаем сейчас + пожалеем о потере»:
- **Находка со свидетельством**, отложенная к исполнению → **задача**.
Свидетельство и последствие переносим в тело — это её «почему», то самое, что
переживает запись.
- **Находка без свидетельства / низкой уверенности** → **идея** (`[idea]`), а не
задача. Она не заработала приоритизацию: сравнивать неподтверждённое не с чем.
Её судьба — штурм, где либо найдётся подтверждение, либо она уедет на кладбище.
- **Уже починено по ходу ревью** → **ничего**. Починенное не заводим.
- **Развилка, решённая при ревью** → ничего; решённая «потом» → задача с
зафиксированным вопросом.
## Порядок
1. **Возьми выход триажа, а не сырые находки.** Сырой отчёт — это симптомы до
дедупликации; в нём одна причина размазана по нескольким строкам.
2. **Кластеризуй по причине.** Пять находок об одном отсутствующем инварианте —
одна задача, а не пять. Класс мелочи (nits, косметика) — **один пакетный файл**
со списком пунктов, а не файл на каждую запятую.
3. **Дедуп против беклога и кладбища.** Аудит переоткрывает уже заведённое и уже
выкинутое. Нашлось в беклоге — дописываем находку в существующий файл. Нашлось
на кладбище — это сигнал: причина отказа могла устареть, выноси пользователю, а
не заводи молча заново.
4. **Покажи карту до создания файлов.** Кластер → задача / идея / строка в
пакетный файл / уже в беклоге / отброшено — пачкой через `AskUserQuestion`.
Это тот же барьер, что и «три кандидата» в интейке из диалога: массовое
заведение файлов без подтверждения — ровно тот отказ, ради которого интейк из
ревью и выделен. Дешёвая мелочь по явному согласию может заводиться и без
поштучного вопроса — но карта пользователю всё равно предъявляется.
5. **Заводи утверждённое** через `backlog.py add`, с двумя добавками:
- **тег партии** — `add … --tag review-ГГГГ-ММ-ДД` (или `audit-<тема>`), чтобы
весь заход груминга поднимался одной командой `backlog.py list --tag …`;
- **провенанс в теле** — кто нашёл, каким проходом, с каким свидетельством. Без
него через месяц не отличить проверенную находку от догадки.
6. `backlog.py check`.
## Отображение серьёзности на приоритет
Правило концептуальное, от полей конкретного отчёта не зависит:
- **выше серьёзность → выше приоритет.** Самый тяжёлый класс находок → верхняя
секция индекса, следующий → следующая. Отображать словарь серьёзности отчёта на
словарь приоритетов проекта точно нечем — при сомнении спрашивай пользователя.
- **низкая уверенность или нет свидетельства → идея**, не задача.
- **мелочь → строка в пакетный файл**, не отдельный.
- **уже починено / развилка решена сейчас → ничего.**
Если у ревью структурированный отчёт с полями серьёзности, уверенности,
свидетельства и предписанного действия (например, конвейер ревью jellybit даёт
`Severity`/`Confidence`/`Оракул`/`Действие: инлайн|развилка`) — правило выше
ложится на эти поля механически. Но это пример одного формата, а не требование к
источнику: тот же фильтр применяется к находкам в свободной форме.
Границы покрытия отчёта — то, что ревью проверить **не смогло**, — не находки и в
задачи не идут: у них нет предмета. Их место — в докладе, не в беклоге.
## Доклад
- Источник (какое ревью/аудит, сколько находок на входе).
- Свёрнуто в задачи: N кластеров из M находок, со слагами и тегом партии.
- Что не заведено и почему: починено инлайн, уже в беклоге, ушло в идеи, на
кладбище.
- `backlog.py check`.