{"id":"update-skills","name":"update-skills","summary":"RefreshはNanoClawチャネルとプロバイダーペイロードをレジストリブランチからフォークセーフなリモート解決とブロック構造化された結果でインストールしました。","body":"# Update installed skills\n\nRefresh the code carried by installed channel and provider skills. This does\nnot re-run credential setup, change `.env`, alter wiring, or restart services.\n\nRun from the NanoClaw project root. Use ordinary conversation for any choice;\ndo not depend on a provider-specific question or skill-invocation tool.\n\n## 1. Preflight and selection\n\nRequire a clean working tree:\n\n```bash\ngit status --porcelain\n```\n\nIf it is dirty, stop. Never mix a refresh with unrelated changes.\n\nThe default is every installed channel/provider. If the user asked for a\nsubset, pass its comma-separated names. Otherwise use `all`:\n\n```bash\npnpm exec tsx scripts/update-skills.ts --skills all\n# Example subset: --skills slack,opencode\n```\n\nThe helper detects installed skills from the real channel/provider barrels. It\nresolves each registry branch by checking configured remotes, so a fork whose\n`origin` is the user's repo and whose official source is `upstream` works\nwithout special handling. `NANOCLAW_REGISTRY_REMOTE=<name>` is an explicit\noverride and is validated before use.\n\n## 2. Treat the JSON result as a gate\n\nThe command prints `nanoclaw-skill-refresh/v1`-shaped JSON fields with one\nresult per selected skill and exits nonzero unless every selected skill was\nfully refreshed.\n\n- Continue only when `success` is `true` and every status is `refreshed`.\n- A missing skill, missing structured apply contract, unresolved input, agent\n  fallback, fetch error, or dependency error is blocking.\n- Never record a failed skill and continue toward an upgrade completion stamp.\n- Preserve the full report in the update summary.\n\nThe refresh engine overwrites skill-owned registry files and advances exact\ndependency/CLI-manifest pins. It skips prompts, operator walkthroughs, `.env`\nwrites, wiring, restarts, and ordinary build/test directives.\n\n## 3. Validate the composed checkout\n\nAfter a successful refresh:\n\n```bash\npnpm run build\npnpm test\n```\n\nIf files under `container/agent-runner/src/` changed, also run:\n\n```bash\npnpm exec tsc -p container/agent-runner/tsconfig.json --noEmit\n```\n\nIf anything under `container/` changed, update the install's agent image using\nthe source mode already selected in `.env`:\n\n```bash\nif grep -q '^NANOCLAW_HARDENED_IMAGE=true$' .env 2>/dev/null; then\n  ./container/build.sh pull\nelse\n  ./container/build.sh\nfi\n```\n\nAny validation or image failure is blocking. Do not restart or report success.\n\n## 4. Report\n\nShow the selected skills, the registry remote used for each branch, changed\nfiles, validation results, and any blocking error. If this was a standalone\nrefresh and the service was running, restart it through the service mode that\nactually owns this install and verify `data/ncl.sock` plus `bin/ncl groups\nlist`. When called inside `/update-nanoclaw`, leave restart and health checking\nto that transaction.","author":"@nanocoai","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/update-skills","license":"MIT","category":null,"lang":"en","tokens":661,"stars":0,"calls30d":2,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}