# check-if-done

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

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

## Что делает

Модель, только что написавшая код, — худший судья своей работы: она сравнивает задачу со своим же пересказом, всё сходится, и звучит «готово». Скилл ломает этот круг двумя способами. Во-первых, на код смотрит тот, кто его не писал: Codex, OpenCode и роль ревьюера, не видевшая этого диалога. Во-вторых, ни один вывод о завершённости не принимается без выполненной команды — с её выводом и кодом возврата, а не с фразой «тесты должны проходить».

Сначала скилл выясняет, что было обещано: файл плана, спецификацию, issue, описание PR или то, о чём просили в этой сессии. Список обещаний выписывается явно, потом через `git diff` и ветку собирается вторая сторона — что реально изменилось. Обе строки проговариваются до запуска ревьюеров. Если сверять не с чем, скилл останавливается и просит указать план: подменять проверку завершённости код-ревью он не станет.

Ревьюеры работают на копии дерева, а не на живом: `snapshot.sh` делает снимок, кладёт изменение как `review.diff` и убирает конфиг opencode из репозитория. Если снимок не удался, проверка не продолжается — ревьюить живое дерево нельзя. На хостах кроме Claude строка с `probe.sh` в заголовке скилла остаётся простым текстом, поэтому первым шагом его запускают вручную и читают вывод. Ещё в конфиге есть окна `avoid`: попав в них, бэкенд отвечает «sits out», и это не поломка — `--ignore-avoid` включает его только по прямой просьбе.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add szarkans/multi --skill check-if-done -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add szarkans/multi --skill check-if-done -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add szarkans/multi --skill check-if-done -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install szarkans/multi check-if-done
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add szarkans/multi --skill check-if-done -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/szarkans/multi --path skills/check-if-done
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add szarkans/multi --skill check-if-done -a opencode
```

### Claude.ai

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

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

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

## Примеры запросов агенту
- Проверь, всё ли из `plan.md` реально сделано, и покажи, что мы пропустили
- Прогони check-if-done перед тем, как я открою PR
- Мы закончили сессию — проверь, что задача действительно закрыта, а не только на словах

## Похожие
- [verifying-before-done](https://affpapa.org/nevibecode/skills/verifying-before-done.md) — скилл · 17800 установок
- [code-review](https://affpapa.org/nevibecode/skills/secondsky-code-review.md) — скилл · 530 установок
- [check](https://affpapa.org/nevibecode/skills/check.md) — скилл · 15800 установок
- [agent-acceptance-gate](https://affpapa.org/nevibecode/skills/agent-acceptance-gate.md) — скилл · ★ 30
- [check-pr](https://affpapa.org/nevibecode/skills/check-pr.md) — скилл · 1200 установок
- [story-done](https://affpapa.org/nevibecode/skills/story-done.md) — скилл · 413 установок

Из того же набора: [szarkans/multi](https://affpapa.org/nevibecode/by/szarkans/multi.md) — 2 карточки

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