From hal-skills
Analyzes SKILL.md and sibling files for tool references like Bash commands, Read/Edit paths outside project, and Skill invocations; updates allowed-tools frontmatter with missing entries.
npx claudepluginhub vinta/hal-9000 --plugin hal-skillsThis skill is limited to using the following tools:
Analyzes a skill's full content -- SKILL.md and any sibling files in the same directory -- to find tools it references or requires, then compares against the skill's `allowed-tools` frontmatter to find missing entries.
Migrates legacy .claude/commands/ files to .claude/skills/ directories in Claude Code repos. Actions: discover (find), analyze (map), migrate, audit, validate, fix.
Lints Claude skills for errors like broken symlinks and missing SKILL.md/frontmatter, warnings on description quality and fields, plus info on best practices. Includes bash script.
Share bugs, ideas, or general feedback.
Analyzes a skill's full content -- SKILL.md and any sibling files in the same directory -- to find tools it references or requires, then compares against the skill's allowed-tools frontmatter to find missing entries.
/update-allowed-tools <skill name>
/update-allowed-tools @path/to/SKILL.md
Parse argument: The argument is either a file path to a SKILL.md file, or a skill name/description. If no file path is provided, search for the skill using Glob — first in the current working directory (e.g., **/skills/**/<name>/SKILL.md), then in ~/.claude/skills/**/<name>/SKILL.md.
Read the skill file and separate the YAML frontmatter from the body content. Also read any other files in the same directory (sibling files referenced by or bundled with the skill).
Extract declared allowed-tools: Parse all entries under allowed-tools: in the frontmatter.
Scan all skill content (SKILL.md body + sibling files) for tool usage. Look for:
Read, Write, Edit, Bash, WebFetch, WebSearch, Task, AskUserQuestion, Skill, etc.git diff, git commit, make, npm, docker, python, curl, etc.Bash(<command>:*) (e.g., git stash push needs Bash(git stash:*))/tmp/ needs Read(//tmp/**))commit, Use the commit skill, Skill(commit). The required allowed-tool format is Skill(<name>) (e.g., commit needs Skill(commit))Compare: For each tool detected in the body, check if it's covered by an entry in allowed-tools. Rules:
Glob, Grep, Read, Write, Edit are available by default for files within the project directory. Only add these when the skill needs to access files outside the project (e.g., Read(//tmp/**), Write(~/.config/**)).Bash commands always need explicit Bash(<command>:*) entries.Bash(git stash:*) covers git stash push).WebSearch matches WebSearch).Update the skill file: For any missing tools found, add them to the allowed-tools list in the skill's YAML frontmatter using the Edit tool. Then report what was added.
Validate: Re-read the updated file to confirm YAML frontmatter remains syntactically valid (proper indentation, no duplicate entries, correct list format).