← All skills
audit-skill-visibility
80 / 100 · Low risk
Fine to try. Some of what it can do is expected: a coding skill usually runs build and test commands.
By melodic-software/claude-code-plugins (GitHub) · coding · 30 stars · scanned at commit 677e798
When the built-in skill-doctor command resolves in this session, prefer it for cost; this skill for unseen ones. Use when: 'why do I never use most of my skills', 'why does Claude never suggest this skill', 'are my skill descriptions being dropped', 'is my skill listing over budget', 'which skills can the model actually see', 'which skills are starved', 'I have too many skills to know when to use them', 'audit skill visibility'.
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
The author does not mention this. It runs automatically when the plugin is installed. Expected for a coding skill.
Found in 35 places.
Show 17 more
- plugins/harness-ops/skills/audit-skill-visibility/SKILL.md, line 308
STORE="$(bash "${CLAUDE_PLUGIN_ROOT}/skills/audit-skill-visibility/scripts/skill-pair-cooccurrence.sh" \ - plugins/harness-ops/skills/audit-skill-visibility/scripts/audit_skill_visibility.py, line 1185
result = subprocess.run( - plugins/harness-ops/skills/audit-skill-visibility/scripts/audit_skill_visibility.py, line 1188
except (OSError, subprocess.TimeoutExpired): - plugins/harness-ops/skills/audit-skill-visibility/scripts/audit_skill_visibility.py, line 1606
result = subprocess.run( - plugins/harness-ops/skills/audit-skill-visibility/scripts/audit_skill_visibility.py, line 1615
except subprocess.TimeoutExpired: - plugins/harness-ops/skills/audit-skill-visibility/scripts/test_audit_skill_visibility.py, line 2162
self.run = lambda *a: subprocess.run( - plugins/harness-ops/lib/prerequisites.mjs, line 30
import { spawnSync } from "node:child_process"; - plugins/harness-ops/lib/prerequisites.mjs, line 353
const r = spawnSync(path.resolve(file), args, { - plugins/harness-ops/lib/prerequisites.mjs, line 703
const r = spawnSync(process.execPath, [installer, "verify", "--quiet", "--repo", repo, "--plugin-root", root], { - plugins/harness-ops/.claude-plugin/plugin.json, line 187
"description": "Command run detached at SessionEnd with one argument: a directory holding the session files about to be pruned, deleted on the next retention ru - plugins/harness-ops/hooks/exec-bash.mjs, line 111
import { spawn, spawnSync } from "node:child_process"; - plugins/harness-ops/hooks/hook-failure-audit.test.sh, line 280
assert_absent "bash -c line-numbered error is not stale config" "$OUT_S" "$STALE_LABEL" - plugins/harness-ops/hooks/hook-failure-audit.test.sh, line 807
bash -c "$row_cmd" >/dev/null 2>&1 || row_rc=$? - plugins/harness-ops/hooks/hooks.json, line 12
"command": "node", - plugins/harness-ops/hooks/hooks.json, line 29
"command": "node", - plugins/harness-ops/hooks/hooks.json, line 45
"command": "node", - plugins/harness-ops/hooks/hooks.json, line 61
"command": "node",
and 15 more places
Sends data to these websites: x, code.claude.com
The author does not mention this. It runs automatically when the plugin is installed.
Found in 34 places.
Show 17 more
- plugins/harness-ops/hooks/hook-events.registry.json, line 28
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 38
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 48
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 58
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 68
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 78
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 88
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 98
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 108
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 118
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 128
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 138
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 148
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 158
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 168
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 178
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 188
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)",
and 14 more places
Changes files outside its own folder
The author does not mention this. It runs automatically when the plugin is installed.
Found in 2 places.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'audit-skill-visibility' ] || [ -L ~/.agents/skills/'audit-skill-visibility' ]; then echo 'A skill folder named audit-skill-visibility already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/melodic-software/claude-code-plugins' "$d" && git -C "$d" checkout --quiet '677e7988f432dacb5e2d4df2b124f96da8e8f9f3' -- 'plugins/harness-ops/skills/audit-skill-visibility' && mkdir -p ~/.agents/skills && cp -R "$d"/'plugins/harness-ops/skills/audit-skill-visibility' ~/.agents/skills/'audit-skill-visibility' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'audit-skill-visibility' ~/.claude/skills/'audit-skill-visibility' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for melodic-software/claude-code-plugins shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/melodic-software/claude-code-plugins/)
Score history
| Date | Version | Score |
|---|
| 2026-11-09 | 677e798 | 80 |
| 2026-11-07 | 81c7244 | 80 |