Context Hub(chub)deploy Skill 测试样例深解:SKILL.md 格式、Frontmatter 规范与 build/search/get 消费链路
【免费下载链接】context-hub项目地址https://gitcode.com/gh_mirrors/co/context-hub点击查看免费下载本文以 Context Hub 仓库中的测试样例 SKILL.md 为核心逐字段拆解一个标准 skill 的内容结构frontmatter 正文步骤并结合chubCLI 的构建、检索与获取源码说明该文件是如何被chub build解析为注册表条目、被chub search命中、再被chub get完整取回的。读完后你可以独立编写一个符合 Context Hub 内容规范的 skill并验证其在构建与检索链路中的完整行为。一、这个文件是什么Context Hub 的 deploy skill 测试样例SKILL.md位于cli/test/fixtures/testskills/skills/deploy/目录下是chubCLI 端到端测试套件使用的一个内容样例fixture。它模拟了一个真实社区作者author 目录名为testskills发布的一个名为deploy的 skill——一个面向 CI/CD 流水线的部署自动化技能。从内容组织规范看该路径遵循 docs/content-guide.md 中定义的“作者 → 类型 → 条目”三级目录结构内容按作者vendor/org组织其下按类型分为docs与skills每个条目一个目录skill 的入口文件固定命名为SKILL.mdmy-content/ acme/ docs/ widgets/ DOC.md skills/ deploy/ SKILL.md # a skill由于它被放进chub build的输入目录参与构建构建产物中的注册表 id 会带有作者前缀成为testskills/deploy——这一点在后文的 e2e 测试断言中会被反复验证。二、SKILL.md 全文解析原文档全文很短但每个部分都对应着chub build的一个具体解析动作。下面完整继承原文内容并逐段展开。2.1 YAML Frontmatter原文 frontmatter 如下--- name: deploy description: Deployment automation skill for CI/CD pipelines metadata: updated-on: 2026-01-01 source: community tags: deploy,ci,automation ---各字段在构建链路上的作用依据 cli/src/commands/build.js 中discoverAuthor的实现字段样例值构建时的处理namedeploy必填。缺失会直接报错missing name in frontmatter并跳过该条目同名 skill 重复会被报duplicate skill name错误descriptionDeployment automation skill for CI/CD pipelines缺失只产生 warning它是 BM25 检索索引的核心语料e2e 测试正是靠它被关键词 “deployment” 模糊命中metadata.updated-on2026-01-01记录内容最后修订日期缺失时源码会回退为构建当天的日期new Date().toISOString().split(T)[0]metadata.sourcecommunity信任级别合法取值为official、maintainer、community见 docs/content-guide.md 的字段表缺失时默认community并产生 warningmetadata.tagsdeploy,ci,automation逗号分隔字符串解析为数组后用于chub search --tags tag过滤值得注意的是与DOC.md不同skill 的 frontmatter不需要metadata.languages和metadata.versions——构建源码中对 doc 分支会强制校验这两项缺失即报错而 skill 分支完全没有这一逻辑因为 skill 是语言无关的language-agnostic这一点也被 docs/content-guide.md 的 “Skills have the same fields as docs exceptlanguagesandversionsare not required” 明确说明。另外可以观察到一个细节docs/content-guide.md 中给出的 SKILL.md frontmatter 示例还包含revision: 1内容修订号而本样例省略了它且构建照常通过——从源码结构看discoverAuthor并没有对revision做任何校验因此它是规范建议字段而非构建强制字段。2.2 正文内容frontmatter 之后的正文是 skill 的实际指令内容# Deploy Skill Automate deployments with this skill. ## Steps 1. Build the project 2. Run tests 3. Deploy to production正文即 Agent 获取该 skill 后看到并执行的操作指南三步标准 CI/CD 流程——构建项目、运行测试、部署到生产环境。e2e 测试断言chub get testskills/deploy的输出必须同时包含# Deploy Skill标题与Automate deployments正文见 cli/test/e2e.test.js 第 363–367 行说明正文内容被原样透传给用户构建过程不做任何改写。三、构建链路chub build 如何消费这份 SKILL.mdchub build content-dir的完整流程在 cli/src/commands/build.js 中实现对该样例的作用可分为四步3.1 入口文件发现findEntryFiles递归遍历每个作者目录文件名恰好等于DOC.md或SKILL.md的文件被识别为入口文件并据此标记类型cli/src/commands/build.js 第 20–31 行。本样例因此被识别为type: skill。同时listDirFiles与dirSize会把条目目录下所有文件列表与总字节数一并记入注册表条目——本样例目录下只有SKILL.md一个文件因此没有额外可拉取的参考文件。3.2 Frontmatter 解析正文与元数据由 cli/src/lib/frontmatter.js 中的parseFrontmatter切分它用正则^---\r?\n([\s\S]*?)\r?\n---\r?\n?定位 frontmatter 块再用yaml库解析为对象。YAML 解析失败时抛出FrontmatterParseError携带 1 起始的行列号相对完整 frontmatter 文档含开头---行构建器会输出形如skills/deploy/SKILL.md:行:列: invalid YAML frontmatter — …的定位错误方便作者快速修复。3.3 生成注册表与搜索索引skill 分支cli/src/commands/build.js 第 151–167 行会生成如下结构的条目{ id: testskills/deploy, // ${authorName}/${name} name: deploy, description: Deployment automation skill for CI/CD pipelines, source: community, tags: [deploy, ci, automation], path: testskills/skills/deploy, files: [SKILL.md], size: 目录总字节数, lastUpdated: 2026-01-01, }最终写入output/registry.jsonversion: 1.0.0、生成时间戳、docs与skills两大数组同时用buildIndex生成 BM25 搜索索引search-index.json其中每个条目打上_type: skill标记内容目录树则整体拷贝到输出目录跳过作者级registry.json。常用构建命令与 docs/content-guide.md 一致chub build test-content/ # 构建到 test-content/dist/ chub build test-content/ -o dist/ # 自定义输出目录 chub build test-content/ --validate-only # 只校验不产出报告 docs/skills 数量与错误 chub build test-content/ --base-url url # 写入 CDN 部署基地址四、检索与获取该样例在 e2e 测试中的行为验证cli/test/e2e.test.js 用本 fixture 构建出一个包含 3 个 doc 1 个 skill 的注册表以下断言可直接复制为可验证的预期行为注册表计数registry.json中docs.length 3、skills.length 1该唯一 skill 即testskills/deploy第 86–90 行--validate-only模式会输出 “3 docs, 1 skills”第 97–101 行。描述模糊检索chub search deployment --json的results[0].id testskills/deploy——关键词只出现在 description 中证明 BM25 索引确实索引了 skill 描述第 121–125 行。标签过滤chub search --tags automation --json恰好返回该 skill 一条第 134–138 行对应 frontmatter 中tags的第三项。内容获取chub get testskills/deploy输出包含# Deploy Skill与Automate deployments第 363–367 行。获取侧的类型判定在 cli/src/commands/get.js 中const type entry.languages ? doc : skill第 35 行——由于 skill 条目没有languages字段chub get无需--lang即可直接取回 skill 全文入口文件名按类型切换为SKILL.md第 67 行。如果条目目录除入口文件外还有参考文件则可用--file path精确拉取或--full拉取全部本样例只有SKILL.md因此不会触发 “Additional files available” 页脚。此外search命令对 skill 条目的展示会打印其path与文件列表行为在 cli/tests/commands/search.test.js 中有专门用例覆盖。构建侧的单测 cli/tests/commands/build.test.js 同样断言build该 fixture 目录产出 3 个 doc、1 个 skill。五、对照参考CLI 自带的 get-api-docs skill仓库中还有一份“生产级” skill 可供对照cli/skills/get-api-docs/SKILL.md。它的 frontmatter 结构与本样例完全同构namedescriptionmetadata.updated-on/source/tags区别在于正文是一份给 Agent 的可执行流程指南先chub --help确认安装再chub search keywords --json选 id然后chub get id --lang py取文档最后用chub annotate/chub feedback沉淀经验与反馈。cli/README.md 说明了如何把它安装进 Claude Code.claude/skills/或 Cursor.cursor/rules/等 Agent 工具——也就是说deploy样例所展示的格式正是被 Agent 消费的 skill 的标准载体。六、编写你自己的 SKILL.md实践清单基于本样例与源码行为一个可被chub build正确收录的 skill 应满足目录content/author/skills/entry-name/SKILL.md入口文件名必须精确为SKILL.mdfrontmatter 必填name缺失构建错误description、metadata.source、metadata.updated-on强烈建议填写缺失仅 warning 或自动回退但会影响检索质量与展示metadata.tags用英文逗号分隔正文面向 Agent 的清晰步骤指令构建过程原样透传不做改写验证chub build content/ --validate-only确认 skills 计数与 warning再chub search description 中的关键词 --json与chub get author/entry-name验证检索命中与内容取回避免踩坑同一作者下 skillname不得重复、跨作者 skillid不得冲突均为构建期硬错误skill 无需也无法声明languages/versions与 doc 的多语言多版本模型不同。综上testskills/skills/deploy/SKILL.md虽只有 17 行却是 Context Hub skill 格式的最小完整范例frontmatter 决定它如何被索引与过滤正文决定 Agent 拿到后做什么而 cli/src/commands/build.js、cli/src/lib/frontmatter.js、cli/src/commands/get.js 与 cli/test/e2e.test.js 共同构成了从“一个 Markdown 文件”到“可检索、可获取的注册表条目”的完整证据链。赞分享【免费下载链接】context-hub项目地址https://gitcode.com/gh_mirrors/co/context-hub点击查看免费下载相关推荐ClawHub Skill 格式完全指南SKILL.md、frontmatter 元数据与发布规范ClawHub Skill 格式完全指南SKILL.md、frontmatter 元数据与发布规范 Skill技能是 ClawHub面向 OpenCla后端前端AI 技能AI 插件搜索引擎lark-cli Skill 格式校验入门从最小合法 SKILL.md 理解 Frontmatter 规范lark cli Skill 格式校验入门从最小合法 SKILL.md 理解 Frontmatter 规范 导读 本文以 lark cli 仓库官方飞书 CCLIAI 技能lark-cli Skill 体系中的 SKILL.md 格式规范从 good-skill-complex 夹具看 YAML frontmatter 校验与最佳实践lark cli Skill 体系中的 SKILL.md 格式规范从 good skill complex 夹具看 YAML frontmatter 校验与最CLIAI 技能上一篇ServerPackCreator GUI 使用教程手把手生成你的第一个 Forge 服务器包下一篇F´ 框架事件自动编码实战从 XML 事件定义到 Event Dictionary 生成与收发解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

