AI Ultra · 18 августа 2026 · 18.08
Файл, в котором написано «что считать сделанным»
Что учим. Чат завтра забудется. Файл в репо останется. Но не любой файл: нужен такой, по которому следующий прогон поймёт, прошёл он или нет.
Зачем тебе. Ты уже кладёшь память в файлы вроде STATE.md и инструкции вроде CLAUDE.md. Это не новость. Дыра другая: 26 июля прогон написал ok при нуле вызовов, потому что в репо не было файла, который говорит «ok без работы — провал». Память есть. Контракта успеха нет.
Сначала история
Представь смену кассира.
Вчера ты в мессенджере написал: «если касса пустая, день нельзя закрывать». Утром другой кассир этого чата не видит. Он смотрит тетрадку смены: «пришёл, ушёл, всё спокойно» — и закрывает день. Тетрадка помнит, что было. Она не говорит, что должно быть, чтобы день считался сделанным.
Так устроен study-live. office/STATE.md и harness/run.py можно только читать, не трогаем. Следующий цикл читает память. Файла «день сдан, только если…» нет. Поэтому пустой 26.07 стал ok.
Как это называть
| Своими словами | Термин |
|---|---|
| Файл, где написано, когда работа считается сделанной | success contract или done-файл |
| Память «что уже случилось» | это не контракт. У тебя это ближе к STATE.md |
| Папка с инструкцией, которую агент сам открывает, когда задача совпала | Skill |
| Сначала короткое имя, тело файла читают только если нужно | progressive disclosure (открывать по нужде) |
| Из нескольких файлов-инструкций побеждает тот, что ближе к файлу, который правят | nearest wins |
| Строка теста в репо: вход, ожидаемый мир, как проверить | eval case в датасете |
Разница в одном предложении: STATE.md говорит «вчера ключа не было». Done-файл говорит «если вызовов ноль и нет записи “ключа нет” — день не сдан».
Кто так уже делает
Anthropic, Agent Skills: ремесло кладут в папку. В системный промпт всегда только короткое имя и описание. Тело SKILL.md агент читает, когда задача совпала. Не копируют простыню в каждый чат и не плодят нового бота.
AGENTS.md: инструкция для агента лежит в репо. Ближний к правке файл побеждает. То, что ты написал в чате только что, бьёт файл. Это про «как работать». Само по себе не говорит, прошёл ли сегодняшний прогон.
Inspect: критерий проверки лежит в файле рядом с задачей. Нет файла критерия — нечего делать зелёным. Это ближе всего к done-файлу.
Три неочевидных решения
- Done-файл читает харнесс, не критик в чате. Если «успех» снова написан людьми в переписке, завтра его нет. Цена: файл надо обновлять, когда меняется смысл дня. Иначе вчерашний контракт будет бить сегодняшний нормальный прогон.
- Память и контракт — разные файлы. Смешать «что было» и «что должно быть» в одном STATE.md удобно и потом врёт: после плохого дня память выглядит как правило. Цена: два файла вместо одного.
- Skill — для ремесла, done-файл — для вердикта. Skill учит «как собирать HTML». Done-файл решает «можно ли писать ok». Путать их — снова красивый процесс без зачёта. Цена: ещё один короткий файл, зато 26.07 больше не зелёный.
Попробуй сам, 10 минут
Репо не открывать и не менять. Ниже напиши done-файл на бумаге или в заметке.
Нужно покрыть один случай: день без ключа, вызовов ноль.
Минимум четыре строки, своими словами:
- Когда этот файл читают (перед тем как ставить ok).
- Что должно быть в мире, чтобы день сдать.
- Что должно быть в логе как доказательство.
- Что запрещено называть успехом.
Сверка, не единственный правильный текст:
Читать перед status=ok. Сдать день можно, если есть файл дня или явная запись «ключа нет, день не делали». В логе либо вызовы по этому дню, либо сертификат «ключа нет». Запрещено: status=ok при нуле вызовов и пустом сертификате.
Если у тебя только «будь внимателен» или «смотри STATE.md» — это снова память и лозунг, не контракт.
Что теперь умеешь объяснить
- Чем файл памяти отличается от файла успеха.
- Почему 26.07 стал ok: некому было прочитать правило «пустой ok нельзя».
- Зачем Skill открывают по нужде, а не кладут весь мануал в чат.
- Почему нет файла критерия — нечего зеленить.
Три вопроса
- Ты написал агенту в чате: «без вызовов не ставь ok». Завтра это сработает само?
- В STATE.md есть строка «26.07 ключа не было». Это done-файл?
- Агент прочитал Skill «как делать HTML» и сделал страницу. Можно ставить ok, если в логе вызовов ноль?
Ответы
- Нет. Чат не увидит следующий прогон. Нужен файл, который харнесс читает каждый раз.
- Нет. Это память, что случилось. Контракт сказал бы: такой день не имеет права быть ok без записи «не делали».
- Нет. Ремесло (Skill) не заменяет вердикт. Нет доказательств в логе — нет зачёта.