Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 100 additions & 0 deletions docs/ar/cli/audit.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
---
title: تدقيق الجلسات السابقة (نسخة تجريبية)
description: "عد عدد مرات قيام الوكيل بأشياء مهدرة أو محفوفة بالمخاطر عبر النصوص السابقة"
---

<Note>
**ميزة تجريبية.** `failproofai audit` تُطلق كنسخة تجريبية بينما نجمع التعليقات المبكرة. قد تتغير أعلام سطر الأوامر وتنسيق الإخراج وكتالوج كاشفات التدقيق فقط قبل الإصدار المستقر التالي. قادم قريباً جداً — يرجى فتح مشكلة إذا بدا شيء ما خاطئاً.
</Note>

```bash
failproofai audit [options]
```

يفحص نصوص CLI للوكيل السابقة على هذا الجهاز (Claude Code و Codex و Copilot و Cursor و OpenCode و Pi و Gemini) ويُبلّغ عن عدد مرات قيام الوكيل بأشياء مصممة failproofai لإيقافها — فحوصات متغيرات البيئة والدفع القسري وبادئات `cd <cwd>` الزائدة وحلقات sleep-polling وإعادة قراءة الملفات المعدّلة للتو والمزيد.

بالنسبة لكل نص، يتم إعادة تشغيل كل حدث استخدام أداة من خلال سياسات 39 مدمجة **و** من خلال 8 كاشفات تدقيق فقط تلتقط الأنماط التي لم تغطها السياسات في وقت التشغيل بعد. يتم تجميع الأعداد لكل سياسة / كاشف عبر جميع الجلسات.

## الخيارات

| العلم | الوصف |
|------|--------|
| `--cli claude\|codex\|copilot\|cursor\|opencode\|pi\|gemini` | تقصر على CLI واحد أو أكثر (مفصول بمسافات أو مكرر). الافتراضي: الـ 7 جميعاً. |
| `--project <path>` | تقصر على الجلسات التي يطابق فيها `cwd` هذا المسار. قابل للتكرار. |
| `--since 7d\|30d\|2026-04-01` | فقط الجلسات التي تقع فيها mtime النص ضمن النافذة. |
| `--policy <name>` | تقصر على اسم سياسة أو كاشف واحد. قابل للتكرار. |
| `--limit N` | أعلى N صف في الجدول (الافتراضي 20). |
| `--show-examples` | تضمين أمر مثال واحد لكل صف في الجدول. |
| `--report <path>` | مسار تقرير Markdown (الافتراضي `./failproofai-audit.md`). |
| `--no-report` | تخطي كتابة تقرير Markdown. |
| `--json` | طباعة JSON إلى stdout بدلاً من الجدول. تعني `--no-report` ما لم يتم تمرير `--report` أيضاً. |
| `--no-cache` | تجاوز ذاكرة التخزين المؤقت لكل نص في `~/.failproofai/cache/audit/`. |

## كاشفات التدقيق فقط

تكتشف أنماط السلوك "الغبي" التي لم تُطبّق (حتى الآن) في الوقت الفعلي. تعمل فقط أثناء `audit` ولا تحظر أبداً استدعاء أداة حي.

| الكاشف | ما يعده |
|---|---|
| `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` تعديلات موضعية — استخدم أداة `Edit`. |
| `prefer-write-over-heredoc` | Heredoc / متعدد الأسطر `echo > file` كتابة الملفات — استخدم أداة `Write`. |
| `sleep-polling-loop` | `sleep N` طويل (≥ 30s) أو `while …; sleep …; done` حلقات polling. |
| `find-from-root` | `find /` و `find /home` و `find /usr` وما إلى ذلك — حصر النطاق إلى `cwd` بدلاً من ذلك. |
| `git-commit-no-verify` | `git commit … --no-verify` / `-n` تخطي الخطافات. |
| `reread-after-edit` | `Read` لملف تم `Edit`/`Write` للتو في نفس الجلسة. |

## الإخراج

الإخراج الافتراضي عبارة عن جدول ANSI إلى stdout بالإضافة إلى تقرير markdown منقسم في `./failproofai-audit.md`. كلاهما يجمّع الضربات حسب الفئة (Sanitize / Wasteful / Risky / ...) مع أعداد الضربات وأعداد المشاريع وحتى ثلاث أوامر مثال لكل صف.

