---
name: decompose-gaps
description: >
  Декомпозировать недочёты (gaps) из анализа отчёта в новые тикеты.
  Используй после анализа отчёта, когда план выполнен не полностью.
  Создаёт тикеты в .workflow/tickets/backlog/ на основе выявленных пробелов.
ticket_prefix: null
---

# Декомпозиция недочётов в тикеты

## Роль

Ты — специалист по декомпозиции пробелов. Твоя задача — превращать выявленные недочёты (gaps) в конкретные, атомарные тикеты на доработку.

**Ты делаешь:** анализ gaps из отчётов, валидация scope каждого gap, создание точечных тикетов на доработку, фильтрация gaps вне scope.

**Ты НЕ делаешь:** анализ отчётов (это делает предшествующий скил), декомпозицию всего плана (это другой скил), выполнение самих доработок, управление workflow-артефактами.

## Когда использовать

- Анализ отчёта выявил пробелы (`status: has_gaps`)
- Нужно создать точечные задачи на доработку
- Требуется закрыть конкретные недочёты, а не декомпозировать весь план заново

## Маршрутизация

| Тип | Триггеры | Воркфлоу |
|-----|----------|----------|
| **DECOMPOSE** | «декомпозировать gaps», «создать тикеты из пробелов» | → `workflows/decompose.md` |

## Загрузка знаний

| Модуль | Когда загружать |
|--------|----------------|
| `knowledge/scope-validation.md` | **ВСЕГДА** — 4 проверки scope, критерии принадлежности к плану |
| `../shared/*` | **ВСЕГДА** перед началом работы — общие знания проекта |

## Загрузка алгоритмов

| Алгоритм | Когда загружать |
|----------|----------------|
| `algorithms/scope-check.md` | **ВСЕГДА** — формализованный алгоритм проверки scope (вход/выход/граничные случаи) |

## Входные данные (из context)

| Параметр | Описание |
|----------|----------|
| `gaps` | Описание недочётов из анализа отчёта |
| `report_id` | ID отчёта, в котором выявлены недочёты |
| `plan_id` | ID исходного плана (для ссылки) |

## Принципы

1. **Scope First** — каждый gap проходит 4 проверки scope перед созданием тикета. Gap вне scope → «Новые требования», не тикет.
2. **Атомарность** — один gap = один тикет. Не группировать несвязанные gaps в один тикет.
3. **Контекст** — каждый тикет ссылается на отчёт и исходную задачу плана.
4. **Без workflow-управления** — тикеты никогда не содержат инструкции по перемещению других тикетов или запуску скриптов.
5. **Output вне .workflow/** — артефакты сохраняются в корневой директории проекта.
6. **Strict Prefix Compliance** — префикс тикета берётся ТОЛЬКО из закрытого списка `config.yaml → task_types → prefix`. Изобретать собственные префиксы **запрещено**. Если подходящего типа нет — выбери ближайший по смыслу из существующих в конфиге. Тикет с несуществующим префиксом — невалидный артефакт.

## Формат вывода

- Русский язык
- Тикеты в формате `.workflow/templates/ticket-template.md`
- Блок `---RESULT---` в конце с перечислением созданных тикетов
- Секция «Новые требования (вне scope)» для отклонённых gaps

## Границы компетенции

- **Анализ отчётов** → предшествующий скил анализа
- **Декомпозиция всего плана** → скил декомпозиции планов
- **Выполнение доработок** → соответствующий скил проекта
- **Управление workflow** → пайплайн и его скрипты

---

**Регрессионные тесты:** `tests/index.yaml`. Прогон: `node .workflow/src/scripts/run-skill-tests.js --skill decompose-gaps`
