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
The manifest system consists of three key files:skills.toml- Declarative manifest defining desired skills (likepyproject.toml)skills-lock.toml- Lock file recording exact installed state (likepoetry.lock).claude/sources.toml- Configuration for skill sources (repositories)
skills.toml - Declarative Manifest
Theskills.toml file is the source of truth for which skills should be installed in your .claude/skills/ registry.
Basic Structure
Source Types
Skills can come from various sources: Git Repository:Groups
Skills can be organized into groups (like Poetry groups):fastskill install- Installs all skills (default + all groups)fastskill install --without dev- Installs all except dev groupfastskill install --only prod- Installs only prod group
Editable Installs
For local development, you can mark skills as editable:skills-lock.toml - Lock File
Theskills-lock.toml file records the exact installed state of all skills for reproducibility.
Structure
Key Differences from skills.toml
| Feature | skills.toml | skills-lock.toml |
|---|---|---|
| Purpose | Declarative (what should be) | Exact state (what is installed) |
| Editable | Yes (user edits) | No (auto-generated) |
| Versions | Flexible (branches, ranges) | Exact (specific commits/versions) |
| Commit Hashes | No | Yes (for Git sources) |
| Timestamps | No | Yes (fetched_at) |
| Groups | Yes | Yes (from manifest) |
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>
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-info.toml
Skill authors can provide version metadata:fastskill for version tracking and can be included in lock files.
Best Practices
1. Commit Both Files
Always commit bothskills.toml and skills-lock.toml:
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:| Feature | FastSkill | Poetry | npm |
|---|---|---|---|
| Declarative manifest | skills.toml | pyproject.toml | package.json |
| Lock file | skills-lock.toml | poetry.lock | package-lock.json |
| Groups | groups = ["dev"] | --group dev | devDependencies |
| Editable installs | editable = true | -e flag | npm link |
| Source tracking | Git, ZIP, local | PyPI, Git, local | npm registry, Git |
Troubleshooting
Lock File Out of Sync
If your lock file doesn’t match installed skills:Missing Skills
If skills are missing aftergit pull: