[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DG2N2Z1V8VV4MQFRKFAQV0":3,"skill-same:01M6DG2N2Z1V8VV4MQFRKFAQV0":54},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":23,"linkOnly":24,"markdownContent":25,"markdownBody":26,"frontMatter":27,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":13,"repositoryHtmlUrl":31,"repositoryHomepageUrl":6,"ownerHtmlUrl":32,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":33,"install":34,"resources":47},"01M6DG2N2Z1V8VV4MQFRKFAQV0","update-skills",null,"Check for and apply updates to installed skill branches from upstream.","mbaker95\u002Fnanodex","mbaker95","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F11398294?v=4","01M6DFXVNAJHZG78Y2D700Y6V3","01M6DFXVTTW83QGKTJ9FJ5YCH5",0,"MIT","https:\u002F\u002Fgithub.com\u002Fmbaker95\u002Fnanodex\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fupdate-skills\u002FSKILL.md",[],[18,19,20,21,22],"update skills","update","check","branches","upstream","2026-11-10 10:12:30",false,"---\nname: update-skills\ndescription: Check for and apply updates to installed skill branches from upstream.\n---\n\n# About\n\nSkills are distributed as git branches (`skill\u002F*`). 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.\n\nRun `\u002Fupdate-skills` in Claude Code.\n\n## How it works\n\n**Preflight**: checks for clean working tree and upstream remote.\n\n**Detection**: fetches upstream, lists all `upstream\u002Fskill\u002F*` branches, determines which ones you've previously merged (via merge-base), and checks if any have new commits.\n\n**Selection**: presents a list of skills with available updates. You pick which to update.\n\n**Update**: merges each selected skill branch, resolves conflicts if any, then validates with build + test.\n\n---\n\n# Goal\nHelp users update their installed skill branches from upstream without losing local customizations.\n\n# Operating principles\n- Never proceed with a dirty working tree.\n- Only offer updates for skills the user has already merged (installed).\n- Use git-native operations. Do not manually rewrite files except conflict markers.\n- Keep token usage low: rely on `git` commands, only open files with actual conflicts.\n\n# Step 0: Preflight\n\nRun:\n- `git status --porcelain`\n\nIf output is non-empty:\n- Tell the user to commit or stash first, then stop.\n\nCheck remotes:\n- `git remote -v`\n\nIf `upstream` is missing:\n- Ask the user for the upstream repo URL (default: `https:\u002F\u002Fgithub.com\u002Fqwibitai\u002Fnanoclaw.git`).\n- `git remote add upstream \u003Curl>`\n\nFetch:\n- `git fetch upstream --prune`\n\n# Step 1: Detect installed skills with available updates\n\nList all upstream skill branches:\n- `git branch -r --list 'upstream\u002Fskill\u002F*'`\n\nFor each `upstream\u002Fskill\u002F\u003Cname>`:\n1. Check if the user has merged this skill branch before:\n   - `git merge-base --is-ancestor upstream\u002Fskill\u002F\u003Cname>~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\u002F\u003Cname>\" HEAD` to see if there's a merge commit referencing this branch.\n   - Alternative: `MERGE_BASE=$(git merge-base HEAD upstream\u002Fskill\u002F\u003Cname>)` — if the merge base is NOT the initial commit and the merge base includes commits unique to the skill branch, it has been merged.\n   - Simplest reliable check: compare `git merge-base HEAD upstream\u002Fskill\u002F\u003Cname>` with `git merge-base HEAD upstream\u002Fmain`. If the skill merge-base is strictly ahead of (or different from) the main merge-base, the user has merged this skill.\n2. Check if there are new commits on the skill branch not yet in HEAD:\n   - `git log --oneline HEAD..upstream\u002Fskill\u002F\u003Cname>`\n   - If this produces output, there are updates available.\n\nBuild three lists:\n- **Updates available**: skills that are merged AND have new commits\n- **Up to date**: skills that are merged and have no new commits\n- **Not installed**: skills that have never been merged\n\n# Step 2: Present results\n\nIf no skills have updates available:\n- Tell the user all installed skills are up to date. List them.\n- If there are uninstalled skills, mention them briefly (e.g., \"3 other skills available in upstream that you haven't installed\").\n- Stop here.\n\nIf updates are available:\n- Show the list of skills with updates, including the number of new commits for each:\n  ```\n  skill\u002F\u003Cname>: 3 new commits\n  skill\u002F\u003Cother>: 1 new commit\n  ```\n- Also show skills that are up to date (for context).\n- Use AskUserQuestion with `multiSelect: true` to let the user pick which skills to update.\n  - One option per skill with updates, labeled with the skill name and commit count.\n  - Add an option: \"Skip — don't update any skills now\"\n- If user selects Skip, stop here.\n\n# Step 3: Apply updates\n\nFor each selected skill (process one at a time):\n\n1. Tell the user which skill is being updated.\n2. Run: `git merge upstream\u002Fskill\u002F\u003Cname> --no-edit`\n3. If the merge is clean, move to the next skill.\n4. If conflicts occur:\n   - Run `git status` to identify conflicted files.\n   - For each conflicted file:\n     - Open the file.\n     - Resolve only conflict markers.\n     - Preserve intentional local customizations.\n     - `git add \u003Cfile>`\n   - Complete the merge: `git commit --no-edit`\n\nIf a merge fails badly (e.g., cannot resolve conflicts):\n- `git merge --abort`\n- Tell the user this skill could not be auto-updated and they should resolve it manually.\n- Continue with the remaining skills.\n\n# Step 4: Validation\n\nAfter all selected skills are merged:\n- `npm run build`\n- `npm test` (do not fail the flow if tests are not configured)\n\nIf build fails:\n- Show the error.\n- Only fix issues clearly caused by the merge (missing imports, type mismatches).\n- Do not refactor unrelated code.\n- If unclear, ask the user.\n\n# Step 5: Summary\n\nShow:\n- Skills updated (list)\n- Skills skipped or failed (if any)\n- New HEAD: `git rev-parse --short HEAD`\n- Any conflicts that were resolved (list files)\n\nIf the service is running, remind the user to restart it to pick up changes.\n","# About\n\nSkills are distributed as git branches (`skill\u002F*`). 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.\n\nRun `\u002Fupdate-skills` in Claude Code.\n\n## How it works\n\n**Preflight**: checks for clean working tree and upstream remote.\n\n**Detection**: fetches upstream, lists all `upstream\u002Fskill\u002F*` branches, determines which ones you've previously merged (via merge-base), and checks if any have new commits.\n\n**Selection**: presents a list of skills with available updates. You pick which to update.\n\n**Update**: merges each selected skill branch, resolves conflicts if any, then validates with build + test.\n\n---\n\n# Goal\nHelp users update their installed skill branches from upstream without losing local customizations.\n\n# Operating principles\n- Never proceed with a dirty working tree.\n- Only offer updates for skills the user has already merged (installed).\n- Use git-native operations. Do not manually rewrite files except conflict markers.\n- Keep token usage low: rely on `git` commands, only open files with actual conflicts.\n\n# Step 0: Preflight\n\nRun:\n- `git status --porcelain`\n\nIf output is non-empty:\n- Tell the user to commit or stash first, then stop.\n\nCheck remotes:\n- `git remote -v`\n\nIf `upstream` is missing:\n- Ask the user for the upstream repo URL (default: `https:\u002F\u002Fgithub.com\u002Fqwibitai\u002Fnanoclaw.git`).\n- `git remote add upstream \u003Curl>`\n\nFetch:\n- `git fetch upstream --prune`\n\n# Step 1: Detect installed skills with available updates\n\nList all upstream skill branches:\n- `git branch -r --list 'upstream\u002Fskill\u002F*'`\n\nFor each `upstream\u002Fskill\u002F\u003Cname>`:\n1. Check if the user has merged this skill branch before:\n   - `git merge-base --is-ancestor upstream\u002Fskill\u002F\u003Cname>~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\u002F\u003Cname>\" HEAD` to see if there's a merge commit referencing this branch.\n   - Alternative: `MERGE_BASE=$(git merge-base HEAD upstream\u002Fskill\u002F\u003Cname>)` — if the merge base is NOT the initial commit and the merge base includes commits unique to the skill branch, it has been merged.\n   - Simplest reliable check: compare `git merge-base HEAD upstream\u002Fskill\u002F\u003Cname>` with `git merge-base HEAD upstream\u002Fmain`. If the skill merge-base is strictly ahead of (or different from) the main merge-base, the user has merged this skill.\n2. Check if there are new commits on the skill branch not yet in HEAD:\n   - `git log --oneline HEAD..upstream\u002Fskill\u002F\u003Cname>`\n   - If this produces output, there are updates available.\n\nBuild three lists:\n- **Updates available**: skills that are merged AND have new commits\n- **Up to date**: skills that are merged and have no new commits\n- **Not installed**: skills that have never been merged\n\n# Step 2: Present results\n\nIf no skills have updates available:\n- Tell the user all installed skills are up to date. List them.\n- If there are uninstalled skills, mention them briefly (e.g., \"3 other skills available in upstream that you haven't installed\").\n- Stop here.\n\nIf updates are available:\n- Show the list of skills with updates, including the number of new commits for each:\n  ```\n  skill\u002F\u003Cname>: 3 new commits\n  skill\u002F\u003Cother>: 1 new commit\n  ```\n- Also show skills that are up to date (for context).\n- Use AskUserQuestion with `multiSelect: true` to let the user pick which skills to update.\n  - One option per skill with updates, labeled with the skill name and commit count.\n  - Add an option: \"Skip — don't update any skills now\"\n- If user selects Skip, stop here.\n\n# Step 3: Apply updates\n\nFor each selected skill (process one at a time):\n\n1. Tell the user which skill is being updated.\n2. Run: `git merge upstream\u002Fskill\u002F\u003Cname> --no-edit`\n3. If the merge is clean, move to the next skill.\n4. If conflicts occur:\n   - Run `git status` to identify conflicted files.\n   - For each conflicted file:\n     - Open the file.\n     - Resolve only conflict markers.\n     - Preserve intentional local customizations.\n     - `git add \u003Cfile>`\n   - Complete the merge: `git commit --no-edit`\n\nIf a merge fails badly (e.g., cannot resolve conflicts):\n- `git merge --abort`\n- Tell the user this skill could not be auto-updated and they should resolve it manually.\n- Continue with the remaining skills.\n\n# Step 4: Validation\n\nAfter all selected skills are merged:\n- `npm run build`\n- `npm test` (do not fail the flow if tests are not configured)\n\nIf build fails:\n- Show the error.\n- Only fix issues clearly caused by the merge (missing imports, type mismatches).\n- Do not refactor unrelated code.\n- If unclear, ask the user.\n\n# Step 5: Summary\n\nShow:\n- Skills updated (list)\n- Skills skipped or failed (if any)\n- New HEAD: `git rev-parse --short HEAD`\n- Any conflicts that were resolved (list files)\n\nIf the service is running, remind the user to restart it to pick up changes.\n",{"name":5,"description":7},"main","b6b2f4d4a0c7243409d1684119a6772629bfeba6",".claude\u002Fskills\u002Fupdate-skills","https:\u002F\u002Fgithub.com\u002Fmbaker95\u002Fnanodex","https:\u002F\u002Fgithub.com\u002Fmbaker95","2026-03-12 23:02:12",{"source":8,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add mbaker95\u002Fnanodex --skill update-skills",{"tool":40,"command":41},"bunx","bunx skills add mbaker95\u002Fnanodex --skill update-skills",{"tool":43,"command":44},"pnpm","pnpm dlx skills add mbaker95\u002Fnanodex --skill update-skills","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmbaker95\u002Fnanodex\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fupdate-skills\u002FSKILL.md",true,[48],{"path":49,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":52,"sourceHtmlUrl":53},"index.json","REFERENCE","参考文档",630,"https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fbrowser\u002Fchrome\u002Fpassword\u002Fextract\u002Findex.json",[55,86,105,128,140,154],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":66,"publishedAt":23},"01M6DG2XYNH5XV7XGTJJ1SF0TG","agent-browser","Browse the web for any task — research topics, read articles, interact with web apps, fill forms, take screenshots, extract data, and test web pages. Use whenever a browser would be useful, not just when the user explicitly asks.","https:\u002F\u002Fgithub.com\u002Fmbaker95\u002Fnanodex\u002Fblob\u002Fmain\u002Fcontainer\u002Fskills\u002Fagent-browser\u002FSKILL.md",[61],{"categoryNo":62,"categoryName":63,"taxonomyType":64,"taxonomyTypeDesc":65},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85],"browser","agent browser","screenshots","just","pages","forms","task","test web","take","use","extract","user","read","Bash","browse","data","web","test","research",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":95,"publishedAt":23},"01M6DG2TPZAT3SMWSYFJ3K82TE","x-integration","X (Twitter) integration for NanoClaw. Post tweets, like, reply, retweet, and quote. Use for setup, testing, or troubleshooting X functionality. Triggers on \"setup x\", \"x integration\", \"twitter\", \"post tweet\", \"tweet\".","https:\u002F\u002Fgithub.com\u002Fmbaker95\u002Fnanodex\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fx-integration\u002FSKILL.md",[92],{"categoryNo":93,"categoryName":94,"taxonomyType":64,"taxonomyTypeDesc":65},"01JBSEEDCAT000000000000008","测试与质量",[96,97,76,98,99,100,101,102,103,104],"x integration","integration","troubleshooting","twitter","setup","testing","reply","triggers","quote",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":23},"01M6DG2Q4BJQ046BZSR9N7GZ72","use-local-whisper","Use when the user wants local voice transcription instead of OpenAI Whisper API. Switches to whisper.cpp running on Apple Silicon. WhatsApp only for now. Requires voice-transcription skill to be applied first.","https:\u002F\u002Fgithub.com\u002Fmbaker95\u002Fnanodex\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fuse-local-whisper\u002FSKILL.md",[],[112,113,114,115,76,116,117,118,78,119,120,121,122,123,124,125,126,127],"local whisper","use local whisper","local","whisper","apple","transcription","only","voice","first","api","openai","cpp","openai whisper","openai whisper api","whatsapp","apple silicon",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":23},"01M6DG2J5D7Y3R2BF8V87XZAXF","update-nanoclaw","Efficiently bring upstream NanoClaw updates into a customized install, with preview, selective cherry-pick, and low token usage.","https:\u002F\u002Fgithub.com\u002Fmbaker95\u002Fnanodex\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fupdate-nanoclaw\u002FSKILL.md",[],[19,135,22,136,137,138,139],"update nanoclaw","token","preview","install","pick",{"skillNo":141,"name":100,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":23},"01M6DG2FN7S7DVD337CNT5Y67D","Run initial NanoClaw setup. Use when user wants to install dependencies, authenticate messaging channels, register their main channel, or start the background services. Triggers on \"setup\", \"install\", \"configure nanoclaw\", or first-time setup requests.","https:\u002F\u002Fgithub.com\u002Fmbaker95\u002Fnanodex\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsetup\u002FSKILL.md",[],[100,78,146,120,147,148,149,150,138,103,151,152,28,76,153],"configure","services","start","messaging","run","time","dependencies","channel",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":163,"publishedAt":23},"01M6DG2CA81Z3VV7H5AYXYEAXG","qodo-pr-resolver","Review and resolve PR issues with Qodo - get AI-powered code review issues and fix them interactively (GitHub, GitLab, Bitbucket, Azure DevOps)","https:\u002F\u002Fgithub.com\u002Fmbaker95\u002Fnanodex\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fqodo-pr-resolver\u002FSKILL.md",[160],{"categoryNo":161,"categoryName":162,"taxonomyType":64,"taxonomyTypeDesc":65},"01JBSEEDCAT000000000000007","代码审查",[164,165,166,167,168,169,170,171,172,173,174,175,176,177,178],"pr","qodo pr resolver","show","get","bitbucket","devops","fix","issues","code","gitlab","azure","azure devops","github","review","code review"]