mcpField
A
add-skill

add-skill

github.com/youdotcom-ossAgent 工作流9753 次安装2 天前更新
代码仓库

关于 add-skill

用于向 `agent-skills` 仓库添加外部技能的工作流技能,涵盖集成型和 CLI 型技能的搭建、发布流程登记、符号链接创建与验证。

主要功能

  1. 01选择集成型或工具型流程
  2. 02搭建技能文件和目录
  3. 03在 publish.yml 中登记技能
  4. 04创建外部技能符号链接
  5. 05验证技能结构

适用场景

  1. 01添加 SDK 集成技能
  2. 02添加 CLI 包装技能
  3. 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 命令)?

  • 集成技能 → 调用 create-seed-skill,然后继续执行步骤 2–4
  • 工具技能 → 从步骤 1开始手动搭建

集成技能工作流

集成技能封装 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 规范验证任意技能的结构

评论

支持 Markdown