mcpField
E
ears-requirements

ears-requirements

github.com/hexbee开发335 次安装10 周前更新
代码仓库

关于 ears-requirements

将需求草稿改写为简洁、可测试的 EARS 规范陈述,适用于需求编写与评审。它会识别模式、明确条件和系统响应,并可用验证脚本检查质量。

主要功能

  1. 01按 EARS 模式分类需求
  2. 02按严格条款顺序改写陈述
  3. 03检查可度量性与可测试性
  4. 04用脚本验证语法和质量

适用场景

  1. 01澄清含糊的需求草稿
  2. 02编写可测试的系统行为陈述
  3. 03为评审分类需求
  4. 04批量验证需求

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hexbee/hello-skills --skill ears-requirements

安装后在 Claude Code 中输入/ears-requirements确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

openai.yaml
agents/
openai.yaml
references/
ears-patterns.md
scripts/
validate_ears.py

详细介绍

EARS 需求

概述

将需求草稿转换为简洁、符合 EARS 的陈述,在保留原意的同时减少歧义。

工作流

  1. 从用户输入中提取需求意图。
  2. 确定正确的 EARS 模式:
    • 通用模式
    • 状态驱动模式
    • 事件驱动模式
    • 可选功能模式
    • 非预期行为模式
    • 复杂组合模式
  3. 按照严格的子句顺序重写每项需求,并明确说明一种系统响应。
  4. 检查需求质量,确保其可衡量、可测试,且不存在条件缺失。
  5. 返回:
    • 重写后的需求
    • 每项需求对应的模式标签
    • 如果模式选择可能存在争议,简要说明理由

编写规则

  • 每条陈述只包含一项需求。
  • 明确指定一个系统主体(例如:"the ATM")。
  • 使用 shall 表示强制行为。
  • 优先描述可观察到的结果,而非实现细节。
  • 明确列出条件;避免隐含触发条件或隐藏状态。
  • 避免使用 "as appropriate"、"if possible"、"etc." 等含糊表述。
  • 如果数值限制或时间要求未知,请添加明确的占位符(例如:<MAX_LATENCY_MS>)。

EARS 子句顺序

仅使用所选模式所需的子句,并始终按以下顺序排列:

While <state/precondition>, when <trigger>, the <system> shall <response>

非预期行为模式的格式如下:

If <undesired trigger>, then the <system> shall <response>

模式定义和示例请参阅 references/ears-patterns.md。

脚本

使用 scripts/validate_ears.py 对模式进行分类,并快速检查语法和质量问题。

单条需求:

python3 scripts/validate_ears.py --requirement "When mute is selected, the laptop shall suppress all audio output."

批量文件(每行一条需求):

python3 scripts/validate_ears.py --file requirements.txt

机器可读输出:

python3 scripts/validate_ears.py --file requirements.txt --json

质量门槛

定稿前,请核验每项需求:

  • 是否可通过通过/失败标准进行测试。
  • 是否明确说明主体、条件和响应,且没有歧义。
  • 术语是否一致,且不存在同义词混用。
  • 是否避免将多种相互独立的行为合并在一起(明确属于复杂组合的情况除外)。
  • 是否符合所选 EARS 模式。

如果任何检查未通过,请提供修正后的版本,并说明所做的最小改动。

评论

支持 Markdown