Skip to main content
베타 기능. 초기 피드백을 수집하는 동안 감사 기능은 베타로 제공됩니다. 다음 안정 버전 출시 전에 감지기 카탈로그와 보고서 형식이 변경될 수 있습니다. 문제가 있으면 이슈를 열어 주세요.
감사 기능은 이제 CLI 서브커맨드가 아닌 /audit 대시보드 페이지로 제공됩니다. 대시보드 내비게이션 바(Policies와 Projects 사이)에서 열거나, failproofai를 로컬에서 실행 중일 때 http://localhost:8020/audit을 직접 방문하세요.
failproofai          # 대시보드를 열고 "Audit"을 클릭하세요
대시보드는 이 머신의 과거 에이전트 CLI 트랜스크립트(Claude Code, Codex, Copilot, Cursor, OpenCode, Pi, Gemini)를 스캔하고, failproofai가 차단하도록 설계된 작업들이 얼마나 자주 발생했는지 보고합니다. 예를 들어 환경 변수 확인, 강제 푸시, 불필요한 cd <cwd> 접두사, sleep 폴링 루프, 방금 편집한 파일 재읽기 등이 해당합니다. 각 트랜스크립트에 대해 모든 도구 사용 이벤트는 39개의 내장 정책과 함께 런타임 정책이 아직 다루지 않는 패턴을 감지하는 8개의 감사 전용 감지기를 통해 재생됩니다. 모든 세션에 걸쳐 정책/감지기별 횟수가 집계됩니다.

제공 내용

/audit 페이지는 여섯 개의 섹션으로 구성됩니다:
  1. Identity — 감사된 모든 트랜스크립트의 가중 신호를 기반으로 에이전트를 8가지 아키타입 중 하나(optimist, cowboy, explorer, goldfish, paranoid architect, precision builder, hammer, ghost)로 분류합니다.
  2. Strengths — 스캔에서 도출된 실제 수치(클린 호출 비율, “자격 증명 유출 0건” 등)로, 관련 sanitize 정책이 실제로 발동된 경우에만 표시됩니다.
  3. Score — 0-100점 척도로 S/A/B/C/D/F 등급이 매겨지며, 권장 정책을 모두 활성화했을 때의 예상 향상치도 표시됩니다.
  4. Findings — 정책별 카드로 발생한 내용, 비용, 수집된 증거, 그리고 해당 문제를 실시간으로 잡을 수 있는 내장 기능을 활성화하기 위한 정확한 failproofai policy add <slug> 명령을 제공합니다.
  5. Prescribed policies — 원클릭 failproofai policies --install 명령과 함께 집계된 설치 목록을 제공합니다.
  6. Re-audit reminder — “더 나아져서 돌아오세요.” api-server를 통해 7일 이메일 리마인더를 설정하세요(로그인 필요; failproofai auth 참조).

감사 전용 감지기

이 감지기들은 실시간으로 (아직) 강제되지 않는 “비효율적인 동작” 패턴을 감지합니다. 감사 중에만 실행되며 실제 도구 호출을 절대 차단하지 않습니다.
감지기집계 대상
redundant-cd-cwd명령이 이미 cwd에서 실행됨에도 cd <cwd> && …으로 시작하는 Bash 명령
prefer-edit-over-read-cat단일 소스 파일에 대한 cat/head/tail/less/more 사용 — Read 도구를 사용하세요
prefer-edit-over-sed-awksed -i / awk … > file 인플레이스 편집 — Edit 도구를 사용하세요
prefer-write-over-heredoc히어독 / 멀티라인 echo > file 파일 쓰기 — Write 도구를 사용하세요
sleep-polling-loopsleep N (≥ 30초) 또는 while …; sleep …; done 폴링 루프
find-from-rootfind /, find /home, find /usr 등 — cwd로 범위를 제한하세요
git-commit-no-verifygit commit … --no-verify / -n 으로 훅을 건너뜀
reread-after-edit같은 세션에서 Edit/Write한 직후 해당 파일을 Read하는 경우

캐시

  • 트랜스크립트별 캐시~/.failproofai/cache/audit/<sha1>.json(mtime, size, engineVersion, detectorVersion)을 키로 저장됩니다. 트랜스크립트나 정책/감지기 코드가 변경되면 자동으로 무효화됩니다. 각 항목에는 TTL 메타데이터cachedAt 타임스탬프도 저장됩니다(캐시 키의 일부가 아님). 7일이 지난 항목은 읽기 시 거부되어, 오래된 결과가 진화하는 감지기 의도를 넘어서지 않도록 합니다.
  • 전체 결과 캐시~/.failproofai/audit-dashboard.json (모드 0600). 대시보드가 탐색 시 재실행 없이 즉시 렌더링될 수 있게 합니다. 마찬가지로 7일 TTL이 지나면 읽기 시 거부되며, /audit은 빈 상태로 폴백되어 새로운 실행을 요청합니다. 보고서 하단의 [ re-audit now ]를 클릭하여 새로고침하세요. 재감사는 noCache: true를 전송하므로 트랜스크립트별 캐시를 우회하고 캐시된 결과를 반환하는 대신 모든 트랜스크립트를 다시 스캔합니다. 실행 진행 상황은 상단 고정 스트립을 통해 스트리밍되며, 성공 시 결과가 제자리에서 교체됩니다(페이지 새로고침 없음; 재감사 실패 시 이전 보고서가 유지됨).

참고 사항

  • 변경 없음. 감사는 읽기 전용 모드로 재생됩니다. warn-repeated-tool-calls는 세션별 사이드카가 수정될 수 있으므로 건너뜁니다.
  • 워크플로 정책 제외. require-*-before-stop 정책은 Stop 이벤트에서만 발동되고 실제 git 상태에 대해 execSync를 실행합니다. “2025년에 어떤 일이 있었을까”에 대한 유의미한 해석이 없으므로 감사 집계에 나타나지 않습니다.
  • 커스텀 정책 제외. 사용자가 제공한 커스텀 훅은 재생되지 않습니다(원래 세션 이후 변경되었을 수 있습니다).