package Command
Package skills into ZIP artifacts with automatic version bumping and change detection. This command is designed for CI/CD pipelines and local development workflows.Usage
Options
| Option | Description | Default |
|---|---|---|
--detect-changes | Auto-detect changed skills using file hash comparison | false |
--git-diff <BASE> <HEAD> | Use git diff for change detection | None |
--skills <IDS...> | Package specific skills by ID | None |
--bump <major|minor|patch> | Bump version type | None |
--auto-bump | Auto-detect bump type from changes (defaults to patch) | false |
--output <DIR> | Output directory for artifacts | ./artifacts |
--force | Package all skills regardless of changes | false |
--dry-run | Show what would be packaged without actually packaging | false |
--skills-dir <DIR> | Skills directory to scan | ./skills |
--recursive | Recursively scan skills directory for nested skills | false |
Examples
Auto-detect Changed Skills
Detect changed skills using file hash comparison and package them:Git-based Change Detection
Use git diff to detect changed skills between two commits:Package Specific Skills
Package only specific skills by ID:Version Bumping
Package with explicit version bumping:Auto-detect Bump Type
Automatically determine bump type from changes (defaults to patch):Force Package All Skills
Package all skills regardless of changes:Recursive Package Discovery
Package all skills recursively from nested directory structures:--recursive, the command scans the --skills-dir directory recursively and treats any directory containing SKILL.md as a skill. Nested skills will have IDs based on their relative path from skills_dir (e.g., category1/skill-a, category2/sub/skill-b).
Example directory structure:
fastskill package --force --recursive --skills-dir ./skills will discover:
top-level-skillcategory1/nested-skillcategory2/sub/deep-skill
--recursive, only top-level-skill would be discovered.
Dry Run
Show what would be packaged without actually creating artifacts:How It Works
Thepackage command:
- Detects Changed Skills: Uses either git diff or file hash comparison to identify which skills have changed
- Reads Current Version: Extracts version from
skill-project.toml(or defaults to “1.0.0”) - Bumps Version (if requested): Updates version based on bump type (major, minor, patch)
- Updates skill-project.toml: Writes new version to
skill-project.tomlfile - Creates ZIP Artifact: Packages skill directory into ZIP file with:
- All skill files (SKILL.md, scripts/, references/, assets/)
- BUILD_INFO.json (build metadata)
- CHECKSUM.sha256 (file checksum)
- Updates Build Cache: Records version, hash, and artifact path in
.fastskill/build-cache.json
Artifact Structure
Each packaged skill creates a ZIP file with the following structure:Build Cache
The command maintains a build cache at.fastskill/build-cache.json that tracks:
- Skill versions
- File hashes (SHA256)
- Artifact paths
- Git commit information
- Last packaged timestamp
Change Detection Methods
File Hash-based Detection
Uses SHA256 hashing of all files in skill directories:- All files in skill directories (SKILL.md, scripts/, references/, assets/)
- Excludes: build artifacts, temp files, .git directories
- Includes: configuration files, source code, documentation
Git Diff-based Detection
Uses git diff to detect changed skill directories:- Identifies skill directories with modified files
- Considers additions, deletions, and modifications
- Ignores non-skill file changes (README.md, CI config, etc.)
- Supports any valid git revision range
Version Bumping
Version bumping follows semantic versioning (semver):- Major: Breaking changes (1.2.3 → 2.0.0)
- Minor: New features (1.2.3 → 1.3.0)
- Patch: Bug fixes (1.2.3 → 1.2.4)
--auto-bump flag currently defaults to patch bumps. Future versions may analyze changes to determine appropriate bump type.