From vmkteam-developer
Decomposes User Stories into subtasks via code research, dependency analysis, requirement breakdown, and YouTrack task creation using /decompose TASK_ID.
npx claudepluginhub vmkteam/claude-plugins --plugin vmkteam-developerThis skill uses the workspace's default tool permissions.
Исследование User Story или крупной задачи, анализ кода, декомпозиция на подзадачи с созданием в YouTrack.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Исследование User Story или крупной задачи, анализ кода, декомпозиция на подзадачи с созданием в YouTrack.
Подключения к системам из .claude/memory/project-index.md.
/decompose US-264
/decompose PLF-850
docs/llm/tasks/{TASK_ID}/
├── research.md — исследование, анализ кода, зависимости, решения
FETCH → RESEARCH → ⏸ HITL → DECOMPOSE → ⏸ HITL → CREATE → ⏸ HITL
Получить задачу из YouTrack:
pcurl @{yt_profile} 'https://{yt_host}/api/issues/{TASK_ID}?fields=idReadable,summary,description,created,updated,reporter(login,name),assignee(login,name),tags(name),comments(author(login,name),text,created),customFields(name,value(name))' -s
Получить связанные задачи:
pcurl @{yt_profile} 'https://{yt_host}/api/issues/{TASK_ID}?fields=idReadable,summary,links(direction,linkType(name),issues(idReadable,summary,resolved))' -s
Найти существующие subtasks:
pcurl @{yt_profile} 'https://{yt_host}/api/issues?query=subtask+of:+{TASK_ID}&fields=idReadable,summary,customFields(name,value(name))&$top=30' -s
Создать директорию: mkdir -p docs/llm/tasks/{TASK_ID}/
Войти в plan mode. Не писать код — только анализ.
Запустить агентов (subagent_type=Explore) для параллельного исследования:
Из описания задачи извлечь:
Сформулировать вопросы, которые блокируют реализацию:
Артефакт: Сохранить docs/llm/tasks/{TASK_ID}/research.md:
# {TASK_ID} — Research
## Задача
- **Summary:** {summary}
- **Тип:** {User Story / Epic / Task}
- **Parent:** {parent_id} — {summary}
- **Связано:** {linked issues}
## Существующий код
### Что уже есть
- {компонент} — {описание, файл:строка}
### Что отсутствует
| Компонент | Статус | Описание |
|---|---|---|
| {компонент} | отсутствует | {что нужно} |
## Модель данных
- Таблицы: {список с FK}
- Миграции: {нужны / не нужны, описание}
## Acceptance Criteria → Подзадачи
| AC | Подзадача | Приоритет |
|---|---|---|
| {AC из US} | {как реализуем} | must/should/could |
## Зависимости между задачами
- {TASK_A} блокирует {TASK_B}
- Общие компоненты: {список}
- Порядок реализации: {1 → 2 → 3}
## Техдолг / Рефакторинг
- {нужен ли рефакторинг перед US, выделять ли в отдельную задачу}
## Решения по открытым вопросам
{решения, принятые с пользователем}
## Риски
- {риск 1}
- Regression: {что может сломаться}
Показать пользователю research.md. Обсудить:
Итеративно обновлять research.md по мере получения ответов. Не переходить к декомпозиции, пока все блокирующие вопросы не закрыты.
На основе research сформировать подзадачи.
Правила декомпозиции:
/solveФормат подзадачи:
### {N}. {service}: {краткое название}
**SP:** {N} | **Приоритет:** {must/should/could} | **Блокирует:** {список или "—"}
{Описание задачи с деталями реализации}
**Acceptance criteria:**
- [ ] {AC 1}
- [ ] {AC 2}
**Как тестировать:**
- {сценарий теста}
**Миграции:** {нет / описание}
Показать пользователю полный план подзадач. Пользователь:
После утверждения — создать задачи в YouTrack:
pcurl @{yt_profile} 'https://{yt_host}/api/issues?fields=idReadable,summary' \
-X POST -H 'Content-Type: application/json' \
-d '{
"project": {"id": "{project_id}"},
"summary": "{summary}",
"description": "{description}"
}' -s
Привязать как subtask к родительской US:
pcurl @{yt_profile} 'https://{yt_host}/api/commands' \
-X POST -H 'Content-Type: application/json' \
-d '{"query":"subtask of {PARENT_ID}","issues":[{"idReadable":"{CREATED_ID}"}]}' -s
Кастомные поля (SP, тип работы, доска, спринт) зависят от проекта — брать из project-index.md.
Показать таблицу созданных задач:
| # | ID | Сервис | SP | Приоритет | Задача | Блокирует |
|---|---|---|---|---|---|---|
| 1 | {ID} | {service} | {SP} | must | {summary} | — |
Итого: {N} задач, {SP} SP.
/solve