SOP结构技能Skill sop-structure

SOP结构技能用于编写标准操作程序,包括正确部分组织、Markdown格式和错误处理,帮助创建易于理解、维护和执行的文档。关键词:SOP、标准操作程序、结构化、文档编写、流程管理、Markdown、错误处理。

其他 0 次安装 0 次浏览 更新于 3/25/2026

name: sop-structure description: 在结构化标准操作程序时使用,包括正确的部分、组织和Markdown格式。覆盖SOP的解剖和部分组织。 allowed-tools:

  • 读取
  • 写入
  • 编辑
  • Bash
  • Grep
  • Glob

SOP 结构

结构良好的SOP遵循一致的模式,使其易于理解、维护和执行。本技能涵盖了有效SOP的解剖和如何组织部分。

关键概念

标准SOP解剖

每个SOP应包括以下核心部分:

  1. 标题:清晰、以行动为导向的描述
  2. 概述:目的和用例的简要总结
  3. 参数:可配置的输入以提高可重用性
  4. 先决条件:所需的工具、知识或设置
  5. 步骤:执行的顺序说明
  6. 成功标准:如何验证完成
  7. 错误处理:当出现问题时该怎么做
  8. 相关SOPs:相关工作流程的链接

文件命名约定

SOP文件必须使用 .sop.md 扩展名:

✅ deployment-checklist.sop.md
✅ code-review-security.sop.md
✅ database-migration.sop.md

❌ deployment.md (缺少 .sop)
❌ checklist.sop.txt (错误文件类型)
❌ SOP-Deployment.md (格式不正确)

最佳实践

标题部分

# {行动动词} {具体结果}

短格式:使用kebab-case文件名
长格式:使用标题大小写标题

示例:

# 生成API文档

# 使用TDD实现功能

# 审查拉取请求以进行安全检查

概述部分

概述应回答三个问题:

  1. 什么:这个SOP实现了什么?
  2. 何时:何时应该使用这个SOP?
  3. 为什么:为什么使用这种方法?
## 概述

本SOP指导您通过测试驱动开发(TDD)实现新功能。在需要高正确性信心的功能时使用。TDD确保全面的测试覆盖并减少回归风险。

参数部分

在开始时定义所有可配置输入:

## 参数

- **输入变量**:{variable_name} - 描述和示例值
- **配置**:{config_option} - 可用选项 (option1, option2, option3)
- **路径**:{file_path} - 预期格式和约束

示例:

## 参数

- **仓库路径**:{repository_path} - Git仓库的绝对路径
- **输出格式**:{output_format} - 文档格式 (markdown, html, pdf)
- **详细程度**:{verbosity} - 细节级别 (简洁, 标准, 全面)
- **包括测试**:{include_tests} - 是否包括测试示例 (是, 否)

先决条件部分

列出所需的工具、知识和设置:

## 先决条件

### 所需工具
- 工具名称 (版本 X.X 或更高)
- 另一个工具 (版本 Y.Y 或更高)

### 所需知识
- 理解概念 A
- 熟悉技术 B

### 所需设置
- 环境变量 {VAR_NAME} 必须设置
- 配置文件 {config.json} 必须存在

示例:

## 先决条件

### 所需工具
- Node.js (v18 或更高)
- npm (v8 或更高)
- Git (v2.30 或更高)

### 所需知识
- 理解 JavaScript/TypeScript
- 熟悉测试框架
- Git工作流程基础

### 所需设置
- package.json 存在于项目根目录
- 测试框架已安装 (Jest, Vitest, 或 Mocha)
- Git仓库已初始化

步骤部分

结构化步骤层次化:

## 步骤

1. 第一个主要步骤
   - 子步骤或细节
   - 另一个子步骤
   - 附加上下文

2. 第二个主要步骤
   - 实施细节
   - 预期结果

3. 第三个主要步骤
   - 具体操作
   - 验证步骤

带有验证:

## 步骤

1. 分析代码库结构
   - 识别主要入口点
   - 映射目录组织
   - 列出依赖项
   - **验证**:确认所有入口点都有文档记录

