# 需求对齐规则

本文档指导 AI Agent 如何与用户沟通需求，澄清范围与细节。本流程为可选，仅在用户明确提出需求对齐时启动。

## 🎯 目标

通过结构化的沟通流程，确保：
1. 准确理解用户需求
2. 明确功能边界和实现细节
3. 为后续设计与实现提供清晰信息

## 📝 沟通流程

### 需求确认清单

#### 1. 核心功能
- [ ] 核心功能：一句话描述主要功能
- [ ] 关键功能点：列出 3-5 个核心功能

#### 2. 交互与数据
- [ ] 用户操作：可进行哪些操作？
- [ ] 事件响应：需要响应哪些事件及预期结果？
- [ ] 输入数据：接收哪些数据（结构、字段、类型、必填/可选）？
- [ ] 输出变量：暴露哪些变量（状态、计算结果）？

#### 3. 配置与样式
- [ ] 配置项：文本内容、样式配置、行为配置
- [ ] 视觉样式：用一句话描述整体视觉风格和布局
- [ ] 边界情况：空数据、错误状态的处理方式

### 沟通策略

#### 前置准备

**在提问之前，必须充分阅读用户提供的所有资料**：

- [ ] 检查用户是否提供了参考文档、设计稿、原型链接
- [ ] 如 Prompt 中包含"关联内容"，必须先阅读这些页面/元素的 `spec.md` 与 `index.tsx`
- [ ] 仔细阅读所有提供的资料，理解已有信息
- [ ] 识别资料中已经明确的需求点
- [ ] 只针对资料中未明确的部分进行提问

**原则**：
- 不要询问资料中已经说明的内容
- 基于已有信息进行深入提问
- 展示你已经理解了提供的资料

**示例**：
```
❌ 错误：用户提供了设计稿，但仍然问"需要什么样式？"
✅ 正确：用户提供了设计稿，说"我看到设计稿中使用了蓝色主题和圆角按钮，请问..."
```

#### 分阶段沟通

| 阶段 | 重点 | 方法 |
|------|------|------|
| 初步理解 | 类型、核心功能 | 确认大方向，避免细节 |
| 功能细节 | 交互、数据、配置 | 逐项确认，使用示例 |
| 视觉规范 | 样式、布局 | 参考设计系统 |

## ✅ 检查清单

### 功能完整性
- [ ] 核心功能描述清晰
- [ ] 所有交互行为已定义
- [ ] 边界情况已考虑（空数据、错误状态）

### 接口定义
- [ ] 事件列表完整（触发时机、数据结构）
- [ ] 动作列表完整（参数说明）
- [ ] 变量列表完整（数据类型）
- [ ] 配置项列表完整（默认值）

### 数据结构
- [ ] 输入数据格式明确
- [ ] 字段类型和必填项已标注
- [ ] 提供了示例数据

### 视觉规范
- [ ] 样式要求明确
- [ ] 色彩方案确定
- [ ] 布局方式清晰

## 💡 最佳实践

- **渐进式沟通**：先确认大方向（类型、核心功能），再深入细节（交互、数据），最后确认视觉
- **使用示例**：提供类似组件的参考，用具体场景举例说明，展示数据结构示例
- **确认理解**：复述用户需求确认理解正确，对模糊需求主动提出澄清问题，对冲突需求指出并协商解决方案
- **管理预期**：明确技术限制和实现难度，对复杂需求提出分阶段实现建议，说明可能的性能影响
- **可视化流程**：涉及复杂流程、状态转换或多步骤交互时，使用 Mermaid 图表（flowchart、stateDiagram、sequenceDiagram 等）辅助说明

## 示例对话

**Agent**: 您好！我了解到您需要创建一个按钮组件。这是一个可复用的元素，对吗？

**User**: 是的，一个通用按钮。

**Agent**: 好的。请问需要哪些样式类型？是否需要禁用状态？点击后触发什么事件？

**User**: 需要主要和次要两种样式，要支持禁用状态，点击后触发 onClick 事件。

**Agent**: 明白了。按钮文字和颜色是否可配置？是否需要暴露内部状态？

**User**: 文字和颜色可配置，暴露点击次数。

**Agent**: 完美！我先整理需求要点并进入设计流程...
