qinyelin
发布于 2026-09-14 / 2 阅读
0
0

AI 开发工作流

AI CLI 开发工作流

一、核心思路

以后开发方式从传统的:

IDE / 桌面端 → 自己写代码 → AI 辅助

逐渐调整为:

需求 → Context Engineering → SDD 设计 → TDD 约束 → CLI → Comet 多 Agent 执行 → 人工 Review → 修正文档 → 再执行

核心变化:

  • 人主要负责:需求、上下文、技术方案、验收
  • AI 主要负责:编码、测试、修改、重复性执行
  • 尽量减少自己手动写大量业务代码
  • 从桌面端 AI 工具逐渐迁移到 CLI 开发
  • 不追求“一条 Prompt 把项目做完”
  • 通过多轮 Prompt → 执行 → 检查 → 修正文档 → 再执行 完成开发

二、整体技术栈

1. 工作流编排

Comet

项目:

rpamis/comet

定位:

多 Agent / 多任务 AI 编码工作流编排。

主要用途:

  • 将任务交给 AI Agent 执行
  • 同时推进多个开发任务
  • 后台执行任务
  • 人负责不断准备下一批任务
  • 执行完成后统一 Review

理想状态:

我
 ↓
编写需求 / Prompt / Spec
 ↓
Comet
 ↓
Agent A ── 后端开发
Agent B ── 前端开发
Agent C ── 单元测试
Agent D ── Code Review
 ↓
人工检查
 ↓
发现问题
 ↓
修改 Spec / Prompt
 ↓
再次交给 Comet

三、Skills

1. OpenSpec —— SDD

项目:

Fission-AI/openspec

核心思想:

Specification-Driven Development

即:

规格驱动开发(SDD)

不要一上来就让 AI:

“帮我实现这个功能。”

而是先把需求定义清楚。

例如:

需求
 ↓
Specification
 ↓
技术方案
 ↓
任务拆分
 ↓
代码实现
 ↓
验证

需要重点学习:

  • 如何写 Spec
  • 如何描述需求
  • 如何描述边界条件
  • 如何定义验收标准
  • 如何拆分开发任务
  • 如何让 AI 根据 Spec 开发

2. Superpowers —— TDD

项目:

obra/superpowers

重点学习:

Test-Driven Development

即:

测试驱动开发(TDD)

基本流程:

需求
 ↓
先写测试
 ↓
测试失败 Red
 ↓
实现功能
 ↓
测试通过 Green
 ↓
重构 Refactor

对于 AI Coding 来说,TDD 非常重要。

因为不能只让 AI 判断:

“我写完了。”

而应该通过测试判断:

“这个功能到底是不是真的完成了。”

最终形成:

SDD
负责定义:
“应该做什么”

+

TDD
负责验证:
“做得对不对”

3. Matt Pocock Skills

项目:

mattpocock/skills

重点:

grill-me

作用:

让 AI 在开发之前主动追问需求。

例如你说:

做一个订单导出功能。

AI 不应该直接开始写代码,而应该继续确认:

导出格式是什么?

Excel 还是 CSV?

最大数据量多少?

同步导出还是异步导出?

是否需要权限控制?

是否需要记录导出历史?

是否允许导出敏感字段?

数据量超过 10 万怎么办?

通过不断“拷问需求”,减少 AI 自己脑补。


4. 其他 Skills

可以逐渐研究:

browser-harness
show-me
eli5
...

不需要一次全部学习。

优先级:

OpenSpec
   ↓
Superpowers
   ↓
grill-me
   ↓
其他 Skills

四、MCP

计划使用:

Context7

用途:

获取最新技术文档和 Library Context。

例如:

Spring Boot
Vue 3
MyBatis
Redis
第三方 SDK

避免 AI 使用过时 API。


Memory

保存项目长期上下文。

例如:

项目技术栈
代码规范
架构约定
数据库规范
接口规范
历史技术决策

避免每次重新告诉 AI。


Sequential Thinking

用于:

复杂问题分析
技术方案推理
Bug 排查
架构设计
复杂业务拆分

MySQL MCP

让 AI:

查看数据库结构
查看表
查看字段
分析 SQL
验证 SQL
排查数据问题

