Sandbox
@ma-compbio-lab/SkillFoundry

Skill framework for scientific agents

SkillFoundry is a framework for building and validating reusable skills from scientific resources. It uses a domain tree, resource mining, skill compilation, and multi-level testing to grow a skill library over time.

39 stars5 forksHTMLUpdated 4mo ago
Who it's for

Builders who want a scientific agent to discover and validate reusable skills from heterogeneous research resources.

What it delivers

You can turn scattered scientific knowledge into tested skills your agent can reuse instead of rebuilding each time.

What it does

Domain tree workflow

Builds a rooted domain and subdomain tree that guides what skills to search for next.

Resource mining

Searches for relevant repositories, APIs, papers, notebooks, and databases for a chosen focus branch.

Skill compilation

Extracts operational contracts and packages them as reusable skills with metadata, dependencies, and tests.

Multi-level validation

Runs execution testing, system testing, and synthetic-data testing before a skill is added.

Closed-loop refinement

Revises, merges, or prunes weak skills and then repeats the discovery loop.

CLI workflows

Provides commands for status checks, cycle runs, skill design, evaluation, and long campaigns.

How to get it

  1. 1Run
    git clone https://github.com/ma-compbio-lab/SkillFoundry.git
    cd SkillFoundry
    pip install -e .       # Install the skillfoundry package
  2. 2Run
    make validate        # Validate repository structure
    make build-site      # Build the project page
    make test            # Run unit tests
  3. 3Inspect the current repository summary and identify high-value frontier leaves
    python3 scripts/sciskill_framework.py --json status --focus-limit 10
  4. 4Run one or more automation loops to discover and build new skills
    # Single loop
    python3 scripts/sciskill_framework.py cycle --loops 1 --verification-mode standard
    
    # Parallel workers with custom focus
    python3 scripts/sciskill_framework.py cycle \
      --loops 2 --focus-limit 12 --stage-workers 4 \
      --stages tree_check,resource_search,skill_build,skill_test,refresh \
      --extra-context "Prioritize uncovered leaves in robotics and physics."
  5. 5Design a skill from a specific task description
    python3 scripts/sciskill_framework.py design-skill \
      --prompt "Design a skill for literature-backed pathway enrichment benchmarking." \
      --verification-mode validate
  6. 6Run hierarchical evaluation (correctness repair, benchmarking, novelty checking)
    # Single skill
    python3 scripts/sciskill_framework.py evaluate-skills \
      --skill-slug openalex-literature-search \
      --verification-mode validate
    
    # Full library
    python3 scripts/sciskill_framework.py evaluate-skills --all --verification-mode none

README

SkillFoundry

Building Self-Evolving Agent Skill Libraries from Heterogeneous Scientific Resources

Shuaike Shen*, Wenduo Cheng*, Mingqian Ma, Alistair Turcan, Martin Jinye Zhang, Jian Ma†

Ray & Stephanie Lane Computational Biology Department, School of Computer Science, Carnegie Mellon University

[*Equal contribution · †Correspondence: jianma@cs.cmu.edu]

Project Page  arXiv  Paper  GitHub


Overview

Modern scientific ecosystems are rich in procedural knowledge — repositories, APIs, scripts, notebooks, documentation, databases, and papers — yet much of this knowledge remains fragmented and difficult for agents to operationalize. SkillFoundry bridges this gap with a self-evolving framework that converts heterogeneous scientific resources into validated, reusable agent skills.

SkillFoundry framework overview
Figure 1. SkillFoundry framework overview: from domain knowledge tree to validated skill library.

Key Results

267+ skillsmined across 28 scientific domains and 254 subdomains
71.1% noveltyvs. existing skill libraries (SkillHub, SkillSMP)
5/6 datasets improvedon MoSciBench benchmark
Genomics boostsubstantial gains on two challenging genomics tasks

How It Works

SkillFoundry uses a domain knowledge tree as both a search prior and the evolving structure being updated, turning open-ended skill collection into a closed-loop acquisition process:

StepStageDescription
1Tree ConstructionBuild a rooted tree where internal nodes are domains/subdomains and leaves are actionable skill targets
2Resource MiningSelect focus branches and retrieve relevant resources (repos, APIs, papers, notebooks, databases)
3Skill CompilationExtract operational contracts and compile into reusable skill packages with metadata, dependencies, and tests
4Multi-Level ValidationApply execution testing, system testing, and synthetic-data testing
5Tree ExpansionInsert validated skills as new leaves, expanding domain coverage
6Refinement & LoopRevise, merge, or prune failing/redundant skills; repeat from step 2

