SuperAPI AI 工具集

dwf-requirement

写作与研究

查看项目

更新于 10-16 08:54

技能介绍

用途

dwf-requirement 用于把零散需求整理成 DWF 工作流风格的需求文档。它只负责需求捕获与需求文档生成;独立运行时不启动完整开发工作流,工作流模式下按 .dwf/state.json 继续当前阶段。

当用户需要把想法、需求说明、产品需求、项目背景、Markdown、纯文本或本地文档整理成 DWF 工作流风格的需求文档时,必须使用本技能。

主要能力

  • 只生成需求文档:默认只创建或更新目标 spec 目录下 01-需求/需求文档.md,不创建其它阶段文档或代码。
  • 支持多种输入来源:长文本、本地文件路径、外部文档链接、简短想法或口头描述。
  • 按 references/requirements_template.md 生成中文需求文档,保留 YAML frontmatter(project、version、author、date、status、revision)。
  • 文档包含业务流程图(Mermaid 表达主流程)、功能性需求(FR-1、FR-2 编号)、非功能性需求(NFR-1、NFR-2 编号)、MoSCoW 优先级(必须、应该、可以、不会)、可观察或可测试的验收条件。
  • 信息不足时按“一次一个问题”的方式追问,优先澄清影响文档结构和验收标准的内容。
  • 已有文档时先读取并告知用户,询问保留、修改还是替换,用户确认前不覆盖。

使用方式

触发后流程:

  1. 探查上下文:检查 .dwf/state.json 是否存在,确定运行模式;判断用户输入来源;本地文件路径则读取内容;外部文档链接则根据链接类型使用相应技能读取(如飞书文档使用 lark-doc,网页文档使用 web-access);简短想法则先澄清最少信息。

  2. 判断运行模式与目标 spec 目录:

    • 工作流模式:读取 .dwf/state.json,在 specs 数组中找 status: "active" 且 current_step: "requirements" 的 spec,以 .dwf/specs/{spec.name} 作为目标 spec 目录。需求文档完成并经用户确认后,把该 spec 的 current_step 更新为 "design"、把 requirements 追加到 confirmed_stages,并同步其 _meta.json 与顶层 updated_at。
    • 独立模式:.dwf/state.json 不存在或不存在满足条件的 active spec。用 question 询问用户目标目录,默认提议 .dwf/specs/{今日日期}-{seq}-feat-{描述},其中 seq 扫描 .dwf/specs/ 现有 spec 目录名中的最大序号 +1(无则 001),由用户确认或修改。如目标 spec 目录不存在,创建它及其下 01-需求/,并写一份初始 _meta.json。不要创建 .dwf/state.json,不推进完整工作流。
  3. 判断输入来源并选择处理方式。

  4. 澄清缺失信息:项目名称或一句话概述、背景与业务价值、目标用户与角色、目标端、范围内外内容、核心用例和主流程、功能性需求与优先级、非功能性需求、约束假设依赖与风险、整体验收标准。

  5. 生成需求文档:读取 references/requirements_template.md,按模板生成中文需求文档,保存到 {目标 spec 目录}/01-需求/需求文档.md。新文档 status 默认 draft,date 使用当前日期,version 初始为 1.0.0,revision 记录“初始版本”。

  6. 请求用户确认:展示保存位置和简要摘要并请求确认;用户提出修改意见则直接更新文档并保持 status: draft;用户明确要求标记为已确认则将 status 改为 confirmed 并在 revision 中追加确认记录。

适用场景

  • 需要把想法、需求说明、产品需求、项目背景、Markdown、纯文本或本地文档整理成 DWF 工作流风格需求文档时。
  • 作为 DWF 工作流中的需求阶段,按 .dwf/state.json 继续当前阶段。
  • 独立使用,仅生成需求文档,不推进后续阶段。

限制

  • 只生成需求文档,不创建其它阶段文档或代码。
  • 除目标 spec 目录下的 01-需求/ 外,不主动创建 02-设计稿/、03-需求分析/、04-技术方案/、05-实现清单/。项目代码目录由用户/dwf-coding 决定,本技能不创建。
  • 独立模式下不创建或推进 .dwf/state.json,不把项目推进到 design、breakdown、plans、todos 或 code。
  • 确认前不覆盖已有文档。
  • 全程使用中文,除非用户明确要求使用其他语言;代码、文件路径、命令、API 名、技术术语、第三方库名和用户提供的原文内容可以保留英文。
  • 不创建 需求文档-v2.md 之类的新版本文件,除非用户明确要求。

完成前检查

结束前确认:只创建或更新了目标 spec 目录下 01-需求/需求文档.md;独立模式下没有创建 .dwf/state.json;独立模式下没有创建除目标 spec 目录 01-需求/ 外的其它阶段目录;独立模式下没有推进后续阶段;工作流模式下只在用户确认后更新该 spec 的 current_step 为 design;文档内容为中文;文档包含 frontmatter;文档包含背景、目标、用户角色、范围、用例、功能性需求、非功能性需求、约束、依赖、风险、验收标准和待确认事项;已说明保存路径和下一步需要用户确认的事项。