第4章 基于规范的AI编程-代码和提示词-林子雨编著《AI编程》

💡 原文中文,约5400字,阅读约需13分钟。
📝

内容提要

本文介绍AI编程中的规范驱动开发工具,重点讲解Spec-Kit和OpenSpec。Spec-Kit通过Constitution(工程宪章)和Specification(系统规范)约束AI代码生成,确保代码质量与安全。OpenSpec提供结构化规范格式,支持提案、实施、归档流程,并展示在TRAE中安装配置及实践猜数字游戏和待办事项应用的步骤,强调规范与代码同步管理。

🔎

延伸解读

规范层级与约束优先级

Spec-Kit通过Constitution、Specification、Plan、Tasks四级规范约束AI编程,其中Constitution定义团队工作规则,Specification定义系统功能与数据模型。规范优先级为Constitution > Specification > Plan > Tasks,下层不得与上层冲突。这种层级设计确保AI生成代码既符合团队纪律,又满足系统需求,避免越权修改核心逻辑或隐私数据。

OpenSpec的流程化变更管理

OpenSpec将功能开发分为提案、实施、归档四个步骤,每个变更需包含proposal.md并遵循规范格式。提案阶段必须包含Why和What Changes,实施阶段按能力规范编写spec.md,归档后文件进入只读状态并纳入版本管理。这种流程确保规范与代码同步演进,便于追溯历史变更,适合需要严格管控AI开发流程的团队。

环境配置与常见问题

使用OpenSpec需先安装Node.js 20.19.0+,并以npm全局包方式安装。若在Git Bash中无法使用,通常是环境变量问题,需在~/.bashrc中添加路径。初始化项目时可用--tools参数指定工具,config.yaml中的context字段会自动注入AI请求,确保AI了解技术栈。这些配置细节对顺利运行OpenSpec至关重要。

AI开发流程的纪律性要求

在待办事项应用实践中,作者强调严格遵循OpenSpec四步骤,无确认绝不主动推进、不超前写代码。每步结束需等待用户确认,禁止合并步骤或提前完成开发。这种纪律性可防止AI过度自主,确保开发过程可控,尤其适合需要逐步审查的复杂功能。

Q&A

Spec-Kit中的Constitution(工程宪章)和Specification(系统级规范)有什么区别?

Constitution是顶层约束,定义团队使用AI编程工具时必须遵守的硬性规则,如代码审查、安全相关功能必须由人类实现等,关注“团队如何工作”。Specification定义系统的功能需求和数据模型,如用户注册、订单创建等,关注“系统做什么”。

OpenSpec的规范文档格式包含哪些主要部分?

OpenSpec的规范文档格式包括:概述、功能范围(必须实现和不包含)、数据模型、API规范、验收标准、技术约束和边界条件。

如何在TRAE中安装和配置OpenSpec?

首先确认已安装Node.js 20.19.0或更高版本,然后执行`npm install -g @fission-ai/openspec@latest`安装OpenSpec,用`openspec --version`验证。进入项目根目录执行`openspec init`初始化,若为TRAE配置可加`--tools trae`参数。

OpenSpec中proposal.md文件必须包含哪些段落?

proposal.md必须包含## Why和## What Changes两个段落,否则`openspec validate`会报错。

在OpenSpec实践中,猜数字游戏项目的技术栈是什么?

猜数字游戏项目的技术栈是HTML5、CSS3、Vanilla JavaScript,存储使用localStorage,无后端,纯前端应用。

OpenSpec的归档步骤(/openspec-archive-change)有什么作用?

归档步骤将当前变更从openspec/changes/移动到openspec/changes/archive/,使规范文档进入只读状态,除非有新的变更提案否则不再修改。归档后的文件纳入版本管理,与代码一起同源管理。

在待办事项应用实践中,要求AI严格按照OpenSpec的四个步骤进行,具体是哪四个步骤?

四个步骤是:1. 探索阶段(/skill:openspec-explore),2. 提案阶段(/skill:openspec-propose),3. 执行阶段(/skill:openspec-apply-change),4. 归档阶段(/skill:openspec-archive-change)。

🏷️

标签

➡️

继续阅读