logo
0
0
WeChat Login
📝 docs(readme): 安装节扩展为 3 种方式(cnb-rs skill / Plugin Marketplace / 手动 clone)

cnb-rs-skills

给 AI agent 用的 cnb-rs CLI 操作手册

Agent Skills 标准的 SKILL.md 集合,让 Claude Code / GitHub Copilot / Cursor / Windsurf / Codex CLI / Gemini CLI 等 AI 编程助手能正确、地道地用 cnb-rs 完成 CNB 平台日常工作。

CNB Repo Spec License

Skill 清单 · 安装 · 使用 · 设计原则 · 贡献


IMPORTANT

这是非官方项目。 本仓库由 cnb-rs 社区维护,对应非官方 Rust CLI cnb-rs

CNB 官方的 npc / Pipeline 自动化 skills 在 https://cnb.cool/cnb/skills/cnb-skill(对应官方 Node CLI cnb,主要面向云原生构建中的 npc 协作),与本仓库定位不同。两者可以共存。

这是什么

把团队/个人反复教 AI 的「怎么用 cnb-rs」这件事,按 agentskills.io 开放标准沉淀为可分发、可版本管理的 SKILL.md 文件。AI agent 在启动时只读 name + description(每个 skill 约 100 tokens),命中任务才加载完整正文,需要细节才读 references/ 子文档 — 渐进式披露,对上下文友好。

Skill 清单

19 个 skill = 1 个入口/路由 (cnb-rs) + 18 个专题,按主题分组,覆盖 cnb-rs 除少数 client-side 命令(completion / version / licenses)外的全部能力:

入口与逃生通道

Skill触发关键词主要覆盖
cnb-rs"cnb-rs"、"cnb cli"、"非官方 cnb"入口总览:全局选项、JSON、退出码、错误格式、skill 路由表
cnb-rs-api"cnb api"、"call CNB OpenAPI"、"raw HTTP"逃生通道-X / -f / -F / --input / --jq / --paginate / 模板变量

Issue / PR / Label

Skill触发关键词主要覆盖
cnb-rs-issue"create issue"、"创建 issue"、"批量关单"、"comment"Issue CRUD + comment + labels + assignees + 批量 close/reopen
cnb-rs-pr"pull request"、"PR"、"merge"、"review"、"approve"PR CRUD + comment + review + checks + checkout + files + commits
cnb-rs-label"label"、"标签"、"clone labels"仓库标签 CRUD + 跨仓库 clone + 查 issue/pr 标签

认证 / 仓库 / 上下文

Skill触发关键词主要覆盖
cnb-rs-auth"login"、"token"、"setup-git"OAuth 设备流、token、status、refresh、switch、setup-git
cnb-rs-repo"create repo"、"clone"、"fork"、"branch"、"tag"、"member"仓库 CRUD + branch/tag/file/member/settings + license/gitignore 模板
cnb-rs-info"info"、"doctor"、"browse"、"我在哪个仓库"、"打开网页"上下文概览 + 本地诊断 + 在浏览器打开仓库资源

CI / Build / Commit

Skill触发关键词主要覆盖
cnb-rs-build"ci"、"build"、"pipeline"、"trigger"、"rerun"、"watch"触发 / 查看 / watch / rerun / 下载日志 / cancel / 失败诊断
cnb-rs-commit"commit"、"compare"、"annotation"、"commit 附件"commit 元数据 + commit 附件 + Issue/PR 评论附件下载

Release / Download / Extension

Skill触发关键词主要覆盖
cnb-rs-release"release"、"upload asset"Release CRUD + asset upload/download/delete/stats/clean
cnb-rs-download"download files"、"archive"、"lfs"按路径/glob/分支下载、archive zip、LFS 预签链接
cnb-rs-extension"extension"、"plugin"、"cnb-rs ext"extension 安装/升级/搜索/浏览 + 新建脚手架

组织 / 知识库 / 制品库

