diff --git a/.claude/skills/review-pipeline/SKILL.md b/.claude/skills/review-pipeline/SKILL.md index cee0999..57790f8 100644 --- a/.claude/skills/review-pipeline/SKILL.md +++ b/.claude/skills/review-pipeline/SKILL.md @@ -164,6 +164,10 @@ task review:context > tmp/review-context.md - Оркестратор чинит помеченное `Действие: инлайн` и **не логирует мелочь**. - `Действие: развилка` — на человека через `AskUserQuestion`, вопросом с вариантами. +- Находка не для этого мерджа, но реальная (отложенный `major`, развилка, + решённая «потом») — не теряется: заводится задачей через скилл `backlog` + (интейк из ревью), с оракулом и провенансом в теле. Мелочь класса `nit` — в + пакетный файл, а не файлом на находку. - `Promote candidates` — по процедуре [references/promote.md](references/promote.md): находка → конвенция → правило линтера → **удаление из конвенций и из промптов**. Третий шаг обязателен. diff --git a/.claude/skills/task-pipeline/SKILL.md b/.claude/skills/task-pipeline/SKILL.md index a94f1f8..44975e2 100644 --- a/.claude/skills/task-pipeline/SKILL.md +++ b/.claude/skills/task-pipeline/SKILL.md @@ -41,6 +41,10 @@ description: Автономно проводит задачу jellybit чере - Задача с префиксом `[идея]` (ещё без решения «делаем») — сперва обязательно через explore (шаг 2), там она либо становится задачей, либо остаётся идеей. +Формат файла задачи и индекса держит скилл `backlog` — здесь мы беклог только +читаем. Если по ходу выбора вскрылось, что задача устарела, дублируется или +разрослась в эпик, это работа для скилла `backlog`, а не для пайплайна. + Оцени тривиальность (влияет на шаг 4): - **Тривиальная** — локальная правка без изменения поведения/спек/схемы БД, очевидное решение. Explore и ревью спек пропускаем. @@ -126,11 +130,14 @@ goose + синк ER-схемы `docs/specs/database.md`, htmx по web-ui-кон Ревью выполненного — **до** чистки (память `review-before-backlog-cleanup`). Затем: -- Удали файл задачи `docs/backlog/.md` и строку в `docs/backlog/README.md` - (реализованное не держим в беклоге — CLAUDE.md). +- Удали файл задачи `docs/backlog/.md` и строку в `docs/backlog/README.md`. + Реализованное не держим в беклоге и на кладбище `CLOSED.md` не пишем — у него + есть коммит, спека и ADR (формат — скилл `backlog`). - Суть переехавшего решения — в `docs/specs`/`docs/adr`, если ещё не там. - Если менялась структура БД — убедись, что ER-схема `docs/specs/database.md` обновлена в этом же change. +- Прогони `python3 ~/.claude/skills/backlog/scripts/backlog.py check` — индекс не + должен ссылаться на удалённый файл. ### 10. Коммит diff --git a/CLAUDE.md b/CLAUDE.md index 9eaf4c1..7538252 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -97,18 +97,26 @@ OpenSpec (пилот — `ingest`). До переноса источник ис ## Задачи и беклог - **Единственный источник беклога — каталог [docs/backlog/](docs/backlog/README.md)**: - одна задача = один markdown-файл (`docs/backlog/.md`), плюс - индекс [README.md](docs/backlog/README.md) со списком по приоритетам - (высокий/средний/низкий) и хуками. В теле файла — контекст, принятые - решения, шаги и ссылки на спеки/ADR/черновики. Заводи задачу новым файлом - и строкой в индексе; закрытую (реализованную) — удаляй, суть переезжает в - `docs/specs`/`docs/adr`. -- Спекулятивные задачи (ещё без решения «делаем») помечены префиксом - `[идея]` в названии — их сперва прорабатываем. + одна задача = один markdown-файл (`docs/backlog/.md`) + строка в индексе + [README.md](docs/backlog/README.md). Приоритеты: высокий/средний/низкий. + Работа с беклогом (заведение из диалога, разбор находок ревью/аудита, груминг, + приоритизация, декомпозиция, штурм идеи) — через скилл **`backlog`**; формат + файла, слага, индекса и кладбища он и держит, здесь не дублируем. +- **Источники задач:** диалог, инбокс 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 становится задачей, когда её - оформляют файлом в `docs/backlog/`. Прежняя единая `docs/backlog.md` - доступна в истории git. + оформляют файлом в `docs/backlog/` через скилл `backlog`. Прежняя единая + `docs/backlog.md` доступна в истории git. ## Язык diff --git a/docs/backlog/CLOSED.md b/docs/backlog/CLOSED.md new file mode 100644 index 0000000..cff494d --- /dev/null +++ b/docs/backlog/CLOSED.md @@ -0,0 +1,13 @@ +# Кладбище беклога + +Задачи, покинувшие беклог **без реализации**: выкинутые, отменённые решением, +слитые в другие. Причина отказа переживает саму задачу — иначе та же идея +вернётся через квартал тем же текстом через инбокс Tududi. + +Реализованные сюда **не** попадают: у них остаётся коммит, спека, ADR. Ведётся +скиллом `backlog`; формат строки — в его `references/task-format.md`. + +Запись здесь не запрещает завести задачу заново: изменился контекст — заводим и +ссылаемся на строку кладбища, объясняя, что изменилось. + +