# 特性开发工作流

适用于：新功能从设计到上线

---

## 概述

当需要开发新功能时，使用此工作流确保功能设计合理、开发高效、上线可靠。

## 适用场景

- 开发全新的功能模块
- 扩展现有功能
- 集成第三方服务
- 重构现有代码

---

## 工作流步骤

### 阶段 1: 需求分析 📋

**目标**：明确功能范围和验收标准

**操作**：
1. 收集需求背景和目标用户
2. 列出功能需求和非功能需求
3. 定义成功标准和验收条件

**输出**：
- 需求文档（2-3 页）
- 关键用户故事
- 验收标准清单

---

### 阶段 2: 技术设计 🏗️

**目标**：设计合理的技术方案

**使用 Agent**：
```
omc agents list | grep -E "architect|planner"
```

**设计维度**：
- 系统架构设计
- 数据库/存储设计
- API 接口设计
- 错误处理设计

**输出**：
- 架构图（可用 Mermaid）
- 详细设计文档
- 技术选型说明

---

### 阶段 3: 迭代开发 🚀

**目标**：小步快跑，逐步交付

**开发节奏**：
1. 先实现核心功能（80% 价值）
2. 逐步添加边界情况处理
3. 最后优化性能和体验

**每日检查点**：
- [ ] 功能单元测试通过
- [ ] 核心流程可运行
- [ ] 无明显的代码异味

**输出**：
- 可运行的代码
- 测试用例

---

### 阶段 4: 测试验证 🧪

**目标**：确保功能质量

**测试层次**：
1. **单元测试**：每个函数正确
2. **集成测试**：模块间协作正常
3. **端到端测试**：用户流程完整

**运行命令**：
```bash
omc test              # 运行所有测试
omc test --coverage  # 查看覆盖率
omc test --report    # 生成测试报告
```

---

### 阶段 5: 代码审查 🔍

**目标**：集思广益，保证质量

**审查清单**：
- [ ] 代码符合项目规范（ruff check）
- [ ] 有适当的测试覆盖
- [ ] 无安全漏洞（omc security scan）
- [ ] 文档已更新

**操作**：
```bash
omc git pr create --title "feat: 新增 XXX 功能"
```

---

### 阶段 6: 部署上线 🚢

**目标**：安全发布到生产环境

**检查清单**：
- [ ] 代码已合并到 main
- [ ] 所有测试通过
- [ ] 已更新 CHANGELOG
- [ ] 监控告警已配置

---

## 使用示例

```bash
# 查看此模板
omc template show feature

# 启动特性开发工作流
omc template use feature --task "新增 Markdown 导出 PDF 功能"
```

---

## 推荐的 Agent 组合

| 阶段 | 推荐 Agent |
|------|-----------|
| 需求分析 | `architect`, `planner` |
| 技术设计 | `architect` |
| 开发实现 | `executor`, `code-writer` |
| 测试验证 | `test-engineer`, `verifier` |
| 代码审查 | `security-reviewer` |

---

*来源：oh-my-coder 社区工作流模板*