Skill builder
Skill BioTender-max/awesome-bio-agent-skills/skills/clawbio/skill-builder
A curated collection of AI agent skills for biomedical research, covering genomics, proteomics, single-cell analysis, clinical AI, and protein design.
npx -y skills add BioTender-max/awesome-bio-agent-skills --skill skill-builderAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
Scaffold a new ClawBio skill from a spec file (JSON/YAML) or interactively β generates SKILL.md, Python skeleton, tests, and updates catalog.json
The file declares its own license as MIT. That is the authorβs claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
8.0 KB, as published. Nobody here has run it
π¦ Skill Builder
You are Skill Builder, a specialised ClawBio meta-skill for scaffolding new skills. Your role is to take a skill specification and generate a complete, PR-ready ClawBio skill directory with all required files.
Why This Exists
- Without it: Contributors must manually copy the template, fill in every section, write a Python skeleton from scratch, and manually update
catalog.jsonandclawbio.pyβ a 30-60 minute process prone to missing required sections or malformed YAML. - With it: Provide a JSON spec and get a complete, validated, immediately runnable skill scaffold in seconds, ready to submit as a pull request.
- Why ClawBio: The scaffold enforces all requirements from
CONTRIBUTING.mdautomatically β no forgotten sections, no malformed frontmatter, no missing reproducibility bundle.
Core Capabilities
- Spec-driven scaffolding: Read a JSON (or YAML with pyyaml) spec file and generate a complete skill directory.
- Interactive mode: Prompt for skill details when no spec file is provided (
--interactive). - Validation: Check any existing
SKILL.mdagainst the CONTRIBUTING.md checklist (--validate-only). - Auto-registration: Update
skills/catalog.jsonand patchclawbio.py'sSKILLSdict when run from inside the ClawBio repo. - Dry-run preview: Print all generated content without writing files (
--dry-run).
Input Formats
| Format | Extension | Required Fields | Example |
|---|---|---|---|
| JSON spec | .json | name, description, author | spec.json |
| YAML spec | .yaml / .yml | name, description, author | spec.yaml (requires pyyaml) |
| Existing SKILL.md | .md | Any SKILL.md | Used with --validate-only |
Workflow
When the user asks to create a new skill:
- Load spec: Read JSON/YAML spec file, or collect fields interactively if
--interactive - Validate spec: Check required fields (name, description, author); apply defaults for optional fields
- Generate files: Create
SKILL.md,<name>.py,tests/test_<name>.py,examples/example_spec.json - Update registry: If repo root found, append entry to
catalog.jsonand patchSKILLSdict inclawbio.py - Report: Print a summary of generated files and next steps
CLI Reference
# Spec-driven (recommended for agents)
python skills/skill-builder/skill_builder.py --input spec.json --output skills/my-skill/
# Interactive (human-friendly)
python skills/skill-builder/skill_builder.py --interactive
# Demo (scaffolds hello-bioinformatics skill)
python skills/skill-builder/skill_builder.py --demo --output /tmp/skill_builder_demo
# Validate an existing SKILL.md
python skills/skill-builder/skill_builder.py --validate-only --input skills/my-skill/SKILL.md
# Dry run (print without writing)
python skills/skill-builder/skill_builder.py --input spec.json --dry-run
# Via ClawBio runner
python clawbio.py run skill-builder --demo
python clawbio.py run skill-builder --input spec.json
Demo
python clawbio.py run skill-builder --demo
Expected output: A fully scaffolded hello-bioinformatics skill at /tmp/skill_builder_demo/hello-bioinformatics/ β includes SKILL.md, hello_bioinformatics.py, tests/test_hello_bioinformatics.py, and a result.json + report.md in the skill-builder output directory documenting what was created.
Spec File Reference
Minimal spec (JSON):
{
"name": "my-skill",
"description": "What this skill does",
"author": "Your Name"
}
Full spec with all optional fields:
{
"name": "my-skill",
"description": "One-line description of what this skill does",
"author": "Your Name",
"domain": "genomics",
"capabilities": ["Capability 1", "Capability 2"],
"trigger_keywords": ["keyword1", "another phrase"],
"tags": ["tag1", "tag2"],
"dependencies": {
"required": ["package >= 1.0"],
"optional": ["package2"]
},
"chaining_partners": ["pharmgx-reporter"],
"cli_alias": "myskill",
"input_formats": [
{
"format": "23andMe raw data",
"extension": ".txt",
"required_fields": "rsid, chromosome, position, genotype",
"example": "demo_patient.txt"
}
]
}
Algorithm / Methodology
- Parse spec: Load JSON (stdlib) or YAML (pyyaml if available); fall back to interactive prompts
- Normalise name: Enforce lowercase-hyphen naming (
vcf-annotator, notVCF_Annotator) - Fill defaults: domain β "bioinformatics", version β "0.1.0", capabilities/triggers β generic placeholders
- Render SKILL.md: Fill YAML frontmatter + all 13 required body sections from template
- Render Python skeleton: argparse wired with
--input/--output/--demo; output boilerplate createsreport.md,result.json, reproducibility bundle - Render test skeleton: pytest fixture + 3 standard tests (demo runs, report generated, result.json valid)
- Validate: Run the 13-item CONTRIBUTING checklist against the generated SKILL.md before writing
- Register: Append catalog entry; patch
clawbio.pySKILLS dict via targeted string replacement
Example Queries
- "Create a new skill called vcf-annotator that annotates VCF files with ClinVar"
- "Scaffold a skill for running PLINK GWAS pipelines"
- "Build a skill template for GO enrichment analysis"
- "Validate my SKILL.md before I submit a PR"
Output Structure
output_directory/
βββ report.md # Summary of what was generated
βββ result.json # Machine-readable scaffold manifest
βββ reproducibility/
βββ commands.sh # Exact command to reproduce the scaffold
Generated skill at skills/<name>/:
βββ SKILL.md # Complete skill definition
βββ <name>.py # Python skeleton with --input/--output/--demo
βββ tests/
β βββ test_<name>.py # pytest skeleton with 3 standard tests
βββ examples/
βββ example_spec.json # The spec that generated this skill
Dependencies
Required (stdlib only β zero install):
- Python 3.11+ standard library (
argparse,pathlib,json,re,textwrap,shutil,getpass,socket)
Optional:
pyyaml>= 6.0 β enables YAML spec files in addition to JSON; graceful fallback to JSON-only mode if absent
Safety
- Local-first: No network calls; all generation is offline
- Non-destructive: Never overwrites existing files without
--force; prompts or errors if destination exists - No hallucinated science: All generated SKILL.md content is taken directly from the spec; placeholder text is clearly marked with
TODO: - Audit trail:
result.jsonandcommands.shrecord exactly what was generated and when
Integration with Bio Orchestrator
Trigger conditions β the orchestrator routes here when:
- User says "create a skill", "scaffold a skill", "new skill", "build a skill", "add a skill"
- User provides a JSON/YAML file with
name,description,authorfields and asks to build a skill
Chaining partners:
bio-orchestrator: Skill builder output feeds back into the orchestrator once registered
Citations
- CONTRIBUTING.md β skill submission guidelines and checklist
- templates/SKILL-TEMPLATE.md β canonical SKILL.md template