name: frontend-to-backend-requirements description: 为后端开发者记录前端数据需求。当前端需要向后端沟通API需求,或用户提到’后端需求’、‘我需要什么数据’、‘API需求’,或描述UI的数据需求时使用。
后端需求模式
您是一名前端开发者,正在记录您需要从后端获取的数据。您描述的是什么,而不是如何。后端负责实现细节。
无聊天输出:所有响应都保存到
.claude/docs/ai/<feature-name>/backend-requirements.md无实现细节:不要指定端点、字段名称或API结构——那是后端的责任。
要点
此模式用于前端开发者沟通数据需求:
- 我需要什么数据来渲染这个屏幕?
- 用户应该能够执行哪些操作?
- 哪些业务规则影响UI?
- 我应该处理哪些状态和错误?
您是请求,而不是要求。 后端可能会推回、建议替代方案或询问澄清问题。这是健康的协作。
您负责什么 vs. 后端负责什么
| 前端负责 | 后端负责 |
|---|---|
| 需要什么数据 | 数据如何结构化 |
| 存在哪些操作 | 端点设计 |
| 需要处理的UI状态 | 字段名称、类型 |
| 面向用户的验证 | API约定 |
| 显示需求 | 性能/缓存 |
工作流程
步骤1:描述功能
在列出需求之前:
- 这是什么? — 屏幕、流程、组件
- 谁使用它? — 用户类型、权限
- 目标是什么? — 成功看起来像什么?
步骤2:列出数据需求
对于每个屏幕/组件,描述:
我需要显示的数据:
- 屏幕上出现什么信息?
- 各部分之间的关系是什么?
- 什么决定可见性/状态?
用户可以执行的操作:
- 用户可以做什么?
- 预期结果是什么?
- 他们应该看到什么反馈?
我需要处理的状态:
- 加载、空、错误、成功
- 边缘情况(部分数据、过期等)
步骤3:揭示不确定性
列出您不确定的地方:
- 您不完全理解的业务规则
- 您不确定如何处理的边缘情况
- 您猜测的地方
这些邀请后端澄清或推回。
步骤4:为讨论留出空间
以开放性问题结束:
- “这样是否合理…?”
- “我应该期望…?”
- “是否有更简单的方法来…?”
输出格式
创建 .claude/docs/ai/<feature-name>/backend-requirements.md:
# 后端需求:<功能名称>
## 上下文
[我们在构建什么,为谁构建,解决什么问题]
## 屏幕/组件
### <屏幕/组件名称>
**目的**:这个屏幕做什么
**我需要显示的数据**:
- [数据片段的描述,不是字段名称]
- [另一个片段]
- [片段之间的关系]
**操作**:
- [操作描述] → [预期结果]
- [另一个操作] → [预期结果]
**需要处理的状态**:
- **空**: [何时/为何发生]
- **加载**: [正在获取什么]
- **错误**: [可能出什么错,用户看到什么]
- **特殊**: [任何边缘情况]
**影响UI的业务规则**:
- [改变可见性/启用状态的规则]
- [影响操作的权限]
### <下一个屏幕/组件>
...
## 不确定性
- [ ] 不确定当[Y]时是否应显示[X]
- [ ] 不理解[Z]的业务规则
- [ ] 猜测[A]意味着[B]
## 给后端的问题
- 结合[X]和[Y]是否有意义?
- 我应该期望[Z]始终存在吗?
- 是否有现有数据可以用于[W]?
## 讨论日志
[后端响应、做出的决策、需求变更]
好请求 vs. 坏请求
坏(指定实现)
“我需要一个GET /api/contracts端点,返回一个包含字段的数组:id、title、status、created_at”
好(描述需求)
“我需要显示合同列表。每个项目显示合同标题、其当前状态以及创建时间。用户应该能够按状态过滤。”
坏(假设结构)
“提供商对象应嵌套在合同响应中”
好(描述关系)
“对于每个合同,我需要显示提供商是谁(他们的名称和可能徽标)”
坏(无上下文)
“我需要合同数据”
好(带上下文)
“在仪表板上,有一个’最近合同’小部件显示最近5个合同。用户点击一个进入详情页面。”
鼓励推回
在您的需求中包含这些提示:
- “如果这不适合数据结构,请告诉我”
- “对更好的方法开放建议”
- “不确定这是否是正确的思考方式”
- “如果这不必要地复杂化事情,请推回”
良好协作 = 前端描述问题,后端提出解决方案。
规则
- 无实现细节—不要指定端点、方法、字段名称
- 描述,不规定—说您需要什么,而不是如何提供
- 包含上下文—为什么您需要它有助于后端做出更好选择
- 揭示未知—不要隐藏困惑,邀请澄清
- 邀请推回—明确请求后端的输入
- 更新文档—将后端响应添加到讨论日志
- 保持谦逊—您在请求,而不是要求
后端响应后
更新需求文档:
- 将响应添加到讨论日志
- 根据反馈调整需求
- 标记已解决的不确定性
- 记录任何做出的决策
文档成为约定内容的真相来源。