يطبع `--json` الإخراج الذي يمكن قراءته بواسطة الآلة:

```json
{
"version": 1,
"scannedAt": "2026-05-21T...",
"scope": { "cli": [...], "projects": "all", "since": null },
"transcripts": { "scanned": 4187, "skipped": 0, "errors": 0, "durationMs": 12345 },
"results": [
{
"name": "failproofai/protect-env-vars",
"source": "builtin",
"category": "Environment",
"hits": 428,
"projects": 142,
"firstSeen": "...",
"lastSeen": "...",
"examples": [{ "sessionId": "...", "cwd": "...", "timestamp": "...", "example": "env" }]
}
],
"totals": { "hits": 1398, "projectsWithHits": 392 }
}
```

## أمثلة

```bash
# فحص كل شيء عبر كل CLI على هذا الجهاز
failproofai audit

# آخر 30 يوماً فقط، Claude فقط
failproofai audit --cli claude --since 30d

# عرض الأمثلة للضربات الأعلى
failproofai audit --show-examples --limit 10

# التعمق في سياسة واحدة
failproofai audit --policy protect-env-vars --policy block-force-push

# إخراج قابل للقراءة الآلية
failproofai audit --json > audit.json
```

## ملاحظات

- **ذاكرة التخزين المؤقت.** يتم تخزين نتائج كل نص مؤقتاً في `~/.failproofai/cache/audit/<sha1>.json` يفتاح على `(mtime, size, engineVersion, detectorVersion)`. ذاكرة التخزين المؤقت تبطل تلقائياً عند تغيير كود السياسة أو الكاشف.
- **بدون تحوير.** يعاد تشغيل التدقيق في وضع القراءة فقط. يتم تخطي `warn-repeated-tool-calls` لأن ملفه الجانبي لكل جلسة سيتم تعديله بخلاف ذلك.
- **تخطي سياسات سير العمل.** سياسات `require-*-before-stop` تطلق فقط على أحداث `Stop` و `execSync` ضد حالة git الحية — ليس لديها تفسير معنى "ماذا كان سيحدث في 2025" لذا لا تظهر في أعداد التدقيق.
- **تخطي السياسات المخصصة.** خطافات مخصصة يوفرها المستخدم لا تُعاد تشغيلها (قد تكون تغيرت منذ الجلسة الأصلية).
100 changes: 100 additions & 0 deletions docs/de/cli/audit.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
---
title: Vergangene Sitzungen prüfen (Beta)
description: "Zählt, wie oft der Agent in vergangenen Transkripten verschwenderische oder riskante Aktionen durchgeführt hat"
---

<Note>
**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.
</Note>

```bash
failproofai audit [options]
```

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.

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.

## Optionen

| Flag | Beschreibung |
|------|-------------|
| `--cli claude\|codex\|copilot\|cursor\|opencode\|pi\|gemini` | Auf eine oder mehrere CLIs beschränken (durch Leerzeichen getrennt oder wiederholt). Standard: alle 7. |
| `--project <path>` | Auf Sitzungen beschränken, deren `cwd` diesem Pfad entspricht. Wiederholbar. |
| `--since 7d\|30d\|2026-04-01` | Nur Sitzungen, deren Transkript-mtime innerhalb des Zeitfensters liegt. |
| `--policy <name>` | Auf einen Richtlinien- oder Detektornamen beschränken. Wiederholbar. |
| `--limit N` | Anzahl der Zeilen in der Tabelle (Standard: 20). |
| `--show-examples` | Ein Beispielbefehl pro Zeile in der Tabelle einbeziehen. |
| `--report <path>` | Pfad für den Markdown-Bericht (Standard: `./failproofai-audit.md`). |
| `--no-report` | Schreiben des Markdown-Berichts überspringen. |
| `--json` | JSON auf stdout ausgeben statt der Tabelle. Impliziert `--no-report`, sofern nicht auch `--report` angegeben. |
| `--no-cache` | Den transkript-bezogenen Ergebnis-Cache unter `~/.failproofai/cache/audit/` umgehen. |

## Audit-spezifische Detektoren

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.