MMDetection3D FAQ 实战指南:MMEngine/MMCV/MMDet 版本兼容与点云标注常见问题全解

MMDetection3D FAQ 实战指南:MMEngine/MMCV/MMDet 版本兼容与点云标注常见问题全解

人工智能计算机视觉深度学习自动驾驶 【免费下载链接】mmdetection3d OpenMMLabs next-generation platform for general 3D object detection. 项目地址: https://gitcode.com/gh_mirrors/mm/mmdetection3d 点击查看 免费下载 本篇指南围绕 MMDetection3D 官方 FA…

2026/10/9 5:30:37 阅读更多 →
HarmonyOS 横竖屏与全屏切换:如何避免页面重新排版后控件错位【鸿蒙心迹】

HarmonyOS 横竖屏与全屏切换:如何避免页面重新排版后控件错位【鸿蒙心迹】

👋 你好,欢迎来到我的博客!我是【菜鸟学鸿蒙】我是一名在路上的移动端开发者,正从传统“小码农”转向鸿蒙原生开发的进阶之旅。为了把学习过的知识沉淀下来,也为了和更多同路人互相启发,我决定把探索 Harmo…

2026/10/9 5:30:37 阅读更多 →
Trellis Channel Worker 深度指南:spawn、上下文注入、中断与 OOM 守护实战解析

