Skip to main content

Skills Manifest System

FastSkill uses a declarative manifest system inspired by modern package managers like Poetry and npm. This system allows you to define which skills should be installed in your project, manage their versions, and ensure reproducible installations.

Overview

FastSkill uses a unified skill-project.toml file for all project configuration, following industry-standard patterns like pyproject.toml and package.json. The manifest system consists of:
  1. skill-project.toml (project root) - Unified configuration file with [dependencies] section for skill dependencies and [tool.fastskill.repositories] for repository configuration
  2. skills.lock (project root) - Lock file recording exact installed state (like poetry.lock)
  3. skill-project.toml (skill directory) - Skill metadata for authors with [metadata] section

Context Detection

FastSkill automatically detects whether you’re working in a skill directory or project root:
  • Skill-level: skill-project.toml in directory with SKILL.md → requires [metadata] section with id and version
  • Project-level: skill-project.toml at project root → requires [dependencies] section
The same file name works in both contexts with different required sections.

skill-project.toml - Project-Level Configuration

The skill-project.toml file at your project root is the source of truth for which skills should be installed in your skills directory.

Basic Structure

Dependency Source Types

All existing dependency source types are supported in the [dependencies] section: Git Repository:
Local Path:
ZIP URL:
Registry Source:
With Groups:
Editable Install:

Groups

Skills can be organized into groups (like Poetry groups):
Install commands:
  • fastskill install - Installs all skills (default + all groups)
  • fastskill install --without dev - Installs all except dev group
  • fastskill install --only prod - Installs only prod group

Editable Installs

For local development, you can mark skills as editable:
Editable skills are installed as symlinks (on Unix) or references, allowing you to edit them in place without reinstalling.

Repository Configuration

Repository configuration is stored in the [tool.fastskill.repositories] section:
Repositories are searched in priority order (lower number = higher priority). If multiple repositories have the same priority, the first one in the file is used.

skills.lock - Lock File

The skills.lock file at your project root records the exact installed state of all skills for reproducibility.

Structure

Key Differences from skill-project.toml

When Lock File is Updated

The lock file is automatically updated when you:
  • Run fastskill install
  • Run fastskill add <skill>
  • Run fastskill update
  • Run fastskill remove <skill>
Never edit the lock file manually - it’s generated automatically to ensure accuracy.

Workflow Examples

Development Workflow

Production Deployment

Team Collaboration

Version Management

Semantic Versioning

Skills can use semantic versioning when distributed as ZIP files:

Git-Based Versioning

For Git sources, FastSkill tracks:
  • Branch: The branch being tracked
  • Commit Hash: Exact commit installed
  • Tag: Optional tag reference

skill-project.toml - Skill-Level Configuration

Skill authors can provide comprehensive metadata in skill-project.toml within their skill directory. This file uses the same name as the project-level configuration but serves a different purpose. Full structure:
Key Points:
  • The id field is required and must not contain forward slashes or scope information
  • The version field is also required
  • Skill name for display comes from SKILL.md frontmatter, not from skill-project.toml
  • Created using fastskill init command in the skill directory
  • When generating marketplace.json or during skill registration, fields in skill-project.toml take precedence over SKILL.md frontmatter
Context Detection: FastSkill automatically detects skill-level context when skill-project.toml exists in a directory containing SKILL.md, requiring the [metadata] section instead of [dependencies].

Best Practices

1. Commit Both Files

Always commit both skill-project.toml and skills.lock:

2. Use Groups for Environments

Separate development and production skills:

3. Lock File for Production

Use --lock flag for reproducible production deployments:

4. Regular Updates

Keep skills up to date:

5. Editable for Local Development

Use editable installs for skills you’re developing:

Comparison with Other Package Managers

FastSkill’s manifest system is inspired by modern package managers:

Troubleshooting

Lock File Out of Sync

If your lock file doesn’t match installed skills:

Missing Skills

If skills are missing after git pull:

Version Conflicts

If you see version conflicts: