Help us improve
Share bugs, ideas, or general feedback.
From pbr
Audits Claude Code session logs for PBR workflow compliance (STATE.md updates, hooks, commits, skills) and UX quality (flows, friction, expectations). Supports date ranges and modes.
npx claudepluginhub sienklogic/plan-build-runHow this skill is triggered — by the user, by Claude, or both
Slash command
/pbr:auditThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**STOP — DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes tokens. Begin executing Step 0 immediately.**
Performs comprehensive analysis of Claude Code sessions, examining git history, conversation logs, code changes, and gathering user feedback to generate actionable retrospective reports with insights for continuous improvement.
Analyzes Antigravity AI coding sessions for root causes, scope deltas, rework patterns, hotspots, and prompt/repo health improvements with evidence-based reports.
Analyzes Claude Code session logs to extract tool usage stats, thinking blocks, error patterns, debug trajectories, and generate actionable productivity recommendations. Provides cc-session CLI for overviews, timelines, searches.
Share bugs, ideas, or general feedback.
STOP — DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes tokens. Begin executing Step 0 immediately.
Before ANY tool calls, display this banner:
╔══════════════════════════════════════════════════════════════╗
║ PLAN-BUILD-RUN ► SESSION AUDIT ║
╚══════════════════════════════════════════════════════════════╝
Then proceed to Step 1.
You are running the audit skill. Your job is to analyze past Claude Code session logs for this project, checking PBR workflow compliance (STATE.md updates, hook firing, commit format, skill usage) and user experience quality (flow choice, friction, unmet expectations). You produce a comprehensive report document.
This skill uses parallel Task() delegation to analyze multiple sessions simultaneously, keeping main context lean.
Reference: skills/shared/context-budget.md for the universal orchestrator rules.
Additionally for this skill:
Parse $ARGUMENTS for:
| Argument | Default | Description |
|---|---|---|
--from DATE | Start of today | Start of audit window (ISO date or natural language) |
--to DATE | Now | End of audit window |
--today | false | Shorthand for --from start of today --to now |
--mode MODE | full | compliance = workflow only, ux = user experience only, full = both |
Natural language parsing: Accept formats like:
--today or just today--from 2026-02-21 or --from "yesterday"--from "3 days ago" or --from "last monday"02/21 implies --from 02/21 --to 02/21 (full day)3 implies last 3 daysIf no arguments provided, default to --today --mode full.
Display the parsed time range to the user:
Audit window: {from} → {to}
Mode: {mode}
Session JSONL files live at:
~/.claude/projects/{encoded-project-path}/*.jsonl
Where {encoded-project-path} encodes the project directory path (e.g., D:\Repos\plan-build-run → D--Repos-plan-build-run).
CRITICAL: Determine the correct encoded path for the current project by listing ~/.claude/projects/ and finding the directory that matches.
Use Bash to find sessions in the audit window:
find ~/.claude/projects/{encoded-path}/ -name "*.jsonl" -maxdepth 1 \
-newermt "{from_datetime}" ! -newermt "{to_datetime}" | sort
For each session file found, also check for subagent logs:
ls ~/.claude/projects/{encoded-path}/{session-id}/subagents/*.jsonl 2>/dev/null
Display discovery results:
Found {N} sessions in audit window:
{session-id-1} ({size}, {date})
{session-id-2} ({size}, {date})
...
If no sessions found, display an error and exit:
╔══════════════════════════════════════════════════════════════╗
║ ERROR ║
╚══════════════════════════════════════════════════════════════╝
No session logs found between {from} and {to}.
Check: ~/.claude/projects/{encoded-path}/
In parallel with session analysis (Step 4), gather git commit data for the audit window:
git log --since="{from_iso}" --until="{to_iso}" --format="%h %s %an %ai" --all
Check for:
Co-Authored-By linesThis data feeds into the final report synthesis.
CRITICAL: Spawn one pbr:audit agent per session, ALL in parallel. Do NOT analyze sessions sequentially.
For each session:
Task({
subagent_type: "pbr:audit",
prompt: "<files_to_read>
CRITICAL: Read these files BEFORE any other action:
1. {absolute_path_to_session.jsonl} — session log to analyze
2. {subagent log paths, if any} — subagent session logs
</files_to_read>
<audit_assignment>
Session JSONL: {absolute_path_to_session.jsonl}
Subagent logs: {list of subagent jsonl paths, or 'none'}
Audit mode: {mode}
Output path: DO NOT write to disk — return findings inline.
Analyze this session for PBR workflow compliance and/or UX quality
per your audit checklists. Return your full findings as structured
markdown in your response.
</audit_assignment>"
})
Also spawn a git analysis agent:
Task({
subagent_type: "pbr:general",
model: "haiku",
prompt: "Run these git commands in {project_dir}:
1. git log --since='{from}' --until='{to}' --format='%h|%s|%an|%ai' --all
2. git log --since='{from}' --until='{to}' --all --format='%B' | grep -i 'co-authored-by' || echo 'None found'
Report: all commits, any format violations against pattern {type}({scope}): {desc}, any co-author lines."
})
Display progress:
◐ Analyzing {N} sessions in parallel...
As agents complete, check each audit agent's Task() output for ## AUDIT COMPLETE. If the marker is absent, mark that session as "analysis failed" in the synthesis and skip its findings — do not treat incomplete output as valid analysis. Log: ⚠ Session {id}: audit agent did not return completion marker — skipping.
Wait for all agents before proceeding.
Synthesize across all sessions:
| Session | Duration | Commands | Compliance | UX Rating |
|---|
Merge and deduplicate findings across sessions. Categorize by severity:
Prioritize as:
CRITICAL: Write the full report to disk. Do NOT just display it inline.
Write to: .planning/audits/{YYYY-MM-DD}-session-audit.md
Create .planning/audits/ directory if it doesn't exist.
The report should follow this structure:
# PBR Session Audit Report — {date range}
**Audit Period:** {from} – {to}
**Sessions Analyzed:** {N}
**Commits:** {N}
**Mode:** {mode}
---
## Executive Summary
{2-3 sentence overview}
## Session Summary
{per-session table}
## Detailed Session Analysis
{per-session findings}
## Git Activity
{commit summary, format compliance}
## Cross-Session Patterns
{recurring issues}
## Consolidated Findings
### Critical
### High
### Medium
### Low
## Recommendations
### Immediate
### Short-Term
### Medium-Term
---
*Generated by /pbr:audit on {date}*
Before displaying results, verify the report landed on disk:
.planning/audits/{YYYY-MM-DD}-session-audit.md to confirm the file existsAfter writing the report, display inline (keep it concise — the full report is on disk):
╔══════════════════════════════════════════════════════════════╗
║ PLAN-BUILD-RUN ► AUDIT COMPLETE ✓ ║
╚══════════════════════════════════════════════════════════════╝
{N} sessions analyzed, {N} commits reviewed
Compliance: {X}/{N} sessions passed
UX Rating: {average or per-session ratings}
Top findings:
1. {headline finding 1}
2. {headline finding 2}
3. {headline finding 3}
Full report: .planning/audits/{filename}
╔══════════════════════════════════════════════════════════════╗
║ ▶ NEXT UP ║
╚══════════════════════════════════════════════════════════════╝
{Smart routing based on findings:}
- If critical issues found: **Fix workflow** → `/pbr:quick`
- If todos identified: **Create todos** → `/pbr:todo add "{description}"`
- Default: **See project status** → `/pbr:status`
<sub>`/clear` first → fresh context window</sub>
If an audit agent fails:
⚠ Failed to analyze session {id}: {error}
Continuing with remaining {N-1} sessions.
Include a note in the final report that session was skipped.
Display error (Step 2) and exit gracefully.
Warn the agent to sample rather than read the full log:
Note: Session {id} is {size}MB. Sampling key sections (first 200 lines, last 200 lines, user messages, hook events).
Reference: skills/shared/universal-anti-patterns.md for rules that apply to ALL skills.
Additionally for this skill: