Install
openclaw skills install @welove111/skill-doctorDiagnoses the health of your published ClawHub skills and plugins, then prescribes concrete next actions. Use when: (1) User asks how their skill/plugin is performing, (2) User wants to know which of their published items needs attention, (3) User asks for growth advice on a ClawHub listing, (4) User wants a portfolio-wide check-up across all their skills and plugins, (5) User mentions stalled downloads, low install conversion, a pending/suspicious moderation verdict, or a stale version. Works standalone with rule-based diagnostics, or with an Anthropic API key for deeper narrative analysis.
openclaw skills install @welove111/skill-doctorA check-up for your ClawHub portfolio. Skill Doctor pulls live data for every skill and plugin you own via clawhub inspect / clawhub package inspect, runs it through a rule-based diagnostic engine, and hands you a prioritized prescription: what's healthy, what's at risk, and what to do about it this week.
Think of it as a doctor's visit for your published work — vitals in, diagnosis out.
Tools like clawhub-monitor-all.sh (or any cron-based watcher) tell you what changed. Skill Doctor tells you what it means — whether a number is good, bad, or needs context, and what the highest-leverage next step is.
Before running a check-up, verify the clawhub CLI is installed and authenticated:
command -v clawhub >/dev/null 2>&1 || { echo "clawhub CLI not found — install it first"; exit 1; }
Confirm a config directory exists for storing diagnostic history (used for trend detection across runs):
mkdir -p ~/.skill-doctor
[ -f ~/.skill-doctor/config.json ] || echo '{"slugs":[],"plugins":[],"anthropic_api_key":null}' > ~/.skill-doctor/config.json
Never overwrite an existing config. Ask the user which slugs/plugins to track on first run if the config is empty.
| Situation | Action |
|---|---|
| First run, no config | Ask user for their skill slugs and plugin names, save to ~/.skill-doctor/config.json |
| User asks "how's my skill doing?" | Run scripts/checkup.py --slug <name> |
| User asks for full portfolio review | Run scripts/checkup.py --all |
| User wants deeper analysis, has an API key | Run scripts/checkup.py --all --deep |
| User wants a visual trend | Run scripts/checkup.py --all --chart |
Verdict is suspicious or malware | Treat as critical — surface immediately, do not wait for scheduled run |
| Download-to-install ratio is low | Flag as conversion issue, suggest description/positioning review |
| Version is stale (>90 days, no changes) | Flag as staleness issue |
| No prior state on file | First-time baseline only — do not report deltas, just current standing |
python3 scripts/checkup.py --slug proof-of-contribution
python3 scripts/checkup.py --all
python3 scripts/checkup.py --all --deep
This sends the structured diagnostic (not raw secrets) to the Anthropic API for a short narrative summary and prioritized recommendation. It is opt-in — never send data to the API unless --deep is explicitly passed and a key is configured.
python3 scripts/checkup.py --all --chart
Outputs a PNG to ~/.skill-doctor/charts/ showing downloads/installs over time per skill, using locally stored history — no new API calls.
Skill Doctor groups every finding into one of these, mirroring how a real check-up triages issues:
| Category | Meaning | Example Finding |
|---|---|---|
vitals | Core health signals | Downloads, installs, active installs, stars |
moderation | Trust/safety status | clean, pending, suspicious, malware |
conversion | Funnel efficiency | Downloads high but installs low — description/positioning issue |
staleness | Maintenance signal | No version bump in N days while downloads keep growing |
momentum | Trend direction | Accelerating, flat, or declining vs. prior check |
risk | Anything urgent | Suspicious verdict, malware flag, sudden drop in active installs |
| Severity | Meaning | Response |
|---|---|---|
critical | Trust/safety issue or active-install collapse | Surface immediately, suggest action same day |
warning | Conversion or staleness issue | Include in next scheduled report |
info | Healthy, positive trend, or no action needed | Note only, no action required |
Each check-up produces one prescription block per skill/plugin:
## 🩺 <Display Name> (<slug>)
**Status**: healthy | needs-attention | critical
**Verdict**: clean | pending | suspicious | malware
### Vitals
- Downloads: X (Δ since last check: +Y)
- Installs (all-time): X
- Active installs: X
- Stars: X
### Findings
- [severity] Finding description
### Prescription
1. Concrete, specific next action
2. Concrete, specific next action
---
These are deterministic checks Skill Doctor always runs, no API key required. See references/diagnostic-rules.md for the full rule set and exact thresholds — summarized here:
conversionstalenessaccelerating / flat / decliningclean → flag moderation, severity scales with verdictriskWhen --deep is passed and ~/.skill-doctor/config.json has a valid anthropic_api_key:
If no key is configured, skip this step silently and rely on rule-based output only — never block the core check-up on missing AI access.
See references/deep-analysis-setup.md for API key configuration.
Each run stores a snapshot per slug at ~/.skill-doctor/state/<slug>.json so the next run can compute deltas and momentum. This mirrors the state-file pattern used by shell-based ClawHub watchers, but in structured JSON for easier analysis and charting.
Do not log API keys, tokens, or full clawhub inspect payloads beyond what's needed for the metrics above.
If a diagnostic pattern proves broadly useful (e.g., a new rule that catches a real issue across many users' skills), it can be proposed as an addition to references/diagnostic-rules.md rather than hardcoded per-user — keep the core engine generic so it works for anyone's ClawHub portfolio, not just one project.
If Skill Doctor saved you time, consider sending a few sats:
⚡ Lightning: welove@blink.sv
critical findings as same-day items — moderation issues affect trust immediately--deep opt-in — rule-based diagnostics should never depend on network/API availability