## Приёмка

Гейт G4 и гейт G2 — одна и та же проверка на двух концах прогона: сходится ли то, что
получилось, с тем, что заказывали. Разница в том, что здесь уже есть работающий код.

### Три части, все обязательны

**1. Механическая.** `chekan accept` определит профиль проекта и сам прогонит сборку и тесты,
записав результат в журнал. Красная — дальше не идём.

**2. Живой сценарий.** `chekan accept` назовёт профильный скилл-проверяльщик. Вызовите его.
Он ходит в реальный сервис с реальными секретами — это единственное, чего не докажет ни
один юнит-тест.

Здесь оригинальная конструкция ломается: она требует «запустить проект», а любой бот
упирается в пустой `.env`, который сама же и создала, — и главный гейт вырождается в
чтение кода. У вас проверяльщики уже есть, поэтому вырождаться нечему.

Если профиль не опознан — не выдавайте чтение кода за проверку работоспособности.
Скажите прямо, что живой сценарий не пройден, и почему.

**3. Слепой приёмщик.** Субагент со свежим контекстом. Дайте ему **только** `brief.md` и
репозиторий с инструкцией, как это запустить. Спеку, манифест и таски **не давайте** —
иначе он проверит вашу работу вашим же конспектом и подтвердит сам себя.

Спросите его: что из заказанного реально работает, а что нет. Прикажите запустить и
пройти сценарий. Вердикт положите в JSON:

```
chekan gate G4 --blind verdict.json
```

Формат: `{"done": ["что работает"], "missing": ["что заказано, но не работает"]}`.

### Отчёт

`chekan report` соберёт итог **перечитыванием файлов с диска**, а не по вашей памяти. Раздел
«Сделано» берётся из вердикта слепого приёмщика, а не из ваших отметок `done`, — иначе
отчёт подтверждает сам себя. Раздел «Что не вошло» — из строк манифеста с цитатами.

Расхождение между вердиктом слепого и вашими закрытыми тасками — не досадная мелочь, а
главная находка прогона. Покажите его владельцу отдельно.

### Куда автопилот не идёт сам

Коммит в текущую ветку — да. `push`, деплой, публикация, удаление — только с
подтверждением владельца, в любом режиме.
