From dm-cc-assistant
Prepares release materials for the active epic locally on feat/E-XXX (CHANGELOG entry, release notes, announcement, migration guide if breaking, version bumps). Runs independent pre-release review via code-reviewer. Commits release prep + backlog update on feat/E-XXX. Prints user instructions for merge/tag/push (DOES NOT execute them). Pre-condition — active epic with .task/report-E-XXX.md from /execute.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dm-cc-assistant:releaseThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Это skill вызывается командой `/dm-cc-assistant:release`. Без аргументов и флагов. Активный эпик определяется автоматически из `## In Progress`.
Это skill вызывается командой /dm-cc-assistant:release. Без аргументов и флагов. Активный эпик определяется автоматически из ## In Progress.
Skill оркестрирует:
code-reviewer (mode release-readiness)release-manager (mode full)Агент готовит материалы, не релизит сам. Skill пишет файлы локально, коммитит на feat/E-XXX, печатает инструкции пользователю. Не делает git merge → main, git tag, git push. Это руки пользователя.
Ты orchestrator — спаунишь subagent'ов через Task tool и ведёшь диалог по review findings между ними.
test -f ./CLAUDE.md && test -f ./OVERVIEW.md && test -f ./ARCHITECTURE.md && echo DOCS_OK || echo DOCS_MISSING
test -f .task/backlog.md && echo BACKLOG_OK || echo BACKLOG_MISSING
test -f .task/.execute-active && echo EXECUTE_ACTIVE || echo NO_EXECUTE
DOCS_MISSING — отказ: «Нет основных docs.»
BACKLOG_MISSING — recovery: «Нет backlog'а. Запусти /dm-cc-assistant:backlog сначала.» Завершай.
EXECUTE_ACTIVE — отказ: «Сейчас идёт /execute. Дождись завершения.» Завершай.
awk '/^## In Progress$/{f=1; next} /^## /{f=0} f' .task/backlog.md | grep '^### E-'
| Найдено | Действие |
|---|---|
0 эпиков | Recovery: «Активного эпика нет.» Завершай. |
1 эпик | OK, извлеки E-ID |
>1 | Recovery: «Сломанное состояние.» Завершай. |
test -f .task/report-E-XXX.md && echo REPORT_OK || echo REPORT_MISSING
REPORT_MISSING — recovery: «Нет агрегированного report'а. Запусти /dm-cc-assistant:execute сначала (он делает aggregation в конце).» Завершай.
git rev-parse --abbrev-ref HEAD
Должен быть feat/E-XXX. Если нет:
git checkout feat/E-XXX
git status --short
Если есть uncommitted changes — отказ: «На feat/E-XXX uncommitted changes. Закоммить их или откати, потом перезапусти /release.»
Прочитай .task/report-E-XXX.md, найди поле Status:.
| Status | Действие |
|---|---|
Success | OK, продолжаем |
Partial | Спроси: «Эпик завершён частично. Релизим как есть? Failed/Skipped попадут в Known Limitations CHANGELOG.» STOP. Если «нет» — завершай. |
Failed | Отказ: «Эпик целиком Failed. Нечего релизить. Запусти /dm-cc-assistant:execute ещё раз с iterate.» |
Unresolved conflicts | Отказ: «Есть Conflict-blocked подзадачи. Закрой их через финальный диалог /execute.» |
Спауни subagent через Task tool:
subagent_type: code-reviewer
prompt:
Mode: release-readiness
Эпик: E-XXX
Согласно своим инструкциям: проанализируй feat/E-XXX vs main с фокусом на shipping readiness (public API, breaking changes, migration, README, version consistency). Пиши .task/review-E-XXX-pre-release.md (severity-tagged findings).
Wait return.
Прочитай .task/review-E-XXX-pre-release.md.
Покажи stats:
Pre-release review:
- Critical:
- High:
- Medium:
- Low:
Если Critical + High > 0:
Critical / High findings блокируют release. Что делаем?
Для каждого finding'а (по одному):
PR- [Critical/High]:
<описание>
Suggestion:
Действия:
- [f] Fix now — спауни mini-execution-agent для применения fix'а
- [a] Acknowledge as known limitation — добавить в CHANGELOG
### Known Limitations- [A] Abort release — прервать /release
STOP по каждому.
Fix nowСпауни Task tool call:
subagent_type: execution-agent
prompt:
Эпик: E-XXX
Подзадача: pre-release-fix-PR-<N>
Тип: impl
Title: Fix PR-<N>: <title>
Worktree: <текущий cwd> (работаем прямо на feat/E-XXX)
Ветка: feat/E-XXX (без новой ветки)
Plan: .task/review-E-XXX-pre-release.md (читай finding PR-<N>)
Спецификация:
- Что делает: применить suggestion из PR-<N>
- Файлы: <из finding'а>
- DoD: finding закрыт, smoke check проходит
- Зависит от: —
Согласно своим инструкциям: реализуй fix, коммить на feat/E-XXX (без worktree, прямо в текущем месте), прогоняй smoke check, пиши .task/report-pre-release-fix-PR-<N>.md.
После return — переход к следующему finding'у.
Acknowledge as known limitationЗапомни (внутренняя переменная) — finding пойдёт в CHANGELOG секцию ### Known Limitations. release-manager (full) увидит это в prompt.
Abort release/release завершается. Никаких изменений (но Fix now коммиты остаются — пользователь решает что с ними).
Release прерван. Незакрытые findings: . Запусти
/releaseещё раз когда они будут закрыты.
Завершай.
Если Medium + Low > 0:
Medium / Low findings не блокируют. Обрабатывать?
- [y] yes, по одному
- [n] no, accept все
Если no — все Accept (игнорируем). Если yes — для каждого:
PR- [Medium/Low]: ...
Действия:
- [a] Accept (игнорим)
- [f] Fix (как Fix now выше)
- [d] Defer (в follow-ups)
STOP по каждому.
Соберём контекст для prompt'а:
Спауни Task tool call:
subagent_type: release-manager
prompt:
Mode: full
Эпик: E-XXX
Acknowledged limitations:
- PR-<N>: <title>
- PR-<M>: <title>
Deferred findings (в follow-ups):
- PR-<K>: <title>
Pre-release review: .task/review-E-XXX-pre-release.md (уже прочитан)
Aggregated report: .task/report-E-XXX.md
Согласно своим инструкциям: предложи version bump, подготовь release artifacts (CHANGELOG, release-notes, announcement, tag message, migration если breaking), bump версии в файлах, commit "release: prepare vX.Y.Z" + "release: update backlog for vX.Y.Z" на feat/E-XXX. Обнови backlog (E-XXX → Done), auto-archive если >5 Done. Печать инструкции пользователю — НЕ делай push/tag/merge.
Wait return.
Когда release-manager вернёт control:
✓ Release prep готов. См. инструкции выше от release-manager'а.
Коротко:
- Версия: vX.Y.Z
- Backlog: E-XXX → Done
- Коммиты на feat/E-XXX: 2 (release prep + backlog update)
Дальше — твои руки: merge в main, tag, push, GitHub Release.
Если release-manager вернул отказ (например, был блок) — отрази в summary, не печатай ложный success.
/release повторно после уже подготовленного коммитаrelease-manager сам детектит это в pre-execute analysis (см. agents/release-manager.md). Он спросит Continue / Rollback / Abort.
.task/..., CHANGELOG.md, .claude-plugin/..../release если есть .task/.execute-active.git push, git tag, git merge в main, git checkout main./execute, /plan, /backlog — только советуй.npx claudepluginhub dmatryus/dm-cc-assistant --plugin dm-cc-assistantProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.