Trellis Channel Worker 深度指南:spawn、上下文注入、中断与 OOM 守护实战解析

桌面应用开发工具 【免费下载链接】EcoPaste 🎉跨平台的剪贴板管理工具 | Cross-platform clipboard management tool 项目地址: https://gitcode.com/gh_mirrors/ec/EcoPaste 点击查看 免费下载 本文基于 EcoPaste 仓库内置的 Trellis 技能文档 .agent…

2026/10/9 5:30:37 阅读更多 →

最新新闻

C语言文件读取:EOF与-1的本质区别及避坑指南

C语言文件读取:EOF与-1的本质区别及避坑指南

1. 从一个让人抓狂的Bug说起如果你写过C语言的文件读写代码,大概率见过这样的场景:fgetc返回了一个值,你拿它跟EOF比较,逻辑上完全正确,但程序跑起来就是不对劲。更诡异的是,有时候它工作正常,有…

2026/10/9 9:57:24 阅读更多 →
搜索引擎优化SEO底层逻辑与实操指南:从抓取索引到内容为王

搜索引擎优化SEO底层逻辑与实操指南:从抓取索引到内容为王

1. 搜索引擎到底在干什么:先把底层逻辑说透很多人一上来就问“关键词密度多少合适”“外链要发多少条”,这些问题不是不能问,但顺序错了。你得先搞明白搜索引擎的工作流程,否则后面所有操作都是盲人摸象。搜索引擎干的事其实就三件…

