← ClaudeAtlas

meta-audit-local-skills-and-hookslisted

Use when reviewing the Claude Code skills and hooks on a machine that no plugin ships - a personal ~/.claude/skills or ~/.claude/hooks entry, a project's .claude/skills, a hook registered in settings.json - or when a local hook silently stopped firing, a tests dir exists but nothing actually runs, a retired shim sits beside its replacement, or a local skill duplicates a marketplace one
bitranox/bitranox-skills · ★ 1 · AI & Automation · score 57
Install: claude install-skill bitranox/bitranox-skills
# Auditing local skills and hooks ## Overview A marketplace skill is gated from several directions: a commit gate, a clean-room catalogue audit, mirror checks, a tests-per-script rule. None of that reaches a file outside the marketplace repo. Everything else a machine loads - a personal skill, a project's `.claude/skills`, a hook wired in `settings.json` - runs with no gate at all, and rots quietly. **The core principle: audit by OWNERSHIP, never by path.** The same shipped skill is reachable at three paths at once (the source checkout, the marketplace clone, the version cache), and tool repos ship mirrored twins on top of that. Selecting by "where does it look like a skill" reviews all of them and, far worse, invites an edit into content some other gate owns. ## Step 1 - ask what you are allowed to touch, and read the answer Never start from a `find`. Run this first, every time: ```bash bash <plugin>/hooks/run-python.sh \ <plugin>/skills/meta-audit-local-skills-and-hooks/scripts/audit_local.py \ targets --root <tree> ``` (home: `skills/meta-audit-local-skills-and-hooks/`, launched through `hooks/run-python.sh`.) It prints what it selected AND what it skipped with the reason. Read both halves. The skipped list is the proof the ownership filter ran, not noise to scroll past. | Location | Verdict | |------------------------------------------