claude-code自定义命令实战-制造生成自定义sikll的openspec(上)

输入对话

帮我创建一个自定义命令。

如果我没说清楚,请先问我:
1. 命令叫什么名字?(比如:整理笔记、写总结、格式转换、润色文章)
2. 这个命令要做什么?(详细说明功能)
3. 对这个命令有什么要求?(说明特殊情况,边界问题)

AI回复

image.png

输入对话

我需要cluade利用openspec的规范流程,利用/openspec:proposal ,/openspec:apply,/openspec:archive等命令,协助我编写并生成自定义的skills,存到“skills\SKILLS_[功能的英文CODE].md”,中间过程不明确的问题,需要询问我。

AI回复

非常好!现在我已经了解了项目结构和 OpenSpec 规范流程。让我先理解一下您的需求,然后询问一些关键问题来完善这个自定义命令的设计。

我对需求的理解
您想创建一个 skills 生成助手命令,该命令能够:

遵循 OpenSpec 规范流程(proposal → apply → archive)
协助生成自定义的 skills 文件
将生成的 skills 存储到 skills/SKILLS_[功能CODE].md
在生成过程中对不明确的问题进行询问
需要明确的问题
在开始创建这个命令之前,我需要您回答以下问题:

1. 命令名称
这个命令应该叫什么名字?建议选项:

create-skill - 创建技能文档
skill-generator - 技能生成器
new-skill - 新建技能
或者您有其他想法?
2. 命令触发方式
用户如何调用这个命令?

选项 A: 通过 /create-skill 这样的斜杠命令
选项 B: 通过自然语言触发(如:"帮我创建一个新的 skill")
选项 C: 两者都支持
3. 命令工作流程
命令的执行流程是否应该是这样的?


1. 用户发起创建 skill 请求
2. Claude 询问 skill 的功能定义和需求
3. 使用 OpenSpec 创建 proposal(/openspec:proposal)
4. 等待用户确认 proposal
5. 应用变更(/openspec:apply)
6. 生成最终的 SKILLS_[CODE].md 文件
7. 归档变更(/openspec:archive)
这个流程是否符合您的预期?还是需要调整?

4. Skills 文件内容结构
生成的 SKILLS_[CODE].md 文件应该包含哪些内容?
参考现有的 SKILLS_DEVELOPMENT.md,是否应该包含:

技能概述
技术栈/工具
操作步骤
最佳实践
示例代码
常见问题
其他?
5. 功能 CODE 命名规则
SKILLS_[CODE].md 中的 CODE 应该如何命名?

使用 UPPER_SNAKE_CASE(如:SKILLS_GIT_WORKFLOW.md)
使用 kebab-case(如:skills-git-workflow.md)
由用户自定义
由 Claude 根据功能自动生成
6. OpenSpec 集成深度
在创建 skills 时,OpenSpec 的作用是:

选项 A: 仅用于规范化流程管理(proposal → apply → archive)
选项 B: 同时用于验证 skills 文档的完整性和规范性
选项 C: 仅作为可选的流程管理工具
7. 交互式问题
在生成过程中,Claude 应该询问哪些问题?例如:

skill 的目标和用途?
涉及的技术栈和工具?
需要哪些操作步骤?
是否需要示例代码?
其他?
请您回答这些问题,我将根据您的反馈创建最合适的自定义命令!

输入对话

这个命令应该叫什么名字:create-skill
用户如何调用这个命令?选项 C: 两者都支持
命令的执行流程是否应该是这样的?符合我的预期,但要求,需要提前询问我,要不要参考已有skills影响,不要参考skills目录下其他skill-xxx.md,或者某个skill-xxx.md,如果不同意,不要读取skills目录下其他skill-xxx.md,让生成的skill有更多可能。
生成的 SKILLS_[CODE].md 文件应该包含哪些内容?
要求明确:结构、格式、验证规则和质量阈值

格式示例如下,请询问我并协助我完善下面的示例:
---
name: skill的名字code
description: "skill的描述、功能、说明,提示词等。
updateTime:更新时间(如2026-01-06)
---

#  skill的名字code - 一句话简要描述

skill功能的定义。

## 环境要求

考虑这个skill要求的前置环境准备,检查,如果缺失则询问用户是否安装,如果同意,则执行安装。
要求考虑macOS、Ubuntu/Debian、Windows主流系统环境。

---

## 如何使用此技能(操作步骤)

当用户请求[skill的code]工作(设计、构建、创建、实现、评审、修复、改进等)时,请遵循以下工作流程:

### 步骤1:步骤一描述
步骤一要执行的步骤、命令等
### 步骤2:步骤二描述
步骤二要执行的步骤、命令等

