Skip to main content

Hierarchical skills taxonomy + DSPy workflow prototype

Project description

๐Ÿš€ Skill Fleet

Python 3.12+ License: Apache 2.0 Code style: Ruff

A local-first platform for creating, validating, and curating AI agent skills as standards-compliant artifacts.

Skill Fleet transforms natural language descriptions into production-ready agent skills using an intelligent three-phase workflow: Understanding โ†’ Generation โ†’ Validation. Built on DSPy for reliable, optimizable LLM programs.

# Create a skill in minutes
uv run skill-fleet chat "Create a React hooks mastery skill for intermediate developers"

โœจ Why Skill Fleet?

Traditional prompt engineering creates fragile, unversioned prompts that break when models change. Skill Fleet creates structured, validated, reusable artifacts that agentskills.io-compliant agents can consume.

Key Differentiators

Feature Traditional Prompts Skill Fleet
Creation Manual, trial-and-error AI-assisted, structured workflow
Validation Ad-hoc testing Multi-phase validation with quality gates
Format Plain text agentskills.io compliant SKILL.md
Dependencies Implicit Explicitly declared and validated
Versioning None Git-tracked with promotion workflow
Discovery None Hierarchical taxonomy with search

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.12+
  • uv package manager
  • Git
  • API Key: Google (Gemini) or LiteLLM proxy

Installation

# Clone and setup
git clone https://github.com/qredence/skill-fleet.git
cd skill-fleet
uv sync --group dev

# Configure environment
cp .env.example .env
# Edit .env and add your GOOGLE_API_KEY or LITELLM credentials

First Skill Creation

# Start the API server
uv run skill-fleet serve

# In another terminal, create a skill interactively
uv run skill-fleet chat "Create a skill for Python decorators"

# Or create non-interactively with auto-approval
uv run skill-fleet create "Build a React testing skill" --auto-approve

# Validate the generated skill
uv run skill-fleet validate skills/_drafts/<job_id>

# Promote to taxonomy when ready
uv run skill-fleet promote <job_id>

๐Ÿ—๏ธ Architecture

Skill Fleet uses a three-phase workflow powered by DSPy:

User Request
    โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Phase 1: Understanding                                 โ”‚
โ”‚  - Extract requirements                                 โ”‚
โ”‚  - Analyze intent                                       โ”‚
โ”‚  - Build execution plan                                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
    โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Phase 2: Generation                                    โ”‚
โ”‚  - Create SKILL.md with YAML frontmatter                โ”‚
โ”‚  - Generate code examples                               โ”‚
โ”‚  - Apply category-specific templates                    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
    โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Phase 3: Validation                                    โ”‚
โ”‚  - Structure validation                                 โ”‚
โ”‚  - Compliance checking                                  โ”‚
โ”‚  - Quality assessment (Best-of-N)                       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
    โ†“
Draft Ready for Review โ†’ Promote to Taxonomy

Draft-First Workflow

  1. Draft Phase: Skills are generated into skills/_drafts/<job_id>/
  2. Review Phase: Human-in-the-loop (HITL) for feedback and refinement
  3. Promotion Phase: Validated skills moved to stable taxonomy paths

๐Ÿ“‹ CLI Reference

Core Commands

Command Description Example
serve Start FastAPI server uv run skill-fleet serve --reload
dev Start server + TUI uv run skill-fleet dev
chat Interactive skill creation uv run skill-fleet chat "Create..."
create Non-interactive creation uv run skill-fleet create "..." --auto-approve
validate Validate skill directory uv run skill-fleet validate ./skills/_drafts/job_123
promote Promote draft to taxonomy uv run skill-fleet promote job_123
generate-xml Export skills as XML uv run skill-fleet generate-xml

Server Options

# Development mode with auto-reload
uv run skill-fleet serve --reload

# Skip database initialization
uv run skill-fleet serve --skip-db-init

# Custom port
uv run skill-fleet serve --port 8080

Validation Options

# Validate with JSON output for scripting
uv run skill-fleet validate ./my-skill --json

# Strict validation (fail on warnings)
uv run skill-fleet validate ./my-skill --strict

๐Ÿ”ง Configuration

Environment Variables

Create .env file (copy from .env.example):

