用途:把 OpenSpec 的 spec.md 文件当作可执行的事实来源,将围栏式 Gherkin 编写、验收测试先行、规范优先实现与 BDD 区域隔离整合为同一套工作流。该工作流为可选启用,仅在用户或项目说明明确要求 spec-as-source 时应用;一旦启用,BDD 区域规则即为强制,不能单独开启或关闭区域隔离。
主要能力与用法:启用后,其产物引用会覆盖所配置 OpenSpec schema 的对应模板——spec.md 依据 references/spec.md 起草,而非 openspec/schemas/intent-driven/templates/spec.md;tasks.md 依据 references/tasks.md 起草,并保留验收测试先行的顺序。起草或修改围栏式 Gherkin 时须使用 gherkin-authoring 子技能;配置或修改验收运行器、提取器、lint、步骤定义或页面对象时须使用 acceptance-test-authoring 子技能。
BDD 区域规则:代码只为 openspec/changes/ 下描述该行为的活动变更编写;一个工作单元只能编辑规范区(openspec/)或代码区(其余全部),在变更未提交时不得同时编辑两者;跨区前须先完成并提交或暂存当前区;不得把 openspec/ 文件与代码区文件一起提交;任何名为 tasks.md 的文件豁免,可从任一区编辑;未经明确许可不得回退或丢弃用户自有改动。编辑前用 git status --porcelain 判断:openspec/ 下非 tasks.md 路径选中规范区,其他变更路径选中代码区。
工作流:起草并校验提案与围栏式 Gherkin 增量规范;在接触代码前提交或暂存规范区工作;在实现前建立失败的验收场景或待定步骤;实现使场景通过的最小改动;保持有效验收套件为绿且无待定或未定义步骤;返回规范进行同步或归档前提交或暂存代码区工作。
限制与警示:无活动规范变更时实现行为、在同一未提交工作单元中同时编辑 openspec/ 与代码区文件、先写实现任务后写验收测试任务、把生成的 .feature 文件当作来源而非 spec.md、在校验变更时运行无活动增量的来源规范,均属红旗,出现时应停止并恢复工作流边界。其他细节暂未提供。