# /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设计
- 需要详细规划和文档的项目
