# План: 3 новых скилла (code-review, commit, fix-issue)

## Контекст

У нас 7 скиллов (search, news, price, explain, summary, system, save). Не хватает скиллов для разработки. На основе лучших community commands (EveryInc, qdhenry/Claude-Command-Suite, Chect/toolkit) создаём 3 новых, адаптированных под нашу систему.

## Формат (из анализа существующих)

- Чистый Markdown, без frontmatter
- Секции: `# Название` → `## Когда использовать автоматически` → `## Алгоритм` → `## Формат ответа` → `## Правила` → `## Запрос: $ARGUMENTS`
- Русский язык, обращение к "Даня"
- Инструменты **жирным**
- `$ARGUMENTS` только в конце

---

## Скилл 1: `/code-review`

**Файл:** `~/.claude/commands/code-review.md`

**Триггеры:** Даня просит «проверь код», «ревью», «что не так с кодом», «review», отправляет PR URL

**Алгоритм (адаптация qdhenry 8-фазного review):**

1. **Определение scope** — что ревьюить:
   - Если `$ARGUMENTS` содержит PR URL → `gh pr diff`
   - Если путь к файлу/директории → читать указанное
   - Если пусто → `git diff` (незакоммиченные изменения)

2. **Code Quality** — code smells, anti-patterns, мёртвый код, стиль

3. **Security** — уязвимости (OWASP top 10), хардкод секреты, input validation

4. **Performance** — bottlenecks, неэффективные алгоритмы, лишние аллокации

5. **Architecture** — модульность, абстракции, SOLID, coupling

6. **Testing** — покрытие, gaps, рекомендации тестов

7. **Итог** — приоритизированный список: CRITICAL → HIGH → MEDIUM → LOW с файлами и строками

**Формат ответа:**
- Таблица находок по severity
- Для каждой: файл:строка, описание, рекомендация
- Общая оценка (1-10)

---

## Скилл 2: `/commit`

**Файл:** `~/.claude/commands/commit.md`

**Триггеры:** Даня просит «закоммить», «commit», «сделай коммит», «зафиксируй изменения»

**Алгоритм (на основе community best practices + conventional commits):**

1. **Анализ изменений:**
   - `git status` — что изменено
   - `git diff --staged` — что в stage
   - `git diff` — что не в stage
   - Если ничего не staged → предложить что добавить

2. **Проверка безопасности:**
   - Сканирование на секреты (.env, ключи API, токены)
   - Предупреждение если найдены

3. **Генерация commit message:**
   - Формат: Conventional Commits (`feat:`, `fix:`, `refactor:`, `docs:`, `chore:`, `test:`)
   - Тело: краткое "почему", не "что"
   - Co-Authored-By: Claude
   - Показать Дане на одобрение перед коммитом

4. **Коммит:**
   - `git add` конкретных файлов (не `git add .`)
   - `git commit` через HEREDOC
   - `git status` для подтверждения

**Формат ответа:**
- Список изменённых файлов
- Предложенный commit message
- Запрос подтверждения

---

## Скилл 3: `/fix-issue`

**Файл:** `~/.claude/commands/fix-issue.md`

**Триггеры:** Даня говорит «почини issue», «fix issue #N», «исправь баг #N», отправляет ссылку на GitHub issue

**Алгоритм (адаптация qdhenry 13-фазного, упрощён до 7 ключевых):**

1. **Получение контекста:**
   - `gh issue view $ARGUMENTS` — описание, labels, comments
   - Анализ что требуется

2. **Исследование кодовой базы:**
   - Поиск релевантных файлов (Grep, Glob)
   - Понимание текущей реализации

3. **Воспроизведение** (если баг):
   - Попытка воспроизвести по описанию
   - Документирование результата

4. **План исправления:**
   - Предложить Дане план: что менять, где, почему
   - Ждать одобрения перед реализацией

5. **Реализация:**
   - Создание ветки `fix/$ARGUMENTS-brief-description`
   - Внесение изменений
   - Тесты если есть

6. **Коммит и PR:**
   - Использовать `/commit` для коммита
   - Предложить создать PR через `gh pr create`

7. **Закрытие:**
   - Предложить закрыть issue: `gh issue close $ARGUMENTS`

**Формат ответа:**
- Краткий анализ issue
- План исправления (ждать одобрение)
- После реализации — сводка изменений

---

## Регистрация в CLAUDE.md

Добавить в секцию `## Скиллы (автоматическое использование)`:

```
- **code-review** — ревью кода, PR, анализ качества
- **commit** — умный коммит с conventional commits
- **fix-issue** — полный цикл исправления GitHub issue
```

---

## Проверка

1. Вызвать каждый скилл вручную (`/code-review`, `/commit`, `/fix-issue`)
2. Проверить автотриггеры (сказать "проверь код", "закоммить", "почини issue #1")
3. Убедиться что формат ответа читабельный
