# Update Skills

Refresh installed NanoClaw channel and provider payloads (channels from their registry...

- Repository: https://github.com/nanocoai/nanoclaw (31069 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add nanocoai/nanoclaw --skill update-skills -g -a claude-code -y`
Codex: `npx skills add nanocoai/nanoclaw --skill update-skills -g -a codex -y`
Cursor: `npx skills add nanocoai/nanoclaw --skill update-skills -g -a cursor -y`
Gemini CLI: `npx skills add nanocoai/nanoclaw --skill update-skills -g -a gemini-cli -y`

## Description

Refresh installed NanoClaw channel and provider payloads (channels from their registry branch, providers from their skill payload) with fork-safe remote resolution and a blocking structured result. Use after updating NanoClaw or whenever installed channel/provider code may be stale.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Update installed skills

Refresh the code carried by installed channel and provider skills. This does
not re-run credential setup, change `.env`, alter wiring, or restart services.

Run from the NanoClaw project root. Use ordinary conversation for any choice;
do not depend on a provider-specific question or skill-invocation tool.

## 1. Preflight and selection

Require a clean working tree:

```bash
git status --porcelain
```

If it is dirty, stop. Never mix a refresh with unrelated changes.

The default is every installed channel/provider. If the user asked for a
subset, pass its comma-separated names. Otherwise use `all`:

```bash
pnpm exec tsx scripts/update-skills.ts --skills all
# Example subset: --skills slack,opencode
```

The helper detects installed skills from the real channel/provider barrels.
Provider skills refresh from their own `payload/` in this checkout and need
no remote; a provider first installed from the old `providers` branch is
rewritten from the payload the same way. For channel skills it resolves the
registry branch by checking configured remotes, so a fork whose `origin` is
the user's repo and whose official source is `upstream` works without
special handling.
`NANOCLAW_REGISTRY_REMOTE=<name>` is an explicit override and is validated
before use.

## 2. Treat the JSON result as a gate

The command prints `nanoclaw-skill-refresh/v1`-shaped JSON fields with one
result per selected skill and exits nonzero unless every selected skill was
fully refreshed.

- Continue only when `success` is `true` and every status is `refreshed`.
- A missing skill, missing structured apply contract, unresolved input, agent
  fallback, fetch error, or dependency error is blocking.
- Never record a failed skill and continue toward an upgrade completion stamp.
- Preserve the full report in the update summary.

The rest: https://github.com/nanocoai/nanoclaw/blob/HEAD/.claude/skills/update-skills/SKILL.md
