backlog: интеграция скилла ведения беклога
Беклог теперь ведётся пользовательским скиллом `backlog` (заведение из диалога, разбор находок ревью, груминг, приоритизация, декомпозиция, штурм). CLAUDE.md делегирует ему формат и держит только проектные тонкости; добавлены источники задач (диалог, Tududi, находки ревью) и кладбище `docs/backlog/CLOSED.md` для выкинутого без реализации. - task-pipeline: шаги 1 и 9 больше не описывают формат сами, ссылаются на скилл; шаг 9 гоняет `backlog.py check` после удаления файла задачи. - review-pipeline: отложенная реальная находка (не для текущего мерджа) заводится задачей через скилл с тегом партии review-ГГГГ-ММ-ДД. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -164,6 +164,10 @@ task review:context > tmp/review-context.md
|
|||||||
- Оркестратор чинит помеченное `Действие: инлайн` и **не логирует мелочь**.
|
- Оркестратор чинит помеченное `Действие: инлайн` и **не логирует мелочь**.
|
||||||
- `Действие: развилка` — на человека через `AskUserQuestion`, вопросом с
|
- `Действие: развилка` — на человека через `AskUserQuestion`, вопросом с
|
||||||
вариантами.
|
вариантами.
|
||||||
|
- Находка не для этого мерджа, но реальная (отложенный `major`, развилка,
|
||||||
|
решённая «потом») — не теряется: заводится задачей через скилл `backlog`
|
||||||
|
(интейк из ревью), с оракулом и провенансом в теле. Мелочь класса `nit` — в
|
||||||
|
пакетный файл, а не файлом на находку.
|
||||||
- `Promote candidates` — по процедуре
|
- `Promote candidates` — по процедуре
|
||||||
[references/promote.md](references/promote.md): находка → конвенция → правило
|
[references/promote.md](references/promote.md): находка → конвенция → правило
|
||||||
линтера → **удаление из конвенций и из промптов**. Третий шаг обязателен.
|
линтера → **удаление из конвенций и из промптов**. Третий шаг обязателен.
|
||||||
|
|||||||
@@ -41,6 +41,10 @@ description: Автономно проводит задачу jellybit чере
|
|||||||
- Задача с префиксом `[идея]` (ещё без решения «делаем») — сперва обязательно
|
- Задача с префиксом `[идея]` (ещё без решения «делаем») — сперва обязательно
|
||||||
через explore (шаг 2), там она либо становится задачей, либо остаётся идеей.
|
через explore (шаг 2), там она либо становится задачей, либо остаётся идеей.
|
||||||
|
|
||||||
|
Формат файла задачи и индекса держит скилл `backlog` — здесь мы беклог только
|
||||||
|
читаем. Если по ходу выбора вскрылось, что задача устарела, дублируется или
|
||||||
|
разрослась в эпик, это работа для скилла `backlog`, а не для пайплайна.
|
||||||
|
|
||||||
Оцени тривиальность (влияет на шаг 4):
|
Оцени тривиальность (влияет на шаг 4):
|
||||||
- **Тривиальная** — локальная правка без изменения поведения/спек/схемы БД,
|
- **Тривиальная** — локальная правка без изменения поведения/спек/схемы БД,
|
||||||
очевидное решение. Explore и ревью спек пропускаем.
|
очевидное решение. Explore и ревью спек пропускаем.
|
||||||
@@ -126,11 +130,14 @@ goose + синк ER-схемы `docs/specs/database.md`, htmx по web-ui-кон
|
|||||||
|
|
||||||
Ревью выполненного — **до** чистки (память `review-before-backlog-cleanup`).
|
Ревью выполненного — **до** чистки (память `review-before-backlog-cleanup`).
|
||||||
Затем:
|
Затем:
|
||||||
- Удали файл задачи `docs/backlog/<slug>.md` и строку в `docs/backlog/README.md`
|
- Удали файл задачи `docs/backlog/<slug>.md` и строку в `docs/backlog/README.md`.
|
||||||
(реализованное не держим в беклоге — CLAUDE.md).
|
Реализованное не держим в беклоге и на кладбище `CLOSED.md` не пишем — у него
|
||||||
|
есть коммит, спека и ADR (формат — скилл `backlog`).
|
||||||
- Суть переехавшего решения — в `docs/specs`/`docs/adr`, если ещё не там.
|
- Суть переехавшего решения — в `docs/specs`/`docs/adr`, если ещё не там.
|
||||||
- Если менялась структура БД — убедись, что ER-схема `docs/specs/database.md`
|
- Если менялась структура БД — убедись, что ER-схема `docs/specs/database.md`
|
||||||
обновлена в этом же change.
|
обновлена в этом же change.
|
||||||
|
- Прогони `python3 ~/.claude/skills/backlog/scripts/backlog.py check` — индекс не
|
||||||
|
должен ссылаться на удалённый файл.
|
||||||
|
|
||||||
### 10. Коммит
|
### 10. Коммит
|
||||||
|
|
||||||
|
|||||||
@@ -97,18 +97,26 @@ OpenSpec (пилот — `ingest`). До переноса источник ис
|
|||||||
## Задачи и беклог
|
## Задачи и беклог
|
||||||
|
|
||||||
- **Единственный источник беклога — каталог [docs/backlog/](docs/backlog/README.md)**:
|
- **Единственный источник беклога — каталог [docs/backlog/](docs/backlog/README.md)**:
|
||||||
одна задача = один markdown-файл (`docs/backlog/<slug>.md`), плюс
|
одна задача = один markdown-файл (`docs/backlog/<slug>.md`) + строка в индексе
|
||||||
индекс [README.md](docs/backlog/README.md) со списком по приоритетам
|
[README.md](docs/backlog/README.md). Приоритеты: высокий/средний/низкий.
|
||||||
(высокий/средний/низкий) и хуками. В теле файла — контекст, принятые
|
Работа с беклогом (заведение из диалога, разбор находок ревью/аудита, груминг,
|
||||||
решения, шаги и ссылки на спеки/ADR/черновики. Заводи задачу новым файлом
|
приоритизация, декомпозиция, штурм идеи) — через скилл **`backlog`**; формат
|
||||||
и строкой в индексе; закрытую (реализованную) — удаляй, суть переезжает в
|
файла, слага, индекса и кладбища он и держит, здесь не дублируем.
|
||||||
`docs/specs`/`docs/adr`.
|
- **Источники задач:** диалог, инбокс Tududi и находки ревью. Отложенная находка
|
||||||
- Спекулятивные задачи (ещё без решения «делаем») помечены префиксом
|
`review-pipeline` (реальная, но не для текущего мерджа) заводится задачей через
|
||||||
`[идея]` в названии — их сперва прорабатываем.
|
скилл `backlog` с тегом партии `review-ГГГГ-ММ-ДД` — так уже сделаны задачи
|
||||||
|
`review-*` в беклоге.
|
||||||
|
- **Проектные тонкости для скилла `backlog`:**
|
||||||
|
- каталог беклога — `docs/backlog/`, язык — русский, слаги — латиница;
|
||||||
|
- реализованная задача удаляется, её суть переезжает в `docs/specs`/`docs/adr`
|
||||||
|
(это делает пайплайн задачи на шаге 9, не скилл беклога);
|
||||||
|
- выкинутая без реализации уезжает строкой в `docs/backlog/CLOSED.md` (кладбище);
|
||||||
|
- спекулятивные задачи помечены `[idea]` в заголовке (тип — английское
|
||||||
|
ключевое слово idea/epic/task) — сперва штурм.
|
||||||
- **Tududi — только инбокс сырых идей** (проект `jellybit`, project_id 14).
|
- **Tududi — только инбокс сырых идей** (проект `jellybit`, project_id 14).
|
||||||
Беклог там больше не ведём; идея из Tududi становится задачей, когда её
|
Беклог там больше не ведём; идея из Tududi становится задачей, когда её
|
||||||
оформляют файлом в `docs/backlog/`. Прежняя единая `docs/backlog.md`
|
оформляют файлом в `docs/backlog/` через скилл `backlog`. Прежняя единая
|
||||||
доступна в истории git.
|
`docs/backlog.md` доступна в истории git.
|
||||||
|
|
||||||
## Язык
|
## Язык
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# Кладбище беклога
|
||||||
|
|
||||||
|
Задачи, покинувшие беклог **без реализации**: выкинутые, отменённые решением,
|
||||||
|
слитые в другие. Причина отказа переживает саму задачу — иначе та же идея
|
||||||
|
вернётся через квартал тем же текстом через инбокс Tududi.
|
||||||
|
|
||||||
|
Реализованные сюда **не** попадают: у них остаётся коммит, спека, ADR. Ведётся
|
||||||
|
скиллом `backlog`; формат строки — в его `references/task-format.md`.
|
||||||
|
|
||||||
|
Запись здесь не запрещает завести задачу заново: изменился контекст — заводим и
|
||||||
|
ссылаемся на строку кладбища, объясняя, что изменилось.
|
||||||
|
|
||||||
|
<!-- Формат: - ГГГГ-ММ-ДД `slug` — Заголовок. Причина: … Был приоритет: … -->
|
||||||
Reference in New Issue
Block a user