From claude-reviewer
Review any project's .claude/ folder setup against Claude Code best practices. Scores 8 dimensions (24-point rubric), detects anti-patterns, and produces an actionable improvement report. Use when: "/claude-reviewer", "review my claude config", "audit .claude setup", "check my CLAUDE.md", "how good is my claude config", "rate this project's claude setup". NOT for: reviewing individual skill quality (use /skill-reviewer), code review, PR review.
npx claudepluginhub omriariav/omri-cc-stuff --plugin claude-reviewerThis skill is limited to using the following tools:
Review any project's `.claude/` folder against best practices from Anthropic's Claude Code configuration guidance.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Analyzes BMad project state from catalog CSV, configs, artifacts, and query to recommend next skills or answer questions. Useful for help requests, 'what next', or starting BMad.
Review any project's .claude/ folder against best practices from Anthropic's Claude Code configuration guidance.
| /skill-reviewer | /claude-reviewer | |
|---|---|---|
| Input | A single skill directory | An entire project's .claude/ folder |
| Evaluates | Skill design quality (SKILL.md, scripts, references) | Config hygiene (CLAUDE.md, settings.json, rules/, commands/, skills/, agents/) |
| When | After building a skill | When setting up or auditing a project |
| Output | 10-dimension skill score (max 29) | 8-dimension config score (max 24) |
/claude-reviewer -> Review current working directory
/claude-reviewer ~/Code/myproject -> Review specific project
/claude-reviewer --global -> Review ONLY ~/.claude/ global config
/claude-reviewer --verbose -> Include evidence quotes in report
$ARGUMENTS = [--global] [--verbose] [project-path]
Parse the argument before starting:
--global flag if present.--verbose flag if present. When set, include evidence quotes.--global → Global mode: audit only ~/.claude/. Score 5 applicable dimensions (D1, D2, D4, D5, D6 — max 15). Ignore any project path. Use the Global Configuration report template only.--global → Project mode: audit the project path (or cwd if none given). Score all 8 dimensions (max 24). No global section.--global is used..claude/ directory AND no CLAUDE.md (project mode only), report "No Claude Code configuration found at [path]."Run the deterministic scanner:
python3 scripts/scan.py <project-path> --json [--global]
If the scanner fails (non-zero exit, invalid JSON), stop and report the error to the user. Do not attempt to score manually without scanner output.
This returns JSON with:
.claude/ componentsParse the JSON output. Use the structural scores directly for D1, D2, D3, D4, D7. Dimensions with score: null require your semantic evaluation in Phase 2.
For dimensions the scanner cannot fully score:
D5: Skills Setup — Read each skill's SKILL.md. Does the description explain when to trigger AND when NOT to use? Are allowed-tools minimally scoped (no bare Bash)? Does the skill use progressive disclosure (references/, scripts/)? Is the description trigger-focused, not generic?
D6: Agent Configuration — Read each agent file. Is the model selection appropriate? (haiku for read-only, sonnet for balanced, opus for complex.) Are tools minimally scoped? Does each agent have a clear, distinct purpose?
D8: Progressive Disclosure — Holistic judgment: does CLAUDE.md serve as a lean hub that delegates to .claude/ components? Are path-scoped rules used instead of cramming everything into CLAUDE.md? Is the overall structure proportional to the project's complexity?
Also review D3 and D4 for semantic quality the scanner cannot assess:
Adjust a structural score only if you have specific evidence. Note the reason.
The scanner auto-detects structural anti-patterns. Add semantic ones:
$ARGUMENTS for parameterizationRead references/report-template.md and fill the appropriate sections.
Project mode: Score all 8 dimensions (D1-D8, max 24). Grade: 21-24=A, 16-20=B, 11-15=C, 6-10=D, 0-5=F.
Global mode: Use only the Global Configuration section of the template. Score 5 dimensions (D1, D2, D4, D5, D6 — max 15). Grade: 13-15=A, 10-12=B, 7-9=C, 4-6=D, 0-3=F.
For each dimension scoring below 2, provide a specific, actionable recommendation. Prioritize by expected impact (points gained per effort).
Always include Quick Wins — concrete items achievable in under 5 minutes.
| Dim | Name | Max | Scanner | Claude |
|---|---|---|---|---|
| D1 | CLAUDE.md Quality | 3 | Partial (length, sections, linter content) | Content quality, conciseness judgment |
| D2 | Permission Hygiene | 3 | Full | — |
| D3 | Modular Instructions | 3 | Partial (existence, count, path scoping) | Single-concern quality, delegation |
| D4 | Custom Commands | 3 | Partial (frontmatter, $ARGUMENTS, backtick) | Usefulness, workflow coverage |
| D5 | Skills Setup | 3 | Structural signals only | Trigger quality, tool scoping, disclosure |
| D6 | Agent Configuration | 3 | Structural signals only | Model selection, tool scoping, purpose |
| D7 | Git Hygiene | 3 | Full | — |
| D8 | Progressive Disclosure | 3 | Partial (component count) | Holistic organization quality |
references/best-practices.md — 8-dimension scoring rubric with anchorsreferences/report-template.md — output format templatescripts/scan.py — structural scanner (D1-D4, D7 full; D5, D6, D8 partial)examples/sample-review.md — complete example report for calibrationProjects without .claude/ folder: Some projects use only a root CLAUDE.md with no .claude/ directory. This is valid for simple projects. Score D2-D6 as 0 but note "Minimal configuration — appropriate for simple/early-stage projects" rather than treating it as a failure.
Monorepo CLAUDE.md files: Some projects have CLAUDE.md at multiple levels (root, packages/, apps/). Only score the root-level one for D1. Note nested files as a strength.
Git operations require a git repo: scan.py's git checks fail on non-git directories. It handles this gracefully (skips git checks, scores D7 as N/A).
settings.local.json vs settings.json: The local file should be gitignored; the non-local file should be committed. Don't confuse them.
Empty .claude/ directories: Some projects create .claude/ but leave it empty (only settings.local.json from plugin installs). Treat as "no configuration" for scoring.
Global scope requires confirmation: When --global is used, ask the user before reading ~/.claude/ contents. Home directory contents are personal.