> ## Documentation Index
> Fetch the complete documentation index at: https://docs.befailproof.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 과거 세션 감사 (베타)

> 과거 트랜스크립트에서 에이전트가 낭비적이거나 위험한 작업을 얼마나 자주 수행했는지 집계

<Note>
  **베타 기능.** 초기 피드백을 수집하는 동안 감사 기능은 베타로 제공됩니다.
  다음 안정 버전 전까지 감지기 카탈로그 및 보고서 형식이 변경될 수 있습니다.
  이상한 점이 있으면 이슈를 열어 주세요.
</Note>

감사 기능은 과거 에이전트 CLI 트랜스크립트를 failproofai의 정책 엔진을 통해 재실행하고,
**`/audit` 대시보드 페이지**에 공유 가능한 시각적 보고서를 렌더링합니다 —
에이전트의 아키타입, 0\~100점 점수, 그리고 어떤 정책이 무엇을 잡아냈을지 정확히 표시합니다.

## 실행 방법

세 가지 방법 모두 동일한 `/audit` 보고서로 연결됩니다.

<CodeGroup>
  ```bash npx (설치 불필요) theme={null}
  npx -y failproofai audit
  ```

  ```bash failproofai audit theme={null}
  failproofai audit
  ```

  ```bash failproofai (대시보드) theme={null}
  failproofai
  ```
</CodeGroup>

<CardGroup cols={3}>
  <Card title="설치 불필요" icon="bolt">
    `npx -y failproofai audit`는 failproofai를 가져와 스캔을 실행하고 대시보드를
    자동으로 열어줍니다 — 사전 설치가 필요 없습니다.
  </Card>

  <Card title="CLI에서 실행" icon="terminal">
    `failproofai audit`는 터미널에서 스캔을 실행한 후 완료 시 자동으로
    `localhost:8020/audit`를 엽니다.
  </Card>

  <Card title="대시보드에서 실행" icon="gauge">
    `failproofai`를 실행하고 네비게이션 바(Policies와 Projects 사이)에서
    **Audit**을 클릭하거나, `/audit`를 직접 열어주세요.
  </Card>
</CardGroup>

<Tip>
  사용법을 확인하려면 `failproofai audit -h` (또는 `--help`)를 실행하세요. 감사는
  **완전 오프라인**으로 실행됩니다 — 계정이나 네트워크가 필요 없습니다 — 그리고
  대시보드는 `Ctrl+C`로 중지할 때까지 계속 서비스됩니다.
</Tip>

대시보드는 이 머신의 과거 에이전트 CLI 트랜스크립트(Claude Code, Codex, Copilot, Cursor, OpenCode, Pi)를 스캔하고, failproofai가 막도록 설계된 작업들 — env-var 검사, 강제 푸시, 불필요한 `cd <cwd>` 접두사, sleep 폴링 루프, 방금 편집한 파일 재읽기 등 — 을 에이전트가 얼마나 자주 수행했는지 보고합니다.

각 트랜스크립트에 대해 모든 도구 사용 이벤트는 39개의 내장 정책 **및** 런타임 정책으로 아직 처리되지 않는 패턴을 잡아내는 8개의 감사 전용 감지기를 통해 재실행됩니다. 횟수는 모든 세션에 걸쳐 정책/감지기별로 집계됩니다.

## 제공 내용

`/audit` 페이지는 단일 화면의 공유 가능한 **포스터**와 그 아래 네 개의 섹션으로 구성됩니다:

1. **포스터** — 에이전트의 정체성을 한눈에: **아키타입** (8가지 중 하나 — `optimist`, `cowboy`, `explorer`, `goldfish`, `paranoid architect`, `precision builder`, `hammer`, `ghost`), 페르소나 키워드, 해당 아키타입의 희귀도, 그리고 등급 밴드가 표시된 **0\~100 점수** (`S`부터 `bottom tier`까지). 공유용으로 설계 — X나 LinkedIn에 게시하거나 PNG로 다운로드하세요.
2. **`// strengths`** — 에이전트가 이미 잘 하고 있는 것을 스캔의 실제 수치로 표시 (예: clean-tool-call %, `0`번의 push-to-main 시도) — 관련 정책에 깨끗한 기록이 있는 경우에만 표시됩니다.
3. **`// quirks`** — 빠져나간 것들: failproofai가 잡아냈을 동작의 순위 테이블 — *마지막으로 발생한 시점*, *무엇이 빠져나갔는지* (그리고 막았을 내장 정책), *심각도*, 그리고 얼마나 자주 *발견되었는지* (`new` / `recurring` / `N× seen`).
4. **`// how to improve`** — 처방된 수정 목록: 복사하여 붙여넣을 수 있는 `failproofai policy add <slug>`가 포함된 정책당 한 행, 그리고 모든 권장 사항을 한 번에 활성화하고 **예상 점수**를 표시하는 **install all** 버튼.
5. **`// come back better`** — 습관 만들기: 재감사 이메일 **알림** 설정 (`3d` / `7d` / `14d` / `30d`) 또는 지금 바로 재감사, **친구 초대**로 자신의 감사를 실행하게 하기 (failproof.ai에서 발송, Cc를 나에게). 알림과 초대는 로그인이 필요합니다 — [`failproofai auth`](/ko/cli/auth)를 참고하세요.

## 감사 전용 감지기

이는 실시간으로 (아직) 적용되지 않는 "비효율적인 동작" 패턴을 감지합니다. 감사 중에만 실행되며 라이브 도구 호출을 절대 차단하지 않습니다.

| 감지기                         | 집계 내용                                                              |
| --------------------------- | ------------------------------------------------------------------ |
| `redundant-cd-cwd`          | 명령이 이미 `cwd`에서 실행됨에도 `cd <cwd> && …`로 시작하는 Bash 명령.                |
| `prefer-edit-over-read-cat` | 단일 소스 파일에 대한 `cat`/`head`/`tail`/`less`/`more` — `Read` 도구를 사용하세요. |
| `prefer-edit-over-sed-awk`  | `sed -i` / `awk … > file` 인플레이스 편집 — `Edit` 도구를 사용하세요.             |
| `prefer-write-over-heredoc` | Heredoc / 멀티라인 `echo > file`로 파일 작성 — `Write` 도구를 사용하세요.           |
| `sleep-polling-loop`        | 긴 `sleep N` (≥ 30초) 또는 `while …; sleep …; done` 폴링 루프.             |
| `find-from-root`            | `find /`, `find /home`, `find /usr` 등 — `cwd`로 범위를 제한하세요.          |
| `git-commit-no-verify`      | `git 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년에 어떤 일이 일어났을까"에 대한 의미 있는 해석이 없으므로 감사 횟수에 나타나지 않습니다.
* **커스텀 정책 건너뜀.** 사용자 제공 커스텀 훅은 재실행되지 않습니다 (원래 세션 이후 변경되었을 수 있음).
