v0.2.0 — Backlog + Daily Task Cycle
Context
v0.1.x покрывает старт проекта (project-init). Пользователь инициализировал реальный проект и хочет, чтобы ассистент помогал в ежедневной разработке. Нужно: (1) на основе OVERVIEW + ARCHITECTURE предложить план реализации (backlog), (2) поддерживать цикл задачи с трекингом, (3) связать открытые вопросы между сессиями и документами.
Полный цикл
project-init → OVERVIEW + ARCHITECTURE + CLAUDE.md
↓
/dm-cc-assistant:backlog ← создаёт план реализации
↓
Ассистент + пользователь прорабатывают → .task/backlog.md
↓
┌─ Цикл задачи ─────────────────────────────────────┐
│ /backlog → выбрать задачу (по T-ID) │
│ /research T-003 → research привязан к задаче │
│ implement (обычный Claude) │
│ /review → ревью привязано к задаче │
│ /update-docs → обновляет docs + backlog + вопросы │
│ │
│ Открытые вопросы за сессию: │
│ → обогащают docs (OVERVIEW/ARCHITECTURE) │
│ → порождают новые задачи в backlog │
│ → или пополняют OVERVIEW §9 (глобальные) │
│ │
│ Глобальные открытые вопросы (OVERVIEW §9): │
│ → проверяются при каждом update-docs │
│ → решённые → правки в docs + новые задачи │
└────────────────────────────────────────────────────┘
4 skill'а
| Skill | Agent | Что делает |
|---|---|---|
/dm-cc-assistant:backlog |
backlog-planner |
Создаёт / показывает / обновляет backlog |
/dm-cc-assistant:research T-ID |
task-researcher |
Research задачи по ID из backlog |
/dm-cc-assistant:review [scope] |
code-reviewer |
Ревью изменений |
/dm-cc-assistant:update-docs |
docs-updater |
Обновляет docs + backlog + открытые вопросы |
Backlog: формат и ID-система
Файл: .task/backlog.md в CWD пользователя.
Формат:
# Backlog — {название проекта}
Сгенерирован из OVERVIEW.md + ARCHITECTURE.md.
Последнее обновление: {дата}
## In Progress
- **T-003** [High] Экран настроек с переключением темы
- Итерация: v1
- Зависит от: T-001
## Todo
- **T-004** [Critical] Push-уведомления для напоминаний
- Итерация: v1
- Зависит от: T-002
- **T-005** [Low] Экспорт данных в CSV
- Итерация: v2
## Done
- **T-001** ~~[Critical] Базовая навигация между экранами~~
- **T-002** ~~[Critical] Локальное хранилище привычек (SQLDelight)~~
## Open Questions
- Какой сервис для push-уведомлений? (связано с T-004)
- Нужен ли онбординг-экран? (потенциальная новая задача)ID-система:
- Формат:
T-NNN(T-001, T-002, ...) - Автоинкремент — агент читает последний ID и +1
- ID стабильные — не меняются при перемещении между статусами
- Все артефакты привязаны:
.task/research.md→# Research: T-004,.task/review.md→# Review for: T-004
Новые агенты (4 штуки)
agents/backlog-planner.md
tools: Read, Write, Bash | model: opus
Первый запуск (backlog.md не существует):
- Читает OVERVIEW.md (§6 Must/Should/Could) + ARCHITECTURE.md (§2 Module Map, §5 Data Model)
- Разбивает Must-фичи на маленькие задачи (1 задача ≈ 1 час работы, максимум 2). Claude склонен переоценивать размер — лучше разбить на две мелких, чем оставить одну крупную.
- Каждой задаче назначает приоритет: Critical (блокирует всё остальное), High (важно для текущей итерации), Medium (желательно), Low (можно отложить)
- Определяет зависимости между задачами
- Группирует по итерациям (v1 → v2 → ...)
- Переносит открытые вопросы из OVERVIEW.md §9 в секцию Open Questions
- Показывает draft пользователю. STOP. Ждёт подтверждение. Обсуждает по одной задаче за раз — не dump всего backlog'а.
- Записывает
.task/backlog.md
Повторный запуск (backlog.md существует):
- Показывает текущий статус: N done, M in progress, K todo
- Спрашивает что делать: показать backlog / добавить задачу / выбрать задачу для работы / обновить приоритеты
- При выборе задачи → ставит статус In Progress, подсказывает
/dm-cc-assistant:research T-NNN
Стиль: интерактивный диалог, один вопрос за раз, правило терминологии.
agents/task-researcher.md
tools: Read, Grep, Glob, Bash | model: sonnet
- Получает T-ID из $ARGUMENTS
- Читает
.task/backlog.md→ находит задачу по ID, извлекает описание, приоритет и зависимости - Читает CLAUDE.md + OVERVIEW.md + ARCHITECTURE.md
- Ищет в кодовой базе релевантные файлы (Grep/Glob/Read)
- Пишет
.task/research.md:# Research: T-004 — Push-уведомления для напоминаний ## Из backlog {описание задачи, приоритет, зависимости, итерация} ## Relevant Files {файлы с описанием релевантности} ## Existing Patterns {как похожие вещи сделаны в проекте} ## Constraints {из CLAUDE.md и ARCHITECTURE.md} ## Suggested Approach {пошаговый план реализации} ## Risks {на что обратить внимание} ## Промпт для реализации Скопируй в новый чат: > Я работаю над задачей T-004 — Push-уведомления для напоминаний. > Прочитай `.task/research.md` для полного контекста. > > Начни с: {первый шаг из Suggested Approach}
Ключевая фича: в конце research.md агент генерирует готовый промпт для копирования в новый чат. Это мост между research и implementation — пользователю не нужно самому формулировать задачу для Claude.
agents/code-reviewer.md
tools: Read, Grep, Glob, Bash | model: sonnet
Интерактивный ревью, не статический отчёт:
- Берёт
git diff(scope из $ARGUMENTS, default: unstaged) - Читает CLAUDE.md (NEVER, CONSTRAINTS) + ARCHITECTURE.md (patterns)
- Если есть
.task/backlog.md— определяет какая задача In Progress, привязывает review - Анализирует diff, собирает findings, сортирует по приоритету (Critical → High → Medium → Low)
- Показывает первый finding пользователю с контекстом (file:line, что не так, почему, предложение фикса)
- STOP. Ждёт реакцию:
- «Согласен, фиксим сейчас» → агент не фиксит сам (read-only), но фиксирует решение
- «Согласен, но не сейчас» → агент добавляет задачу в
.task/backlog.mdс новым T-ID - «Не согласен» → пропускает, записывает в review.md как «dismissed»
- Вопрос → обсуждает, потом повторяет STOP
- Переходит к следующему finding. Повторяет 5-6 для каждого.
- В конце записывает
.task/review.mdс итогом (что принято, что отвергнуто, что ушло в backlog)
Read-only по отношению к коду проекта — не редактирует исходники. Может писать в .task/review.md и .task/backlog.md.
agents/docs-updater.md
tools: Read, Write, Grep, Glob, Bash | model: sonnet
Интерактивный — ведёт активный диалог с пользователем, не просто показывает diff'ы.
Обновляет три слоя:
Слой 1 — Project docs (OVERVIEW.md, ARCHITECTURE.md, CLAUDE.md):
- Читает git diff/log + существующие docs
- Для каждого doc определяет затронутые секции
- Показывает CURRENT vs PROPOSED per section, ждёт confirm
- PRINCIPLES section — immutable
- Targeted edits, не перезапись
Слой 2 — Backlog (.task/backlog.md):
- Текущая задача (In Progress) → перемещает в Done
- Если в процессе возникли новые задачи → добавляет в Todo с новыми T-ID
- Показывает изменения, ждёт confirm
Слой 3 — Open Questions:
- Сессионные вопросы, которые не закрыты:
- Часть → обогащает docs (вносит в соответствующую секцию)
- Часть → новые задачи в backlog
- Часть → глобальные open questions (OVERVIEW.md §9)
- Глобальные вопросы из OVERVIEW.md §9:
- Проверяет каждый: решён ли он по результатам текущей работы?
- Решённые → правки в docs + возможно новые задачи
- Нерешённые → остаются
Skills (4 штуки)
skills/backlog/SKILL.md
name: backlog
description: Create or manage the project implementation backlog. First run generates tasks from OVERVIEW.md + ARCHITECTURE.md. Subsequent runs show status and let you pick a task.
disable-model-invocation: true- Проверяет OVERVIEW.md + ARCHITECTURE.md существуют
- Запускает backlog-planner через Task
- Подсказка после выбора задачи:
/dm-cc-assistant:research T-NNN
skills/research/SKILL.md
name: research
description: Research the codebase for a backlog task by T-ID. Produces .task/research.md.
disable-model-invocation: true- Проверяет
.task/backlog.mdсуществует (warn если нет — работает и без backlog, по текстовому описанию) - Проверяет T-ID в $ARGUMENTS (или текстовое описание задачи)
- Запускает task-researcher
- Подсказка: «Начинай реализацию. Потом — /dm-cc-assistant:review»
skills/review/SKILL.md
name: review
description: Review code changes against project conventions. Produces .task/review.md.
disable-model-invocation: true- Проверяет git repo
- Определяет scope из $ARGUMENTS (default:
git diff) - Проверяет diff не пустой
- Запускает code-reviewer
- Статистика: N critical, M suggestions, K nits
skills/update-docs/SKILL.md
name: update-docs
description: Update project docs, backlog status, and open questions after completing work.
disable-model-invocation: true- Проверяет наличие хотя бы одного doc-файла
- Запускает docs-updater
- Итог: какие docs обновлены, backlog status, open questions resolved/added
Промежуточные файлы в проекте пользователя
user-project/
├── .task/
│ ├── backlog.md # от backlog-planner, обновляется docs-updater
│ ├── research.md # от task-researcher (перезаписывается)
│ └── review.md # от code-reviewer (перезаписывается)
├── OVERVIEW.md # обновляется docs-updater
├── ARCHITECTURE.md # обновляется docs-updater
└── CLAUDE.md # обновляется docs-updater
Edge cases
| Ситуация | backlog | research | review | update-docs |
|---|---|---|---|---|
| Нет OVERVIEW/ARCH | ❌ suggest project-init | ❌ suggest project-init | ||
| Нет backlog.md | создаёт | ✅ работает | ||
| Нет git | ✅ работает | ✅ работает | ❌ graceful fail | |
| Пустой diff | n/a | n/a | подсказка --staged | по $ARGUMENTS |
| T-ID не найден | n/a | n/a | n/a |
Изменения в существующих файлах плагина
hooks/hooks.json— SessionStart: 5 команд + контекст (нет CLAUDE.md? нет backlog? есть In Progress задача?).claude-plugin/plugin.json— description + keywords.claude-plugin/marketplace.json— version: 0.2.0OVERVIEW.md— §4 обновить диаграмму, §6 backlog/research/review/docs-update из Could → Must (v2)ARCHITECTURE.md— §2 Module Map + §3 Data Flow (backlog + task cycle) + §5 Data Model (.task/)CLAUDE.md— WHAT + HOWCHANGELOG.md— v0.2.0
Порядок реализации
- Обновить OVERVIEW.md (scope v0.2.0)
- Обновить ARCHITECTURE.md (module map, data flow, data model)
- Обновить CLAUDE.md (новые команды)
agents/backlog-planner.md+skills/backlog/SKILL.mdagents/task-researcher.md+skills/research/SKILL.mdagents/code-reviewer.md+skills/review/SKILL.mdagents/docs-updater.md+skills/update-docs/SKILL.mdhooks/hooks.jsonplugin.json+marketplace.jsonCHANGELOG.md
Верификация
На реальном проекте (уже инициализированном):
/dm-cc-assistant:backlog→ проверить генерацию backlog из OVERVIEW + ARCHITECTURE- Выбрать задачу →
/dm-cc-assistant:research T-001 - Реализовать задачу обычным Claude
/dm-cc-assistant:review→ проверить привязку к задаче/dm-cc-assistant:update-docs→ проверить 3 слоя: docs + backlog + open questions