From tw93-claude-health
Audits Claude Code's six-layer config stack (CLAUDE.md, rules, skills, hooks, subagents, verifiers) for ignored instructions, inconsistencies, hook malfunctions, and MCP server issues. Flags severity-based fixes by project tier.
npx claudepluginhub tw93/wazaThis skill uses the workspace's default tool permissions.
Prefix your first line with 🥷 inline, not as its own paragraph.
Audits Claude Code project configuration for drift and collaboration issues across six layers (CLAUDE.md, rules, skills, hooks, subagents, verifiers), tiered by project complexity.
Audits Claude Code configurations for best practices in skills, instructions, MCP servers, hooks, plugins, security, over-engineering, and context efficiency via file scans and focused checks. Invoke with /claudit [focus-area].
Runs comprehensive diagnostics on Claude Code environment: plugins, settings, hooks, MCP servers. Identifies issues, supports --fix and --verbose.
Share bugs, ideas, or general feedback.
Prefix your first line with 🥷 inline, not as its own paragraph.
Audit the current project's Claude Code setup against the six-layer framework:
CLAUDE.md → rules → skills → hooks → subagents → verifiers
Find violations. Identify the misaligned layer. Calibrate to project complexity only.
Output language: Check in order: (1) CLAUDE.md ## Communication rule (global over local); (2) user's recent language; (3) English.
Pick one. Apply only that tier's requirements.
| Tier | Signal | What's expected |
|---|---|---|
| Simple | <500 files, 1 contributor, no CI | CLAUDE.md only; 0-1 skills; hooks optional |
| Standard | 500-5K files, small team or CI | CLAUDE.md + 1-2 rules; 2-4 skills; basic hooks |
| Complex | >5K files, multi-contributor, active CI | Full six-layer setup required |
Run the collection script. Do not interpret yet.
bash "${CLAUDE_SKILL_DIR:-$HOME/.agents/skills/health}/scripts/collect-data.sh"
Sections may show (unavailable) when tools are missing:
jq missing → conversation sections unavailablepython3 missing → MCP/hooks/allowedTools sections unavailablesettings.local.json absent → hooks/MCP may be unavailable (normal for global-only setups)Treat (unavailable) as insufficient data, not a finding. Do not flag those areas.
Test every MCP server: call one harmless tool per server. Record live=yes/no with error detail. Respect enabled: false (skip without flagging). For API keys, only check if the env var is set (echo $VAR | head -c 5), never print full keys.
Confirm the tier. Then route:
[REDACTED].
agents/inspector-context.md. Feed CONVERSATION SIGNALS section.agents/inspector-control.md. Feed detected tier.Health Report: {project} ({tier} tier, {file_count} files)
- [severity] <symptom> ({file}:{line} if known)
Why: <one-line reason>
Action: <exact command or edit to fix>
Action: must be copy-pasteable. Never write "investigate X" or "consider Y". If the fix is unknown, name the diagnostic command.
Rules violated, dangerous allowedTools, MCP overhead >12.5%, security findings, leaked credentials.
Example:
settings.local.json committed to git (exposes MCP tokens)
Why: leaked token enables remote code execution via installed MCP servers
Action: git rm --cached .claude/settings.local.json && echo '.claude/settings.local.json' >> .gitignoreCLAUDE.md content in wrong layer, missing hooks, oversized descriptions, verifier gaps.
Outdated items, global vs local placement, context hygiene, stale allowedTools entries.
If no issues: All relevant checks passed. Nothing to fix.
| What happened | Rule |
|---|---|
| Missed the local override | Always read settings.local.json too; it shadows the committed file |
| Subagent timeout reported as MCP failure | MCP failures come from the live probe, not data collection |
| Reported issues in wrong language | Honor CLAUDE.md Communication rule first |
| Flagged intentionally noisy hook as broken | Ask before calling a hook "broken" |
| Hook seemed not to fire, but it did -- a later UI element rendered above it | Hook firing order is not visual order. Before re-editing the hook config: (a) confirm with --debug or by piping output, (b) check whether a diff dialog, permission prompt, or other UI element rendered on top and pushed the hook output offscreen, (c) only then suspect the hook itself. |
Activate when: "font not loading", "style inconsistency", "design tokens", or visual rendering bugs
Check:
Report findings with Action: lines, then ask before applying any fix.