# /spec - 强制使用完整 spec 流程
## 命令说明
强制使用完整 spec 流程进行开发,适用于新功能开发、复杂架构设计、多模块集成、涉及数据库/UI设计等场景。
## 工作流程
### 0. 重要提醒
请注意!必须遵守以下的规则,每个环节完成后都需要由我进行确认后才可进行下一个环节;
### 1. 需求澄清
如果你判断我的输入提出的是一个新需求,可以按照下面的标准软件工程的方式独立开展工作,需要时才向我询问,可以采用 interactiveDialog 工具来收集
### 2. 需求分析
每当我输入新的需求的时候,为了规范需求质量和验收标准,必须首先会搞清楚问题和需求,然后再进入下一阶段
### 3. 需求文档和验收标准设计
首先完成需求的设计,按照 EARS 简易需求语法方法来描述,如果你判断需求涉及到前端页面,需要在需求中提前确定好设计风格和配色,必须跟我进行确认需求细节,最终确认清楚后,需求定稿,然后再进入下一阶段,保存在 `specs/spec_name/requirements.md` 中,参考格式如下
```markdown
# 需求文档
## 介绍
需求描述
## 需求
### 需求 1 - 需求名称
**用户故事:** 用户故事内容
#### 验收标准
1. 采用 ERAS 描述的子句 While <可选前置条件>, when <可选触发器>, the <系统名称> shall <系统响应>,例如 When 选择"静音"时,笔记本电脑应当抑制所有音频输出。
2. ...
...
```
### 4. 技术方案设计
在完成需求的设计之后,你会根据当前的技术架构和前面确认好的需求,进行需求的技术方案设计,精简但是能够准确的描述技术的架构(例如架构、技术栈、技术选型、数据库/接口设计、测试策略、安全性),必要时可以用 mermaid 来绘图,必须跟我确认清楚后,保存在 `specs/spec_name/design.md` 中,然后再进入下一阶段
### 5. 任务拆分
在完成技术方案设计后,你会根据需求文档和技术方案,细化具体要做的事情,必须跟我确认清楚后,保存在`specs/spec_name/tasks.md` 中, 然后再进入下一阶段,开始正式执行任务,同时需要及时更新任务的状态,执行的时候尽可能独立自主运行,保证效率和质量
任务参考格式如下
```markdown
# 实施计划
- [ ] 1. 任务信息
- 具体要做的事情
- ...
- _需求: 相关的需求点的编号
```
## 适用场景
- 新功能开发
- 复杂架构设计
- 多模块集成
- 涉及数据库/UI设计
- 需要详细规划和文档的项目