skills/config-audit/SKILL.md
Audits the repo's Claude configuration against docs/config-guidelines.md. Read-only. Produces audit-report.md consumed by config-refactor.
npx skillsauth add fearovex/claude-config config-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Audits the repo's Claude configuration against
docs/config-guidelines.md. Read-only. Producesaudit-report.mdconsumed byconfig-refactor.
Triggers: /config-audit, audit config, audit claude config, review configuration, configuration health check
Determine which mode to run in (per Principle 13):
claude-config repo. Detected when ALL of:
install.sh exists at CWD root.skills/_shared/ exists at CWD root.claude-config or agent-config.CLAUDE.md at root.CLAUDE.md. Stop and print:
No CLAUDE.md found in this directory. Run project-claude-init (future) or create one manually before auditing.Record the detected mode and proceed. The mode controls Step 1 (guidelines source) and Step 2 (target file enumeration).
Global mode — read docs/config-guidelines.md from CWD. This file is the spec.
Project mode — read ~/.claude/docs/config-guidelines.md (the deployed global
spec) as the read-only baseline. The project's own CLAUDE.md is the audit
target, not a spec source.
If the guidelines file does not exist in either mode:
docs/config-guidelines.md. In project mode, run install.sh from the
claude-config repo on this machine."Global mode — audit only these targets, in this order:
CLAUDE.md (root)output-styles/*.mdskills/*/SKILL.mdhooks/* (read for cross-checks against CLAUDE.md, do NOT audit hook internals)settings.json and settings.local.json (cross-checks only — duplicated rules, hook
declarations matching files in hooks/)mcp/*.json (existence only)keybindings.json (existence only)~/.claude/ orphan scan (Principle 12 whitelists).Do not audit anything else. Out of scope: docs/ (except guidelines), memory/, agents/,
test fixtures, README.
Project mode — audit only these targets:
CLAUDE.md at CWD root (the project's own)..claude/skills/*/SKILL.md if present (project-local skills)..claude/settings.json and .claude/settings.local.json if present.Out of scope in project mode: ~/.claude/ runtime directories, the global
CLAUDE.md, anything outside the project root. The global layer is read-only
reference for duplication checks (Principle 13 anti-duplication rule).
Apply every check below. For each finding, record:
severity: CRITICAL | WARNING | SUGGESTIONfile: absolute pathline (if applicable)rule: the principle name from guidelines (e.g. "Principle 4 — Token budget")finding: one-sentence descriptionfix_hint: one-sentence suggested actionFor each target file:
Scan CLAUDE.md for:
agents/<name>.md exists, raise WARNING "Move scoped section to agents/".Scan each output-styles/*.md for:
CLAUDE.md behavior rules → WARNING.Build a normalized fingerprint of each rule line in CLAUDE.md and each rule line in
output styles and skills. A "rule line" is a top-level bullet inside a ## Rules-like
section.
For each pair that exceeds 70% token overlap:
CLAUDE.md → CRITICAL "Rule
duplicated between hook and CLAUDE.md (Principle 3.1)".CLAUDE.md and an output-style → WARNING "Rule duplicated (Principle 3.2)".skills/_shared/".Scan CLAUDE.md for these substrings (case-insensitive): brew, apt-get, cat ,
find , sed , grep (as Bash command, not the Grep tool), ls .
For each hit:
Scan CLAUDE.md for headings or bullets that look like the engram protocol payload:
mem_save format template (a multi-bullet block describing title, type, content)If found AND the same content is also injected by a SessionStart hook → CRITICAL
"Engram protocol duplicated between hook and CLAUDE.md (Principle 9)".
If found AND no hook injects it → WARNING "Engram protocol in CLAUDE.md but no hook injects it; verify ownership".
Find the "Skills — Force-read inline" table (or any table at root of CLAUDE.md listing
skills with paths). Check:
For each skills/*/SKILL.md:
name, description, or format in frontmatter → CRITICAL.format value not in {procedural, reference, anti-pattern} → CRITICAL.**Triggers**: line in body → WARNING.docs/format-types.md) → WARNING.For each rule line in the project CLAUDE.md:
~/.claude/CLAUDE.md.## Overrides global block declares the rule →
CRITICAL "Project CLAUDE.md restates global rule without override declaration
(Principle 13)".In global mode this check is skipped (only one layer present).
~/.claude/ (Principle 12, global mode only)List the entries directly under ~/.claude/. For each entry:
Do not recurse into runtime directories. The check is one level deep.
CLAUDE.md (e.g. ~/.claude/skills/foo/SKILL.md),
verify the corresponding repo path exists. If not → SUGGESTION "Dead reference".SKILL.md body, verify it exists in
skills/. If not → SUGGESTION "Reference to missing skill".Write the result to audit-report.md at the repo root with this exact structure:
# Configuration Audit Report
Generated: YYYY-MM-DD HH:MM
Guidelines version: <git short hash of docs/config-guidelines.md if available, else "untracked">
## Summary
- CRITICAL: <count>
- WARNING: <count>
- SUGGESTION: <count>
## Findings
### CRITICAL
#### [CRIT-1] <one-line title>
- File: `<path>` (line <n> if applicable)
- Rule: <principle name>
- Finding: <one sentence>
- Fix hint: <one sentence>
(repeat for each CRITICAL)
### WARNING
(same shape)
### SUGGESTION
(same shape)
## No-issues sections
List target files that produced zero findings. One per line.
## Next step
Run `/config-refactor` to apply fixes. The refactor skill reads this file as its spec.
Use stable IDs (CRIT-1, WARN-1, SUGG-1 …) so config-refactor can reference them
exactly.
After writing the report, print a compact summary to the user:
/config-refactor to apply, or open the report to triage first."Do NOT propose fixes inline. The refactor skill owns that.
audit-report.md.docs/config-guidelines.md.config-refactor reads only audit-report.md and
docs/config-guidelines.md, never the original conversation.development
Governs AI-assisted generation of images, video, and audio (Gemini Nano Banana Pro, FLUX, etc.) from any project, with a focus on key security and cost control. Trigger: generate an image/illustration/asset with AI, "generate an image", nano banana, gemini image, generate video, configure an image API.
business
Turns an already-investigated customer issue into a short, non-technical engineering-to-CS brief: one natural message that leads with the finding (root cause, real scope, open question), ready to paste into Slack for the support team. Trigger: /support-brief, support brief, brief for support, resumen soporte.
development
Parks the current Claude Code session before going to sleep. Analyzes the conversation, writes a handoff document to docs/handoffs/ in the current project, mirrors the same summary to engram tagged with the session ID, and prints the exact `claude --resume <id>` command for tomorrow. Zero interaction — runs end-to-end on a single invocation. Trigger: /night-park, night park, park session, me voy a dormir, guardar sesion.
testing
Interactive creator for a project feature: scaffolds the domain knowledge markdown at ai-context/features/<slug>.md AND the antenna skill at .claude/skills/<slug>/SKILL.md, both from the canonical templates. Also registers the antenna in the project's CLAUDE.md. Trigger: /feature-define <name>, define feature, documentar funcionalidad, nueva feature.