加载中
本节课内容学完后,您将能够
  • 通过将技能提交到 Git 仓库与团队共享技能
  • 通过插件和市场在各个项目间分发技能
  • 使用企业托管设置在整个组织范围内部署技能
  • 配置自定义子代理以使用特定技能

共享技能

加载中

共享技能 · 4 分钟

摘要文字记录

当技能在团队或组织内共享时,它们会变得更有价值。本视频介绍了三种主要的分发方式—— 仓库提交、插件和企业托管设置——并解释了 如何配置自定义子代理以使用技能。您将了解哪种 方法适合哪种场景,以及如何处理一个重要的陷阱: 子代理不会自动继承技能。

关键要点

  • .claude/skills 中的项目技能会通过 Git 自动共享——任何克隆该仓库的人都会获得这些技能
  • 插件让您可以通过市场在各个仓库间分发技能,以供更广泛的社区使用
  • 企业托管设置以最高优先级在整个组织范围内部署技能,非常适合强制性标准和合规要求
  • 子代理不会自动看到您的技能——您必须在自定义代理的 frontmatter 的 skills 字段中明确列出技能
  • 内置代理(Explorer、Plan、Verify)完全无法访问技能——只有在 .claude/agents 中定义的自定义子代理才可以

当技能被共享时,它们会变得更有价值。一个只有您自己使用的 PR 审查技能是有帮助的,但如果将同一个技能在整个团队中共享,就能使代码审查标准化,并在整个组织中创造一致的体验。让我们来看看分发技能的不同方式。

将技能提交到您的仓库

最简单的共享方法是将技能直接提交到您的仓库。将它们放在 .claude/skills 中,任何克隆该仓库的人都会自动获得这些技能——无需额外安装。

当您推送更新时,每个人在下次拉取时都会获得更新。这种方法适用于:

  • 团队编码标准
  • 特定项目的工作流程
  • 引用您代码库结构的技能

.claude 目录包含您的代理、钩子、技能和设置——所有这些都受版本控制,并通过常规的 Git 工作流程与团队共享。

通过插件分发技能

插件是一种通过自定义功能扩展 Claude Code 的方式,旨在跨团队和项目共享。在您的插件项目中,创建一个 skills 目录,其文件结构与 .claude 目录类似——每个技能都有自己的文件夹,里面包含一个 SKILL.md 文件。

在您将插件分发到市场后,其他用户就可以自行发现并将其安装到 Claude Code 中。

当您的技能不是过于特定于某个项目,并且对您直接团队之外的社区成员也有用时,这种方法是最佳选择。

通过托管设置进行企业部署

管理员可以通过托管设置在整个组织范围内部署技能。企业技能具有最高优先级——它们会覆盖同名的个人、项目和插件技能。

托管设置文件支持诸如 strictKnownMarketplaces 之类的功能,用于控制可以从哪里安装插件:

json
"strictKnownMarketplaces": [
  {
    "source": "github",
    "repo": "acme-corp/approved-plugins"
  },
  {
    "source": "npm",
    "package": "@acme-corp/compliance-plugins"
  }
]

对于必须在整个组织中保持一致的强制性标准、安全要求、合规工作流程和编码实践,这是正确的选择。这里的关键词是"必须"。

技能与子代理

有一件事会让人感到意外:子代理不会自动看到您的技能。当您将任务委派给子代理时,它会以一个全新的、干净的上下文开始。

这里有一些需要理解的重要区别:

  • 内置代理(如 Explorer、Plan 和 Verify)完全无法访问技能
  • 您定义的自定义子代理可以使用技能,但前提是您明确列出了它们
  • 技能是在子代理启动时加载的,而不像在主对话中那样按需加载

要创建一个带有技能的自定义子代理,请在 .claude/agents 中添加一个代理 markdown 文件。您可以使用 Claude Code 中的 /agents 命令以交互方式创建一个:

生成的代理文件包含一个 skills 字段,列出了要加载的技能。以下是 frontmatter 的样子:

yaml
---
name: frontend-security-accessibility-reviewer
description: "Use this agent when you need to review frontend code for accessibility..."
tools: Bash, Glob, Grep, Read, WebFetch, WebSearch, Skill...
model: sonnet
color: blue
skills: accessibility-audit, performance-check
---

当您委派给这个子代理时,它会加载这两项技能,并将它们应用于每次审查。首先确保这些技能存在于您的 .claude/skills 目录中,然后要么创建一个新的子代理,要么将 skills 字段添加到现有代理的 markdown 文件中。

这种模式在以下情况下效果非常好:

  • 您希望进行具有特定专长的隔离任务委派
  • 不同的子代理需要不同的技能(前端审查者与后端审查者)
  • 您希望在委派的工作中强制执行标准,而不依赖于提示

课程反思

  • 对于您一直在考虑构建的技能,哪种共享方法(仓库、插件、企业)最合适?
  • 您是否有一些工作流程,在这些流程中,具有特定技能的自定义子代理能够提高委派工作的一致性?

接下来是什么

在最后一课中,您将学习如何排查常见的技能问题——从无法触发的技能,到优先级冲突,再到运行时错误——并提供一份可随时参考的实用清单。