
Swain Update
Keeps your swain skills installation up to date by pulling the latest release from GitHub, then runs swain-doctor to validate everything. Smart enough to detect which agent platforms you actually have installed so it doesn't litter your system with unused config stubs. Backs up any files you've modified before overwriting, then shows you diffs and suggests moving customizations to .agents/config where they'll survive future updates. The fallback chain is solid: tries npx first, drops to git clone if that fails, and the whole thing is idempotent so you can run it whenever. Really just maintenance automation that respects local changes instead of clobbering them.
- skills.sh installs
- 125
- GitHub stars
- 2
- last updated
- Aug 21, 2026
Install
$ npx -y skills add cristoslc/swain --skill swain-update --agent claude-codeInstalls into .claude/skills of the current project.
Files
Update Swain
Update the local installation of swain skills to the latest version, then reconcile governance configuration.
Step 1 — Detect current installation
Check whether .claude/skills/ contains any swain-* directories:
ls -d .claude/skills/swain-* 2>/dev/null
If no swain skill directories are found, inform the user this appears to be a fresh install rather than an update, then continue anyway — the steps below work for both cases.
Step 2 — Backup local modifications
Before overwriting skill directories, check for user modifications that should be preserved.
Detect modified files
Compare local skill files against the installed version's git origin:
# Create a temporary reference copy
tmp=$(mktemp -d)
git clone --depth 1 https://github.com/cristoslc/swain.git "$tmp/swain" 2>/dev/null
# Find locally modified files
modified_files=()
for skill_dir in .claude/skills/swain-*/; do
skill_name=$(basename "$skill_dir")
ref_dir="$tmp/swain/skills/$skill_name"
[ -d "$ref_dir" ] || continue
Sponsors
Details
- Repository
- github.com/cristoslc/swain
- Categories
- Git & Pull Requests, Release Management
- First seen
- Jun 3, 2026