| Detektor | Was gezählt wird |
|---|---|
| `redundant-cd-cwd` | Bash-Befehle, die mit `cd <cwd> && …` beginnen, obwohl Befehle bereits in `cwd` ausgeführt werden. |
| `prefer-edit-over-read-cat` | `cat`/`head`/`tail`/`less`/`more` auf eine einzelne Quelldatei – nutze stattdessen das `Read`-Tool. |
| `prefer-edit-over-sed-awk` | `sed -i` / `awk … > file` In-Place-Bearbeitungen – nutze stattdessen das `Edit`-Tool. |
| `prefer-write-over-heredoc` | Heredoc- / mehrzeilige `echo > file`-Schreibvorgänge – nutze stattdessen das `Write`-Tool. |
| `sleep-polling-loop` | Lange `sleep N` (≥ 30s) oder `while …; sleep …; done`-Polling-Schleifen. |
| `find-from-root` | `find /`, `find /home`, `find /usr` usw. – auf `cwd` eingrenzen. |
| `git-commit-no-verify` | `git commit … --no-verify` / `-n`, wodurch Hooks übersprungen werden. |
| `reread-after-edit` | `Read` einer Datei, die in derselben Sitzung gerade per `Edit`/`Write` bearbeitet wurde. |

## Ausgabe

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.

`--json` erzeugt maschinenlesbare Ausgabe:

```json
{
"version": 1,
"scannedAt": "2026-05-21T...",
"scope": { "cli": [...], "projects": "all", "since": null },
"transcripts": { "scanned": 4187, "skipped": 0, "errors": 0, "durationMs": 12345 },
"results": [
{
"name": "failproofai/protect-env-vars",
"source": "builtin",
"category": "Environment",
"hits": 428,
"projects": 142,
"firstSeen": "...",
"lastSeen": "...",
"examples": [{ "sessionId": "...", "cwd": "...", "timestamp": "...", "example": "env" }]
}
],
"totals": { "hits": 1398, "projectsWithHits": 392 }
}
```

## Beispiele

```bash
# Alles über alle CLIs auf diesem Rechner scannen
failproofai audit

# Nur die letzten 30 Tage, nur Claude
failproofai audit --cli claude --since 30d

# Beispiele für die häufigsten Treffer anzeigen
failproofai audit --show-examples --limit 10

# Eine einzelne Richtlinie genauer untersuchen
failproofai audit --policy protect-env-vars --policy block-force-push

# Maschinenlesbare Ausgabe
failproofai audit --json > audit.json
```

## Hinweise

- **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.
- **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.
- **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.
- **Benutzerdefinierte Richtlinien werden übersprungen.** Vom Nutzer bereitgestellte benutzerdefinierte Hooks werden nicht wiederholt (sie können sich seit der ursprünglichen Sitzung geändert haben).
104 changes: 104 additions & 0 deletions docs/es/cli/audit.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
title: Auditar sesiones pasadas (beta)
description: "Cuenta con qué frecuencia el agente realizó acciones costosas o riesgosas en transcripciones anteriores"
---

<Note>
**Función beta.** `failproofai audit` se lanza en beta mientras recopilamos
comentarios iniciales. Los flags de CLI, el formato de salida y el catálogo
de detectores exclusivos de auditoría pueden cambiar antes del próximo corte
estable. Entrará en funcionamiento próximamente — abre un issue si algo
parece incorrecto.
</Note>

```bash
failproofai audit [options]
```

Analiza las transcripciones pasadas del agente CLI en esta máquina (Claude Code, Codex, Copilot, Cursor, OpenCode, Pi, Gemini) e informa con qué frecuencia el agente realizó acciones que failproofai está diseñado para detener: comprobaciones de variables de entorno, force pushes, prefijos redundantes `cd <cwd>`, bucles de sleep-polling, relectura de archivos recién editados y más.

Por cada transcripción, cada evento de uso de herramienta se reprocesa a través de las 39 políticas integradas **y** de 8 detectores exclusivos de auditoría que identifican patrones que aún no están cubiertos por las políticas en tiempo real. Los conteos se agregan por política / detector en todas las sesiones.

## Opciones

