# grinding-until-pass

Скилл заставляет агента крутить цикл «правка → запуск → проверка» до тех пор, пока тесты не пройдут, сборка не соберётся или линтер не замолчит.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 548 установок · ★ 866
- Автор: spencerpauly
- Лицензия: CC0-1.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/spencerpauly/awesome-cursor-skills/tree/HEAD/resources/grinding-until-pass/SKILL.md
- Обновлён: 2026-08-02
- HTML: https://affpapa.org/nevibecode/skills/grinding-until-pass

## Что делает

Скилл описывает цикл из четырёх шагов. Сначала задаётся команда-цель, по её коду возврата определяется успех: `npm test`, `npm run build`, `npm run lint`, `npx tsc --noEmit` или всё вместе через `&&`. Дальше агент запускает команду, читает вывод, находит корневую причину и делает минимальную правку. Потом возвращается к запуску.

В правилах цикла есть жёсткие рамки. Максимум 10 итераций: если после них команда всё ещё падает, агент останавливается и рассказывает, что мешает. Правит он по одной ошибке за раз, тесты не удаляет, ошибки не глушит через `@ts-ignore`, `eslint-disable` и `any`. Если число ошибок растёт, а не падает, цикл прерывается и подход пересматривается.

Для Cursor в скилле описан хук в `.cursor/hooks.json`: событие `stop` запускает `bash .cursor/scripts/check-tests.sh`, скрипт смотрит код возврата и шлёт `followup_message`, если тесты всё ещё красные. Ограничение простое — на медленных тестах цикл будет ползти, поэтому автор советует флаги `--bail` или `--fail-fast`. И ещё: агент упорный, но не изобретательный. Если правка требует смены дизайна, зовите человека.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add spencerpauly/awesome-cursor-skills --skill grinding-until-pass -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add spencerpauly/awesome-cursor-skills --skill grinding-until-pass -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add spencerpauly/awesome-cursor-skills --skill grinding-until-pass -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install spencerpauly/awesome-cursor-skills grinding-until-pass
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add spencerpauly/awesome-cursor-skills --skill grinding-until-pass -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/spencerpauly/awesome-cursor-skills --path resources/grinding-until-pass
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add spencerpauly/awesome-cursor-skills --skill grinding-until-pass -a opencode
```

### Claude.ai

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

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/spencerpauly/awesome-cursor-skills/tree/HEAD/resources/grinding-until-pass/SKILL.md

## Когда брать
- добить упавшие тесты после крупного рефакторинга
- разгрести ошибки типов после обновления зависимости
- починить сборку после слияния ветки с конфликтами
- вычистить замечания линтера, не отключая правила
- довести проверку типов до чистого вывода `tsc`

## Примеры запросов агенту
- прогони `npm test` и правь код, пока все тесты не пройдут
- гоняй `npm run lint && npx tsc --noEmit && npm test && npm run build`, пока всё не станет зелёным
- после рефакторинга добейся, чтобы `npx vitest run` проходил без ошибок

## Похожие
- [iterate-until-verified](https://affpapa.org/nevibecode/skills/iterate-until-verified.md) — скилл · 1200 установок
- [project-min-evaluation](https://affpapa.org/nevibecode/skills/project-min-evaluation.md) — скилл · 2900 установок
- [verification-loop](https://affpapa.org/nevibecode/skills/verification-loop.md) — скилл · 5000 установок
- [fix-merge-conflicts](https://affpapa.org/nevibecode/skills/fix-merge-conflicts.md) — скилл · 2700 установок
- [husky](https://affpapa.org/nevibecode/commands/husky.md) — команда · 282 установки
- [build-fix](https://affpapa.org/nevibecode/skills/build-fix.md) — скилл · 2800 установок

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

_Часть страницы не вошла по размеру — она есть в HTML-версии._

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