Первое, что я задал агенту: не выдумывать данные
Когда я только начал собирать харнесс (обвязка вокруг агента: правила, скиллы, MCP-подключения к рабочим системам, плагины, хуки), агент бодро отчитывался: «эндпоинт отработал корректно, данные соответствуют ожидаемому».
Красиво. Только он туда не ходил.
Пошёл проверять руками: в базе поле пустое. Ответ 200, чеклист зелёный, багов нет. При этом баг остается.
Проблема не в модели. Проблема в том, что я не задал правило. Агент по умолчанию стремится закрыть задачу, а не найти проблему. Если не запретить, он допишет то, чего не проверял.
Сейчас в моём CLAUDE.md это первым блоком:
- не выдумывать ID, UUID, токены и тестовые данные, только полученные через API или из базы - не писать «соответствует ожидаемому» вместо фактического значения из ответа - не подтверждать результат без проверки: сверить столбцы, количество строк, не копия ли это предыдущего ответа
И главное правило, которое закрывает всё остальное: каждое утверждение обязано нести источник. Файл и строка, запрос, реальное значение из ответа или базы. Утверждение без источника я считаю галлюцинацией по умолчанию.
Это не про недоверие к AI. Это ровно то же, что я требую от себя: в отчёте не «работает корректно», а фактическое значение поля.
Агент просто честнее показывает, где у тебя в процессе дыра.