🧪 Skills
Skill Doctor
Scans the skills folder for new, unused, or missing dependencies; fixes requirements.txt; and tests a skill in or out of sandbox.
v1.0.0
Description
name: skill-doctor displayName: Skill Doctor | OpenClaw Skill description: Scans the skills folder for new, unused, or missing dependencies; fixes requirements.txt; and tests a skill in or out of sandbox. version: 1.0.0
Skill Doctor | OpenClaw Skill
Scans workspace/skills (or a given folder) to detect missing and unused Python dependencies, can fix requirements.txt (add missing, optionally remove unused), and can test a skill using the skill-tester in sandbox (default) or no-sandbox mode.
Description
- Scan: For each skill, finds all Python files under the skill and its
scripts/folder, extracts top-level imports, and compares them torequirements.txt. Reports:- Missing: Imported but not listed in requirements (suggests adding).
- Unused: Listed in requirements but not imported (suggests removing).
- Fix: Adds missing packages to
requirements.txtand/or removes unused ones (--fix-unused). - Test: Runs the skill-tester for the given skill. Use
--no-sandboxto run tests with full environment (e.g. network); default runs in sandbox.
Stdlib modules and local modules (same skill’s .py files) are excluded from “missing”.
Installation
clawhub install skill-doctor
Or clone into your skills directory:
git clone https://github.com/Org/skill-doctor.git workspace/skills/skill-doctor
Usage
# Scan all skills (or default: scan)
python3 workspace/skills/skill-doctor/scripts/skill_doctor.py
# Scan one skill
python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill SUBAGENT-DASHBOARD --scan
# Fix: add missing deps to requirements.txt
python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill MY-SKILL --fix
# Fix: add missing and remove unused
python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill MY-SKILL --fix --fix-unused
# Dry-run fix (report only)
python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill MY-SKILL --fix --fix-unused --dry-run
# Test skill (sandbox)
python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill gateway-guard --test
# Test skill (no sandbox: full env)
python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill gateway-guard --test --no-sandbox
# JSON output
python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --scan --json
python3 workspace/skills/skill-doctor/scripts/skill_doctor.py --skill X --test --json
Commands
| Command / flags | Description |
|---|---|
--scan |
Scan skills and report missing/unused dependencies (default if no --fix/--test) |
--skill SLUG |
Limit to one skill |
--fix |
Add missing packages to requirements.txt |
--fix-unused |
With --fix, also remove unused packages |
--dry-run |
With --fix: only report what would be done |
--test |
Run skill-tester for the skill |
--no-sandbox |
Run tests with full env (no sandbox) |
--timeout N |
Test timeout in seconds (default 60) |
--json |
Output JSON |
--skills-dir PATH |
Override skills root (default: workspace/skills) |
What this skill does
- Discover skills — Finds dirs with
SKILL.mdor_meta.jsonunder the skills folder. - Parse Python — Uses
astto collect top-levelimport/import fromnames from all.pyfiles in the skill andscripts/. - Exclude stdlib and local — Ignores standard library modules and local modules (same skill’s file names).
- Map to pip — Maps import names to pip package names (e.g.
bs4→beautifulsoup4,yaml→PyYAML). - Compare — Compares required (from
requirements.txt) vs needed (from imports); reports missing and unused. - Fix — Writes
requirements.txt: append missing packages; optionally remove unused lines. - Test — Invokes
skill-tester/scripts/skill_tester.py --skill SLUG --json. Sandbox vs no-sandbox is controlled by--no-sandboxand theOPENCLAW_DOCTOR_NO_SANDBOXenv var for the test run.
Requirements
- Python 3.7+
- Optional: skill-tester for
--test(must be present underworkspace/skills/skill-tester).
Security & privacy
- Reads: Skill directories and their
.pyandrequirements.txtfiles. - Writes: Only
requirements.txtwhen using--fix(and--fix-unused). - Test: Runs skill-tester in a subprocess;
--no-sandboxmeans tests run with the current environment (e.g. network allowed).
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!