# Fix Issue Skill

Полный цикл исправления GitHub issue: от анализа до PR.

## Когда использовать автоматически
- Даня просит «почини issue», «fix issue», «исправь баг», «разберись с issue»
- Даня отправляет ссылку на GitHub issue
- Даня упоминает номер issue в контексте исправления (#N, issue N)

## Алгоритм

### 1. Получение контекста
- `gh issue view $ARGUMENTS --json title,body,labels,comments,assignees` — полное описание
- Анализ: это баг, фича, улучшение или вопрос?
- Извлечение: симптомы, шаги воспроизведения, ожидаемое поведение

### 2. Исследование кодовой базы
- **Grep** и **Glob** — поиск релевантных файлов по ключевым словам из issue
- **Read** — чтение найденных файлов
- Понимание текущей реализации и контекста

### 3. Воспроизведение (если баг)
- Попытка воспроизвести проблему по описанию
- Если удалось — зафиксировать точные шаги
- Если не удалось — сообщить Дане, запросить уточнения
- Для сложных багов — используй `/debug` (систематическая 4-фазная отладка)

### 4. План исправления
- Предложить Дане план:
  - Что менять (файлы, функции)
  - Как менять (подход)
  - Почему именно так
  - Какие риски
- **Ждать одобрения перед реализацией**

### 5. Реализация
- Создание ветки: `git checkout -b fix/$ARGUMENTS-brief-description`
- Следуй TDD-циклу (`/tdd`): сначала тест воспроизводящий баг (RED), потом фикс (GREEN)
- Запуск всех тестов — регрессий быть не должно

### 6. Коммит и PR
- Коммит через скилл `/commit`
- Предложить создать PR:
  ```
  gh pr create --title "Fix #N: описание" --body "..."
  ```
- Связать PR с issue: `Closes #N` в описании

### 7. Завершение
- Предложить `/finish-branch` для завершения ветки (merge/PR/keep)
- Сводка: что было сделано, какие файлы изменены

## Формат ответа

### При анализе (шаг 4):
```
Issue #N: название

Тип: баг / фича / улучшение
Описание: ...

План исправления:
1. файл:строка — что менять
2. файл:строка — что менять

Риски: ...

Приступить? (да/нет)
```

### После реализации (шаг 7):
```
Готово.
Ветка: fix/N-description
Изменённые файлы:
  M  src/...
  A  tests/...
PR: #URL (если создан)
```

## Правила
- ВСЕГДА показать план перед реализацией — не кодить без одобрения
- Если issue неясный — спросить у Даня, не додумывать
- Если issue требует доступа к внешним сервисам — предупредить
- Не закрывать issue автоматически — только предложить
- Если нет `gh` CLI или нет доступа к репо — сообщить
- Для крупных issue — предложить разбить на подзадачи

## Запрос: $ARGUMENTS
