From harness-flow
Creates structured requirement specifications with EARS, BDD, MoSCoW, and INVEST quality standards. Useful when no approved spec exists, current spec is draft, or spec-review returned revisions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/harness-flow:hf-specifyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
创建一份定义"做什么、为什么做、做到什么程度算完成"的需求规格说明,准备到可交给 `hf-spec-review` 的状态。
evals/README.mdevals/evals.jsonreferences/feature-readme-template.mdreferences/granularity-and-deferral.mdreferences/interview-fsm.mdreferences/nfr-quality-attribute-scenarios.mdreferences/requirement-authoring-contract.mdreferences/reviewer-handoff.mdreferences/spec-intake-template.mdreferences/spec-template.mdreferences/success-metrics-and-hypotheses.mdreferences/task-progress-template.mdtest-prompts.json创建一份定义"做什么、为什么做、做到什么程度算完成"的需求规格说明,准备到可交给 hf-spec-review 的状态。
本 skill 不给设计方案,只把需求收敛成后续节点不需要猜测推进的规格草稿。
本 skill 融合以下已验证方法。每个方法在 Workflow 中有对应的落地步骤。
| 方法 | 核心原则 | 来源 | 落地步骤 |
|---|---|---|---|
| EARS (Easy Approach to Requirements Syntax) | 需求语句使用结构化触发模式(Ubiquitous / Event-driven / State-driven / Optional / Unwanted),确保每条需求可观察、可判断 | Mavin et al., REFSQ 2009 | 步骤 4 — 需求 Statement 写作 |
| BDD / Gherkin (Given-When-Then) | 验收标准采用行为驱动格式,建立从需求到测试的可追溯桥梁 | Dan North, 2006 "Introducing BDD" | 步骤 4 — Acceptance Criteria 写作 |
| MoSCoW Prioritization | 需求优先级使用 Must/Should/Could/Won't 四级分类,驱动范围收敛与 deferred 判断 | DSDM Consortium, Clegg & Seddon 1994 | 步骤 4 — Priority 标注;步骤 5 — 延后判断 |
| 需求六分类 (FR/NFR/CON/IFR/ASM/EXC) | 将需求按功能、非功能、约束、接口、假设、排除六类组织,覆盖完整需求空间。参考 IEEE 830/ISO 29148 的分类思想,经项目化裁剪 | IEEE 830-1993 / ISO/IEC 29148:2018 | 步骤 4 — requirement rows 分类 |
| Socratic Elicitation | 澄清过程遵循 Capture → Challenge → Clarify 三段式提问模型,通过结构化提问驱动收敛而非假设填充 | 苏格拉底式提问;Paul & Elder 批判性思维框架 | 步骤 3 — 分轮澄清 |
| INVEST 质量标准 | 每条需求应满足 Independent(独立)、Negotiable(可协商)、Valuable(有价值)、Estimable(可估算)、Small(足够小)、Testable(可测试)六项质量属性 | Bill Wake, 2003;敏捷用户故事实践 | 步骤 5 — 粒度检查;步骤 8 — 评审前自检 |
| ISO/IEC 25010 + Quality Attribute Scenarios(Phase 0 新增) | 每条核心 NFR 按 25010 质量维度分类,并以 QAS 五要素(Source/Stimulus/Environment/Response/Response Measure)表达 | ISO/IEC 25010:2011;Bass/Clements/Kazman Software Architecture in Practice | 步骤 4 — NFR 行写作;步骤 8 — 自检;详见 references/nfr-quality-attribute-scenarios.md |
| Success Metrics & Key Hypotheses Framing(Phase 0 新增) | 显式落下可判断的成功度量与关键假设,供下游 design / tasks / gate / experiment 消费 | Sean Ellis Hacking Growth;Teresa Torres Continuous Discovery Habits(四类假设) | 步骤 4 — 正文章节 3 / 4;详见 references/success-metrics-and-hypotheses.md |
| 量化优先级 RICE / ICE / Kano(Phase 0 新增,承接自 hf-product-discovery) | 在多条 Must 候选间做可冷读的量化取舍,不替代 MoSCoW | Intercom (RICE);Sean Ellis (ICE);Noriaki Kano (Kano) | 步骤 4 — Priority 行;步骤 5 — 延后判断;详见 hf-product-discovery/references/prioritization-quant.md |
详细规则见 references/requirement-authoring-contract.md(EARS patterns、BDD 格式、MoSCoW 规则)、references/granularity-and-deferral.md(INVEST 对应的粒度检查信号)、references/nfr-quality-attribute-scenarios.md(NFR QAS 最小契约)、references/success-metrics-and-hypotheses.md(Success Metrics / Key Hypotheses 最小契约)。
v0.6 新增(OQ-005 收口):Interview FSM 5 状态持久化:草稿过程显式状态化(Interview → Research → ClearanceCheck → PlanGeneration → Done,允许 ClearanceCheck → Research / Interview 回退),落 features/<active>/spec.intake.md,会话被打断后可从工件恢复"问到第几个澄清问题"。详见 references/interview-fsm.md + references/spec-intake-template.md。
适用:
hf-spec-review 返回 需修改 或 阻塞,需按 findings 修订不适用 → 改用:
hf-designhf-taskshf-workflow-routerhf-product-discoveryDirect invoke 信号:"先把需求梳理清楚"、"帮我写规格"、"规格被 review 打回了"、"先别做设计"。
hf-spec-review 给出"通过"前,不发起 approval stephf-workflow-router只读完成规格澄清所需的最少材料:用户请求、与规格草稿相关的 bridge / insight docs(若项目存在,例如 docs/insights/*-spec-bridge.md)、相关项目文档、现有草稿/评审记录、项目级路径约定(若项目已声明)、当前 active feature 的 progress.md(默认 features/<active>/progress.md)。
若是新 feature 启动(无现有 active feature),先创建 features/<NNN>-<slug>/ 目录骨架(双根目录布局:feature 周期内工件落到 features/<NNN>-<slug>/,长期资产落到 docs/):
<NNN> = ls features/ | grep -E '^[0-9]{3}-' | sort | tail -n1 的下一个数字(从 001 起)README.md(基于 references/feature-readme-template.md)progress.md(基于 references/task-progress-template.md)先提炼:已确认事实、当前轮目标与成功标准、范围内/范围外、约束与依赖、显式 assumptions、未知项与矛盾点。
若请求包含多个独立系统/阶段/能力,先帮用户收敛:
规格服务于当前轮可被评审、可被设计的范围。
若输入明显还是 brainstorming notes(零散想法、候选能力混写、真假需求未分、实现词汇夹杂):
已确认事实 / 待确认假设 / 候选需求 / 明显设计决策 / deferred 候选遵循 Capture → Challenge → Clarify 三段式提问模型(参考 Paul & Elder 批判性思维框架)。默认检查覆盖面:
这是 coverage checklist,不是 6 轮脚本。 已覆盖的跳过;只剩 1-2 个阻塞事实的合并在一轮问完。
提问规则:先问范围/角色/成功标准,再问边界细节;合并共享同一决策的问题;用 assume-and-confirm 加速;每轮结束前总结已锁定与待确认项。
若用户先给的是 brainstorming 式输入,先做一次紧凑归纳,再发起澄清:
若因 review findings 重新进入:只针对阻塞项补充确认,不重新发起整轮澄清。
写规格前,先把确认内容整理成结构化行。默认使用六分类法(FR/NFR/CON/IFR/ASM/EXC,参考 IEEE 830/ISO 29148 分类思想):FR、NFR、CON、IFR、ASM、EXC。
核心需求编号如 FR-001、NFR-001。最小字段契约见 references/requirement-authoring-contract.md,每条至少:
ID + Statement(使用 EARS 句式模式,可观察、可判断)Acceptance(使用 BDD Given/When/Then 格式,至少一个可验证标准)Priority(使用 MoSCoW 四级:Must/Should/Could/Won't)Source / Trace Anchor(Phase 0 起允许并鼓励指向 HYP-xxx 或某条 Success Metric)每条核心 NFR 必须:
详见 references/nfr-quality-attribute-scenarios.md。无法写出 QAS 的 NFR 说明描述还不够具体,回到澄清。
当存在多条 Must 候选且互相冲突、或超出当前轮容量时,引入 RICE / ICE 做量化取舍(见 hf-product-discovery/references/prioritization-quant.md)。分数必须带来源;分数相近(±20%)时不自动拍板,补定性理由。MoSCoW 决定"进不进当前轮",RICE / ICE 决定"同等优先级里先打哪个"。
若来源是 brainstorming notes,先把每条笔记映射为以下之一,再决定是否进入 rows:
FRNFR(必须能写成 QAS)CON / IFRASM 或开放问题;核心假设同步进入 Key Hypotheses 章节EXC按 references/granularity-and-deferral.md 检查。对照 INVEST 质量标准(Independent/Negotiable/Valuable/Estimable/Small/Testable,来源: Bill Wake 2003):
EXC 是真正非目标还是应回收到 deferred backlog1-3 个不改变范围的拆分可在草稿中直接建议;4 个及以上或改变范围边界的必须向用户确认。deferred 需求写入 backlog。
按 references/spec-template.md 的默认结构起草。若 项目声明了模板覆盖,优先遵循。
编写要求:背景写"为什么"不写方案;功能需求写可观察行为;非功能需求写可判断条件并带 QAS;约束写硬性限制;假设写失效风险。
Phase 0 起必须显式落下以下 hard anchor 章节,不可省略:
references/success-metrics-and-hypotheses.md):承接 discovery 的 Desired Outcome / Threshold / Non-goal Metrics;无 discovery 上游时仍必须按最小契约填写默认要显式落下以下文档级语义,而不是只散落在 prose 里:
lightweight / standard / full 三档密度按 references/spec-template.md 的 profile-aware 表格执行;即便 lightweight,Success Metrics / Key Hypotheses / 至少 1–2 条核心 NFR 的 QAS 仍是硬门槛。
交 hf-spec-review 前确认:
按 references/reviewer-handoff.md 派发独立 reviewer subagent 执行 hf-spec-review,不内联执行。reviewer 返回后按协议处理结果。
完成时产出:
features/<active>/spec.md;若 项目声明的覆盖路径,优先遵循)features/<active>/spec-deferred.md)README.md 已更新:Title / Owner / Started / Status Snapshot / Artifacts 表中 Spec 行progress.md 状态同步:Current Stage → hf-specify,Next Action Or Recommended Skill → hf-spec-review若草稿未达评审门槛,不伪造 handoff;明确写出仍缺什么。
按需加载详细参考内容。任一 reference 未命中其"加载时机"时,不需要提前读取。
| 主题 | Reference | 加载时机 | 最小 profile |
|---|---|---|---|
| 需求最小字段契约 | references/requirement-authoring-contract.md | 写 FR / NFR / CON / IFR / ASM / EXC 条目时;每次 spec 至少读一次 | 全档必读 |
| 粒度与延后判断 | references/granularity-and-deferral.md | 核心需求出现 G1-G6 过大信号、或需要判断是否进 deferred backlog 时 | standard / full;lightweight 仅当确实命中过大信号 |
| 规格文档模板 | references/spec-template.md | 起草或修订 spec 文档时;每次会话至少读一次 | 全档必读 |
| reviewer 派发协议 | references/reviewer-handoff.md | 准备派发 hf-spec-review 时 | 全档必读(派发时机) |
| NFR + QAS 最小契约 | references/nfr-quality-attribute-scenarios.md | 写任一核心 NFR 时;或 NFR 章节 Response Measure 缺阈值时 | 全档必读(存在 NFR 时) |
| Success Metrics / Key Hypotheses | references/success-metrics-and-hypotheses.md | 起草 section 3 / section 4;或承接 discovery 的 Desired Outcome / OST 假设时 | 全档必读 |
| 跨 skill:量化优先级 | hf-product-discovery/references/prioritization-quant.md | 多条 Must 候选冲突、或需要 RICE / ICE 辅助取舍时 | 按需;默认不加载 |
加载策略:
lightweight:默认读 spec-template.md + requirement-authoring-contract.md + success-metrics-and-hypotheses.md;NFR 存在时加 nfr-quality-attribute-scenarios.md。其余按命中条件standard:在 lightweight 基础上预读 granularity-and-deferral.mdfull:按实际需要加载;多 Must 冲突时预读跨 skill 量化优先级| 借口 | 反驳 / Hard rule |
|---|---|
| "discovery 还没批,但 spec 内容已经清楚了,先开始写。" | Hard Gates: discovery / discovery-review 未通过前 hf-specify 不应启动(Workflow step 1 precondition)。 |
| "EARS / BDD 太繁琐,写自然语言段落更快。" | Hard Gates: 验收准则必须以 EARS / BDD 形式落地;自然段落不构成可测试 acceptance criteria。 |
| "NFR / 质量属性以后再补。" | Workflow stop rule: ISO 25010 + Quality Attribute Scenarios 是 spec 必需段;缺位时 hf-spec-review 必判 fail。 |
| "既然 spec 我写的我也顺便 review 一下。" | Hard Gates (soul.md): 作者不能验收自己;spec verdict 由 hf-spec-review 独立产出。 |
features/<active>/spec.md(或 项目级覆盖路径)README.md、progress.md)已按模板创建HYP-xxx 或 Success Metric)features/<active>/progress.md 已按 canonical schema 同步,下一步为 hf-spec-reviewREADME.md 中 Artifacts 表的 Spec 行已更新npx claudepluginhub hujianbest/harness-flow --plugin harness-flowGenerates structured Software Requirements Specifications (SRS) aligned with ISO/IEC/IEEE 29148. Guides iterative questioning to elicit functional, non-functional, and constraint requirements.
Transforms project briefs into structured testable specifications with user stories, acceptance criteria, functional/non-functional requirements, technical constraints, and out-of-scope items. Use after brainstorming for implementation planning.
Creates or updates functional specifications from natural language feature descriptions by analyzing codebase impact, generating context, and writing structured spec documents.