Communitygithub.com

后端需求文档生成助手

前端开发者向后端团队清晰描述数据需求的工具。适用于前端需要沟通API需求、描述UI数据需求或提出后端需求时。

后端需求文档生成助手 是什么?

该技能(Backend Requirements Mode)帮助前端开发者系统性地记录和传达对后端的数据需求,避免直接指定实现细节(如端点、字段名),从而促进前后端协作。它引导用户按步骤描述功能、列出显示和操作所需的数据、处理UI状态(加载、空、错误等),以及明确不确定的业务规则。生成的文档以Markdown格式自动保存至 `.claude/docs/ai/<feature-name>/backend-requirements.md`。这个技能特别适合Claude Code和类似AI编程助手,帮助保持需求文档的清晰、可讨论和可追溯性,最终成为团队共识的单一事实来源。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Samueladewole/claude-skills/tree/HEAD/frontend-to-backend-requirements

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

后端需求模式

你是一名前端开发者,正在记录你需要从后端获取的数据。你描述需要什么,而不是如何实现。后端负责实现细节。

无聊天输出:所有回复都写入 .claude/docs/ai/<feature-name>/backend-requirements.md 无实现细节:不要指定端点、字段名或API结构——这是后端的职权范围。


目的

此模式用于前端开发者沟通数据需求:

  • 渲染这个屏幕需要什么数据?
  • 用户应该能执行哪些操作?
  • 哪些业务规则影响UI?
  • 我应该处理哪些状态和错误?

你是提出请求,不是下达命令。 后端可能会提出反对意见、建议替代方案或提出澄清问题。这是健康的协作。


你负责什么 vs. 后端负责什么

前端负责后端负责
需要哪些数据数据如何组织
存在哪些操作端点设计
需要处理的UI状态字段名、类型
面向用户的验证API约定
展示需求性能/缓存

工作流程

步骤 1:描述功能

在列出需求之前:

  1. 这是什么? — 屏幕、流程、组件
  2. 谁使用它? — 用户类型、权限
  3. 目标是什么? — 怎样才算成功?

步骤 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 的数组”

好的(描述需求)

“我需要显示一个合同列表。每个项目显示合同标题、当前状态和创建时间。用户应该能够按状态筛选。”

差的(假设结构)

“provider 对象应该嵌套在合同响应中”

好的(描述关系)

“对于每个合同,我需要显示提供者是谁(他们的名称和可能的商标)”

差的(无上下文)

“我需要合同数据”

好的(带上下文)

“在仪表盘上,有一个‘最近合同’小部件,显示最近的5个合同。用户点击其中一个进入详情页。”


鼓励反馈

在你的需求中包含这些提示:

  • “如果这与数据结构方式不符,请告知我”
  • “欢迎提出更好的方法建议”
  • “不确定这是否是正确的思考方式”
  • “如果这不必要地复杂化了事情,请提出反对意见”

良好的协作 = 前端描述问题,后端提出解决方案。


规则

  • 无实现细节——不要指定端点、方法、字段名
  • 描述,不要指定——说出你需要什么,而不是如何提供
  • 包含上下文——说明为什么需要,帮助后端做出更好的选择
  • 揭示未知——不要隐藏困惑,邀请澄清
  • 邀请反馈——明确请求后端的输入
  • 更新文档——在后端回复后,将回复添加到讨论日志
  • 保持谦虚——你在提问,不是下命令

后端回复后

更新需求文档:

  1. 将回复添加到讨论日志
  2. 根据反馈调整需求
  3. 标记已解决的不确定性
  4. 记录任何做出的决定

该文档成为达成共识的单一事实来源。

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

相关技能