> ## Documentation Index
> Fetch the complete documentation index at: https://exosphere-auto-translate-docs-20260626-1023.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 과거 세션 감사 (베타)

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

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

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

## 실행 방법

세 가지 방법이 있으며, 모두 동일한 `/audit` 리포트로 연결됩니다.

<CodeGroup>
  ```bash npx (no install) theme={null}
  npx -y failproofai audit
  ```

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

  ```bash failproofai (dashboard) 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`를 실행하고 내비게이션 바의 **Audit**을 클릭하거나(Policies와 Projects 사이), `/audit`을 직접 여세요.
  </Card>
</CardGroup>

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

대시보드는 이 머신에 있는 과거 에이전트 CLI 트랜스크립트(Claude Code, Codex, Copilot, Cursor, OpenCode, Pi, Gemini)를 스캔하여, failproofai가 차단하도록 설계된 행동들 — 환경 변수 확인, 강제 푸시, 불필요한 `cd <cwd>` 접두사, sleep 폴링 루프, 방금 편집한 파일 재읽기 등 — 이 얼마나 자주 발생했는지 보고합니다.

각 트랜스크립트에서 모든 툴 사용 이벤트는 39개의 내장 정책과 런타임 정책으로 아직 다루지 않는 패턴을 잡아내는 8개의 감사 전용 감지기를 통해 재실행됩니다. 카운트는 모든 세션에 걸쳐 정책/감지기별로 집계됩니다.

## 결과물

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

1. **포스터** — 에이전트의 정체성을 한눈에: **아키타입**(8가지 중 하나 — `optimist`, `cowboy`, `explorer`, `goldfish`, `paranoid architect`, `precision builder`, `hammer`, `ghost`), 페르소나 키워드, 해당 아키타입의 희귀도, 그리고 등급 밴드(`S`부터 `bottom tier`)가 포함된 **0\~100점 점수**. 공유용으로 제작 — X나 LinkedIn에 게시하거나 PNG로 다운로드하세요.
2. **`// strengths`** — 에이전트가 이미 잘하는 것들을 스캔의 실제 수치로 표시 (예: 클린 툴 호출 %, `0`회의 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에서 발송, 수신자 참조로 귀하에게 전달). 알림 및 초대는 로그인이 필요합니다 — [`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년에 어떤 일이 일어났을까"에 대한 의미 있는 해석이 없으므로 감사 카운트에 나타나지 않습니다.
* **커스텀 정책 건너뜀.** 사용자가 제공한 커스텀 훅은 재실행되지 않습니다(원래 세션 이후 변경되었을 수 있음).
