|
| 1 | +--- |
| 2 | +title: Vergangene Sitzungen prüfen (Beta) |
| 3 | +description: "Zählt, wie oft der Agent in vergangenen Transkripten verschwenderische oder riskante Aktionen durchgeführt hat" |
| 4 | +--- |
| 5 | + |
| 6 | +<Note> |
| 7 | + **Beta-Funktion.** `failproofai audit` wird als Beta-Version veröffentlicht, während wir erstes Feedback sammeln. CLI-Flags, Ausgabeformat und der Katalog der Audit-spezifischen Detektoren können sich vor dem nächsten stabilen Release ändern. Wird in Kürze live geschaltet – bitte öffne ein Issue, wenn etwas nicht stimmt. |
| 8 | +</Note> |
| 9 | + |
| 10 | +```bash |
| 11 | +failproofai audit [options] |
| 12 | +``` |
| 13 | + |
| 14 | +Durchsucht vergangene Agent-CLI-Transkripte auf diesem Rechner (Claude Code, Codex, Copilot, Cursor, OpenCode, Pi, Gemini) und zeigt, wie oft der Agent Dinge getan hat, die failproofai verhindern soll – Umgebungsvariablen-Abfragen, Force-Pushes, redundante `cd <cwd>`-Präfixe, Sleep-Polling-Schleifen, erneutes Lesen gerade bearbeiteter Dateien und mehr. |
| 15 | + |
| 16 | +Für jedes Transkript wird jedes Tool-Use-Ereignis durch die 39 integrierten Richtlinien **und** durch 8 Audit-spezifische Detektoren wiederholt, die Muster erkennen, die noch nicht durch Laufzeit-Richtlinien abgedeckt sind. Treffer werden pro Richtlinie / Detektor über alle Sitzungen hinweg aggregiert. |
| 17 | + |
| 18 | +## Optionen |
| 19 | + |
| 20 | +| Flag | Beschreibung | |
| 21 | +|------|-------------| |
| 22 | +| `--cli claude\|codex\|copilot\|cursor\|opencode\|pi\|gemini` | Auf eine oder mehrere CLIs beschränken (durch Leerzeichen getrennt oder wiederholt). Standard: alle 7. | |
| 23 | +| `--project <path>` | Auf Sitzungen beschränken, deren `cwd` diesem Pfad entspricht. Wiederholbar. | |
| 24 | +| `--since 7d\|30d\|2026-04-01` | Nur Sitzungen, deren Transkript-mtime innerhalb des Zeitfensters liegt. | |
| 25 | +| `--policy <name>` | Auf einen Richtlinien- oder Detektornamen beschränken. Wiederholbar. | |
| 26 | +| `--limit N` | Anzahl der Zeilen in der Tabelle (Standard: 20). | |
| 27 | +| `--show-examples` | Ein Beispielbefehl pro Zeile in der Tabelle einbeziehen. | |
| 28 | +| `--report <path>` | Pfad für den Markdown-Bericht (Standard: `./failproofai-audit.md`). | |
| 29 | +| `--no-report` | Schreiben des Markdown-Berichts überspringen. | |
| 30 | +| `--json` | JSON auf stdout ausgeben statt der Tabelle. Impliziert `--no-report`, sofern nicht auch `--report` angegeben. | |
| 31 | +| `--no-cache` | Den transkript-bezogenen Ergebnis-Cache unter `~/.failproofai/cache/audit/` umgehen. | |
| 32 | + |
| 33 | +## Audit-spezifische Detektoren |
| 34 | + |
| 35 | +Diese erkennen Muster für „unnötiges Verhalten", die (noch) nicht in Echtzeit durchgesetzt werden. Sie laufen nur während `audit` und blockieren niemals einen Live-Tool-Aufruf. |
| 36 | + |
| 37 | +| Detektor | Was gezählt wird | |
| 38 | +|---|---| |
| 39 | +| `redundant-cd-cwd` | Bash-Befehle, die mit `cd <cwd> && …` beginnen, obwohl Befehle bereits in `cwd` ausgeführt werden. | |
| 40 | +| `prefer-edit-over-read-cat` | `cat`/`head`/`tail`/`less`/`more` auf eine einzelne Quelldatei – nutze stattdessen das `Read`-Tool. | |
| 41 | +| `prefer-edit-over-sed-awk` | `sed -i` / `awk … > file` In-Place-Bearbeitungen – nutze stattdessen das `Edit`-Tool. | |
| 42 | +| `prefer-write-over-heredoc` | Heredoc- / mehrzeilige `echo > file`-Schreibvorgänge – nutze stattdessen das `Write`-Tool. | |
| 43 | +| `sleep-polling-loop` | Lange `sleep N` (≥ 30s) oder `while …; sleep …; done`-Polling-Schleifen. | |
| 44 | +| `find-from-root` | `find /`, `find /home`, `find /usr` usw. – auf `cwd` eingrenzen. | |
| 45 | +| `git-commit-no-verify` | `git commit … --no-verify` / `-n`, wodurch Hooks übersprungen werden. | |
| 46 | +| `reread-after-edit` | `Read` einer Datei, die in derselben Sitzung gerade per `Edit`/`Write` bearbeitet wurde. | |
| 47 | + |
| 48 | +## Ausgabe |
| 49 | + |
| 50 | +Die Standardausgabe ist eine ANSI-Tabelle auf stdout sowie ein gegliederter Markdown-Bericht unter `./failproofai-audit.md`. Beide gruppieren Treffer nach Kategorie (Sanitize / Wasteful / Risky / …) mit Trefferanzahl, Projektanzahl und bis zu drei Beispielbefehlen pro Zeile. |
| 51 | + |
| 52 | +`--json` erzeugt maschinenlesbare Ausgabe: |
| 53 | + |
| 54 | +```json |
| 55 | +{ |
| 56 | + "version": 1, |
| 57 | + "scannedAt": "2026-05-21T...", |
| 58 | + "scope": { "cli": [...], "projects": "all", "since": null }, |
| 59 | + "transcripts": { "scanned": 4187, "skipped": 0, "errors": 0, "durationMs": 12345 }, |
| 60 | + "results": [ |
| 61 | + { |
| 62 | + "name": "failproofai/protect-env-vars", |
| 63 | + "source": "builtin", |
| 64 | + "category": "Environment", |
| 65 | + "hits": 428, |
| 66 | + "projects": 142, |
| 67 | + "firstSeen": "...", |
| 68 | + "lastSeen": "...", |
| 69 | + "examples": [{ "sessionId": "...", "cwd": "...", "timestamp": "...", "example": "env" }] |
| 70 | + } |
| 71 | + ], |
| 72 | + "totals": { "hits": 1398, "projectsWithHits": 392 } |
| 73 | +} |
| 74 | +``` |
| 75 | + |
| 76 | +## Beispiele |
| 77 | + |
| 78 | +```bash |
| 79 | +# Alles über alle CLIs auf diesem Rechner scannen |
| 80 | +failproofai audit |
| 81 | + |
| 82 | +# Nur die letzten 30 Tage, nur Claude |
| 83 | +failproofai audit --cli claude --since 30d |
| 84 | + |
| 85 | +# Beispiele für die häufigsten Treffer anzeigen |
| 86 | +failproofai audit --show-examples --limit 10 |
| 87 | + |
| 88 | +# Eine einzelne Richtlinie genauer untersuchen |
| 89 | +failproofai audit --policy protect-env-vars --policy block-force-push |
| 90 | + |
| 91 | +# Maschinenlesbare Ausgabe |
| 92 | +failproofai audit --json > audit.json |
| 93 | +``` |
| 94 | + |
| 95 | +## Hinweise |
| 96 | + |
| 97 | +- **Cache.** Transkript-bezogene Ergebnisse werden unter `~/.failproofai/cache/audit/<sha1>.json` zwischengespeichert, mit dem Schlüssel `(mtime, size, engineVersion, detectorVersion)`. Der Cache wird automatisch invalidiert, wenn sich der Richtlinien- oder Detektorcode ändert. |
| 98 | +- **Keine Änderungen.** Das Audit läuft im Nur-Lese-Modus. `warn-repeated-tool-calls` wird übersprungen, da sein sitzungsbezogener Sidecar sonst verändert würde. |
| 99 | +- **Workflow-Richtlinien werden übersprungen.** `require-*-before-stop`-Richtlinien werden nur bei `Stop`-Ereignissen ausgelöst und führen `execSync` gegen den Live-Git-Zustand aus – sie haben keine sinnvolle Interpretation im Sinne von „was wäre 2025 passiert?" und erscheinen daher nicht in den Audit-Zählungen. |
| 100 | +- **Benutzerdefinierte Richtlinien werden übersprungen.** Vom Nutzer bereitgestellte benutzerdefinierte Hooks werden nicht wiederholt (sie können sich seit der ursprünglichen Sitzung geändert haben). |
0 commit comments