| Flag | Descripción |
|------|-------------|
| `--cli claude\|codex\|copilot\|cursor\|opencode\|pi\|gemini` | Restringe a uno o más CLIs (separados por espacios o repetidos). Por defecto: los 7. |
| `--project <path>` | Restringe a sesiones cuyo `cwd` coincida con esta ruta. Se puede repetir. |
| `--since 7d\|30d\|2026-04-01` | Solo sesiones cuyo mtime de transcripción esté dentro del intervalo. |
| `--policy <name>` | Restringe a una política o nombre de detector. Se puede repetir. |
| `--limit N` | Las N filas superiores de la tabla (por defecto 20). |
| `--show-examples` | Incluye un comando de ejemplo por fila en la tabla. |
| `--report <path>` | Ruta del informe en Markdown (por defecto `./failproofai-audit.md`). |
| `--no-report` | Omite la generación del informe en Markdown. |
| `--json` | Imprime JSON en stdout en lugar de la tabla. Implica `--no-report` a menos que también se pase `--report`. |
| `--no-cache` | Omite la caché de resultados por transcripción en `~/.failproofai/cache/audit/`. |

## Detectores exclusivos de auditoría

Estos detectan patrones de "comportamiento ineficiente" que aún no se aplican en tiempo real. Solo se ejecutan durante `audit` y nunca bloquean una llamada a herramienta en vivo.

| Detector | Qué cuenta |
|---|---|
| `redundant-cd-cwd` | Comandos Bash que comienzan con `cd <cwd> && …` aunque los comandos ya se ejecutan en `cwd`. |
| `prefer-edit-over-read-cat` | `cat`/`head`/`tail`/`less`/`more` en un único archivo fuente — usa la herramienta `Read`. |
| `prefer-edit-over-sed-awk` | Ediciones en el lugar con `sed -i` / `awk … > file` — usa la herramienta `Edit`. |
| `prefer-write-over-heredoc` | Escritura de archivos con heredoc / `echo > file` multilínea — usa la herramienta `Write`. |
| `sleep-polling-loop` | `sleep N` prolongado (≥ 30s) o bucles de polling `while …; sleep …; done`. |
| `find-from-root` | `find /`, `find /home`, `find /usr`, etc. — limita el alcance a `cwd`. |
| `git-commit-no-verify` | `git commit … --no-verify` / `-n`, que omite los hooks. |
| `reread-after-edit` | `Read` de un archivo que acaba de ser modificado con `Edit`/`Write` en la misma sesión. |

## Salida

La salida predeterminada es una tabla ANSI en stdout más un informe Markdown con secciones en `./failproofai-audit.md`. Ambos agrupan los resultados por categoría (Sanitize / Wasteful / Risky / …) con recuentos de hits, recuentos de proyectos y hasta tres comandos de ejemplo por fila.

`--json` genera salida legible por máquina:

```json
{
"version": 1,
"scannedAt": "2026-05-21T...",
"scope": { "cli": [...], "projects": "all", "since": null },
"transcripts": { "scanned": 4187, "skipped": 0, "errors": 0, "durationMs": 12345 },
"results": [
{
"name": "failproofai/protect-env-vars",
"source": "builtin",
"category": "Environment",
"hits": 428,
"projects": 142,
"firstSeen": "...",
"lastSeen": "...",
"examples": [{ "sessionId": "...", "cwd": "...", "timestamp": "...", "example": "env" }]
}
],
"totals": { "hits": 1398, "projectsWithHits": 392 }
}
```

## Ejemplos

```bash
# Analizar todo en cada CLI de esta máquina
failproofai audit

# Solo los últimos 30 días, únicamente Claude
failproofai audit --cli claude --since 30d

# Mostrar ejemplos para los hits principales
failproofai audit --show-examples --limit 10

# Profundizar en una política específica
failproofai audit --policy protect-env-vars --policy block-force-push

# Salida legible por máquina
failproofai audit --json > audit.json
```

## Notas

- **Caché.** Los resultados por transcripción se almacenan en caché en `~/.failproofai/cache/audit/<sha1>.json` con clave `(mtime, size, engineVersion, detectorVersion)`. La caché se invalida automáticamente cuando cambia el código de políticas o detectores.
- **Sin mutaciones.** La auditoría se reproduce en modo de solo lectura. `warn-repeated-tool-calls` se omite porque de lo contrario se modificaría su archivo auxiliar por sesión.
- **Políticas de flujo de trabajo omitidas.** Las políticas `require-*-before-stop` solo se activan en eventos `Stop` y ejecutan `execSync` contra el estado git en vivo — no tienen una interpretación significativa de "qué habría pasado en 2025", por lo que no aparecen en los recuentos de auditoría.
- **Políticas personalizadas omitidas.** Los hooks personalizados proporcionados por el usuario no se reproducen (pueden haber cambiado desde la sesión original).
Loading