2. 提取模式
   - 识别设计模式
   - 记录数据流
   - 记录架构决策
   - **验证**:验证模式正确识别

3. 生成文档
   - 创建概述部分
   - 记录公共API
   - 添加使用示例
   - **验证**:确保文档构建无错误

成功标准部分

定义可衡量的结果:

## 成功标准

- [ ] 具体可衡量的结果1
- [ ] 具体可衡量的结果2
- [ ] 具体可衡量的结果3
- [ ] 所有测试通过
- [ ] 文档完整

示例:

## 成功标准

- [ ] 所有新代码测试覆盖率 ≥ 90%
- [ ] 所有测试通过无警告
- [ ] 代码通过lint检查,零错误
- [ ] 文档包括使用示例
- [ ] 更改遵循现有代码模式

错误处理部分

提供常见故障的指导:

## 错误处理

### 错误:{错误名称或代码}

**症状**:错误如何表现

**原因**:为什么发生此错误

**解决方案**:
1. 第一个故障排除步骤
2. 第二个故障排除步骤
3. 如果步骤失败,替代方法

示例:

## 错误处理

### 错误:测试运行失败

**症状**:测试运行器以错误代码退出,测试未执行

**原因**:缺少依赖项、测试框架配置不正确或环境问题

**解决方案**:
1. 验证测试框架是否安装:`npm list {test-framework}`
2. 检查测试配置文件是否存在且有效
3. 确保 NODE_ENV 设置正确
4. 如果问题持续,重新安装依赖项:`rm -rf node_modules && npm install`

### 错误:构建期间类型错误

**症状**:TypeScript编译器报告类型不匹配

**原因**:不正确的类型注释或缺少类型定义

**解决方案**:
1. 运行类型检查器:`npx -y --package typescript tsc`
2. 查看错误消息以查找具体类型问题
3. 添加必要的类型注释
4. 如果需要,安装缺少的 @types 包

相关SOPs部分

链接到相关工作流程:

## 相关SOPs

- **{sop-name}**:何时使用此代替的简要描述
- **{另一个-sop}**:此如何补充当前SOP

示例:

## 相关SOPs

- **代码审查**:在完成功能实施后使用,以获取同行审查
- **部署检查清单**:在代码审查通过后使用,以部署更改
- **回滚程序**:如果部署失败或发现问题,使用

示例

完整SOP结构示例

# 部署应用到生产环境

## 概述

本SOP指导您安全地将应用更改部署到生产环境。在代码审查批准和成功的暂存部署后使用。这确保一致的部署过程并减少生产事件。

## 参数

- **环境**:{environment} - 目标环境 (暂存, 生产)
- **版本**:{version} - 语义版本号 (例如, 1.2.3)
- **回滚计划**:{rollback_plan} - 如果部署失败,策略 (自动, 手动)

## 先决条件

### 所需工具
- kubectl (v1.24 或更高)
- Docker (v20.10 或更高)
- AWS CLI (v2.0 或更高)

### 所需知识
- 理解Kubernetes部署
- 熟悉应用架构
- 访问生产监控仪表板

### 所需设置
- 生产凭证在 ~/.kube/config 中配置
- Docker注册表认证设置
- 监控警报配置

## 步骤

1. 部署前验证
   - 验证 {version} 通过了所有暂存测试
   - 确认数据库迁移准备就绪
   - 检查回滚程序有文档记录
   - **验证**:所有测试通过,迁移已审查

2. 构建和推送容器镜像
   - 构建带标签 {version} 的Docker镜像
   - 在镜像上运行安全扫描
   - 推送到容器注册表
   - **验证**:镜像成功推送,无关键漏洞

3. 应用数据库迁移
   - 备份生产数据库
   - 在备份上测试迁移
   - 将迁移应用到生产
   - **验证**:迁移已应用,数据库可访问

4. 部署应用
   - 使用新镜像更新Kubernetes部署
   - 监控Pod启动和健康检查
   - 验证应用响应正确
   - **验证**:所有Pod健康,健康检查通过

