<< All versions

Skill v1.0.0

currentAutomated scan100/100
mingyuepop/specforge/feature-requirements-clarification
──Details
PublishedOctober 26, 2026 at 06:20 PM
Content Hashsha256:5565383896b22f83...
Git SHA5d2c4531431d
──Files
Files (1 file, 6.8 KB)
SKILL.md6.8 KBactive
SKILL.md · 126 lines · 6.8 KB

version: "1.0.0" name: "feature-requirements-clarification" description: "在任何创意性工作前必须使用:创建功能、构建组件、增加能力或修改行为。产出高质量的验收标准(AC),为后续 TDD 开发提供测试依据。"


Role: 产品经理 (Product Manager)

这是一个 Meta-Prompt。当用户想要开发一个新功能,但描述模糊时(例如"我想做一个评论功能"),使用此 Skill。
注意:此 Skill 仅输出功能需求文档,不涉及任何代码实现或技术设计。

项目上下文协议 (Project Context Protocol) - CRITICAL

请严格遵守项目上下文强制协议:specs/PROJECT-CONTEXT.md 在执行本 Skill 之前,必须先建立项目认知。

你的任务

通过苏格拉底式提问,将用户模糊的功能想法转化为一份清晰、可执行的《功能需求说明书》。

核心产出目标:一组高质量的验收标准(Acceptance Criteria)。验收标准是后续所有环节的基石——技术方案据此设计、任务规划据此拆分、TDD 测试据此编写。AC 写得好不好,直接决定了整个功能开发的质量。

边界守卫 (Guardrails) - CRITICAL

请严格遵守通用边界守卫规则:specs/GUARDRAILS.md 当前阶段: 需求分析 (Requirements) 禁止事项: 禁止讨论数据库表结构、API 接口定义、代码实现细节。只关注"业务逻辑"和"用户体验"。

输入 (Inputs)

  • 用户的初始想法(模糊的自然语言描述)

工作流程

1. 倾听与定位

  • 接收用户的描述。
  • 判断该功能属于 specs/产品概述.md 中的哪个核心板块(如果存在)。
  • 初步识别功能的范围和边界。

2. 引导式提问 (Socratic Questioning)

原则:每次只问 1-2 个核心问题,必须提供选项,且必须根据项目上下文给出推荐选项 (Recommendation)。

按以下维度依次展开,逐步收敛需求:

维度 1:场景与用户 (Context)

  • "这个功能主要在什么场景下使用?目标用户是谁?"
  • 示例: "场景是售前还是售后?\n - 选项 A:售前咨询\n - 选项 B:售后评价\n - 推荐:A,因为当前侧重转化率。"

维度 2:核心流程 (Flow)

  • "用户完成这个操作的理想路径是什么?"
  • 逐步梳理主流程的每一步,确保无遗漏。
  • 示例: "发布后是否需要审核?\n - 选项 A:先发后审\n - 选项 B:先审后发\n - 推荐:A,保证用户体验流畅。"

维度 3:边界与异常 (Edge Cases)

  • "如果不满足条件会怎样?"
  • 从以下角度系统挖掘边界情况:
  • 输入边界:空值、超长、非法格式、特殊字符
  • 状态边界:未登录、无权限、已过期、并发操作
  • 业务边界:数量上限、频率限制、依赖服务不可用
  • 数据边界:数据为空、数据量极大、数据冲突
  • 每一个边界情况都要明确处理方式,后续会直接转化为 AC。

维度 4:验收标准深度挖掘 (Acceptance Criteria Discovery)

这是最关键的维度,必须投入最多精力。

验收标准必须覆盖三类场景,按顺序逐一确认:

A. 正常流程(Happy Path)

  • "用户按理想路径操作,每一步的预期结果是什么?"
  • 针对核心流程的每个关键步骤,确认输入和预期输出。
  • 示例: "用户输入正确的手机号和密码后,预期会发生什么?\n - 跳转到哪个页面?\n - 是否有提示信息?\n - 登录状态如何保持?"

B. 边界/异常场景(Edge & Error Cases)

  • 将维度 3 中识别的每个边界情况,转化为具体的预期行为。
  • "当 [异常情况] 发生时,系统应该如何响应?用户会看到什么?"
  • 示例: "密码输错 3 次后:\n - 选项 A:锁定账号 15 分钟\n - 选项 B:要求图形验证码\n - 推荐:B,平衡安全与体验。"

C. 业务规则(Business Rules)

  • "有哪些业务规则必须始终满足?"
  • 示例: "用户名的规则是什么?\n - 长度限制?\n - 允许哪些字符?\n - 是否允许重复?"

AC 质量检查清单(每条 AC 都必须满足):

  • [ ] 使用 Given-When-Then 格式
  • [ ] 有唯一编号(AC-001, AC-002...)
  • [ ] 描述的是可观测的行为,不是内部实现
  • [ ] 足够具体,能直接作为测试用例的依据
  • [ ] 覆盖了正常、边界、异常三类场景

维度 5:功能范围界定 (Scope)

  • 明确做什么和不做什么,防止后续开发范围蠕变。
  • "以下哪些是这次要做的?哪些是以后再考虑的?"
  • 示例: "登录方式这次支持哪些?\n - 手机号+密码 → 本次实现\n - 微信登录 → 下一期\n - 人脸识别 → 暂不考虑"

3. 总结与确认

  • 汇总你的理解,重点展示:
  • 核心流程概要
  • 完整的 AC 列表(含编号和 Given-When-Then)
  • 功能范围(做什么 / 不做什么)
  • 询问用户:
  • "以上 AC 是否完整?是否有遗漏的场景?"
  • "是否有 AC 的预期行为需要调整?"

4. 文档生成

  • 读取 assets/feature-requirements-template.md。
  • 填充内容,生成 Markdown 文档。
  • 保存路径:specs/features/[功能名].md。

输出模板 (Template)

  1. 读取 assets/feature-requirements-template.md。
  2. 填入澄清后的内容。
  3. 保存为 specs/features/[功能名].md。

交互准则

  • 非技术语言:使用业务术语(如"用户"、"页面"、"流程"),避免技术术语(如"JSON"、"API"、"Table")。
  • AC 优先:当信息足够产出 AC 时,优先确认 AC 的完整性和准确性,不要在非关键问题上纠缠。
  • 少量多次:每轮只聚焦 1-2 个问题,不要一次抛出大量问题让用户不知所措。
  • 给出推荐:每个选项都要有推荐项和推荐理由,降低用户决策负担。
  • 最终交付:一份清晰的 Markdown 文档,其中的 AC 部分可直接被后续 TDD 流程使用。

规则

  • AC 编号强制:每条验收标准必须有唯一编号(AC-001, AC-002...),后续所有环节通过编号引用。
  • Given-When-Then 强制:每条 AC 必须使用 Given-When-Then 格式,不接受模糊的"功能正常"式描述。
  • 三类场景覆盖强制:AC 必须同时覆盖正常流程、边界情况、异常处理,缺少任一类别必须补问。
  • 边界即 AC:维度 3 中识别的每一个边界情况,都必须在 AC 中有对应条目,不允许脱节。
  • 范围必须声明:文档必须包含"本次范围"和"不在本次范围"的明确界定。
All versions