Redis MCP

让 AI:

查看 Redis Key
分析缓存
排查缓存问题
验证 Redis 数据

五、Context Engineering

这是整个工作流非常重要的一部分。

传统 Prompt Engineering 更关注:

这一句话怎么问 AI?

Context Engineering 更关注:

AI 在开始工作之前,应该知道哪些信息?

例如开发一个功能,不能只给:

帮我实现订单退款。

应该提供:

项目背景
业务需求
技术栈
代码规范
项目目录
数据库结构
已有代码
接口规范
业务规则
禁止事项
测试要求
验收标准

目标是:

尽可能减少 AI 的猜测。


六、技术方案应该写什么

以后复杂功能不要直接 Coding。

先写技术方案。

1. 功能目标

明确:

要解决什么问题
用户怎么使用
最终实现什么效果

2. 做什么

明确需要实现:

新增什么功能
修改什么功能
新增哪些接口
新增哪些页面
新增哪些数据库字段
新增哪些类

3. 怎么做

必须描述具体技术实现。

例如:

Controller
 ↓
Service
 ↓
Domain Service
 ↓
Mapper
 ↓
MySQL

不要只写:

实现批量保存。

应该写清楚:

数据如何获取

如何拆分批次

每批多少条

是否使用 MyBatis Batch

事务边界在哪里

失败是否回滚

是否允许部分成功

数据量上限是多少

4. 不要做什么

明确禁止事项。

例如:

不要修改现有接口返回结构

不要修改公共组件

不要引入新的第三方依赖

不要直接操作生产数据库

不要改变已有数据库字段含义

不要为了实现功能进行无关重构

这一部分可以有效防止 AI “顺手重构整个项目”。


七、项目代码目录树

技术方案需要告诉 AI 项目结构。

例如:

src/
├── controller/
│   └── OrderController.java
│
├── service/
│   ├── OrderService.java
│   └── impl/
│       └── OrderServiceImpl.java
│
├── mapper/
│   └── OrderMapper.java
│
├── entity/
│   └── Order.java
│
├── dto/
│   └── OrderDTO.java
│
└── vo/
    └── OrderVO.java

并说明每个文件的作用。

例如:

OrderController
负责 HTTP 接口

OrderService
定义订单业务接口

OrderServiceImpl
实现订单业务逻辑

OrderMapper
数据库访问

OrderDTO
接口请求参数

OrderVO
接口响应数据

八、文件之间的关系

不能只告诉 AI 有哪些文件。

还应该告诉它:

OrderController
       ↓
OrderService
       ↓
OrderServiceImpl
       ↓
OrderMapper
       ↓
MySQL

复杂功能还需要描述调用关系:

Controller
 ↓
OrderService
 ↓
InventoryService
 ↓
PaymentService
 ↓
OrderMapper
 ↓
MQ

这样 AI 才不会随意改变项目结构。


九、外部接口

所有第三方接口最好建立:

接口字典

例如:

支付接口

POST /payment/refund

Request:

{
    "orderNo": "xxx",
    "amount": 100
}

Response:

{
    "code": 0,
    "refundNo": "xxx"
}

需要说明:

请求方式
URL
请求参数
返回参数
错误码
超时时间
重试机制
异常处理

十、枚举

业务状态必须明确。

例如:

OrderStatus

WAIT_PAY
PAID
SHIPPED
FINISHED
CANCELLED

不要让 AI 自己猜:

0 = ?
1 = ?
2 = ?

应该在 Context / Spec 中明确。


十一、复杂功能设计

复杂功能需要单独写设计方案。

例如:

批量插入

不能只写:

批量保存订单。

应该明确:

数据量:最大 10 万

每批:
1000 条

实现:
MyBatis Batch

事务:
每批独立事务

失败:
记录失败批次

日志:
记录 batchId

禁止:
逐条 insert

这样 AI 才能按照预期实现。


十二、前端方案

前端不能只告诉 AI:

做个订单管理页面。

需要明确页面组成。

例如:

菜单

订单管理
 ├── 订单列表
 └── 退款记录

搜索条件

订单号

用户手机号

订单状态

