Функция в стадии beta. Аудит поставляется как beta, пока мы собираем ранние отзывы.
Каталог детекторов и формат отчета могут измениться перед следующим стабильным релизом.
Пожалуйста, откройте issue, если что-то покажется вам неправильным.
http://localhost:8020/audit напрямую при запуске failproofai локально.
cd <cwd>, циклы опроса с sleep, повторное чтение только что отредактированных файлов и многое другое.
Для каждого транскрипта все события использования инструментов проигрываются через 39 встроенных политик и через 8 детекторов, предназначенных только для аудита, которые ловят паттерны, не охватываемые пока политиками реального времени. Счетчики агрегируются по политикам / детекторам для всех сессий.
Что вы получаете
Страница/audit состоит из шести разделов:
- Identity — ваш агент классифицируется в один из 8 архетипов (
optimist,cowboy,explorer,goldfish,paranoid architect,precision builder,hammer,ghost) на основе взвешенного сигнала для каждого проверенного транскрипта. - Strengths — реальные цифры, полученные из сканирования (процент чистых вызовов, “0 утечек учетных данных” и т. д.), учитывая факт срабатывания соответствующих политик sanitize.
- Score — 0-100 с полосами S/A/B/C/D/F и прогнозируемым улучшением, если будет включена каждая рекомендуемая политика.
- Findings — карточки по каждой политике с информацией о том, что произошло, стоимостью, собранными доказательствами и точной командой
failproofai policy add <slug>для включения встроенной политики реального времени, которая бы это поймала. - Prescribed policies — агрегированный список установки с одной командой
failproofai policies --install. - Re-audit reminder — “вернитесь лучше подготовленными.” Установите напоминание по электронной почте на 7 дней через api-server (требуется вход; см.
failproofai auth).
Детекторы, предназначенные только для аудита
Эти детекторы выявляют паттерны “глупого поведения”, не (пока) применяемые в реальном времени. Они работают только во время аудита и никогда не блокируют вызов инструмента в реальном времени.| Детектор | Что подсчитывается |
|---|---|
redundant-cd-cwd | Bash-команды, начинающиеся с cd <cwd> && …, даже если команды уже выполняются в cwd. |
prefer-edit-over-read-cat | cat/head/tail/less/more на одном исходном файле — используйте инструмент Read. |
prefer-edit-over-sed-awk | sed -i / awk … > file in-place правки — используйте инструмент Edit. |
prefer-write-over-heredoc | Heredoc / многострочный echo > file для записи файлов — используйте инструмент Write. |
sleep-polling-loop | Длительные sleep N (≥ 30s) или while …; sleep …; done циклы опроса. |
find-from-root | find /, find /home, find /usr и т. д. — ограничьте до cwd. |
git-commit-no-verify | git commit … --no-verify / -n, пропуск хуков. |
reread-after-edit | Read файла, который был только что Edit/Write в той же сессии. |
Кэши
- Кэш для каждого транскрипта по адресу
~/.failproofai/cache/audit/<sha1>.jsonс ключом(mtime, size, engineVersion, detectorVersion)— автоматически инвалидируется при изменении транскрипта или кода политик/детекторов. Каждая запись также хранит временную меткуcachedAtкак TTL метаданные (не являются частью ключа кэша); записи старше 7 дней отклоняются при чтении, чтобы долгоживущие результаты не пережили эволюцию намерений детектора. - Кэш полного результата по адресу
~/.failproofai/audit-dashboard.json(режим 0600). Позволяет dashboard визуализироваться мгновенно при навигации без повторного запуска. Также отклоняется при чтении после 7-дневного TTL —/auditзатем переходит в пустое состояние и предлагает свежий запуск. Нажмите[ re-audit now ]близко к низу отчета для обновления — повторный аудит отправляетnoCache: true, поэтому он обходит кэш для каждого транскрипта и пересканирует каждый транскрипт вместо возврата кэшированного результата; запуск выполняется с отображением прогресса через липкую верхнюю полосу и заменяет результат на месте при успехе (без перезагрузки страницы; неудачный повторный аудит сохраняет предыдущий отчет).
Примечания
- Без изменений. Аудит проигрывается в режиме только для чтения.
warn-repeated-tool-callsпропускается, потому что его побочный файл для каждой сессии в противном случае был бы изменен. - Политики рабочего процесса пропущены. Политики
require-*-before-stopсрабатывают только на событияStopиexecSyncпротив живого состояния git — они не имеют значимой интерпретации “что бы произошло в 2025”, поэтому они не появляются в счетчиках аудита. - Пользовательские политики пропущены. Пользовательские хуки не проигрываются (они могли измениться с момента исходной сессии).

