# fix-flaky-tests

Скилл разбирает историю падений теста в Tuist, находит причину и правит код. Пригодится, когда тест то проходит, то нет.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 503 установки · ★ 35
- Автор: tuist
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/tuist/agent-skills/tree/HEAD/skills/fix-flaky-tests/SKILL.md
- Обновлён: 2026-03-27
- HTML: https://affpapa.org/nevibecode/skills/fix-flaky-tests

## Что делает

Скилл работает через CLI Tuist. Сначала он тянет метрики теста командой `tuist test case show <id-or-identifier> --json`, потом смотрит историю нестабильных прогонов через `tuist test case run list Module/Suite/TestCase --flaky --json`, а детали падения — сообщение, путь к файлу и номер строки — берёт из `tuist test case run show <test-case-run-id> --json`. Дальше открывает исходник по указанному пути и правит.

Если конкретный тест не задан, скилл сам ищет все нестабильные: `tuist test case list --flaky --json --page-size 50`. Он группирует их по сьютам, потому что несколько падающих тестов в одном сьюте часто имеют общую причину. Отдельно проверяет, не упали ли тесты в одном прогоне из-за краха процесса, а не из-за собственной ошибки.

Внутри — каталог типовых причин: гонки и незакрытые ожидания, общее состояние между тестами, зависимость от сети, времени и путей, порядок запуска. Для крахов есть разбор по `crash_report`: `EXC_BREAKPOINT`, `EXC_BAD_ACCESS`, `EXC_CRASH`. Правку скилл советует делать минимальную, без рефакторинга соседнего кода. Проверка — повторный прогон через `xcodebuild test` с `-test-iterations` и `-run-tests-until-failure`; для быстрых юнит-тестов он советует начать с 50–100 итераций, для медленных интеграционных хватит 2–5. Учтите: воспроизвести гонку или проблему, которая видна только на CI, локально может не получиться, тогда скилл идёт от логов и анализа кода.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add tuist/agent-skills --skill fix-flaky-tests -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add tuist/agent-skills --skill fix-flaky-tests -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add tuist/agent-skills --skill fix-flaky-tests -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install tuist/agent-skills fix-flaky-tests
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add tuist/agent-skills --skill fix-flaky-tests -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/tuist/agent-skills --path skills/fix-flaky-tests
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add tuist/agent-skills --skill fix-flaky-tests -a opencode
```

### Claude.ai

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

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

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

## Примеры запросов агенту
- Разбери падения теста Module/Suite/TestCase и почини
- Найди все нестабильные тесты в проекте и исправь их
- Почему тест падает только на CI? Посмотри историю прогонов

## Похожие
- [fix](https://affpapa.org/nevibecode/skills/fix.md) — скилл · 1638 установок
- [fix-tests](https://affpapa.org/nevibecode/skills/fix-tests.md) — скилл · 1200 установок
- [test-reliability](https://affpapa.org/nevibecode/skills/test-reliability.md) — скилл · 1100 установок
- [debugging](https://affpapa.org/nevibecode/skills/akillness-debugging.md) — скилл · 361 установка
- [write-tests](https://affpapa.org/nevibecode/skills/write-tests.md) — скилл · 1200 установок
- [adding-e2e-tests](https://affpapa.org/nevibecode/skills/adding-e2e-tests.md) — скилл · 445 установок

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