关于 add-skill
用于向 `agent-skills` 仓库添加外部技能的工作流技能,涵盖集成型和 CLI 型技能的搭建、发布流程登记、符号链接创建与验证。
主要功能
- 01选择集成型或工具型流程
- 02搭建技能文件和目录
- 03在 publish.yml 中登记技能
- 04创建外部技能符号链接
- 05验证技能结构
适用场景
- 01添加 SDK 集成技能
- 02添加 CLI 包装技能
- 03登记待发布的外部技能
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ youdotcom-oss/ agent-skills --skill add-skill安装后在 Claude Code 中输入/add-skill确认已加载。
详细介绍
添加技能
协调向 agent-skills 仓库添加新的外部技能。涵盖搭建目录结构、注册发布工作流以及创建符号链接。
何时使用
在以下情况使用此技能:
- 向
skills/添加新的 SDK/框架集成技能 - 向
skills/添加新的 CLI 工具封装技能 - 需要创建并注册
skills/<skill-name>/目录时
决策点
先询问:
这是集成技能(Agent 生成调用真实 API 的代码和测试),还是工具技能(Agent 运行 CLI 命令)?
集成技能工作流
集成技能封装 SDK 或框架,由 Agent 生成可运行的代码和集成测试。
示例: ydc-ai-sdk-integration、teams-anthropic-integration、ydc-openai-agent-sdk-integration
步骤 1(集成技能)— 调用 create-seed-skill
启用 create-seed-skill 技能。它会处理以下事项:
- 收集技能信息(名称、软件包、语言 — TypeScript、Python 或两者、路径 A/B、环境变量、测试查询)
- 生成
skills/<skill-name>/SKILL.md和assets/ - 创建
tests/<skill-name>/目录并添加.gitkeep文件(若使用两种语言,则每种语言各一个) - 向
data/prompts/prompts.jsonl中追加每种语言对应的一条prompts.jsonl记录
完整完成 create-seed-skill 工作流后,再继续执行步骤 2。
工具技能工作流
工具技能是 CLI 封装,Agent 运行命令而非编写代码。
示例: youdotcom-cli
步骤 1 — 搭建技能目录
在 skills/<skill-name>/SKILL.md 创建技能目录和 SKILL.md 文件。
必需的 frontmatter:
---
name: <skill-name>
description: |
One-line summary. When to activate.
license: <ISC|MIT|Apache-2.0>
compatibility: <runtime requirements, e.g. "Requires Bun 1.3+">
metadata:
author: youdotcom-oss
version: "1.0.0"
category: <tool|integration|scaffolding>
keywords: <comma-separated>
---
立即验证:
bunx @plaited/development-skills validate-skill skills/<skill-name>
步骤 2 — 在 publish.yml 中注册
需要编辑 .github/workflows/publish.yml 两处:
2a — 添加输入项
在 on.workflow_dispatch.inputs 下添加:
<skill-name>:
description: "<skill-name>"
required: false
type: choice
default: skip
options:
- skip
- patch
- minor
- major
2b — 添加作业
将其追加到 jobs: 部分的末尾。新作业必须通过 needs 依赖当前最后一个作业,以保留推送操作的串行执行:
publish-<skill-name>:
needs: <current-last-job>
if: ${{ always() && inputs['<skill-name>'] != 'skip' }}
uses: ./.github/workflows/_publish.yml
with:
skill_name: "<skill-name>"
bump_type: ${{ inputs['<skill-name>'] }}
secrets:
PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
运行时查找当前最后一个作业 — 不要依赖硬编码列表。
运行以下命令,获取要用于 needs 的作业 ID:
grep '^ publish-' .github/workflows/publish.yml | tail -1
输出会包含类似 publish-youdotcom-cli: 的一行 — 使用作业 ID(不含末尾冒号)作为 <current-last-job>。
if: 中的 always() 是必需的 — 否则,若前置作业被跳过,依赖它的作业也会被跳过,即使已选择此技能也是如此。
步骤 3 — 创建符号链接
外部技能通过符号链接从 .claude/skills/ 指向 skills/:
ln -s ../../skills/<skill-name> .claude/skills/<skill-name>
注意:内部技能(位于 .agents/skills/ 中)使用不同的目标:
../../.agents/skills/<skill-name> — 但此技能仅处理外部技能。
步骤 4 — 最终验证
bunx @plaited/development-skills validate-skill skills/<skill-name>
提交前,确认输出报告 valid: true。
相关技能
create-seed-skill— 集成类技能的完整搭建工作流(SKILL.md + assets + prompts.jsonl)validate-skill— 根据 AgentSkills 规范验证任意技能的结构