Re-apply your installed skills to pull their latest code from upstream.
63
73%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./.claude/skills/update-skills/SKILL.mdEach skill is a self-installing additive unit: its folder under .claude/skills/<name>/ carries its own apply steps (SKILL.md), and channel/provider skills fetch their code files from a long-lived upstream branch (channels, providers) with git fetch origin <branch> + git show origin/<branch>:path > path. Every apply is idempotent and safe to re-run.
Updating a skill means re-running its own apply. The apply re-fetches the latest files from upstream and overwrites the copied-in code, so newer versions land additively.
Run /update-skills in Claude Code.
Preflight: checks for a clean working tree and the upstream remote.
Detection: reads the channel and provider barrels to list which skills have copied code into your tree, and lists the operational/utility skills present under .claude/skills/.
Selection: presents the installed skills and lets you pick which to re-apply.
Re-apply: invokes each selected skill's own apply (e.g. /add-slack), which fetches its latest files. Then validates with build + test.
Help users pull the latest skill code from upstream by re-applying their installed skills, without losing local customizations and without merging any branch.
git and barrel reads; let each skill's apply do its own fetching.Run:
git status --porcelainIf output is non-empty:
Check remotes:
git remote -vIf origin does not point at a NanoClaw upstream (or you want to verify it has the skill branches), confirm with the user before continuing. The default upstream is https://github.com/nanocoai/nanoclaw.git.
Fetch the branches that carry skill code:
git fetch origin channels providers --pruneChannels — read src/channels/index.ts and collect each import './<name>.js'; line, excluding cli. Each <name> maps to the /add-<name> skill.
Providers — read src/providers/index.ts the same way; each imported provider maps to its /add-<name> skill.
Operational and utility skills — list the folders under .claude/skills/. These copy no code into the tree, so "re-applying" them just re-reads their instructions; only include them if the user specifically wants to re-run a workflow.
Build the candidate list from the channels and providers actually wired into the barrels — those are the skills whose copied code can be refreshed from upstream.
If no channel or provider skills are installed:
If installed channel/provider skills are found:
slack, discord, opencode).multiSelect: true to let the user pick which skills to re-apply.
For each selected skill (process one at a time):
/add-<name> skill using the Skill tool.
git fetch origin <branch> + git show origin/<branch>:path > path), overwrites the copied-in code, and installs any pinned dependency..env credentials and DB wiring are untouched.After all selected skills are re-applied:
pnpm run buildpnpm test (do not fail the flow if tests are not configured)container/ (git diff --name-only -- container/ is non-empty), rebuild the agent image so new sessions pick up the new code: ./container/build.sh. Skill code that lives in the container (e.g. a provider's runtime) keeps running the old image until this is done — the rebuild is what makes the fix live, not the file copy. If nothing under container/ changed (e.g. only a channel adapter was re-applied), skip it.Each channel/provider skill copies in its own registration test; those run as part of pnpm test and assert the barrel still registers the adapter against the freshly fetched code.
If build fails:
Show:
git rev-parse --short HEADIf the service is running, remind the user to restart it to pick up the refreshed code.
641963c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.