5. 部署后验证
   - 在生产上运行冒烟测试
   - 在监控中检查错误率
   - 验证关键功能工作
   - 监控15分钟
   - **验证**:错误率正常,冒烟测试通过

## 成功标准

- [ ] 应用版本 {version} 已部署
- [ ] 所有健康检查通过
- [ ] 错误率在正常范围内
- [ ] 数据库迁移成功应用
- [ ] 监控显示无异常
- [ ] 关键用户流程测试和工作

## 错误处理

### 错误:Pod启动失败

**症状**:Pod卡在CrashLoopBackOff,未达到就绪状态

**原因**:配置错误、资源限制或依赖不可用

**解决方案**:
1. 检查Pod日志:`kubectl logs -n production <pod-name>`
2. 描述Pod以查看事件:`kubectl describe pod -n production <pod-name>`
3. 验证配置与暂存匹配
4. 如果无法解决,执行回滚计划

### 错误:健康检查失败

**症状**:负载均衡器从轮换中移除Pod,服务降级

**原因**:应用启动问题、数据库连接性或资源耗尽

**解决方案**:
1. 检查应用日志中的错误
2. 验证数据库连接性
3. 检查资源利用率
4. 如果需要,扩展资源
5. 如果在5分钟内无法解决,执行回滚计划

### 错误:部署后高错误率

**症状**:监控显示500错误峰值,延迟增加

**原因**:破坏性更改、不兼容的依赖或配置不匹配

**解决方案**:
1. 立即执行 {rollback_plan}
2. 捕获错误日志进行分析
3. 在暂存环境中测试修复
4. 修复验证后安排新部署

## 相关SOPs

- **回滚程序**:如果部署失败或出现关键问题,执行
- **数据库迁移**:数据库模式更改的详细过程
- **事件响应**:如果部署导致生产事件,遵循
- **暂存部署**:在生产部署前完成

常见模式

代码分析SOP模板

# {分析|审查|审计} {目标} 的 {质量方面}

## 概述
{1-2句话:什么,何时,为什么}

## 参数
- **目标**:{target} - 要分析的内容
- **深度**:{depth} - 分析彻底性
- **输出格式**:{format} - 结果格式

## 先决条件
{所需工具、知识、设置}

## 步骤
1. 识别范围和边界
2. 收集相关信息
3. 执行分析
4. 记录发现
5. 生成推荐

## 成功标准
- [ ] 所有区域分析完成
- [ ] 发现记录有示例
- [ ] 推荐可操作

## 错误处理
{常见问题和解决方案}

## 相关SOPs
{补充工作流程}

实施SOP模板

# 使用 {方法论} 实施 {功能}

## 概述
{1-2句话:什么,何时,为什么}

## 参数
- **功能描述**:{description}
- **框架**:{framework}
- **测试覆盖**:{coverage}

## 先决条件
{所需工具、知识、设置}

## 步骤
1. 设计功能接口
2. 创建测试
3. 实施功能
4. 重构和优化
5. 记录更改

## 成功标准
- [ ] 功能满足要求
- [ ] 测试通过,覆盖 ≥ {coverage}
- [ ] 文档更新

## 错误处理
{常见问题和解决方案}

## 相关SOPs
{补充工作流程}

反模式

避免这些结构错误:

  1. 缺少参数

    • ❌ 在步骤中硬编码值
    • ✅ 在开始时定义参数
  2. 不清楚的先决条件

    • ❌ 假设工具已安装
    • ✅ 明确列出所需工具和版本
  3. 模糊的成功标准

    • ❌ “代码应该质量好”
    • ✅ “代码通过lint检查,0错误,测试覆盖 ≥ 80%”
  4. 无错误处理

    • ❌ 仅描述顺利路径
    • ✅ 包括常见故障和解决方案
  5. 部分组织不良

    • ❌ 步骤在参数之前,成功标准与步骤混合
    • ✅ 一致的部分顺序:概述 → 参数 → 先决条件 → 步骤 → 成功标准 → 错误处理

相关技能

  • sop-authoring:学习编写清晰、可操作的说明
  • sop-rfc2119:使用RFC 2119关键词进行精确要求
  • sop-maintenance:保持SOP当前和相关性