Files
dev-skills/backlog/skills/av-dev-backlog/references/task-format.md
T
avandClaude Opus 4.8 a22a825c40 init: маркетплейс av-dev-skills + плагин backlog
Отдельный репозиторий-маркетплейс для личных плагинов и скилов разработки,
чтобы подключать их к проектам через `/plugin`, а не держать в глобальном
`~/.claude/skills`.

Первый плагин — backlog: перенесён скилл ведения беклога из
`~/.claude/skills/backlog` под именем `av-dev-backlog`. Путь к `backlog.py`
переведён с фиксированного `~/.claude/...` на `$CLAUDE_PLUGIN_ROOT`, чтобы
работать после установки плагина.

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

105 lines
7.3 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.
# Формат беклога
Заголовок, мета-строку и строку индекса ставит `backlog.py add` — руками их не
пишут. Этот файл описывает, что именно скрипт создаёт и что проверяет `check`;
тело задачи (контекст, шаги, ссылки) дописывает агент.
## Файл задачи
`<slug>.md` в каталоге беклога:
```markdown
# Раздачи с докачиванием (merge при повторном добавлении)
**Приоритет:** высокий — блокирует типовой сценарий свежих сериалов · **Теги:** layout, ingest
Свежий сериал раздают по мере выхода: торрент с 5 из 10 эпизодов позже
перезаливают целиком, пользователь добавляет раздачу повторно. …
Шаги:
- в плане раскладки отличать «путь занят живой ссылкой того же матча» от коллизии
- merge-раскладка: существующее пропустить, недостающее доложить
Зависит от правила сходимости. Связано: drafts/logical-title-model.md §6.2.
```
- **Заголовок H1** — он же заголовок строки в индексе, дословно. Тип кодируется
префиксом `[idea]` / `[epic]`; обычная задача без префикса. Отдельного поля
типа **нет**: два места для одного факта разъезжаются, а префикс виден прямо в
индексе, где и принимается решение «брать или не брать».
- **Мета-строка** — первая непустая строка после заголовка. Обязателен приоритет,
причина после тире желательна, теги опциональны. Поля разделяются ` · `, их
порядок свободный. `·` — служебный разделитель: в тексте причины его быть не
должно, иначе причина обрежется по нему.
- **Тело** — контекст (почему это вообще задача), принятые решения, шаги,
ссылки на спеки, ADR, черновики, прошлые ревью. Пишется на языке документации
проекта.
Тело — не план реализации и не спецификация: принятое и реализованное переезжает
в документацию проекта, а файл задачи удаляется.
## Слаг
Латиница и цифры, kebab-case, без ведущих, хвостовых и двойных дефисов
(`foo-bar`, не `-foo`, `a--b`). Именуется **по сути задачи, а не по текущей
формулировке**: заголовок будет переписан на груминге, а слаг стоит в ссылках из
других задач, коммитов и черновиков. Транслит русского названия допустим, если
суть иначе не выражается коротко.
## Индекс
`README.md` в том же каталоге: преамбула, затем секции по приоритетам, в каждой —
строки вида
```markdown
- [Заголовок задачи дословно](slug.md) — хук
```
Хук отвечает на «почему это лежит в беклоге» одним предложением: состояние,
остаток, боль. Пересказ первого абзаца бесполезен — он уже есть по ссылке.
Порядок секций задаёт порядок приоритетов, их названия — единственный словарь
уровней. Внутри секции порядок значения не имеет. Секции приоритетов — **единственные
заголовки `##` в индексе**: любой другой `##` в преамбуле проверка сочтёт уровнем
приоритета.
Индекс **производен**: расходится с файлом — правим индекс. Строку индекса руками
не пишут — её ставит `backlog.py add` в секцию приоритета и двигает `move`.
## Кладбище — `CLOSED.md`
Туда уходит задача, покинувшая беклог **без реализации**. Строку пишет
`backlog.py close --reason`, а `check` следит за её форматом:
```markdown
- 2026-07-23 `versii-kachestvo-repaki` — Версии/качество одного тайтла (репаки,
апгрейд 1080p → 2160p). Причина: калибровка болей — не боль, ни разу не
возникло за полгода. Был приоритет: низкий.
```
Реализованные сюда не попадают: у них остаётся коммит, спека, ADR. У выкинутой не
остаётся ничего — и через квартал она возвращается тем же текстом через инбокс.
Кладбище — первое место, куда смотрит дедупликация при заведении.
Запись на кладбище не запрещает завести задачу заново: изменился контекст —
заводим и ссылаемся на строку кладбища, объясняя, что изменилось.
## Тест «готова к взятию»
Задача готова, если из файла отвечаются три вопроса:
1. **Что станет наблюдаемо иначе**, когда она сделана — снаружи: пользователю,
владельцу сервиса или разработчику. «Отрефакторить X» — не ответ; «перестанет
ломаться Y при Z» — ответ.
2. **По чему видно, что закончено.** Признак завершённости, а не список работ.
3. **Почему приоритет такой** — одна строка.
Не отвечается первый или второй вопрос → это **идея**, её место в штурме, а не в
приоритизации. Приоритизировать идеи бессмысленно: сравнивается неизвестно что.
Отвечается всё, но задача не делается одним заходом и не мерджится целиком →
**эпик**, сперва декомпозиция.
Тест применяется при заведении и на груминге. К старым задачам, которых операция
не касается, задним числом не применяется — беклог не переоформляют «заодно».