Sparkle CodesSparkle
项目 / AgentOps

Spec-First AI 辅助开发:大工程量项目的完整规格手册

x
xpx
Mar 20, 2026
Editorial Insight
#AgentOps#AI开发#Spec-First#工程标准#文档化#架构设计
核心哲学

简单展示型项目,先页面;业务系统型项目,先业务、先数据、先流转,再页面。 不要让 AI 替你“脑补”系统长什么样,而是让它在既定规格里执行。

一、项目分类逻辑:在动手前选对路径

不是所有项目都走同一条路。项目应先分型,再决定流程的权重。

A 类:展示表达为主的轻项目

  • 描述:核心目标是信息传达,几乎没有复杂状态和持久化。
  • 推荐顺序:背景澄清 → 页面结构 → 视觉规则 → 前端生成 → 补齐少量 Mock 数据。

B 类:业务数据为主的系统型项目

  • 描述:包含 CRUD、多角色、权限、状态流转或历史记录。
  • 推荐顺序:背景澄清 → 需求挖掘 → 场景梳理 → 领域建模 → Schema 设计 → 反验与流转 → Spec Pack → AGENT.md → 分轮代码生成。

二、Discovery:消灭需求模糊性

阶段目标

先把项目想明白,而不是急着写页面。在这个阶段,你应该像 PM 和架构师一样思考。

Step 1:背景澄清

  • 目标:搞清楚“为什么做”以及“做成什么样”。
  • 产出:
    • 00-background-and-goals.md:项目背景、用户目标、成功标准。
    • MVP 边界:明确这期只做什么,哪些内容“本期绝对不做”。

Step 2:AI 采访式需求发现

  • 做法:让 AI 作为采访者,连续追问你需求中的空白。
  • 追问重点:
    • 是否有多角色权限?
    • 高频场景与异常场景分别是什么?
    • 哪些操作需要记录历史?哪些状态必须持久化?
    • 是否需要通知、搜索、筛选、导入导出?

Step 3:业务场景梳理 (Scenarios)

  • 注意:这一步定义的是 业务流,不是 UI 流程。
  • 要素:动作发起者 -> 动作对象 -> 状态变化结果 -> 可见性与撤销逻辑。

三、Domain:建立稳定的系统结构

阶段目标

完成从“用户语言”到“系统语言”的转变,锁定核心实体与数据流向。

Step 4:领域对象识别 (Domain Objects)

  • 动作:识别系统中的主体对象 (User, Project, Task) 和附属对象,区分什么是“表”,什么是“字段”。
  • 产出:10-domain-model.md。

Step 5:Schema 设计

  • 职责:定义实体名、字段类型、必填项、默认值、外键约束、唯一索引及删除策略。
  • 产出:11-schema.md。

Step 6:场景反验 (Stress Test)

  • 方法:把 Step 3 的业务场景逐条代入 Schema 推演。
  • 关键问题:这个状态变化有地方记吗?这个查询路径顺吗?删掉主体后历史流水会断吗?
  • 原则:在 Schema 层改设计比改代码便宜 100 倍。

Step 7:数据流与状态流 (Data Flow)

  • 职责:明确写入触发者、持久化位置、前端 UI 状态与后端持久态的同步关系、乐观/悲观更新策略。
  • 产出:12-data-flow.md。

四、Delivery:拆解可执行分层规格 (Spec Pack)

将上述思考过程整理为 Spec Pack。AI 处理高密度、职责单一的细密文档效果更好。

编号 文档名称 核心职责 关联依赖
00 product-spec 总控。定义目标、MVP 范围、技术栈边界。 Discovery
01 user-flows 交互。页面结构、跳转关系、行为路径及结果。 Scenarios
02 data-model 结构。核心实体、关系、字段规范、约束策略。 Schema
03 rules-cases 边界。报错处理、空状态、权限边界、输入校验。 Data Flow
04 ui-guidelines 视觉。主题、配色、圆角、间距、组件选择偏好。 UI Spec
05 runbook 运行。环境、Build 命令、部署说明、验收标准。 Acceptance
06 change-log 演进。基线变更索引,记录各版本的重大调整。 History

五、Implementation:Agent 编排与分轮投喂

警告:不要一次性喂全量上下文

上下文越集中,代码生成质量越高。建议分 5 个轮次推进。

Round 1: 打骨架 (Skeleton)

  • 输入:AGENT.md + 00 + 02 + 05 的技术部分。
  • 目标:初始化项目、建立目录结构、生成 Schema 和模块边界。

Round 2: 通主流程 (Main Flow)

  • 输入:AGENT.md + 00 + 01 + 02。
  • 目标:实现页面、路由、CRUD 主路径,打通数据读写。

Round 3: 补边界 (Edge Cases)

  • 输入:AGENT.md + 03 + 05。
  • 目标:补全空状态、错误提示、表单校验、删除确认。

Round 4: 收敛 UI (Visual Polish)

  • 输入:AGENT.md + 04 + 01。
  • 目标:修正视觉偏差,保证组件使用的一致性。

Round 5: 验收与部署 (Delivery)

  • 输入:AGENT.md + 05 + 06。
  • 目标:自查验收标准,跑通环境,上线部署。

六、维护规范:连接规格与代码

1. 根目录 AGENT.md:AI 的“宪法”

必须在根目录保留一份英文的 AGENT.md,作为 AI 的高密度入口。

  • 它定义 Source of Truth 的优先级。
  • 它规定修改代码前必须先同步更新哪个规格文档。
  • 它规定工程规范(如:禁止修改 spec_config.py 中的正则表达式)。

2. 文件头注释:建立索引连接

每个核心页面、服务、Repository 的开头,必须包含如下注释:

TS
/**
 * Baseline refs:
 * - specs/delivery/01-user-flows.md
 * - specs/delivery/02-data-model.md
 *
 * Business flow:
 * - 用户从 Home 进入详情页 -> 点击编辑 -> 更新实体 -> 返回列表并刷新。
 *
 * Included features: [核心功能清单]
 * Data source: [数据来源说明]
 */

3. 轻量化演进体系

不要扩写旧 PRD,而是采用:Baseline (基线) + Changes (变更提案) + Features (功能包) + Releases (发布增量)。

  • Baseline (00-05):始终保持为“当前系统的有效真相”。
  • Changes (/changes):记录具体的变更决策(RFC)。
  • Features (/features):新功能的独立设计包。
  • Log (06):记录上述所有变动对基线的影响。

七、标准目录结构分布图

TEXT
/AGENT.md                 # AI 执行总入口
/specs
  /discovery              # 阶段 1:背景、Q&A、场景梳理
  /domain                 # 阶段 2:领域模型、Schema、数据流图
  /delivery (Baseline)    # 阶段 3:00-05 基线文档 + 06 演进索引
  /changes                # 阶段 4:单个需求变更提案
  /features               # 阶段 4:新功能设计包
  /releases               # 阶段 4:版本增量记录
/scripts
  /validate-project.py    # 基线追溯性与一致性检查脚本
结语

真正稳定的 AI 辅助开发,不是靠“更强的模型”,而是靠 更清楚的事实源。通过这套 Spec-First 手册,你可以将 AI 从“决定者”拉回到“执行者”的角色,确保代码永远服务于你的意图。


关联资源

  • ai-assisted-dev-workflow-by-type
  • spec-driven-development-in-ai-coding
  • agentops-from-demo-to-production
BACK TO BLOG
The End of Interaction