2026/10/9 9:57:23 阅读更多 →
视觉传感器教案指南:从光电原理到选型实战

视觉传感器教案指南:从光电原理到选型实战

简介:这是一份面向机器人、自动化生产、图像处理等领域的视觉传感器教学课件,适合高校学生、初学者及工程技术人员系统学习图像传感器基础知识。资源为单个PPTX演示文稿,大小约639KB,共1个文件,内容完整覆盖从传感器分…

2026/10/9 9:57:23 阅读更多 →
数学建模竞赛低碳建筑研究完整代码复现:热传导、主成分与灰色预测

数学建模竞赛低碳建筑研究完整代码复现:热传导、主成分与灰色预测

简介:这份资源是2023年五一数学建模竞赛C题“双碳”目标下低碳建筑研究的完整参赛文档,面向正在备赛数学建模、尤其是关注环境/能源类题目的同学。文档以Matlab为实现工具,系统呈现热传导模型、主成分分析法与灰色预测模型GM(1,1)的建模过程&…

2026/10/9 9:57:23 阅读更多 →
Taylor级数:从数学公式到工程近似的核心接口

Taylor级数:从数学公式到工程近似的核心接口

1. 为什么Taylor级数不是“背公式大赛”,而是数学建模的底层语言你有没有过这种体验:翻开高等数学教材,看到一长串“常用Taylor展开式”表格——eˣ 1 x x/2! x/3! …,sin x x − x/3! x⁵/5! − …,cos x 1 −…

2026/10/9 9:57:23 阅读更多 →
TensorFlow银行客户流失预测实战:从特征工程到SHAP解释与阈值调优

TensorFlow银行客户流失预测实战:从特征工程到SHAP解释与阈值调优

简介:这份PDF文档面向银行风控、金融数据分析及机器学习入门到进阶的读者,围绕客户流失预测这一典型场景,系统讲解基于TensorFlow的特征工程与模型解释技巧。内容从银行业客户流失问题概述、数据收集与探索性分析讲起,逐步深入到特…

2026/10/9 9:56:20 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →