Когда агент пишет «готово, тесты проходят», это лишь утверждение. Istok позволяет агенту приложить доказательство: какую команду он запустил, с каким кодом она завершилась и что вывела. Здесь объясняется, как записываются эти подтверждения и почему без них работу не завершить.
Выполнения и проверки
Внутри запуска агент выполняет команды через Istok, а не напрямую в своей оболочке. Команды бывают двух видов:
- Выполнение (
run_exec,istok run exec) — команда, которая входит в саму работу, например линтер или генератор кода. Istok сохраняет команду, код завершения и вывод. - Проверка (
run_validate,istok run validate) — команда, результат которой подтверждает, что работа сделана правильно, напримерgo test ./...илиpnpm test. Istok запускает её, сохраняет вывод и по результату записывает пройденную или проваленную проверку.
Запуск
├── exec pnpm lint
├── exec pnpm build
└── validate pnpm test → passed
↓
подтверждение для завершения
У обоих видов есть ограничения. Для каждого потока вывода хранится до 1 МиБ; по умолчанию выполнение прерывается через 30 минут, проверка — через 10. Команды получают окружение по белому списку, а не всё окружение родительского процесса. Команды, которые Istok считает опасными, требуют явного разрешения с указанием причины. Подробности — в справке по istok run.
Завершение запуска
Запуск завершается со статусом succeeded, failed, blocked или cancelled. Чтобы завершить его как succeeded, нужна пройденная проверка и ни одного ещё работающего выполнения.
Если автоматической проверки нет — например, изменилась только документация, — агент может завершить запуск без неё, но только явно: он должен об этом заявить и указать причину. Причина сохраняется в запуске.
Завершение задачи
Задача завершается со ссылкой на успешный запуск и проверку из него:
Задача #12
↓ взять в работу
Запуск C
↓ реализация, validate → passed
Запуск C succeeded
↓
Задача #12 выполнена (запуск C, проверка V)
Поэтому в записи о завершении видно не только то, что задачу пометили выполненной, но и то, как проверяли результат. Как и с запусками, завершить задачу без подтверждения можно только явным исключением с указанием причины.
Проваленные проверки остаются в истории
Проваленная проверка ничего не стирает. Агент исправляет проблему и снова запускает проверку в том же запуске, а неудачная попытка остаётся видна. Если от запуска отказываются, следующий запуск начинается с доступом к этой истории.
Работа вне Istok
Иногда проверка проходит в другом месте — например, в CI или вручную. Для таких случаев есть низкоуровневые инструменты, которые записывают работу постфактум: начать и завершить выполнение, а затем записать для него проверку. Такая проверка получает источник attested, поэтому её не спутать с проверкой, которую Istok вывел из команды, запущенной им самим.
Артефакты
Файлы, которые создаёт запуск, можно записать как артефакты. Istok хранит их вне базы данных, в своей директории данных, держит ссылку на них в запуске и может позже проверить записанный артефакт.
Где посмотреть подтверждения
На странице каждого запуска в веб-интерфейсе перечислены его проверки с командой, статусом и выводом, рядом с выполнениями и контекстом, с которым агент начал работу.


Как попросить агента завершить работу с доказательствами, рассказано в разделе Работа с агентом. В терминале ту же запись показывает istok run show RUN_ID.