---

## 搜索参考

### 可用领域

| 领域 | 用途 | 示例关键词 |
|------|------|------------|
| `领域 小写驼峰Code` | 产品用途 描述推荐 | 中英文提示词枚举 |


### 可用技术栈

| 技术栈 | 重点 |
|--------|------|
| `技术栈名称` | 重点 关键词枚举 |


---

## xxx规则实现指南

### 1. 具体要求和规则
规则阐述
使用示例
最佳实践

### 2.具体要求和规则
规则阐述
使用示例
最佳实践

## 示例工作流程

**用户请求:** "用户的可能的描述”

**AI应执行:**

[具体的命令功能步骤]

**然后:** 综合所有搜索结果并实现设计。

---

## 获得更好结果的技巧

整理这个skills可能需要的好的技巧

---

## 常见规则
对该skill的常见规则进行整理。
---

## 交付前检查清单

在交付skill结果之前,验证以下项目:

### 具体指标
- [ ] 指标细节(具体实现步骤逻辑)



SKILLS_[CODE].md 中的 CODE 应该如何命名?使用 UPPER_SNAKE_CASE,由 Claude 根据功能自动生成
在创建 skills 时,OpenSpec 的作用是:选项 A+选项B 用于规范化流程管理(proposal → apply → archive),完成归档后验证 skills 文档的完整性和规范性

在生成过程中,Claude 应该询问哪些问题?如下,并协助我补充
skill 的目标和用途?
涉及的技术栈和工具?
需要哪些操作步骤?
是否需要示例代码?

AI回复

```这个符号会在md文件中解析成代码,为了合理显示,下面的ai回复改成了“#```

非常好!我已经理解了您的需求。现在让我协助您完善这个 `create-skill` 命令的格式示例和询问问题清单。

## 📋 格式示例完善建议

我对您提供的格式示例有以下几点建议和问题:

### 1. **元数据部分(Front Matter)**

#```
---
name: skill-code-name
description: "skill的描述、功能、说明,提示词等"
updateTime: 2026-01-06
version: 1.0.0  # 建议:是否需要版本号?
author: ""      # 建议:是否需要作者信息?
tags: []        # 建议:是否需要标签分类(如:frontend, backend, devops)?
difficulty: ""  # 建议:是否需要难度标识(beginner, intermediate, advanced)?
---

#```

**问题 1.1**: 是否需要添加 `version`(版本号)字段来追踪 skill 的迭代?

**问题 1.2**: 是否需要添加 `tags`(标签)字段用于分类和搜索?

**问题 1.3**: 是否需要添加 `difficulty`(难度)字段来标识技能难度?

### 2. **环境要求部分**

#```
## 环境要求

### 系统要求
- macOS: [具体版本要求]
- Ubuntu/Debian: [具体版本要求]
- Windows: [具体版本要求]

### 依赖工具
- [工具名称] [版本要求]: [用途说明]
- [工具名称] [版本要求]: [用途说明]

### 环境检查脚本
#```bash
# 自动检查环境的脚本

#```

### 安装指南

[各系统的安装步骤]

#```

**问题 2.1**: 是否需要提供自动化的环境检查脚本?

**问题 2.2**: 是否需要区分"必需依赖"和"可选依赖"?

### 3\. **搜索参考部分**

您提到的"搜索参考"部分,我理解是为了帮助用户找到相关资源。

**问题 3.1**: "领域"表格中的"小写驼峰Code"是指什么?能否举个具体例子?

**问题 3.2**: 这个部分是否应该叫"参考资源"或"相关链接"会更清晰?

### 4\. **规则实现指南部分**

**问题 4.1**: "xxx规则实现指南"中的"xxx"应该如何命名?是否应该与 skill 的功能相关?

**问题 4.2**: 是否需要为每条规则提供"反例"(不好的做法)对比?

### 5\. **示例工作流程部分**

**问题 5.1**: 是否需要提供多个示例场景(基础、进阶、复杂)?

**问题 5.2**: 是否需要包含预期输出示例?

### 6\. **交付前检查清单部分**

**问题 6.1**: 是否需要区分"必检项"和"可选项"?

**问题 6.2**: 是否需要为每个检查项提供"验证方法"?

### 7\. **新增建议部分**

我建议是否需要添加以下部分:

**问题 7.1**: 是否需要"故障排除"(Troubleshooting)部分?

**问题 7.2**: 是否需要"性能优化"(Performance Tips)部分?

**问题 7.3**: 是否需要"安全注意事项"(Security Considerations)部分?

**问题 7.4**: 是否需要"相关 Skills"(Related Skills)部分,链接到其他相关的 skill 文档?

