用途
speckit-specify-zh 是一个中文功能规范创建工具,用于将自然语言形式的功能描述转换为结构化的功能规范文档。当用户需要把功能想法整理为规范时可以使用该技能,触发词包括「speckit规范」「功能规范」「创建规范」「功能描述转换」「speckit-specify」。
主要能力
- 接收触发词后的功能描述文本,并将其视为本次功能描述($ARGUMENTS),不在用户未提供时要求重复。
- 将 assets/specify/ 目录下的所有文件(含子目录)按原目录结构复制到仓库根目录的 .specify 目录,跳过已有文件、不覆盖同名文件(使用 cp 的 -n / --no-clobber 选项)。
- 生成 2-4 个词的短名称用于分支命名,尽量采用动词-名词格式,保留技术术语与缩写(如 OAuth2、API、JWT),保持简洁且具描述性。
- 创建分支前检查现有分支:先执行 git fetch --all --prune 获取最新信息,再从远程分支、本地分支、规范目录三个来源查找短名称对应的最高功能编号,使用 N+1 作为新编号。
- 调用 create-new-feature 脚本(Bash 或 PowerShell 版本)创建并检出分支、初始化规范文件,脚本的 JSON 输出包含 BRANCH_NAME 与 SPEC_FILE 路径。
- 加载 .specify/templates/spec-template.md 了解必需部分,并从功能描述中提取参与者、动作、数据、约束等关键概念。
- 生成功能性需求(每条可测试)、用户场景与测试、成功标准(可衡量、技术无关、以用户为中心、可验证)以及关键实体(如涉及数据)。
- 生成规范质量检查清单(FEATURE_DIR/checklists/requirements.md),运行验证检查并记录通过或失败状态;若有失败项则更新规范并重新验证,最多迭代 3 次。
- 对无法确定且无合理默认值的方面最多标记 3 个「需要澄清」标记,按范围 > 安全/隐私 > 用户体验 > 技术细节的优先级排序,并向用户呈现选项(最多 3 个问题,按 Q1、Q2、Q3 编号),等待用户选择后更新规范并重新验证。
使用方式
用户通过触发词加功能描述的方式调用。工具会复制 assets/specify/ 到 .specify 目录、生成分支短名称、检查三个来源的编号、运行 create-new-feature 脚本创建分支与规范文件、按模板写入规范、生成并更新质量检查清单,最后报告分支名称、规范文件路径、检查清单结果以及下一阶段(speckit-clarify 或 speckit-plan)的准备情况。脚本会创建并检出新分支并在写入前初始化规范文件。
规范内容应关注用户需要什么以及为什么,避免涉及技术栈、API、代码结构等实现细节,面向业务利益相关者而非开发人员编写,且不在规范中嵌入任何检查清单。规范中必填部分每个功能都必须完成,可选部分仅在与功能相关时包含,不适用时完全删除而不保留「N/A」。
成功标准需包含具体指标(时间、百分比、计数、比率),不提及框架、语言、数据库或工具,从用户/业务角度描述结果,并可在无需了解实现细节的情况下验证。
适用场景
适用于把功能想法转换为结构化规范文档的场景,例如添加用户认证、为 API 实现 OAuth2 集成、创建分析仪表板、修复支付处理超时错误等。工具支持在功能描述中使用单引号的转义语法(例如 'I'''m Groot'),或尽量改用双引号。
限制
规范的澄清标记最多 3 个,仅在显著影响功能范围或用户体验、存在多种合理解释且含义不同、缺少任何合理默认值的情况下使用。对数据保留、性能目标、错误处理、认证方法、集成模式等,工具会采用合理默认值并在假设部分记录,不主动询问。质量验证最多迭代 3 次,若仍失败则在检查清单注释中记录剩余问题并向用户警告。每个功能只能运行一次 create-new-feature 脚本。关于收费、价格、平台支持范围等信息,资料中暂未提供。