From snowglobe-skills
Validates a target snowglobe_agent.py by running a suite of code-based validation scripts. Trigger when the user says "validate my agent", "run validation on my agent", "check my snowglobe agent", or similar requests to verify a Snowglobe agent file is correct.
How this skill is triggered — by the user, by Claude, or both
Slash command
/snowglobe-skills:validate-snowglobe-agentThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Your job is to run the validation suite against a target `snowglobe_agent.py` and report the
requirements.txtrun_validators.pyvalidators/example_cross_consistency.pyvalidators/example_jsonschema_validation.pyvalidators/example_keys_match_properties.pyvalidators/example_required_fields.pyvalidators/example_type_consistency.pyvalidators/examples_exist.pyvalidators/no_placeholder_braces_in_examples.pyvalidators/valid_property_key_chars.pyYour job is to run the validation suite against a target snowglobe_agent.py and report the
results clearly.
If the user has not specified a file, look for a snowglobe_agent.py in the current working
directory or its immediate subdirectories. If you find exactly one, use it. If you find multiple
or none, ask the user which file to validate.
The validators live alongside this skill file. Find the skill directory by running:
find . -path "*/validate-snowglobe-agent/run_validators.py" | head -1
Strip the filename — that directory is <skill_dir>. Everything below runs relative to it.
Check whether <skill_dir>/.venv exists. If not, create it:
python3 -m venv <skill_dir>/.venv
The venv python is at <skill_dir>/.venv/bin/python. Use this python for all subsequent
commands — never the system python.
If any validators declare dependencies in a requirements.txt alongside this SKILL.md, install
them now:
<skill_dir>/.venv/bin/pip install -q -r <skill_dir>/requirements.txt
Skip the pip step if no requirements.txt exists.
Read the target file and extract the tool definitions yourself. Look for:
tool_defs() function body that returns a list of dicts@snowglobe_tool decorated function definitionsTOOLS_MAP dict whose values are tool spec dictsWrite the extracted definitions as a JSON array to tool_defs.json in the same directory as
the target file. The array should contain OpenAI-style tool spec dicts exactly as they would
be returned by tool_defs(). If no tool definitions exist, write [].
Example:
# You write this file before running the validators
<path/to/tool_defs.json>
Run the validator runner through the venv python:
<skill_dir>/.venv/bin/python <skill_dir>/run_validators.py <path/to/snowglobe_agent.py>
The runner will:
tool_defs.json from the same directory as the target file.sys.argv[1] and the tool definitions as JSON on stdin to each validator.Capture stdout and the exit code. The runner prints a structured report and exits 0 on full pass, 1 if any validator fails.
Present the results to the user:
Keep the report concise — the validator output already contains the detail. Do not paraphrase what the scripts say; quote their output directly.
New validators are standalone Python scripts dropped into the validators/ directory. Each:
sys.argv[1]0 on pass, non-zero on failjson.loads(sys.stdin.read())) — a list of OpenAI-style
tool spec dicts extracted from the agent file by the agent and written to tool_defs.jsonrequirements.txt (the venv has no extras
by default)The runner discovers and executes them automatically in alphabetical order via the venv python. No registration required.
npx claudepluginhub guardrails-ai/snowglobe-skills --plugin snowglobe-skillsProvides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.