claude-skill-prereq-audit
Original:🇺🇸 English
Translated
Scan skills for prerequisite tools, MCP servers, and auth requirements, then check if everything is installed and authenticated. Offers to fix issues. Use when setting up a new machine, after installing skills, or to verify your environment. Triggers: "check prerequisites", "skill prereqs", "are my tools installed", "verify skill dependencies", "/claude-skill-prereq-audit".
2installs
Sourcejackchuka/skills
Added on
NPX Install
npx skill4agent add jackchuka/skills claude-skill-prereq-auditTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Skill Prerequisite Check
Scan installed skills, discover their tool/MCP/auth dependencies via heuristic parsing, check if everything is installed and authenticated, and offer to fix issues interactively.
When to Use
- Setting up a new machine
- After installing new skills
- Verifying environment is ready for all skills
- Debugging "tool not found" errors during skill execution
Arguments
Parse from the user's invocation:
- Skill names: Any tokens after the command → filter to those skills only
- Default: scan all skills in and
~/.claude/skills/.claude/skills/
Workflow
Phase 1: Discover Skills
- Glob for and
~/.claude/skills/*/SKILL.md.claude/skills/*/SKILL.md - Follow symlinks
- If user specified skill names, filter the list to matching directory names
- Exclude this skill () from the scan list — its own SKILL.md contains tool references as parsing examples, not actual dependencies
skill-prereq-check - Read each SKILL.md file
Phase 2: Parse Prerequisites
For each SKILL.md, extract dependencies using these heuristics:
CLI tools:
- Extract command names (first token of each line) from fenced code blocks marked as ,
bash, orshellsh - Also scan sections and prose for backtick-quoted tool names followed by "CLI", "installed", or "required"
## Prerequisites - Ignore shell builtins and coreutils: ,
echo,cat,ls,mkdir,cd,grep,sed,awk,rm,cp,mv,date,wc,head,tail,sort,uniq,export,set,test,true,false,if,then,else,fi,for,do,done,while,case,esac,command,which,local,return,read,shift,printfdeclare - Ignore git subcommands: the tool is , not
gitgit commit - Deduplicate per skill
MCP servers:
- Scan for patterns — extract
mcp__<server>__as the MCP server name<server> - Also scan for or
<Name> MCP serverin prose — extract<Name> MCP toolslowercased<Name> - Deduplicate per skill
gh extensions:
- Scan for where
gh <word>is NOT a built-in gh command:<word>,pr,issue,release,api,auth,repo,project,run,extension,gist,ssh-key,gpg-key,secret,variable,codespace,label,ruleset,cache,attestation,status,browse,search,workflow,configalias - Record as gh extension dependency
Auth hints:
- Scan for ,
auth status,auth login,auth test,auth checkwithin 200 characters of a tool nameauthenticated - Mark that tool as needing an auth check
Phase 3: Check Dependencies
Run checks for all discovered dependencies. Use parallel Bash calls where possible. Deduplicate check commands across skills — if multiple skills depend on the same tool, run the check once and reuse the result.
CLI tools:
- Run — if exit code 0, installed; otherwise missing
command -v <tool> - If auth hint exists for this tool, run (or use the Bash tool's timeout parameter set to 10000ms) and check exit code. If exit code != 0, try
timeout 10 <tool> auth status 2>&1. If both fail, mark auth as "FAIL". If the command times out, mark auth as "TIMEOUT". If no auth hint, mark as "—"timeout 10 <tool> auth check 2>&1
MCP servers:
- Use ToolSearch with query to check if any
+<server>tools are available in the sessionmcp__<server>__* - If tools found → installed = "yes". If auth tool was referenced in the skill (e.g. ), call it to verify. Otherwise auth = "—"
auth_test - If no tools found → installed = "no", auth = "—"
gh extensions:
- Run once (cache the result)
gh extension list - Check if each extension name appears as a suffix in any line of the output (e.g., the line contains or ends with the extension name)
/<extension-name>
Phase 4: Present Results
Print a table grouped by skill:
## Prerequisite Check
| # | Skill | Tool | Type | Installed | Auth |
|---|-------|------|------|-----------|------|
| 1 | slack-triage | slack | mcp | yes | yes |
| 2 | meeting-scheduler | gws | cli | yes | FAIL |
| 3 | daily-report | gh | cli | yes | yes |
| 4 | daily-report | slackcli | cli | no | — |
| 5 | oss-release | oss-watch | gh-ext | no | — |
Summary: N skills checked, M tools found, X issues- "yes" = check passed
- "FAIL" = check ran and failed
- "—" = not applicable (not installed, or no auth pattern detected)
- Number each row for reference in the fix phase
If no issues found, print "All prerequisites satisfied." and stop.
Phase 5: Interactive Fix
If issues exist, ask: "Want me to fix any of these? (e.g. '2, 4' or 'all' or 'done')"
For each selected item, attempt the appropriate fix:
| Type | Issue | Fix Strategy |
|---|---|---|
| cli | not installed | Try |
| cli | auth FAIL | Run |
| mcp | not available | Tell user: "Add the |
| gh-ext | not installed | Run |
After each fix attempt, re-run the check for that item and show the updated row.
When all selected fixes are attempted, re-print the full table with updated results.
Error Handling
- If doesn't exist, report "No skills directory found at ~/.claude/skills/" and check only
~/.claude/skills/.claude/skills/ - If a tool's auth check hangs (>10s), kill it and mark as "TIMEOUT"
- If is not installed, suggest manual install instructions instead
brew
Examples
Example 1: Check all skills
User: "check prerequisites"
Action: Scan all skills, parse deps, check each, show tableExample 2: Check specific skills
User: "/skill-prereq-check slack-triage meeting-scheduler"
Action: Scan only those two skills, parse deps, check, show tableExample 3: Fix issues
User: (after seeing table) "fix 2, 5"
Action: Run `gws auth login` for item 2, `gh extension install` for item 5, re-check