SuperAPI AI 工具集

specsfy-07-implement

编程与开发

查看项目

更新于 10-16 10:11

技能介绍

用途

specsfy-07-implement 是 Specsfy 工作流中的一个实现阶段技能(skill),用于在用户要求实现、执行或完成 specs/{id}-{slug}/spec.md 中第 14 节“Tarefas”所列任务时,按规范创建对应代码。它负责把已经过规划的 spec 转换为实际实现,并维护源单一性:规范、测试、代码、证据与复选框保持一致。

主要能力

  • 按依赖顺序执行任务:读取 spec.md 第 14 节,逐项确认任务 ID、类型、引用、依赖、涉及文件和可验证结果,并按依赖顺序推进。
  • TDD/BDD 流程:对于 [TEST] 任务,参考 spec 中的 Gherkin 设计 TDD 测试,添加标记并观察有效的 RED;对于 [CODE] 任务,确认前置 TDD 已覆盖相同 ID 且 RED 已记录,然后编写使测试变绿的最小生产代码。
  • 数据库安全保护:在执行任何测试、套件、回归或迁移前,必须运行 node .agents/skills/specsfy-setup/scripts/check_database_safety.mjs --project <raiz> --command "<comando-pretendido>"。在 Laravel 中要求存在 .env.testing、APP_ENV=testing,且测试数据库与 .env 中的开发数据库明确不同。状态为 PENDING 时不得执行任何测试;被分类为 IGNORED 的命令不执行、不授权,包括 migrate:fresh、migrate:refresh、migrate:reset、migrate:rollback、db:wipe、schema:drop、prisma migrate reset、DROP DATABASE、DROP SCHEMA、DROP TABLE、TRUNCATE 等,以及间接脚本和带有 RefreshDatabase 或 DatabaseMigrations 的测试。应使用事务隔离与最小 fixtures。
  • 强制视觉审查:每个开发任务都要执行视觉审查(即使无人要求)。VISUAL 项在 VERIFY 之后、EVIDENCE 之前完成。涉及界面的变更需阅读 DESIGNSYSTEM.MD、INTERFACE.md 和相关组件,检查各视口与状态下的渲染或 DOM、边框、间距、边距、padding、字体、对齐、宽度、溢出、焦点、缩放和换行,并记录方法、视口、状态、调整与结果。若任务不涉及界面,则以“不适用”及具体理由完成该项。
  • 迁移任务:[MIGRATION] 任务先按规划路径创建版本化迁移文件,通过安全检查后在测试数据库应用迁移并立即查询状态,把两条零退出码命令记录在任务的 specsfy:evidence 注释中。
  • 证据与追踪:把命令、结果和 ID 记录在第 11–13 节,然后标记 EVIDENCE;在 Evidence Contract 为 1 时写入 specsfy:evidence JSON 注释并运行 verify_evidence.mjs。
  • 范围变更控制:当实现需要未描述的行为、与某个 AC 冲突,或改动公共接口、数据、安全或超出范围时,停止并自动载入 $specsfy-update-spec。

使用方式

前提是先在项目根目录载入 $specsfy-setup,确认根路径并在 setup 报告无未决项时才继续。首次改动生产代码前,将 Status 设为 Implementing、Delivery Gate 设为 In Progress,并执行 specsfy transition <id> in-progress。使用 next_task.mjs 挑选就绪任务:

node .agents/skills/specsfy-07-implement/scripts/next_task.mjs \
  <raiz>/specs/<estado>/<NNNN>-<slug>/spec.md

任务内依次完成 PREP、EXECUTE、VERIFY、EVIDENCE、IMPROVE 及 VISUAL 六个项目。改动生产代码后、标记 EXECUTE 前运行上下文监控:

node .agents/skills/specsfy-setup/scripts/monitor_context.mjs \
  --project <raiz> --check

对于 [CODE] 任务,完成实现后自动转交 $specsfy-documentator 重建 docs/,其 --check 通过后再返回本技能。全部任务完成后执行完整测试套件、lint、类型与构建,运行测试追踪,逐项比对验收标准与 Definition of Done,再次运行 monitor_context.mjs 并解决待办文档,确认无缺失证据后将 Delivery Gate 设为 Passed、Status 设为 Reviewing 并执行 specsfy transition <id> review,随后由 $specsfy-04-validate 完成验收并移至 completed。交付摘要可通过 render_delivery.mjs 生成:

node .agents/skills/specsfy-07-implement/scripts/render_delivery.mjs \
  specs/<estado>/<NNNN>-<slug>/spec.md --format markdown

该脚本只写入 stdout;发布到 PR、commit 或外部工具需要明确请求。

适用场景

适用于 Specsfy 项目中已通过 Definition Gate 与 Plan Gate、状态为 Planned 或 Implementing 的 spec,需要逐项落地第 14 节任务时。若涉及界面(Interface 为 Sim),需确认第 10 节中本地 stack、页面、菜单、导航、表单、动作、React 区块、shadcn/ui/ReUI 组件、状态与交互测试等已规划;React 项目必须载入 $specsfy-specialist-react-ui-components。CRUD 还需确认可复用的唯一 PageHeader、全宽 DataGrid、始终可见的 ID 列、行内详情链接及独立的编辑与删除按钮。

限制

  • 资料未提供该技能的安装方式、收费、价格、平台支持范围或效果说明,暂未提供。
  • 不得跳过数据库安全检查,PENDING 状态下不得运行测试;不得执行被归为 IGNORED 的破坏性命令,也不得为其申请授权。
  • 不得以 API 或持久化替代已约定的界面流程,不得使用空组件或捷径绕过既定界面。
  • 文档重建($specsfy-documentator)完成且 --check 通过前不得标记任务完成。
  • 缺失证据时不得宣告完成;verify_evidence.mjs 对 [MIGRATION] 要求迁移文件、应用命令与状态查询三者齐备。
  • 证据不足或门禁未通过时,应自动转交相应技能并保持任务开放,不得在门禁未通过的情况下改动生产代码。