**问题 7.5**: 是否需要"更新日志"(Changelog)部分来记录 skill 的变更历史?

---

## 📝 生成过程询问问题清单完善

基于您的需求,我建议在生成过程中按以下顺序询问:

### **第一阶段:基础信息收集**
1\. **Skill 名称和代码**
   - 这个 skill 的名称是什么?(用于生成 CODE)
   - 用一句话描述这个 skill 的核心功能?

2\. **Skill 目标和用途**
   - 这个 skill 要解决什么问题?
   - 目标用户是谁?(开发者、设计师、运维等)
   - 使用场景有哪些?

3\. **参考现有 Skills**
   - 是否需要参考 `skills/` 目录下的现有 skill 文件?
   - 如果需要,参考哪个/哪些文件?

### **第二阶段:技术细节收集**
4\. **技术栈和工具**
   - 涉及哪些编程语言/框架/库?
   - 需要哪些开发工具?
   - 有版本要求吗?

5\. **环境要求**
   - 支持哪些操作系统?(macOS/Ubuntu/Windows)
   - 有哪些必需的依赖工具?
   - 有哪些可选的依赖工具?
   - 是否需要提供环境检查脚本?

6\. **操作步骤**
   - 主要的操作步骤有哪些?(至少 3-5 个步骤)
   - 每个步骤的详细说明?
   - 是否有前置步骤依赖?

### **第三阶段:内容深度收集**
7\. **示例和代码**
   - 是否需要提供示例代码?
   - 需要几个示例场景?(基础/进阶/复杂)
   - 是否需要提供完整的项目示例?

8\. **规则和最佳实践**
   - 有哪些核心规则需要遵循?
   - 有哪些最佳实践?
   - 是否需要提供反例(不好的做法)?

9\. **质量保证**
   - 交付前需要检查哪些指标?
   - 每个指标的具体验证方法是什么?
   - 是否有性能/安全方面的特殊要求?

### **第四阶段:补充内容收集**
10\. **故障排除**
    - 是否需要"故障排除"部分?
    - 常见问题有哪些?

11\. **优化建议**
    - 是否需要"性能优化"建议?
    - 是否需要"安全注意事项"?

12\. **关联信息**
    - 是否有相关的 skills 需要链接?
    - 是否需要提供外部参考资源?

---

## 🎯 完善后的格式示例(草稿)

基于以上问题,我起草了一个更完善的格式示例:

```markdown
---
name: skill-code-name
description: "skill的描述、功能、说明,提示词等"
version: 1.0.0
updateTime: 2026-01-06
author: ""
tags: [tag1, tag2]
difficulty: intermediate
relatedSkills: [other-skill-1, other-skill-2]
---

# skill-code-name - 一句话简要描述

## 📖 概述

skill功能的详细定义和说明。

### 适用场景
- 场景1
- 场景2

### 目标用户
- 用户类型1
- 用户类型2

---

## 🔧 环境要求

### 系统要求
| 操作系统 | 最低版本 | 推荐版本 |
|---------|---------|---------|
| macOS   | [版本]  | [版本]  |
| Ubuntu  | [版本]  | [版本]  |
| Windows | [版本]  | [版本]  |

### 必需依赖
| 工具/库 | 版本要求 | 用途 | 安装命令 |
|--------|---------|------|---------|
| [名称] | [版本]  | [用途] | `命令` |

### 可选依赖
| 工具/库 | 版本要求 | 用途 | 安装命令 |
|--------|---------|------|---------|
| [名称] | [版本]  | [用途] | `命令` |

### 环境检查

运行以下命令检查环境:

#```bash
# 环境检查脚本

#```

* * *

## 📚 如何使用此技能

当用户请求[skill的code]工作时,请遵循以下工作流程:

### 步骤1:[步骤名称]

**目标**: [步骤目标]

**操作**:

#```
# 命令示例

#```

**说明**: [详细说明]

**验证**: [如何验证此步骤成功]

### 步骤2:[步骤名称]

[同上格式]

* * *

## 🔍 搜索参考

### 可用领域

| 领域 | 用途 | 示例关键词 |
| --- | --- | --- |
| [领域名称] | [用途说明] | keyword1, keyword2 |

### 可用技术栈

| 技术栈 | 版本 | 重点 | 参考文档 |
| --- | --- | --- | --- |
| [名称] | [版本] | [重点说明] | [链接] |

* * *

## 📋 核心规则实现指南

### 1\. [规则名称]

**定义**: [规则说明]

**要求**:

*   要求1
*   要求2

**正确示例**:

#```
// 好的做法

#```

**错误示例**:

#```
// 不好的做法

#```

**最佳实践**:

*   实践1
*   实践2

### 2\. [规则名称]

[同上格式]

* * *

## 💡 示例工作流程

### 示例1:基础场景

**用户请求**: "[用户描述]"

**AI应执行**:

1.  [步骤1]
2.  [步骤2]
3.  [步骤3]

**预期输出**:

#```
[输出示例]

#```

### 示例2:进阶场景

[同上格式]

* * *

## 🎯 获得更好结果的技巧

### 技巧1:[技巧名称]

[详细说明]

### 技巧2:[技巧名称]

[详细说明]

* * *

## ⚠️ 常见问题和故障排除

### 问题1:[问题描述]

**症状**: [具体表现]

**原因**: [问题原因]

**解决方案**:

#```
# 解决命令

#```

### 问题2:[问题描述]

[同上格式]

* * *

## 🚀 性能优化建议

*   优化建议1
*   优化建议2

* * *

## 🔒 安全注意事项

*   安全要点1
*   安全要点2

* * *

## ✅ 交付前检查清单

### 必检项

*   <input type="checkbox" disabled="" style="appearance: none; margin: 2px 4px 2px 2px; width: 1em; height: 1em; border-color: rgb(69, 69, 69); border-style: solid; border-width: 1px; border-image: none 100% / 1 / 0 stretch; border-radius: 2px; position: relative; pointer-events: none; vertical-align: middle;"> **[检查项名称]**

    *   **验证方法**: [如何验证]
    *   **通过标准**: [具体标准]
*   <input type="checkbox" disabled="" style="appearance: none; margin: 2px 4px 2px 2px; width: 1em; height: 1em; border-color: rgb(69, 69, 69); border-style: solid; border-width: 1px; border-image: none 100% / 1 / 0 stretch; border-radius: 2px; position: relative; pointer-events: none; vertical-align: middle;"> **[检查项名称]**

    *   **验证方法**: [如何验证]
    *   **通过标准**: [具体标准]

### 可选项

*   [ ]  **[检查项名称]**
    *   **验证方法**: [如何验证]
    *   **建议标准**: [建议标准]

* * *

## 🔗 相关 Skills