Skill触发关键词主要覆盖
cnb-rs-group"组织"、"group"、"sub group"、"成员继承"多级组织 CRUD + 子组织 + 成员(含继承)+ collaborator + settings + quota + logo
cnb-rs-knowledge"知识库"、"RAG"、"embedding"、"semantic search"仓库 embedding 知识库语义查询 + RAG 模式
cnb-rs-registry"制品库"、"docker registry"、"npm registry"、"SBOM"12+ 种制品库(docker/npm/maven/pypi/helm/cargo/...)+ tag 出生证明

个人 / 工作区 / 本地

Skill触发关键词主要覆盖
cnb-rs-user"个人档案"、"粉丝"、"GPG"、"仓库徽章"个人档案 / 活动 / 粉丝 / GPG 签名 / 仓库徽章
cnb-rs-workspace"云原生开发"、"在线 IDE"、"mission"、"任务集"云开发环境生命周期 + 任务集(kanban / 视图)
cnb-rs-local"alias"、"自定义命令"、"本地配置"CLI 本地配置 + 自定义别名(TOML 批量导入)

按"我想做什么"反向查 skill 见 INDEX.md

跳过的命令:completion(shell setup)、version--version 已覆盖)、licenses(看 cnb-rs 第三方依赖 license,meta 命令 agent 几乎不用)。

安装

提供三种安装方式,按场景三选一:

场景推荐方式适用 agent
多 agent 团队 / 想统一管理 / 想 pin 版本方式 1:cnb-rs skill install全部(Claude Code / Copilot / Cursor / Windsurf / Codex / Gemini …)
Claude Code 用户 / 想用原生 /plugin UI方式 2:Claude Code Plugin MarketplaceClaude Code
不想装 cnb-rs CLI / 想做项目级嵌入方式 3:手动 git cloneClaude Code

方式 1:用 cnb-rs skill install(推荐,跨 agent 通用)

需要 cnb-rs CLI ≥ 0.12;首次使用先跑 cnb-rs auth login 完成 CNB 认证

# 一次装本仓库全部 19 个 skill(1 入口 + 18 专题)到 auto-detect 的 agent
cnb-rs skill install wwvo/cnb-rs/cnb-rs-skills

# 装到指定 agent(claude-code / copilot / cursor / windsurf / codex / gemini …)
cnb-rs skill install wwvo/cnb-rs/cnb-rs-skills --agent windsurf

# 只装指定 skill(多个用空格分隔)
cnb-rs skill install wwvo/cnb-rs/cnb-rs-skills cnb-rs-pr cnb-rs-issue

# pin 到具体版本(生产推荐,避免 skill 漂移)
cnb-rs skill install wwvo/cnb-rs/cnb-rs-skills --pin v0.2.0

后续维护:

cnb-rs skill list                # 看本机已装哪些 skill
cnb-rs skill update --all        # 升级所有非 pinned skill 到最新
cnb-rs skill remove cnb-rs-pr    # 卸载某个 skill

方式 2:Claude Code Plugin Marketplace(2026 官方推荐)

本仓库根目录已提供 .claude-plugin/marketplace.json,把 19 个 skill 打包成 1 个总包 + 4 个主题 plugin,可直接走 Claude Code /plugin 命令 一键安装:

# 1. 一次性把本仓库注册成 marketplace(只做一次)
/plugin marketplace add https://cnb.cool/wwvo/cnb-rs/cnb-rs-skills.git

# 2a. 装全部 19 个 skill(懒人路线)
/plugin install cnb-rs-skills-all@cnb-rs-skills

# 2b. 按主题分组装(按需路线,主题与下文 Skill 清单一一对应)
/plugin install cnb-rs-core@cnb-rs-skills        # 5 个:入口 + api + auth + info + local
/plugin install cnb-rs-collab@cnb-rs-skills      # 4 个:issue + pr + label + repo
/plugin install cnb-rs-ci@cnb-rs-skills          # 4 个:build + commit + release + download
/plugin install cnb-rs-platform@cnb-rs-skills    # 6 个:group + knowledge + registry + user + workspace + extension

后续维护:

/plugin                                       # 进入交互式 plugin 管理面板
/plugin uninstall cnb-rs-ci@cnb-rs-skills     # 卸载某个 plugin
/plugin marketplace update cnb-rs-skills      # 拉取本仓库最新 SKILL.md

