本文へ移動
cccskills
無料GitHub で公開

update-skills

Check for and apply updates to installed skill branches from upstream.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md5.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

About

Skills are distributed as git branches (skill/*). When you install a skill, you merge its branch into your repo. This skill checks upstream for newer commits on those skill branches and helps you update.

Run /update-skills in Claude Code.

How it works

Preflight: checks for clean working tree and upstream remote.

Detection: fetches upstream, lists all upstream/skill/* branches, determines which ones you've previously merged (via merge-base), and checks if any have new commits.

Selection: presents a list of skills with available updates. You pick which to update.

Update: merges each selected skill branch, resolves conflicts if any, then validates with build + test.


Goal

Help users update their installed skill branches from upstream without losing local customizations.

Operating principles

  • Never proceed with a dirty working tree.
  • Only offer updates for skills the user has already merged (installed).
  • Use git-native operations. Do not manually rewrite files except conflict markers.
  • Keep token usage low: rely on git commands, only open files with actual conflicts.

Step 0: Preflight

Run:

  • git status --porcelain

If output is non-empty:

  • Tell the user to commit or stash first, then stop.

Check remotes:

  • git remote -v

If upstream is missing:

  • Ask the user for the upstream repo URL (default: https://github.com/qwibitai/nanoclaw.git).
  • git remote add upstream <url>

Fetch:

  • git fetch upstream --prune

Step 1: Detect installed skills with available updates

List all upstream skill branches:

  • git branch -r --list 'upstream/skill/*'

For each upstream/skill/<name>:

  1. Check if the user has merged this skill branch before:
    • git merge-base --is-ancestor upstream/skill/<name>~1 HEAD — if this succeeds (exit 0) for any ancestor commit of the skill branch, the user has merged it at some point. A simpler check: git log --oneline --merges --grep="skill/<name>" HEAD to see if there's a merge commit referencing this branch.
    • Alternative: MERGE_BASE=$(git merge-base HEAD upstream/skill/<name>) — if the merge base is NOT the initial commit and the merge base includes commits unique to the skill branch, it has been merged.
    • Simplest reliable check: compare git merge-base HEAD upstream/skill/<name> with git merge-base HEAD upstream/main. If the skill merge-base is strictly ahead of (or different from) the main merge-base, the user has merged this skill.
  2. Check if there are new commits on the skill branch not yet in HEAD:
    • git log --oneline HEAD..upstream/skill/<name>
    • If this produces output, there are updates available.

Build three lists:

  • Updates available: skills that are merged AND have new commits
  • Up to date: skills that are merged and have no new commits
  • Not installed: skills that have never been merged

Step 2: Present results

If no skills have updates available:

  • Tell the user all installed skills are up to date. List them.
  • If there are uninstalled skills, mention them briefly (e.g., "3 other skills available in upstream that you haven't installed").
  • Stop here.

If updates are available:

  • Show the list of skills with updates, including the number of new commits for each:
    skill/<name>: 3 new commits
    skill/<other>: 1 new commit
    
  • Also show skills that are up to date (for context).
  • Use AskUserQuestion with multiSelect: true to let the user pick which skills to update.
    • One option per skill with updates, labeled with the skill name and commit count.
    • Add an option: "Skip — don't update any skills now"
  • If user selects Skip, stop here.

Step 3: Apply updates

For each selected skill (process one at a time):

  1. Tell the user which skill is being updated.
  2. Run: git merge upstream/skill/<name> --no-edit
  3. If the merge is clean, move to the next skill.
  4. If conflicts occur:
    • Run git status to identify conflicted files.
    • For each conflicted file:
      • Open the file.
      • Resolve only conflict markers.
      • Preserve intentional local customizations.
      • git add <file>
    • Complete the merge: git commit --no-edit

If a merge fails badly (e.g., cannot resolve conflicts):

  • git merge --abort
  • Tell the user this skill could not be auto-updated and they should resolve it manually.
  • Continue with the remaining skills.

Step 4: Validation

After all selected skills are merged:

  • npm run build
  • npm test (do not fail the flow if tests are not configured)

If build fails:

  • Show the error.
  • Only fix issues clearly caused by the merge (missing imports, type mismatches).
  • Do not refactor unrelated code.
  • If unclear, ask the user.

Step 5: Summary

Show:

  • Skills updated (list)
  • Skills skipped or failed (if any)
  • New HEAD: git rev-parse --short HEAD
  • Any conflicts that were resolved (list files)

If the service is running, remind the user to restart it to pick up changes.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Add /compact command for manual context compaction. Solves context rot in long sessions by forwarding the SDK's built-in /compact slash command. Main-group or trusted sender only.

日本語の概要は準備中です。原文の説明を表示しています。

nanocoai/nanoclaw-gmail22026年4月3日 更新

Add Discord bot channel integration to NanoClaw.

日本語の概要は準備中です。原文の説明を表示しています。

nanocoai/nanoclaw-gmail22026年4月3日 更新

add-emacs

無料

Add Emacs as a channel. Opens an interactive chat buffer and org-mode integration so you can talk to NanoClaw from within Emacs (Doom, Spacemacs, or vanilla). Uses a local HTTP bridge — no bot token or external service needed.

日本語の概要は準備中です。原文の説明を表示しています。

nanocoai/nanoclaw-gmail22026年4月3日 更新

add-gmail

無料

Add Gmail integration to NanoClaw. Can be configured as a tool (agent reads/sends emails when triggered from WhatsApp) or as a full channel (emails can trigger the agent, schedule tasks, and receive replies). Guides through GCP OAuth setup and implements the integration.

日本語の概要は準備中です。原文の説明を表示しています。

nanocoai/nanoclaw-gmail22026年4月3日 更新

Add image vision to NanoClaw agents. Resizes and processes WhatsApp image attachments, then sends them to Claude as multimodal content blocks.

日本語の概要は準備中です。原文の説明を表示しています。

nanocoai/nanoclaw-gmail22026年4月3日 更新

Add a macOS menu bar status indicator for NanoClaw. Shows a bolt icon with a green/red dot indicating whether NanoClaw is running, with Start, Stop, and Restart controls. macOS only.

日本語の概要は準備中です。原文の説明を表示しています。

nanocoai/nanoclaw-gmail22026年4月3日 更新

nanocoai のスキルをすべて見る

このスキルの問題を報告する