*   [相关 skill 1](vscode-webview://1mucceff590fnqe11m2c79i0d2hhhiijgduqkjmj267f3m0jre2o/SKILLS_XXX.md)
*   [相关 skill 2](vscode-webview://1mucceff590fnqe11m2c79i0d2hhhiijgduqkjmj267f3m0jre2o/SKILLS_YYY.md)

* * *

## 📚 参考资源

### 官方文档

*   [资源名称](vscode-webview://1mucceff590fnqe11m2c79i0d2hhhiijgduqkjmj267f3m0jre2o/%E9%93%BE%E6%8E%A5)

### 社区资源

*   [资源名称](vscode-webview://1mucceff590fnqe11m2c79i0d2hhhiijgduqkjmj267f3m0jre2o/%E9%93%BE%E6%8E%A5)

* * *

## 📝 更新日志

### v1.0.0 (2026-01-06)

*   初始版本

#```

---

## ❓ 请确认

请您回答上述所有问题(问题 1.1 - 7.5),我将根据您的反馈:

1\. 完善最终的格式模板
2\. 确定完整的询问问题清单
3\. 开始创建 OpenSpec proposal 来实现 `create-skill` 命令

您觉得这个方向如何?需要调整哪些部分?
#```

输入对话

问题 1.1: 是否需要添加 version(版本号)字段来追踪 skill 的迭代?要

问题 1.2: 是否需要添加 tags(标签)字段用于分类和搜索??要

问题 1.3: 是否需要添加 difficulty(难度)字段来标识技能难度??要
**问题 2.1**: 是否需要提供自动化的环境检查脚本?要
**问题 2.2**: 是否需要区分"必需依赖"和"可选依赖"?不要,只需要考虑必选,比如是否需要python、是否要求必须安装有nodejs,且版本大于多少。
**问题 3.1**: "领域"表格中的"小写驼峰Code"是指什么?能否举个具体例子?比如“帮助列表”的小写驼峰Code,叫“helpList”。
**问题 3.2**: 这个部分是否应该叫"参考资源"或"相关链接"会更清晰?"搜索参考"部分,就是为了帮助用户找到相关资源。


**问题 4.1**: "xxx规则实现指南"中的"xxx"应该如何命名?是否应该与 skill 的功能相关?命名考虑我问问题时提出的规则方面的要求,形成中文或者英文的命名。也要考虑 skill 的功能。比如生成vue代码,要考虑:css/sass规则实现指南。

**问题 4.2**: 是否需要为每条规则提供"反例"(不好的做法)对比?要

**问题 5.1**: 是否需要提供多个示例场景(基础、进阶、复杂)?要,分为基础、进阶、复杂


**问题 5.2**: 是否需要包含预期输出示例?请继续询问我,什么叫预期输出示例。

**问题 6.1**: 是否需要区分"必检项"和"可选项"?区分并skill运行的时候询问我

**问题 6.2**: 是否需要为每个检查项提供"验证方法"?要,输出执行步骤并执行。

**问题 7.1**: 是否需要"故障排除"(Troubleshooting)部分?不要

**问题 7.2**: 是否需要"性能优化"(Performance Tips)部分?不要

**问题 7.3**: 是否需要"安全注意事项"(Security Considerations)部分?不要


**问题 7.4**: 是否需要"相关 Skills"(Related Skills)部分,链接到其他相关的 skill 文档?不要
**问题 7.5**: 是否需要"更新日志"(Changelog)部分来记录 skill 的变更历史?要

AI回答

非常好!感谢您的详细回答。现在让我先澄清一下 问题 5.2 关于"预期输出示例"的含义:

❓ 问题 5.2 澄清:什么是"预期输出示例"?
预期输出示例是指在示例工作流程中,展示执行某个操作后应该得到的结果。让我用几个例子说明:

示例 A:生成 Vue 组件的场景

### 示例1:基础场景 - 创建用户列表组件

**用户请求**: "创建一个用户列表组件"

**AI应执行**:
1. 创建 `UserList.vue` 文件
2. 实现组件基础结构
3. 添加样式

**预期输出示例**(这就是"预期输出示例"):
```vue
<!-- UserList.vue -->
<template>
  <div class="user-list">
    <el-table :data="userList">
      <el-table-column prop="name" label="姓名" />
      <el-table-column prop="email" label="邮箱" />
    </el-table>
  </div>
</template>

<script lang="ts" setup name="UserList">
const userList = ref([]);
</script>


### 示例 B:运行命令的场景

```markdown
### 示例2:环境检查

**用户请求**: "检查开发环境"

**AI应执行**:
```bash
node --version
npm --version
预期输出示例(这就是"预期输出示例"):


v18.17.0
9.6.7
验证: 如果 Node.js 版本 >= 16.0.0 且 npm 版本 >= 8.0.0,则环境检查通过



### 示例 C:API 调用的场景

```markdown
### 示例3:获取用户数据

**用户请求**: "获取用户列表数据"

**AI应执行**:
1. 调用 `/api/users` 接口
2. 解析返回数据
3. 更新状态

**预期输出示例**(这就是"预期输出示例"):
```json
{
  "code": 200,
  "data": [
    { "id": 1, "name": "张三", "email": "zhangsan@example.com" },
    { "id": 2, "name": "李四", "email": "lisi@example.com" }
  ],
  "message": "success"
}


---

## ❓ 现在请您回答问题 5.2:

基于以上说明,**是否需要在示例工作流程中包含预期输出示例**?

- **选项 A**: 需要,帮助用户理解执行结果应该是什么样的
- **选项 B**: 不需要,只说明操作步骤即可
- **选项 C**: 部分场景需要(比如代码生成、命令执行需要,但简单操作不需要)

请告诉我您的选择,然后我将:
1. 根据您的所有回答完善最终格式模板
2. 确定完整的询问问题清单
3. 开始创建 OpenSpec proposal 来实现 `create-skill` 命令

输入对话

基于以上说明,**是否需要在示例工作流程中包含预期输出示例**?**选项 A**: 需要,帮助用户理解执行结果应该是什么样的

AI回答

image.png

到这里,calude code,就帮我在openspec\changes目录下,创建了add-create-skill-command工作流。
image.png

image.png

输入对话

 需要修改:请告诉我需要调整哪些部分。

以下方面需要调整:
1、生成的proposal下的各种md,要用中文,比如openspec\changes\add-create-skill-command\specs\skill-generator\spec.md中第4行,“The system SHALL support triggering the `create-skill` functionality through both slash commands and natural language input.”,应该是“该系统应支持通过斜杠命令和自然语言输入来触发“`create-skill`”功能。”。

2.这个proposal我需要一直用,不需要归档,所以不用考虑生成完成后,执行“/openspec:archive”操作。

AI回答

image.png

image.png

image.png

输入对话

🔄 还需要调整:请告诉我需要进一步修改的地方

tasks.md的最后,增加“完成后,将taks.md的勾选重置,[x]恢复成[ ],以便下次实施。”,这是大概意思,协助我将这个意思转换成要求

AI回答

image.png

image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容