优势:原生 /plugin UI、namespace 隔离防冲突、/plugin marketplace update 一行升级 / 回滚,未来可在同一 plugin 里附带 hooks / slash commands / MCP servers。

要求:Claude Code ≥ 2026-01(plugin 系统上线版本)。CNB 仓库走 git URL 形式,官方文档 明确支持 GitHub 之外的任意 git host。

方式 3:手动 git clone(无 cnb-rs、无 plugin 也能用)

3a. 全局安装到 ~/.claude/skills/

Claude Code 扫描的标准路径是 ~/.claude/skills/<skill-name>/SKILL.md(只看一层),所以必须把 19 个 skill 子目录分别软链上去,不能直接 clone 整个仓库到 ~/.claude/skills/cnb-rs-skills/(那样 SKILL.md 多嵌套一层,全部 skill 失效)。

# Unix (macOS / Linux / WSL)
git clone https://cnb.cool/wwvo/cnb-rs/cnb-rs-skills.git ~/cnb-rs-skills
mkdir -p ~/.claude/skills
for d in ~/cnb-rs-skills/skills/*/; do
  ln -sfn "$d" "$HOME/.claude/skills/$(basename "$d")"
done
# Windows PowerShell(需管理员权限或开启 dev mode 才能创建 SymbolicLink)
git clone https://cnb.cool/wwvo/cnb-rs/cnb-rs-skills.git $HOME\cnb-rs-skills
New-Item -ItemType Directory -Force -Path $HOME\.claude\skills | Out-Null
Get-ChildItem $HOME\cnb-rs-skills\skills -Directory | ForEach-Object {
  New-Item -ItemType SymbolicLink -Path "$HOME\.claude\skills\$($_.Name)" -Target $_.FullName -Force
}

升级时只需 cd ~/cnb-rs-skills && git pull,软链会自动指到新内容。

3b. 项目级嵌入到 .claude/skills/(不污染全局,跟随项目版本)

如果只想给单个项目用,可以把 skill 放到该项目自己的 .claude/skills/ 下,配合 git submodule 实现"跟随项目仓库版本":

# 在目标项目根目录执行
git submodule add https://cnb.cool/wwvo/cnb-rs/cnb-rs-skills.git .claude/_cnb-rs-skills
mkdir -p .claude/skills
for d in .claude/_cnb-rs-skills/skills/*/; do
  ln -sfn "../_cnb-rs-skills/skills/$(basename "$d")" ".claude/skills/$(basename "$d")"
done

# 把软链加到 .gitignore,submodule 本体跟随项目 commit
echo '.claude/skills/cnb-rs-*' >> .gitignore

团队成员 clone 项目后只需 git submodule update --init 即可拉齐,无需再额外装 cnb-rs CLI。

使用

装好后,AI agent 会自动根据 description 中的关键词触发对应 skill,例如:

> 帮我看下 wwvo/cnb-rs/cnb-rs 里 open 状态的 PR 列表,按更新时间倒序

Claude Code 会命中 cnb-rs-pr skill,自动用 cnb-rs --repo wwvo/cnb-rs/cnb-rs pr list --state open --json 之类的命令完成任务。

也可以显式调用

> 用 cnb-rs-api skill 帮我 POST /{repo}/-/issues 创建一个 issue

设计原则

  1. 本地 dev 优先:本仓库 skill 主要为本地 agent 设计,假定 cnb-rs 安装在 $PATH 且已 auth login。CI Pipeline 内的 npc 自动化场景请用 cnb/skills/cnb-skill 官方 skill。
  2. 渐进式披露SKILL.md 主文件控制在 < 500 行,详细参数表、踩坑清单放进 references/,agent 按需读。
  3. 中英双 description:frontmatter description 中英混排,覆盖中英文用户的触发关键词,例如 "创建 PR / create pull request"
  4. 不重复 --help:SKILL 写命令使用模式 + 踩坑,rote 的参数列表请用户 cnb-rs <cmd> --help
  5. dogfood:本仓库的创建就是 cnb-rs repo create cnb-rs-skills --group wwvo/cnb-rs --license Apache-2.0 --clone 一行完成的。

