# ai-qa-review

Разбирает существующие тесты на запахи и проверяет тестируемость кода приложения. Пригодится перед ревью PR или когда непонятно, почему тесты зелёные, а баги всё равно проходят.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1200 установок · ★ 211
- Автор: kindlmann
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/petrkindlmann/qa-skills/tree/HEAD/skills/ai-qa-review/SKILL.md
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/skills/ai-qa-review

## Что делает

Скилл смотрит на уже написанные тесты, а не создаёт новые. Он ищет запахи по шести направлениям: читаемость, надёжность, ценность диагностики, дизайн, следы генерации ИИ и покрытие. Отдельно разбирает код приложения на тестируемость — проблемы с внедрением зависимостей, побочными эффектами, чистыми функциями и интерфейсами, с примерами «до и после». Качественные замечания подкрепляются мутационным тестированием: покрытие показывает, что строка выполнилась, а мутационный счёт — поймал бы тест неверное значение.

Внутри три маршрута. Для PR с изменёнными тестовыми файлами прогоняются и оцениваются только они, диф сверяется с чек-листом. Для всей сюиты — количественная оценка, выборка и поиск 3–5 системных запахов с предложением линт-правил и мутационных гейтов. Третий путь — разбор кода приложения на вопрос «почему это трудно тестировать». Полный каталог запахов с парами SMELL/FIX лежит в `references/smell-examples.md`.

Перед началом скилл проверяет `.agents/qa-project-context.md` в корне проекта: оттуда берутся конвенции фреймворка, шаблоны имён и стандарты качества команды. Без этого файла вопросы о фреймворке и стандартах задаются вручную. Команды проверки зависят от фреймворка — Jest, Vitest, Playwright или pytest, — поэтому для чужого стека результат будет грубее. Запах здесь считается симптомом, а не приговором: длинный тест сложного сценария бывает уместен.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add petrkindlmann/qa-skills --skill ai-qa-review -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/ai-qa-review/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/ai-qa-review/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add petrkindlmann/qa-skills --skill ai-qa-review -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/ai-qa-review/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add petrkindlmann/qa-skills --skill ai-qa-review -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/ai-qa-review/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install petrkindlmann/qa-skills ai-qa-review
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/ai-qa-review/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add petrkindlmann/qa-skills --skill ai-qa-review -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/petrkindlmann/qa-skills --path skills/ai-qa-review
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/ai-qa-review/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add petrkindlmann/qa-skills --skill ai-qa-review -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/petrkindlmann/qa-skills/tree/HEAD/skills/ai-qa-review/SKILL.md

## Когда брать
- найти тесты, которые проходят, но ничего не проверяют
- разобраться, почему сюита падает только при запуске в другом порядке
- оценить тестовые файлы в PR до мержа
- понять, почему код приложения трудно покрыть тестами
- превратить повторяющиеся замечания ревью в линт-правила

## Примеры запросов агенту
- проверь тесты в этом PR на запахи
- сделай аудит качества всей тестовой сюиты
- почему этот модуль так трудно тестировать?

## Похожие
- [test-evidence-review](https://affpapa.org/nevibecode/skills/test-evidence-review.md) — скилл · 410 установок
- [printing-press-output-review](https://affpapa.org/nevibecode/skills/printing-press-output-review.md) — скилл · 6400 установок
- [pw-review](https://affpapa.org/nevibecode/skills/pw-review.md) — скилл · 19 установок
- [cypress-explain](https://affpapa.org/nevibecode/skills/cypress-explain.md) — скилл · 8000 установок
- [review-team](https://affpapa.org/nevibecode/skills/review-team.md) — скилл · 3300 установок
- [review-changes](https://affpapa.org/nevibecode/skills/review-changes.md) — скилл · 1100 установок

Из того же набора: [petrkindlmann/qa-skills](https://affpapa.org/nevibecode/by/petrkindlmann/qa-skills.md) — 49 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