创建时间

支付时间

按钮

查询

重置

导出

查看详情

退款

弹框

退款弹框:

退款金额

退款原因

备注

取消

确认退款

十三、前端样式

需要定义:

使用现有项目 UI 风格

优先复用已有组件

不要自己创建新的设计体系

表格风格跟随现有页面

按钮颜色跟随项目主题

弹窗宽度遵循项目规范

具体 UI 规则可以通过:

Context Rules

统一控制。


十四、后端技术规则

后端同样通过 Context Rules 控制。

例如:

Java 17

Spring Boot 3

MyBatis Plus

MySQL

Redis

RocketMQ

Lombok

同时定义规则:

Controller 不写业务逻辑

Service 控制事务

Mapper 只负责数据库

DTO / VO 分离

禁止 Entity 直接返回前端

统一 Result 返回

统一异常处理

统一日志规范

以后不用每个 Prompt 重复。


十五、推荐开发流程

完整流程:

需求
 ↓
grill-me
 ↓
需求澄清
 ↓
Context Engineering
 ↓
OpenSpec / SDD
 ↓
技术方案
 ↓
任务拆分
 ↓
Superpowers / TDD
 ↓
Comet
 ↓
Codex / Agent 执行
 ↓
测试
 ↓
人工 Review
 ↓
发现问题
 ↓
修改 Spec / Context
 ↓
重新交给 Comet
 ↓
直到验收通过

十六、每天实际工作方式

以后上班之后,不是马上开始写代码。

例如早上:

09:00 - 10:00

分析今天的需求

↓

写 Prompt / Spec

↓

补充 Context

↓

写技术方案

↓

拆分任务

准备好以后:

Prompt / Spec
      ↓
    Comet
      ↓
Agent 开始开发

Agent 工作的时候,不需要一直等。

继续:

准备第二个任务
 ↓
写第二份 Prompt
 ↓
交给 Comet

准备第三个任务
 ↓
写第三份 Prompt
 ↓
交给 Comet

然后回来检查第一个任务:

检查代码
 ↓
运行测试
 ↓
查看 Diff
 ↓
发现问题
 ↓
不要直接手改
 ↓
修改 Spec / Prompt / 文档
 ↓
重新交给 Comet

形成循环:

写需求
   ↓
丢给 Comet
   ↓
写下一个需求
   ↓
丢给 Comet
   ↓
Review 前一个任务
   ↓
发现问题
   ↓
修改文档
   ↓
再次丢给 Comet
   ↓
继续下一个任务

十七、工作习惯调整

以前:

IDE
 ↓
找到文件
 ↓
自己写代码
 ↓
AI 补全
 ↓
Debug

以后逐渐调整:

CLI
 ↓
理解需求
 ↓
准备 Context
 ↓
写 Spec
 ↓
写技术方案
 ↓
Agent Coding
 ↓
测试
 ↓
Review Diff
 ↓
修改 Spec

人的价值逐渐从:

写代码

转向:

描述问题 + 设计方案 + 管理 Context + 验收 AI 代码


十八、学习优先级

第一阶段:

CLI 开发习惯
Context Engineering
Comet

第二阶段:

SDD
OpenSpec

第三阶段:

TDD
Superpowers

第四阶段:

grill-me
Context7
Memory
Sequential Thinking
MySQL MCP
Redis MCP

最后,如果对架构进一步感兴趣:

DDD
Domain-Driven Design
领域驱动设计

DDD 暂时不是最高优先级。

先把:

Context Engineering + SDD + TDD + CLI + Agent 工作流

真正用起来。


十九、一句话总结

这套 AI 开发模式的核心不是:

让 AI 帮我写代码。

而是:

我负责把需求、上下文、技术方案和验收标准定义清楚,再通过 SDD + TDD + Skills + MCP + Comet 驱动多个 AI Agent 完成开发。

最终工作循环:

Think
 ↓
Spec
 ↓
Plan
 ↓
Test
 ↓
Delegate
 ↓
Review
 ↓
Fix Context
 ↓
Delegate Again

也就是:

人负责定义正确的问题和方案,AI 负责高速执行,人再负责验收和纠偏。


评论