Variable Required Description
GOOGLE_API_KEY Yes* Gemini API key (or use LiteLLM)
LITELLM_API_KEY Yes* LiteLLM proxy API key
LITELLM_BASE_URL With LiteLLM LiteLLM proxy root (e.g. http://localhost:4000)
DATABASE_URL Production PostgreSQL connection string
SKILL_FLEET_ENV No development (default) or production
SKILL_FLEET_CORS_ORIGINS Production Comma-separated allowed origins

* Choose either Google API key OR LiteLLM credentials.

Note: LITELLM_BASE_URL must point to the LiteLLM proxy root (or optional /v1). Provider endpoints like .../generateContent are invalid and will error.

Development vs Production

Development Mode (SKILL_FLEET_ENV=development):

  • SQLite fallback (no DATABASE_URL required)
  • CORS allows *
  • Debug logging
  • Auto-reload enabled

Production Mode (SKILL_FLEET_ENV=production):

  • PostgreSQL required
  • Explicit CORS origins required
  • Structured logging
  • Security headers enabled

๐ŸŒ API Reference

When the server is running, access interactive documentation:

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

Key Endpoints

Endpoint Method Description
/health GET Health check
/api/v1/skills POST Create skill (returns job ID)
/api/v1/skills/stream POST Create skill with SSE streaming
/api/v1/skills/{id} GET Get skill by ID
/api/v1/jobs/{id} GET Get job status and results
/api/v1/taxonomy GET List taxonomy categories
/api/v1/hitl/responses POST Submit HITL response

Streaming API

For real-time progress updates:

curl -X POST http://localhost:8000/api/v1/skills/stream \
  -H "Content-Type: application/json" \
  -d '{
    "task_description": "Create a Python asyncio skill",
    "user_id": "developer-1",
    "enable_hitl": true
  }'

Returns Server-Sent Events (SSE) with:

  • Phase transitions (Understanding โ†’ Generation โ†’ Validation)
  • Real-time reasoning and thoughts
  • Progress updates
  • HITL suspension points

๐Ÿงช Development

Setup

# Install dependencies
uv sync --group dev

# Run linting and formatting
uv run ruff check --fix .
uv run ruff format .

# Run type checker
uv run ty check

# Run tests
uv run pytest

# Run specific test
uv run pytest tests/unit/test_async_utils.py -v

Pre-commit Hooks

# Install hooks
uv run pre-commit install

# Run manually
uv run pre-commit run --all-files

Project Structure

src/skill_fleet/
โ”œโ”€โ”€ api/                    # FastAPI application
โ”‚   โ”œโ”€โ”€ v1/                 # API endpoints (skills, jobs, HITL)
โ”‚   โ””โ”€โ”€ services/           # Business logic layer
โ”œโ”€โ”€ cli/                    # Typer CLI application
โ”œโ”€โ”€ core/                   # Core business logic
โ”‚   โ”œโ”€โ”€ modules/            # DSPy modules (generation, validation)
โ”‚   โ”œโ”€โ”€ signatures/         # DSPy signatures
โ”‚   โ””โ”€โ”€ workflows/          # Workflow orchestration
โ”œโ”€โ”€ taxonomy/               # Taxonomy management
โ””โ”€โ”€ infrastructure/         # Database, monitoring, tracing

๐Ÿ“š Documentation

Document Description
docs/README.md Documentation index and navigation
docs/tutorials/getting-started.md Step-by-step onboarding
docs/how-to-guides/create-a-skill.md End-to-end creation guide
docs/how-to-guides/validate-a-skill.md Validation details
docs/reference/api/endpoints.md Complete API reference
AGENTS.md Development workflow guide
SECURITY.md Security policy

๐Ÿค Contributing

We welcome contributions! Please see docs/explanation/development/contributing.md for guidelines.

Quick Contribution Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests and linting (uv run pre-commit run --all-files)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

๐Ÿ“„ License

Apache License 2.0. See LICENSE for details.


๐Ÿ”— Related Projects

  • DSPy - The framework powering our LLM programs
  • agentskills.io - The skill standard we implement
  • LiteLLM - Proxy for multiple LLM providers

Version: 0.3.6 Status: Alpha Last Updated: 2026-02-03

Built with โค๏ธ by the Qredence team

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skill_fleet-0.3.6.tar.gz (765.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skill_fleet-0.3.6-py3-none-any.whl (446.9 kB view details)

Uploaded Python 3

File details

Details for the file skill_fleet-0.3.6.tar.gz.

File metadata

  • Download URL: skill_fleet-0.3.6.tar.gz
  • Upload date:
  • Size: 765.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for skill_fleet-0.3.6.tar.gz
Algorithm Hash digest
SHA256 3da25f91d9b0c85dad4a29deeaf79a863f996c92152a88ee413bab03cdc7cd8e
MD5 b7c11d1c41533713f0b2b4998930044c
BLAKE2b-256 f3ae98cda947e1ecd56dfdd3401243bf7a75f6cb13d911416eed6972705692d0

See more details on using hashes here.

File details

Details for the file skill_fleet-0.3.6-py3-none-any.whl.

File metadata

  • Download URL: skill_fleet-0.3.6-py3-none-any.whl
  • Upload date:
  • Size: 446.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for skill_fleet-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 034f6b3252daa9a6beca30fd2e0d5deebeddb36592ce767fcd5af41a87361dee
MD5 dfd0867f191842a9d22fefc72b04c4e7
BLAKE2b-256 af684f80477cec145983645eb60b0d054fd8d8eb76d0d3eb0cc47866cf7170d3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page