cnb-rs skill preview
cnb-rs skill preview <REPO>[@<REF>] <SKILL>不下载、不写盘、不动 lockfile —— 仅把指定 skill 的 SKILL.md 内容打到 stdout,便于安装前 review。
参数
<REPO>:CNB 三段路径owner/group/repo或完整 URL;支持@<ref>后缀<SKILL>:要预览的 skill name(必填,对应仓库内skills/<NAME>/SKILL.md)
preview一次只看一个 skill;要看多个用 shell loop。
行为:4 步流程
- source 解析:复用
install的SkillSource::parse,支持@ref后缀和 URL 形式 - ref 解析:复用
ref_resolver(显式@ref> 最新 release tag > 默认分支 HEAD) - 拉 SKILL.md:单次 HTTP 走
client.get_raw_text(repo, "<ref>/skills/<SKILL>/SKILL.md");不递归 references/ / scripts/ - 输出:内容到 stdout,末尾自动补
\n(如果上游缺)
关键设计
stdout / stderr 严格分离
- stdout:100% 是 SKILL.md 原文(含 frontmatter),无任何前后缀
- stderr:进度行(
📦 source/🔖 ref/📄 path/─── SKILL.md (N bytes) ───)
这让如下管道完全干净:
bash
cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills cnb-rs-api > /tmp/skill.md
cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills cnb-rs-api | less
cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills cnb-rs-api | grep '^description:'不注入 frontmatter
install / update 会在 SKILL.md 的 metadata 块注入 cnb-host / cnb-repo / cnb-ref / cnb-path 4 个键。preview 不做:输出与上游仓库字节一致,方便你审阅作者真实写的内容。
不递归附属文件
preview 不拉 references/ / scripts/ / assets/ 等附属目录。要看完整目录请用:
bash
$ cnb-rs skill install <REPO> <SKILL> --dir /tmp/preview --copy
$ tree /tmp/preview/.agents/skills/<SKILL>/之后用 cnb-rs skill remove <SKILL> --dir /tmp/preview 干净卸载。
输出示例
$ cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills cnb-rs
📦 source: wwvo/cnb-rs/cnb-rs-skills (host=cnb.cool, repo=wwvo/cnb-rs/cnb-rs-skills) ← stderr
🔖 ref: main ← stderr
📄 path: skills/cnb-rs/SKILL.md ← stderr
─── SKILL.md (10264 bytes) ─── ← stderr
--- ← stdout
name: cnb-rs ← stdout
description: Use the unofficial cnb-rs CLI ... ← stdout
allowed-tools: Bash(cnb-rs:) Bash(jq:) Read ← stdout
license: Apache-2.0 ← stdout
...指定 ref
bash
# 看 v0.1.0 tag
$ cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills@v0.1.0 cnb-rs
# 看某个具体 commit sha
$ cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills@a1b2c3d cnb-rs错误示例
缺参数
$ cnb-rs skill preview
error: the following required arguments were not provided:
<REPO>
<SKILL>$ cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills
error: the following required arguments were not provided:
<SKILL>Skill 名错误(远端 404)
$ cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills nonexistent
📦 source: wwvo/cnb-rs/cnb-rs-skills (host=cnb.cool, repo=wwvo/cnb-rs/cnb-rs-skills)
🔖 ref: main
📄 path: skills/nonexistent/SKILL.md
错误: 拉 SKILL.md 失败:wwvo/cnb-rs/cnb-rs-skills 的 'skills/nonexistent/SKILL.md' (ref=main)
提示:skill 名是否正确?skill 必须在仓库的 skills/<NAME>/SKILL.md 路径下。仓库不存在
错误来自 cnb-api 层,会被 anyhow 包装后冒到 stderr;exit 1。
退出码
0:内容成功 print 到 stdout1:网络 / 404 / 解析失败2:clap 参数错(缺 REPO 或 SKILL)
示例
bash
# 预览 main 分支
$ cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills cnb-rs
# 预览特定 tag
$ cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills@v0.1.0 cnb-rs-api
# 重定向到文件(stderr 走终端,stdout 写盘)
$ cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills cnb-rs > /tmp/cnb-rs-skill.md
# 配合 less 翻阅
$ cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills cnb-rs-issue | less
# 只看 frontmatter(前 N 行)
$ cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills cnb-rs | head -10
# diff 两个 ref 的内容
$ diff <(cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills@v0.1.0 cnb-rs) \
<(cnb-rs skill preview wwvo/cnb-rs/cnb-rs-skills@main cnb-rs)另请参阅
- cnb-rs skill
- cnb-rs skill install — 装上(会注入 cnb-* frontmatter)
- cnb-rs skill list
- cnb-rs skill update
- cnb-rs skill remove
- agentskills.io — skill 规范