From smart-dev
Cross-session analytics — parse JSONL session files to detect patterns and friction hotspots
npx claudepluginhub coolwuu/smart-dev-plugin --plugin smart-devThis skill uses the workspace's default tool permissions.
Analyze Claude Code JSONL session files to identify recurring patterns, friction hotspots, and generate evidence-based CLAUDE.md recommendations.
Implements Playwright E2E testing patterns: Page Object Model, test organization, configuration, reporters, artifacts, and CI/CD integration for stable suites.
Guides Next.js 16+ Turbopack for faster dev via incremental bundling, FS caching, and HMR; covers webpack comparison, bundle analysis, and production builds.
Discovers and evaluates Laravel packages via LaraPlugins.io MCP. Searches by keyword/feature, filters by health score, Laravel/PHP compatibility; fetches details, metrics, and version history.
Analyze Claude Code JSONL session files to identify recurring patterns, friction hotspots, and generate evidence-based CLAUDE.md recommendations.
/project-insights # Default: last 30 days, top 10
/project-insights --days 7 # Last 7 days only
/project-insights --top 5 # Top 5 results per category
Claude Code stores session files at ~/.claude/projects/<mangled-path>/ where the mangled path replaces / with -.
Compute the sessions directory dynamically:
PROJECT_DIR=$(pwd)
MANGLED=$(echo "$PROJECT_DIR" | sed 's|/|-|g')
SESSIONS_DIR="$HOME/.claude/projects/$MANGLED"
Verify the directory exists before proceeding. If not found, ask the user.
Execute the Python extraction script:
python3 ~/.claude/skills/project-insights/scripts/extract.py \
--sessions-dir "$SESSIONS_DIR" \
--days {DAYS} --top {TOP}
Pass through any --days or --top arguments from the user's command. Default: --days 30 --top 10.
Timeout: 5 minutes max. If the script fails, report the error and suggest reducing --days.
The script outputs a JSON summary to stdout. Parse it and present a formatted report.
Format the JSON output into a readable report with these sections:
After successful analysis, update the stamp file:
date +%s > /tmp/claude-insights-last-run.txt
This is used by the insights-reminder hook to determine when to suggest re-running.