CI 校验

仓库根有 .cnb.yml 在 push / PR 触发自动校验 SKILL.md frontmatter 合规。

本地预检 = CI 同一条命令(唯一推荐入口)

uv sync && uv run --frozen scripts/validate.py

首次跑 uv sync 会按 pyproject.toml + uv.lock 自建 .venv/;后续 uv run --frozen 直接复用。无需手动 pip install / python -m venv

scripts/ 下另有两个辅助工具,按需手动跑:

# 字段长度 / form 分布报表 — 看哪些 description / compatibility 字段过长、哪些还是 plain 形式
uv run scripts/analyze.py

# 把 long-form 字段批量转 YAML block scalar (`>-`),roundtrip 校验保字面值零漂移
uv run scripts/fix-block-scalar.py --field compatibility --dry-run
uv run scripts/fix-block-scalar.py --field description --normalize-cjk-spacing

校验内容(按 agentskills.io 0.1 规范 + cnb-rs 仓库约束):

  • frontmatter 首行 ---、紧跟另一个 ---;YAML 解析失败时输出 line / col / caret 定位 + 针对性修复提示
  • name 字段非空、符合 [a-z0-9-]{1,64}、禁首尾连字符、禁连续 --与父目录名完全相等
  • description 字段非空、长度 ≤ 1024、不含 < / >
  • license 字段(可选)非空
  • metadata 字段(可选)必须是 mapping;含手写 cnb-* 保留键时 WARN(提醒会被 cnb-rs skill install/update 覆盖)
  • 主文件 ≤ 500 行(超过 warn)
  • 清单一致性README.md / INDEX.md / skills/cnb-rs/SKILL.md / skills/cnb-rs/references/routing.md 必须每个 skill 都至少出现一次;不存在的 cnb-rs-* token 会 WARN(防止重命名 / 删除后漂移)
  • metadata.version 形态:建议存在且符合 semver MAJOR.MINOR.PATCH[-prerelease][+build];缺失 / 非字符串 / 非 semver 形式都会 WARN(非字符串字段同时 FAIL)

依赖管理:pyproject.toml 声明依赖(PyYAML),uv.lock 锁版本,CI 用 uv run --frozen 保 reproducibility。镜像:ghcr.io/astral-sh/uv:python3.13-bookworm-slim(uv 官方,含 Python 3.13)。

Skill 版本规范

每个 SKILL.mdmetadata.versionsemver 表达该 skill 主文档 / 触发关键词 / 子命令清单的演进,与上游 cnb-rs CLI 自身版本号互相独立(CLI 的版本由 cnb-rs --version 表示,不在本仓库管)。

bump 节奏建议(warn-only,CI 不强卡):

改动
修 typo / 调整排版 / 内部 references 文档增删patch
新增子命令章节 / 新增 reference 文档 / 扩展触发关键词minor
删除子命令章节 / 调整 skill name / 触发语义变化("DO NOT use" 条款收紧)/ allowed-tools 缩减导致已用法不可行major

全仓库当前都是 1.0.0,后续按上表 bump。cnb-rs skill install/update 在装入 agent 目录时会把 version 一并带过去,便于 agent 端排查"装的是哪一版"。

贡献

欢迎 PR。提交前必须 0 FAIL:直接跑 CI 校验 节里的「本地预检」命令;规则细节也在那一节列出。

CI 不校验、但 reviewer 会关心的软约束:

  • description具体触发关键词(中英双语),让 LLM 能 semantic match 各类用户 query phrasing
  • 主文件超 500 行(CI WARN)—— 拆细节到 references/<topic>.md,主文档保持 ≤ 500 行
  • 改命令引用前用 cnb-rs <cmd> --help 校对参数 / flag 拼写,避免文档与 CLI 行为漂移
  • Commit 遵循 Conventional Commits + emoji(与 cnb-rs 主仓库一致)

相关链接

许可证

Apache-2.0