Re-apply your installed skills to pull their latest code from upstream.
npx skills add https://github.com/nanocoai/nanoclaw --skill update-skills
Each 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.
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take nanocoai/update-skills from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.