From snowglobe-skills
Analyzes a target snowglobe_agent.py for validation errors and example inconsistencies, then fixes them. Trigger when the user says "fix my agent", "analyze my agent", "clean up my snowglobe agent", "fix the tool defs", or similar requests to audit and repair a Snowglobe agent file.
How this skill is triggered — by the user, by Claude, or both
Slash command
/snowglobe-skills:analyze-fix-snowglobe-agentThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Your job is to run the full validation suite against a `snowglobe_agent.py`, then apply fixes
Your job is to run the full validation suite against a snowglobe_agent.py, then apply fixes
directly to the file for every failure and report what changed.
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 analyze.
Find the validator runner:
find . -path "*/validate-snowglobe-agent/run_validators.py" | head -1
Strip the filename to get <validate_skill_dir>. Check whether <validate_skill_dir>/.venv
exists; if not, create it:
python3 -m venv <validate_skill_dir>/.venv
If <validate_skill_dir>/requirements.txt exists, install deps:
<validate_skill_dir>/.venv/bin/pip install -q -r <validate_skill_dir>/requirements.txt
<validate_skill_dir>/.venv/bin/python <validate_skill_dir>/run_validators.py <path/to/snowglobe_agent.py>
Record every failure. The runner prints structured output — read it carefully. You will fix each failure in Step 4.
Read the target file fully. For each failed validator, apply the appropriate fix:
valid_property_key_chars failures — invalid punctuation in property keysFor every offending key (e.g. disabled?, amount$):
?, replace . with
_, etc.).parameters.properties or
returns.properties, and in any examples that reference it.disabled? → disabled, amount.usd → amount_usd.no_placeholder_braces_in_examples failures — […] or {…} in example valuesFor every offending string value:
"[email]" → "[email protected]", "[ORDER_ID]" → "ORD-4821",
"{amount}" → 14.99.example_keys_match_properties failuresparameters.properties: add the missing property to
parameters.properties with an inferred type and description, or remove it from the
example — whichever is clearly correct. If uncertain, flag for the user.returns.properties: add it to returns.properties.returns.properties never appearing in any example output: flag for the user —
the property may be vestigial or the examples may be incomplete.example_type_consistency failuresexample_cross_consistency failuresreturns.properties.example_required_fields failuresrequired not in parameters.properties: remove it from required.examples_exist failuresexamples array, drawn from the
property descriptions and any realistic values visible in the code.## Fixes applied
- [tool_name] parameters.properties: renamed 'disabled?' → 'disabled'
- [tool_name] examples[0].input.customer_email: replaced '[email]' → '[email protected]'
- ...
## Needs review
- [tool_name] returns.properties: key 'legacy_id' never appears in any example output
- ...
## No issues found
- [tool_name] ✓
Provides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.
npx claudepluginhub guardrails-ai/snowglobe-skills --plugin snowglobe-skills