Repository Structure

SkillFoundry/
├── skillfoundry/             # Core automation framework (Python package)
│   ├── cli.py                #   CLI entry point
│   ├── orchestrator.py       #   Skill automation orchestrator
│   ├── campaign.py           #   Long-running campaign runner
│   ├── evaluation.py         #   Hierarchical skill evaluation
│   └── ...
├── scripts/                  # Utility & validation scripts
├── registry/                 # Taxonomy, resource registry, skill index
├── skills/                   # Reusable skill folders grouped by domain (27 domains)
├── tests/                    # Test suites (smoke, integration, regression)
├── site/                     # Generated project page (static HTML/JS/CSS)
├── ref/                      # Reference materials
└── Makefile                  # Build, validate, test, and smoke targets

Getting Started

Prerequisites

  • Python 3.10+

Installation

git clone https://github.com/ma-compbio-lab/SkillFoundry.git
cd SkillFoundry
pip install -e .       # Install the skillfoundry package

Quick Validation

make validate        # Validate repository structure
make build-site      # Build the project page
make test            # Run unit tests

Framework Usage

The skillfoundry package provides a CLI for automated skill discovery, compilation, and evaluation. It orchestrates the closed-loop tree_check -> resource_search -> skill_build -> skill_test -> refresh pipeline.

Status

Inspect the current repository summary and identify high-value frontier leaves:

python3 scripts/sciskill_framework.py --json status --focus-limit 10

Cycle

Run one or more automation loops to discover and build new skills:

# Single loop
python3 scripts/sciskill_framework.py cycle --loops 1 --verification-mode standard

# Parallel workers with custom focus
python3 scripts/sciskill_framework.py cycle \
  --loops 2 --focus-limit 12 --stage-workers 4 \
  --stages tree_check,resource_search,skill_build,skill_test,refresh \
  --extra-context "Prioritize uncovered leaves in robotics and physics."

Design Skill

Design a skill from a specific task description:

python3 scripts/sciskill_framework.py design-skill \
  --prompt "Design a skill for literature-backed pathway enrichment benchmarking." \
  --verification-mode validate

Evaluate Skills

Run hierarchical evaluation (correctness repair, benchmarking, novelty checking):

# Single skill
python3 scripts/sciskill_framework.py evaluate-skills \
  --skill-slug openalex-literature-search \
  --verification-mode validate

# Full library
python3 scripts/sciskill_framework.py evaluate-skills --all --verification-mode none

Campaign

Run a long checkpointable campaign targeting specific domains:

python3 scripts/sciskill_framework.py campaign \
  --focus-term genomics --focus-term proteomics \
  --max-iterations 100 --max-runtime-minutes 450 \
  --stage-workers 6 --evaluation-workers 6

Citation

Citation information will be available once the paper is published. Check back later.


License

This project is licensed under the Apache License 2.0 and developed at Ma Lab, Carnegie Mellon University.

Files in the repo

Repository payload15 top-level entries
  • integration
  • registry
  • regression
  • scripts
  • site
  • skillfoundry
  • skills
  • tests
  • .DS_Store
  • .gitignore
  • LICENSE
  • Makefile
  • pyproject.toml
  • README.md
  • settings.json

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More frameworks & sdks

HKUDS/nanobotFrameworks & SDKs

Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps

48k
microsoft/
SkillOpt
microsoft/SkillOptFrameworks & SDKs

SkillOpt is a text-space optimizer that trains reusable natural-language skills for frozen LLM agents through trajectory-driven edits, validation-gated updates, and deployable best_skill.md artifacts.

17k
omnigent-ai/omnigentFrameworks & SDKs

Omnigent is an open-source AI agent framework and meta-harness: orchestrate Claude Code, Codex, Cursor, Pi, and custom agents — swap harnesses without rewriting, enforce policies and sandboxing, and collaborate in real time from any device.

9.8k
kyegomez/
OpenMythos
kyegomez/OpenMythosFrameworks & SDKs

A theoretical reconstruction of the Claude Mythos architecture, built from first principles using the available research literature.

15k
D4Vinci/ScraplingFrameworks & SDKs

🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!

80k