upskill
Upskill your coding agents.
A single Rust binary for authoring and distributing AI-assistance content — rules, skills, and agents — across multiple AI coding clients (Claude Code, GitHub Copilot, opencode) from a single source of truth.
No Node.js. No npm. No runtime dependencies.
Install (consumer)
# Linux / macOS (Windows: run inside WSL)
|
# Or, with a Rust toolchain:
# Install everything from a source repo (auto-fans out to .claude/, .github/, .agents/)
# Or install a curated bundle — one entry, dependency-resolved
# Pull latest and regenerate
# Inspect installed state
.upskill-lock.json records what was installed at which ref and hash —
commit it alongside the project.
Author
# In a source-registry repo (where SSOT items live)
Two roles, no overlap
- Source registry — repo where SSOT items live. Author commands run
here:
new,lint,fmt. - Consumer project — repo where generated outputs land. Consumer
commands run here:
add,remove,update,list,doctor,search.
The same repo can be both, but SSOT and generated outputs do not mix in the same tree.
Bundles
A bundle is a flat YAML manifest (*.bundle.yaml) that names the items it
includes, and optionally other bundles it depends on. Installing a
bundle resolves the transitive closure once and writes per-item output:
The lockfile records the bundle entry alongside the items, so
remove --source <bundle-label> and future remove <bundle-name>
flows know which items came from which bundle.
Documentation
- User guide: Getting started, Commands, Recipes.
- Specification:
docs/specification.md. - On-disk contract:
docs/format-spec.md. - Architecture decisions:
docs/adr/— see ADR-0001 for the umbrella decision.
License
MIT
Post-clone setup
Run ./bootstrap after git clone or git worktree add.