mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-13 02:41:50 +08:00
742 lines
24 KiB
Markdown
742 lines
24 KiB
Markdown
# 命令转 Skill 规范 v2.0
|
||
|
||
> 基于 `workflow-plan` 转换实践提炼的标准流程
|
||
>
|
||
> **v2.0 变更**:命令调用引用统一转换为文件路径引用,不再保留 `/workflow:XX` 等命令调用语法
|
||
|
||
## ⚠️ 核心要求
|
||
|
||
**Phase 文件内容必须与原命令文件内容一致**
|
||
|
||
转换时只改变结构和组织方式,不改变功能实现细节。
|
||
|
||
---
|
||
|
||
## 目录
|
||
|
||
1. [转换目标](#1-转换目标)
|
||
2. [核心原则](#2-核心原则)
|
||
3. [结构映射](#3-结构映射)
|
||
4. [转换步骤](#4-转换步骤)
|
||
5. [SKILL.md 编写规范](#5-skillmd-编写规范)
|
||
6. [Phase 文件编写规范](#6-phase-文件编写规范)
|
||
7. [内容一致性验证](#7-内容一致性验证)
|
||
8. [质量检查清单](#8-质量检查清单)
|
||
9. [示例对照](#9-示例对照)
|
||
|
||
---
|
||
|
||
## 1. 转换目标
|
||
|
||
### 1.1 为什么转换
|
||
|
||
| 命令格式 | Skill 格式 |
|
||
|----------|-----------|
|
||
| 单文件 + 子命令引用 | 结构化目录 + 分阶段执行 |
|
||
| 一次性全量加载 | **分布读取**(按需加载) |
|
||
| 执行流程隐式 | 执行流程**显式定义** |
|
||
| 子命令散落各处 | Phase 文件**集中管理** |
|
||
| 缺乏复用机制 | 模板/规范可复用 |
|
||
|
||
### 1.2 转换收益
|
||
|
||
- **上下文优化**:Phase 文件按需加载,减少 token 消耗
|
||
- **可维护性**:结构清晰,修改范围可控
|
||
- **可扩展性**:新增阶段只需添加 Phase 文件
|
||
- **执行可视化**:TodoWrite 与 Phase 对齐,进度透明
|
||
|
||
---
|
||
|
||
## 2. 核心原则
|
||
|
||
### 2.1 内容一致性原则(最高优先级)
|
||
|
||
> **Phase 文件内容必须与原命令文件内容一致**
|
||
>
|
||
> 这是转换的第一要求,不可妥协。
|
||
|
||
**一致性定义**:
|
||
|
||
| 维度 | 一致性要求 | 验证方法 |
|
||
|------|-----------|---------|
|
||
| **代码逻辑** | 所有Bash命令、函数、条件判断完全一致 | 逐行对比代码块 |
|
||
| **Agent Prompt** | Prompt内容100%保留,包括示例和约束 | 全文搜索关键段落 |
|
||
| **数据结构** | 表格、Schema、类型定义完整复制 | 对比字段数量 |
|
||
| **执行步骤** | 步骤顺序、子步骤层级保持不变 | 对比步骤编号 |
|
||
| **文本说明** | 关键说明、注释、警告完整保留 | 抽查重要段落 |
|
||
|
||
**允许的差异**:
|
||
|
||
| 差异类型 | 说明 | 示例 |
|
||
|---------|------|------|
|
||
| ✅ 添加阶段标识 | Phase标题、来源标注 | `# Phase 1: Session Discovery` |
|
||
| ✅ 添加组织结构 | 章节标题优化 | 添加 `## Execution Steps` |
|
||
| ✅ 添加衔接说明 | Post-Phase Update | 阶段完成后的状态说明 |
|
||
| ✅ 命令引用转文件路径 | 将 `/workflow`、`/command` 等命令引用转换为相对文件路径 | 原文 `/workflow:session:start` → `phases/01-session-discovery.md` |
|
||
| ✅ 移除 Frontmatter | 移除命令的 argument-hint、examples | 命令级元数据在 Skill 中不需要 |
|
||
| ❌ 简化代码 | 任何代码的省略或改写 | 不允许 |
|
||
| ❌ 简化Prompt | Agent Prompt的任何删减 | 不允许 |
|
||
| ❌ 调整步骤 | 合并、拆分、重排步骤 | 不允许 |
|
||
|
||
**内容保留清单**:
|
||
|
||
| 内容类型 | 保留要求 | 示例 |
|
||
|---------|---------|------|
|
||
| **Bash命令** | 完整命令,包含所有参数、管道、重定向 | `find . -name "*.json" \| head -1` |
|
||
| **Agent Prompt** | 全文保留,包含OBJECTIVE、TASK、EXPECTED等所有节 | 完整的Task({prompt: "..."}) |
|
||
| **代码函数** | 完整函数体,所有if/else分支 | `analyzeTaskComplexity()` 全部代码 |
|
||
| **参数表格** | 所有行列,不省略任何参数 | Session Types表格 |
|
||
| **JSON Schema** | 所有字段、类型、required定义 | context-package.json schema |
|
||
| **验证逻辑** | 所有校验条件、错误处理、回滚代码 | conflict resolution验证清单 |
|
||
| **配置示例** | 输入输出示例、配置模板 | planning-notes.md模板 |
|
||
| **注释说明** | 重要的行内注释、块注释 | `// CRITICAL: ...` |
|
||
|
||
❌ **严格禁止的简化行为**:
|
||
|
||
1. **将代码替换为描述**
|
||
- ❌ 错误:`Execute context gathering agent`
|
||
- ✅ 正确:完整的 `Task({ subagent_type: "context-search-agent", prompt: "...[完整200行prompt]..." })`
|
||
|
||
2. **省略Prompt内容**
|
||
- ❌ 错误:`Agent prompt for context gathering (see original file)`
|
||
- ✅ 正确:复制粘贴完整Prompt文本
|
||
|
||
3. **压缩表格**
|
||
- ❌ 错误:`Session types: Discovery/Auto/Force (see details in code)`
|
||
- ✅ 正确:完整Session Types表格,包含type/description/use case列
|
||
|
||
4. **合并步骤**
|
||
- ❌ 错误:将Step 1.1-1.4合并为Step 1
|
||
- ✅ 正确:保持1.1、1.2、1.3、1.4独立步骤
|
||
|
||
5. **删除示例**
|
||
- ❌ 错误:省略JSON输出示例
|
||
- ✅ 正确:保留所有输入输出示例
|
||
|
||
**引用转换规则**:
|
||
|
||
命令引用统一转换为文件路径引用,规则如下:
|
||
|
||
| 原命令引用 | 转换方式 | 示例 |
|
||
|-----------|---------|------|
|
||
| **Frontmatter** | 移除,在 SKILL.md 中统一定义 | `argument-hint`、`examples` → 移除 |
|
||
| **命令调用语法** | 转换为 Phase 文件的相对路径 | `/workflow:session:start` → `phases/01-session-discovery.md` |
|
||
| **命令路径引用** | 转换为 Skill 目录内路径 | `commands/workflow/tools/` → `phases/` |
|
||
| **跨命令引用** | 转换为 Phase 间文件引用 | `/workflow:tools:context-gather` → `phases/02-context-gathering.md` |
|
||
| **命令参数说明** | 移除或转为 Phase Prerequisites | `usage: /workflow:plan [session-id]` → Phase Prerequisites 中说明 |
|
||
|
||
**转换示例**:
|
||
|
||
原命令文件中:
|
||
```markdown
|
||
## Related Commands
|
||
- `/workflow:session:start` - Start new session
|
||
- `/workflow:tools:context-gather` - Gather context
|
||
```
|
||
|
||
转换后 Phase 文件中(使用文件路径引用):
|
||
```markdown
|
||
## Related Phases
|
||
- [Phase 1: Session Discovery](phases/01-session-discovery.md)
|
||
- [Phase 2: Context Gathering](phases/02-context-gathering.md)
|
||
```
|
||
|
||
或在 SKILL.md 的 Phase Reference Table 中统一管理引用关系:
|
||
```markdown
|
||
### Phase Reference Documents
|
||
| Phase | Document | Purpose |
|
||
|-------|----------|---------|
|
||
| Phase 1 | [phases/01-session-discovery.md](phases/01-session-discovery.md) | 会话发现与初始化 |
|
||
| Phase 2 | [phases/02-context-gathering.md](phases/02-context-gathering.md) | 上下文收集 |
|
||
```
|
||
|
||
### 2.2 分布读取原则
|
||
|
||
> **SKILL.md 引用 Phase,Phase 按执行顺序加载**
|
||
|
||
```
|
||
执行流程:
|
||
Phase 1 → Read: phases/01-xxx.md → 执行 → 释放
|
||
↓
|
||
Phase 2 → Read: phases/02-xxx.md → 执行 → 释放
|
||
↓
|
||
Phase N → Read: phases/0N-xxx.md → 执行 → 完成
|
||
```
|
||
|
||
### 2.3 职责分离原则
|
||
|
||
| 层级 | 职责 | 内容 |
|
||
|------|------|------|
|
||
| **SKILL.md** | 编排协调 | 流程图、数据流、TodoWrite 模式、阶段入口 |
|
||
| **Phase 文件** | 具体执行 | 完整执行逻辑、代码实现、Agent Prompt |
|
||
| **Specs** | 规范约束 | Schema 定义、质量标准、领域规范 |
|
||
| **Templates** | 可复用片段 | Agent 基础模板、输出模板 |
|
||
|
||
---
|
||
|
||
## 3. 结构映射
|
||
|
||
### 3.1 命令结构 → Skill 结构
|
||
|
||
```
|
||
commands/ skills/
|
||
├── workflow/ ├── workflow-plan/
|
||
│ ├── plan.md ────────→ │ ├── SKILL.md (orchestrator)
|
||
│ ├── session/ │ ├── phases/
|
||
│ │ └── start.md ────────→ │ │ ├── 01-session-discovery.md
|
||
│ └── tools/ │ │ ├── 02-context-gathering.md
|
||
│ ├── context-gather.md ───→ │ │ ├── 03-conflict-resolution.md
|
||
│ ├── conflict-resolution.md │ │ └── 04-task-generation.md
|
||
│ └── task-generate-agent.md │ └── (specs/, templates/ 可选)
|
||
```
|
||
|
||
### 3.2 文件映射规则
|
||
|
||
| 源文件类型 | 目标文件 | 映射规则 |
|
||
|-----------|---------|---------|
|
||
| 主命令文件 | `SKILL.md` | 提取元数据、流程、协调逻辑 |
|
||
| 子命令文件 | `phases/0N-xxx.md` | 完整内容 + 阶段标识 |
|
||
| 引用的规范 | `specs/xxx.md` | 独立提取或保留在 Phase 中 |
|
||
| 通用模板 | `templates/xxx.md` | 多处引用时提取 |
|
||
|
||
### 3.3 命名转换
|
||
|
||
| 原命令路径 | Phase 文件名 |
|
||
|-----------|-------------|
|
||
| `session/start.md` | `01-session-discovery.md` |
|
||
| `tools/context-gather.md` | `02-context-gathering.md` |
|
||
| `tools/conflict-resolution.md` | `03-conflict-resolution.md` |
|
||
| `tools/task-generate-agent.md` | `04-task-generation.md` |
|
||
|
||
**命名规则**:`{序号}-{动作描述}.md`
|
||
- 序号:两位数字 `01`, `02`, ...
|
||
- 动作:动词-名词形式,小写连字符
|
||
|
||
---
|
||
|
||
## 4. 转换步骤
|
||
|
||
### 4.1 准备阶段
|
||
|
||
```markdown
|
||
□ Step 0: 分析源命令结构
|
||
- 读取主命令文件,识别调用的子命令
|
||
- 绘制命令调用关系图
|
||
- 统计各文件行数(用于后续验证)
|
||
```
|
||
|
||
### 4.2 创建目录结构
|
||
|
||
```markdown
|
||
□ Step 1: 创建 Skill 目录
|
||
mkdir skills/{skill-name}/
|
||
mkdir skills/{skill-name}/phases/
|
||
```
|
||
|
||
### 4.3 编写 SKILL.md
|
||
|
||
```markdown
|
||
□ Step 2: 编写 SKILL.md
|
||
- 提取 Frontmatter (name, description, allowed-tools)
|
||
- 编写架构概览图
|
||
- 编写执行流程(含 Phase 引用表)
|
||
- 编写数据流定义
|
||
- 编写 TodoWrite 模式
|
||
- 编写协调逻辑(阶段间衔接)
|
||
```
|
||
|
||
### 4.4 转换 Phase 文件
|
||
|
||
```markdown
|
||
□ Step 3: 逐个转换子命令为 Phase 文件
|
||
FOR each 子命令:
|
||
- 读取原命令完整内容
|
||
- 添加 Phase 标题和元信息
|
||
- 保留所有代码、表格、Agent Prompt
|
||
- 添加 Post-Phase Update 节(如需)
|
||
- 验证行数接近原文件
|
||
```
|
||
|
||
### 4.5 验证完整性
|
||
|
||
```markdown
|
||
□ Step 4: 验证内容完整性
|
||
- 比较 Phase 文件与原命令行数
|
||
- 确认关键代码块存在
|
||
- 确认 Agent Prompt 完整
|
||
- 确认表格和 Schema 完整
|
||
```
|
||
|
||
---
|
||
|
||
## 5. SKILL.md 编写规范
|
||
|
||
### 5.1 Frontmatter 模板
|
||
|
||
```yaml
|
||
---
|
||
name: {skill-name}
|
||
description: {简短描述}. Triggers on "{trigger-phrase}".
|
||
allowed-tools: Task, AskUserQuestion, TodoWrite, Read, Write, Edit, Bash, Glob, Grep
|
||
---
|
||
```
|
||
|
||
### 5.2 必需章节
|
||
|
||
```markdown
|
||
# {Skill Name}
|
||
|
||
{一句话描述功能}
|
||
|
||
## Architecture Overview
|
||
{ASCII 架构图}
|
||
|
||
## Key Design Principles
|
||
{设计原则列表}
|
||
|
||
## Auto Mode
|
||
{自动模式说明}
|
||
|
||
## Usage
|
||
|
||
```
|
||
Skill(skill="{skill-name}", args="<task description>")
|
||
Skill(skill="{skill-name}", args="[FLAGS] \"<task description>\"")
|
||
|
||
# Flags
|
||
{flag 说明,每个 flag 一行}
|
||
|
||
# Examples
|
||
Skill(skill="{skill-name}", args="\"Implement JWT authentication\"") # 说明
|
||
Skill(skill="{skill-name}", args="--mode xxx \"Refactor payment module\"") # 说明
|
||
Skill(skill="{skill-name}", args="-y \"Add user profile page\"") # 说明
|
||
```
|
||
|
||
## Execution Flow
|
||
{流程图 + Phase 引用表}
|
||
|
||
### Phase Reference Documents
|
||
| Phase | Document | Load When |
|
||
|-------|----------|-----------|
|
||
| Phase 1 | phases/01-xxx.md | Phase 1 开始时 |
|
||
| ... | ... | ... |
|
||
|
||
## Core Rules
|
||
{执行约束和规则}
|
||
|
||
## Data Flow
|
||
{阶段间数据传递定义}
|
||
|
||
## TodoWrite Pattern
|
||
{任务列表模板}
|
||
|
||
## Error Handling
|
||
{错误处理策略}
|
||
```
|
||
|
||
**Usage 格式要求**:
|
||
|
||
- **必须使用代码块** 包裹 Usage 内容
|
||
- 使用 `Skill()` 调用格式,不使用 `/skill-name` 命令行格式
|
||
- 包含两种调用格式:基本调用 + 带 Flags 的完整调用
|
||
- Flags 说明每行一个 flag,格式:`flag-name 说明`
|
||
- Examples 必须展示所有 flag 组合的典型调用场景
|
||
- 字符串参数中的引号使用转义 `\"`
|
||
- Examples 行尾可添加 `# 说明` 注释
|
||
|
||
### 5.3 执行流程示例
|
||
|
||
```markdown
|
||
## Execution Flow
|
||
|
||
```
|
||
Phase 1: Session Discovery
|
||
│ Ref: phases/01-session-discovery.md
|
||
↓
|
||
Phase 2: Context Gathering
|
||
│ Ref: phases/02-context-gathering.md
|
||
↓
|
||
Phase 3: Conflict Resolution (conditional)
|
||
│ Ref: phases/03-conflict-resolution.md
|
||
↓
|
||
Phase 4: Task Generation
|
||
│ Ref: phases/04-task-generation.md
|
||
↓
|
||
Complete: IMPL_PLAN.md + Task JSONs
|
||
```
|
||
|
||
### Phase Reference Documents
|
||
|
||
| Phase | Document | Load When |
|
||
|-------|----------|-----------|
|
||
| Phase 1 | `phases/01-session-discovery.md` | Phase 1 开始执行时 |
|
||
| Phase 2 | `phases/02-context-gathering.md` | Phase 1 完成后 |
|
||
| Phase 3 | `phases/03-conflict-resolution.md` | conflict_risk ≥ medium 时 |
|
||
| Phase 4 | `phases/04-task-generation.md` | Phase 3 完成或跳过后 |
|
||
```
|
||
|
||
---
|
||
|
||
## 6. Phase 文件编写规范
|
||
|
||
### 6.1 Phase 文件结构
|
||
|
||
```markdown
|
||
# Phase N: {Phase Name}
|
||
|
||
> 来源: `commands/{path}/original.md`
|
||
|
||
## Overview
|
||
{阶段目标和职责}
|
||
|
||
## Prerequisites
|
||
{前置条件和输入}
|
||
|
||
## Execution Steps
|
||
|
||
### Step N.1: {Step Name}
|
||
{完整实现代码}
|
||
|
||
### Step N.2: {Step Name}
|
||
{完整实现代码}
|
||
|
||
## Agent Prompt (如有)
|
||
{完整 Agent Prompt,不简化}
|
||
|
||
## Output Format
|
||
{输出 Schema 和示例}
|
||
|
||
## Post-Phase Update
|
||
{阶段完成后的状态更新}
|
||
```
|
||
|
||
### 6.2 转换原则:只改结构,不改内容
|
||
|
||
**转换时的思维模式**:
|
||
|
||
> "我是在**搬运**内容,不是在**改写**内容"
|
||
|
||
| 操作 | 允许 | 禁止 |
|
||
|------|------|------|
|
||
| 复制粘贴代码 | ✅ | |
|
||
| 调整章节标题 | ✅ | |
|
||
| 添加Phase标识 | ✅ | |
|
||
| 改写代码逻辑 | | ❌ |
|
||
| 简化Prompt | | ❌ |
|
||
| 省略步骤 | | ❌ |
|
||
|
||
**转换流程**:
|
||
|
||
1. **打开原命令文件和新Phase文件并排显示**
|
||
2. **逐段复制粘贴**(不要凭记忆改写)
|
||
3. **只添加结构性元素**(Phase标题、章节标题)
|
||
4. **保留100%功能性内容**(代码、Prompt、表格、示例)
|
||
|
||
### 6.3 内容完整性自查
|
||
|
||
转换每个Phase文件后,必须完成以下检查:
|
||
|
||
| 检查项 | 检查方法 | 合格标准 |
|
||
|--------|---------|---------|
|
||
| **代码块数量** | 计数 ` ```bash ` 和 ` ```javascript ` | 与原文件相等 |
|
||
| **表格数量** | 计数 ` \| ` 开头的行 | 与原文件相等 |
|
||
| **Agent Prompt** | 搜索 `Task({` | 完整的prompt参数内容 |
|
||
| **步骤编号** | 检查 `### Step` | 编号序列与原文件一致 |
|
||
| **文件行数** | `wc -l` | ±20%以内 |
|
||
| **关键函数** | 搜索函数名 | 所有函数完整保留 |
|
||
|
||
**示例检查**:
|
||
|
||
```bash
|
||
# 原命令文件
|
||
$ grep -c "^###" commands/workflow/tools/context-gather.md
|
||
15
|
||
|
||
# Phase文件(应该相等或略多)
|
||
$ grep -c "^###" skills/workflow-plan/phases/02-context-gathering.md
|
||
16 # ✓ 只多了"Post-Phase Update"节
|
||
|
||
# 代码块数量对比
|
||
$ grep -c '```' commands/workflow/tools/context-gather.md
|
||
24
|
||
|
||
$ grep -c '```' skills/workflow-plan/phases/02-context-gathering.md
|
||
24 # ✓ 完全相等
|
||
```
|
||
|
||
### 6.4 内容保留清单(详细版)
|
||
|
||
转换时必须完整保留:
|
||
|
||
| 内容类型 | 保留要求 |
|
||
|---------|---------|
|
||
| **Bash 命令** | 完整命令,包含所有参数和路径 |
|
||
| **Agent Prompt** | 全文,包含示例和约束 |
|
||
| **代码函数** | 完整函数体,不简化 |
|
||
| **参数表格** | 所有列和行 |
|
||
| **JSON Schema** | 完整字段定义 |
|
||
| **验证逻辑** | if/else、校验代码 |
|
||
| **错误处理** | try/catch、回滚逻辑 |
|
||
| **示例** | 输入输出示例 |
|
||
|
||
### 6.3 禁止的简化
|
||
|
||
❌ **不要这样**:
|
||
```markdown
|
||
### Step 2: Run context gathering
|
||
Execute the context-search-agent to gather project context.
|
||
```
|
||
|
||
✅ **应该这样**:
|
||
```markdown
|
||
### Step 2: Run context gathering
|
||
|
||
```javascript
|
||
Task({
|
||
subagent_type: "context-search-agent",
|
||
prompt: `
|
||
## Context Search Task
|
||
|
||
### OBJECTIVE
|
||
Gather comprehensive context for planning session ${sessionId}
|
||
|
||
### MULTI-SOURCE DISCOVERY STRATEGY
|
||
|
||
**Track 0: Project Foundation**
|
||
- Read CLAUDE.md files at all levels
|
||
- Check .workflow/project-tech.json for stack info
|
||
...
|
||
[完整 Prompt 内容]
|
||
`,
|
||
run_in_background: false
|
||
})
|
||
```
|
||
```
|
||
|
||
---
|
||
|
||
## 7. 内容一致性验证
|
||
|
||
### 7.1 验证流程
|
||
|
||
每完成一个Phase文件转换后,执行以下验证:
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ 内容一致性验证流程 │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Step 1: 行数对比 │
|
||
│ $ wc -l 原文件 Phase文件 │
|
||
│ └─→ 差异应在 ±20% 以内 │
|
||
│ │
|
||
│ Step 2: 代码块对比 │
|
||
│ $ grep -c '```' 原文件 Phase文件 │
|
||
│ └─→ 数量应相等 │
|
||
│ │
|
||
│ Step 3: 关键内容抽查 │
|
||
│ - 搜索 Task({ → Agent Prompt 完整性 │
|
||
│ - 搜索函数名 → 函数体完整性 │
|
||
│ - 搜索表格标记 → 表格完整性 │
|
||
│ │
|
||
│ Step 4: 并排对比 │
|
||
│ - 打开原文件和Phase文件 │
|
||
│ - 逐节对比功能性内容 │
|
||
│ - 确认无省略无改写 │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 7.2 验证命令
|
||
|
||
```bash
|
||
# 1. 行数对比
|
||
wc -l commands/workflow/tools/context-gather.md skills/workflow-plan/phases/02-context-gathering.md
|
||
|
||
# 2. 代码块数量
|
||
grep -c '```' commands/workflow/tools/context-gather.md
|
||
grep -c '```' skills/workflow-plan/phases/02-context-gathering.md
|
||
|
||
# 3. 表格行数
|
||
grep -c '^|' commands/workflow/tools/context-gather.md
|
||
grep -c '^|' skills/workflow-plan/phases/02-context-gathering.md
|
||
|
||
# 4. Agent Prompt检查
|
||
grep -c 'Task({' commands/workflow/tools/context-gather.md
|
||
grep -c 'Task({' skills/workflow-plan/phases/02-context-gathering.md
|
||
|
||
# 5. 函数定义检查
|
||
grep -E '^(function|const.*=.*=>|async function)' commands/workflow/tools/context-gather.md
|
||
grep -E '^(function|const.*=.*=>|async function)' skills/workflow-plan/phases/02-context-gathering.md
|
||
```
|
||
|
||
### 7.3 一致性检查表
|
||
|
||
每个Phase文件必须填写:
|
||
|
||
| 检查项 | 原文件 | Phase文件 | 是否一致 |
|
||
|--------|--------|-----------|---------|
|
||
| 文件行数 | ___ | ___ | □ ±20%内 |
|
||
| 代码块数量 | ___ | ___ | □ 相等 |
|
||
| 表格行数 | ___ | ___ | □ 相等 |
|
||
| Task调用数 | ___ | ___ | □ 相等 |
|
||
| 函数定义数 | ___ | ___ | □ 相等 |
|
||
| 步骤数量 | ___ | ___ | □ 相等或+1 |
|
||
|
||
### 7.4 不一致处理
|
||
|
||
发现不一致时:
|
||
|
||
| 情况 | 处理方式 |
|
||
|------|---------|
|
||
| Phase文件行数少>20% | ❌ **必须补充**:定位缺失内容,从原文件复制 |
|
||
| 代码块数量少 | ❌ **必须补充**:找出缺失的代码块 |
|
||
| Agent Prompt缺失 | ❌ **严重问题**:立即从原文件完整复制 |
|
||
| 表格缺失 | ❌ **必须补充**:复制完整表格 |
|
||
| Phase文件行数多>20% | ✓ 可接受(添加了结构性内容) |
|
||
|
||
---
|
||
|
||
## 8. 质量检查清单
|
||
|
||
### 8.1 结构检查
|
||
|
||
```markdown
|
||
□ SKILL.md 存在且包含必需章节
|
||
□ phases/ 目录存在
|
||
□ Phase 文件按数字前缀排序
|
||
□ 所有子命令都有对应 Phase 文件
|
||
```
|
||
|
||
### 8.2 内容完整性检查
|
||
|
||
```markdown
|
||
□ Phase 文件行数 ≈ 原命令行数 (±20%)
|
||
□ 所有 Bash 命令完整保留
|
||
□ 所有 Agent Prompt 完整保留
|
||
□ 所有表格完整保留
|
||
□ 所有 JSON Schema 完整保留
|
||
□ 验证逻辑和错误处理完整
|
||
```
|
||
|
||
### 8.3 引用检查
|
||
|
||
```markdown
|
||
□ SKILL.md 中 Phase 引用路径正确
|
||
□ Phase 文件标注了来源命令
|
||
□ 跨 Phase 数据引用明确
|
||
```
|
||
|
||
### 8.4 行数对比表
|
||
|
||
| 原命令 | 行数 | Phase 文件 | 行数 | 差异 |
|
||
|--------|------|-----------|------|------|
|
||
| session/start.md | 202 | 01-session-discovery.md | 281 | +39% ✓ |
|
||
| tools/context-gather.md | 404 | 02-context-gathering.md | 427 | +6% ✓ |
|
||
| tools/conflict-resolution.md | 604 | 03-conflict-resolution.md | 645 | +7% ✓ |
|
||
| tools/task-generate-agent.md | 693 | 04-task-generation.md | 701 | +1% ✓ |
|
||
|
||
> Phase 文件可以比原命令稍长(添加了阶段标识、Post-Phase Update 等),但不应显著缩短。
|
||
|
||
---
|
||
|
||
## 9. 示例对照
|
||
|
||
### 9.1 workflow-plan 转换示例
|
||
|
||
**转换前**(命令结构):
|
||
```
|
||
commands/workflow/
|
||
├── plan.md (163 行) ─── 主命令,调用子命令
|
||
├── session/
|
||
│ └── start.md (202 行) ─── 会话管理
|
||
└── tools/
|
||
├── context-gather.md (404 行) ─── 上下文收集
|
||
├── conflict-resolution.md (604 行) ─── 冲突解决
|
||
└── task-generate-agent.md (693 行) ─── 任务生成
|
||
```
|
||
|
||
**转换后**(Skill 结构):
|
||
```
|
||
skills/workflow-plan/
|
||
├── SKILL.md (348 行) ─── 编排协调
|
||
└── phases/
|
||
├── 01-session-discovery.md (281 行)
|
||
├── 02-context-gathering.md (427 行)
|
||
├── 03-conflict-resolution.md (645 行)
|
||
└── 04-task-generation.md (701 行)
|
||
```
|
||
|
||
### 9.2 SKILL.md 与原主命令对比
|
||
|
||
| 原 plan.md 内容 | SKILL.md 对应位置 |
|
||
|----------------|-------------------|
|
||
| Frontmatter | Frontmatter (扩展) |
|
||
| argument-hint | Usage (转换为 Skill 调用格式) |
|
||
| 执行流程描述 | Execution Flow (可视化) |
|
||
| 子命令调用 | Phase Reference Table |
|
||
| 数据传递 | Data Flow (显式定义) |
|
||
| (无) | Usage (新增 - Skill 调用格式) |
|
||
| (无) | TodoWrite Pattern (新增) |
|
||
| (无) | Error Handling (新增) |
|
||
|
||
**Usage 转换示例**:
|
||
|
||
原命令 `argument-hint`:
|
||
```yaml
|
||
argument-hint: "[-y|--yes] \"text description\"|file.md"
|
||
```
|
||
|
||
转换为 SKILL.md Usage:
|
||
```
|
||
Skill(skill="workflow-plan", args="<task description>")
|
||
Skill(skill="workflow-plan", args="[-y|--yes] \"<task description>\"")
|
||
|
||
# Flags
|
||
-y, --yes Skip all confirmations (auto mode)
|
||
|
||
# Examples
|
||
Skill(skill="workflow-plan", args="\"Implement authentication\"") # Interactive mode
|
||
Skill(skill="workflow-plan", args="-y \"Implement authentication\"") # Auto mode
|
||
```
|
||
|
||
### 9.3 Phase 文件与原子命令对比
|
||
|
||
| 原子命令内容 | Phase 文件对应 |
|
||
|-------------|---------------|
|
||
| Frontmatter | 移除 (Skill 不需要) |
|
||
| 步骤说明 | Execution Steps |
|
||
| 代码实现 | **完整保留(一致性要求)** |
|
||
| Agent Prompt | **完整保留(一致性要求)** |
|
||
| 输出格式 | Output Format |
|
||
| (无) | Post-Phase Update (新增) |
|
||
|
||
---
|
||
|
||
## 附录:快速转换命令
|
||
|
||
```bash
|
||
# 1. 统计原命令行数
|
||
wc -l commands/{path}/*.md commands/{path}/**/*.md
|
||
|
||
# 2. 创建 Skill 目录
|
||
mkdir -p skills/{skill-name}/phases
|
||
|
||
# 3. 转换完成后验证
|
||
wc -l skills/{skill-name}/SKILL.md skills/{skill-name}/phases/*.md
|
||
|
||
# 4. 对比行数差异
|
||
# Phase 文件行数应 ≈ 原命令行数 (±20%)
|
||
```
|
||
|
||
---
|
||
|
||
## 修订历史
|
||
|
||
| 版本 | 日期 | 变更 |
|
||
|------|------|------|
|
||
| v1.0 | 2025-02-05 | 基于 workflow-plan 转换实践创建 |
|
||
| v1.1 | 2025-02-05 | 强化内容一致性要求;添加第7章一致性验证;添加应移除的命令特有内容说明 |
|
||
| v2.0 | 2026-02-05 | 命令调用引用统一转换为文件路径引用;移除 `/workflow:XX` 命令语法;引用转换规则重构 |
|
||
| v2.1 | 2026-02-05 | 添加 Usage 部分格式规范(Skill 调用格式);更新 5.2 必需章节;添加 Usage 转换示例到 9.2 节 |
|