Audits Claude Code conversation history to find repeated errors and anti-patterns, then writes project-scoped memory files so future sessions don't repeat the same mistakes.
Runs every 6 hours, processes only unseen conversations (cursor-tracked), and git-commits all memory file changes.
./start.sh # Start UI + audit loop in tmux
bash run-audit.sh # Single audit run
bun run server.ts # UI only on http://localhost:3100extract-unseen.shreads~/.claude/projects/JSONL logs, skipping already-processed lines (tracked incursor.json)- Unseen conversation chunks are fed to Claude via
run-audit.shwith the analysis prompt - Claude identifies repeated failures, recurring errors, and anti-patterns
write-memories.pywrites memory files to the correct project's~/.claude/projects/<project>/memory/directory- Changes are git-committed with an audit summary
- Results are displayed in the web dashboard
audit-prompt.md— Prompt instructing Claude what patterns to look forrun-audit.sh— Orchestrates: extract -> analyze -> write memories -> commitextract-unseen.sh— Reads JSONL logs, outputs only unprocessed linesupdate-cursor.sh— Marks all current JSONL lines as processedwrite-memories.py— Parses audit JSON, writes memory files to project dirscursor.json— Tracks last-processed line per conversation file (git-tracked)memory-log.md— Append-only log of all memories created (git-tracked)reports/— JSON audit reports (gitignored)server.ts/frontend.ts— Dashboard UI