Skip to content

write-a-skill — 创建自定义 Skill

  • 触发方式: /write-a-skill 或关键词「create skill」「write a skill」「新建 skill」
  • 适用场景: 创建自定义 Skill、封装团队工作流
  • 不适用场景: 修改已有 Skill(直接编辑文件)

功能概述

write-a-skill 帮助你创建新的 Claude Code Skill。它提供完整的 Skill 创建指导:结构设计、Frontmatter 配置、Prompt 编写、资源打包。

触发条件

以下情况会自动触发 write-a-skill

  • 提到「创建 Skill」「写一个 Skill」
  • 想封装重复的工作流程
  • 使用 /write-a-skill 命令

使用示例

示例 1:创建简单 Skill

/write-a-skill 创建一个 skill,自动为 Python 函数生成 docstring

Claude 会生成 Skill 文件结构:

my-docstring-skill/
├── SKILL.md          # Skill 入口(frontmatter + prompt)
└── resources/
    └── examples.md   # 示例文档

SKILL.md 范例:

markdown
---
name: python-docstring
description: Generate Google-style docstrings for Python functions
triggers:
  - "add docstring"
  - "generate docs for this function"
---

When activated, generate a Google-style Python docstring covering:
- Args (type + description)
- Returns (type + description)
- Raises (if applicable)
- Example usage

Follow PEP 257. Keep descriptions concise.

示例 2:带工具的 Skill

/write-a-skill 创建一个数据库迁移 skill,能连接 PostgreSQL 并验证迁移安全性

示例 3:封装团队规范

/write-a-skill 创建代码审查 skill,按我们团队的 5 条代码规范检查

示例 4:多语言翻译 Skill

/write-a-skill 创建一个 i18n skill,将中文 JSON 翻译文件翻译成英文和日文

示例 5:CI/CD Skill

/write-a-skill 创建一个 skill,检查 PR 是否符合我们的 CI 配置要求

Skill 文件结构

skill-name/
├── SKILL.md          # 必需:Skill 入口文件
└── resources/        # 可选:附加资源
    ├── examples.md
    ├── templates/
    └── docs/

注意事项

  • Skill name 使用 kebab-case 命名
  • Frontmatter 中的 description 要简洁明确,这是触发匹配的关键
  • 不要过度设计 — 一个 Skill 做好一件事
  • 测试 Skill 时注意触发词的精确性误触率
  • 资源文件用于引用,不会被全部加载到上下文

相关 Skills

  • update-config — 配置 Skill 的权限和 hooks
  • init — 初始化项目的 CLAUDE.md
  • simplify — 简化 Skill 的 Prompt 内容