← ClaudeAtlas

reading-the-audit-traillisted

Read and interpret the Session Sitter audit trail — what agents were allowed to do, which clause was applied, who decided, and how long it took. Use when the user asks what happened overnight, why a call was denied or rewritten, which rules are firing, or wants to export the decision log.
eranra/session-sitter · ★ 7 · AI & Automation · score 71
Install: claude install-skill eranra/session-sitter
# Reading the audit trail Two append-only JSONL files under the plugin's data directory (`${CLAUDE_PLUGIN_DATA}`, or `~/.claude/session-sitter/` when the plugin is loaded session-only). Both are rotated at 4 MiB, with one previous generation kept as `<name>.jsonl.1`. Read them through the CLI rather than by hand — it already merges the rotated generation, skips malformed lines, and filters: ```bash node "${CLAUDE_PLUGIN_ROOT}/lib/audit/cli.js" log --since 24h --denied node "${CLAUDE_PLUGIN_ROOT}/lib/audit/cli.js" digest --since 24h node "${CLAUDE_PLUGIN_ROOT}/lib/audit/cli.js" status ``` `--json` and `--csv` are there for handing the log to someone else. `/session-sitter:log`, `:digest` and `:status` are the same three commands. ## `decisions.jsonl` — one record per permission decision | Field | Read it as | |---|---| | `ts` | ISO timestamp, UTC | | `sessionId` | joins to `status`, and to the session files under `sessions/` | | `cwd` | which repository the agent was in | | `tool` | the Claude Code tool name — `Bash`, `Write`, `Edit`, … | | `inputSummary` | the command or path, **redacted and truncated to 300 characters**. Never the raw input. | | `light` | `green` allowed · `yellow` corrected · `red` denied · `null` no light was assigned | | `decision` | `allow` or `deny` — what Claude Code was actually told | | `clause` | the citation, e.g. `practices §team-git-002`, or `null` when no written clause applied | | `actor` | who decided (below) | | `latencyMs` | how long t