Skill Store — Smart Installation Advisor
Find the right skill without the guesswork. Searches ClawHub, evaluates candidates on security + quality, and recommends the best one.
Usage
python3 scripts/evaluate.py "your search query" [options]
Examples
# Find a weather skill
python3 scripts/evaluate.py "weather forecast"
# Evaluate top 3 only, save reports
python3 scripts/evaluate.py "image generation" --top 3 --output-dir ./reports
# Use a specific skills workspace for clawhub
python3 scripts/evaluate.py "security audit" --workdir /path/to/workspace
Options
| Option | Default | Description |
|---|
--top N | 5 | Number of candidates to evaluate |
--output-dir DIR | (stdout) | Save report.md and report.json to DIR |
--workdir DIR | /tmp/skill-store-eval-* | Working directory for clawhub install |
--scanner PATH | auto-detect | Path to skill-shield's scan.py |
--keep-all | false | Don't uninstall non-recommended candidates |
Output
Prints a Markdown comparison report to stdout. With --output-dir, also writes:
report.md — human-readable comparison
report.json — structured evaluation data
How It Works
- Searches ClawHub for skills matching your query
- Installs top N candidates into a temporary directory
- Runs skill-shield security scan on each candidate
- Evaluates code quality (lines of code, documentation, tests, structure)
- Scores and ranks candidates (security 40%, quality 30%, relevance 30%)
- Generates comparison report with recommendation
- Uninstalls non-recommended candidates (unless
--keep-all)
Scoring
| Dimension | Weight | What's measured |
|---|
| Security | 40% | skill-shield rating, findings count, permission audit |
| Quality | 30% | Code lines, SKILL.md completeness, README, tests |
| Relevance | 30% | clawhub search score (normalized) |
Requirements
clawhub CLI installed and authenticated
skill-shield scan.py accessible (auto-detected from sibling directory or via --scanner)
- Python 3.8+
Exit Codes
| Code | Meaning |
|---|
| 0 | Recommendation made successfully |
| 1 | No candidates found or all evaluations failed |