我的AI Coding工作流

0 阅读4分钟

本周我在公司内部进行了一次技术分享,介绍了一套完整的 AI 辅助编码工作流,涵盖 Chat、OpenSpec、Coding 三个核心阶段,以及通过 Agent Skills 持续沉淀团队能力的方法论。

引言:为什么需要一套工作流

你是否也遇到过这些问题

相信很多人在使用 AI 编码工具时,都踩过类似的坑:

  • 改了不该改的文件:AI 在生成代码时,会修改与当前需求无关的文件,引入意外变更
  • 组件组织形式不对:生成的组件结构不符合团队规范
  • 单个组件代码超过 500 行:新需求实现时,一个组件承担了太多逻辑
  • ......

这些问题的背后,原因可以归为三类:

原因表现结果
需求描述模糊「帮我做一个用户管理功能」—— AI 不知道你要的是增删改查、权限控制还是数据统计AI 理解偏差,来回返工
边界条件缺失AI 只实现功能主流程,项目约定的处理方式它不知道生成代码违背团队规范,review 时需要逐行检查
AI 过度自信遇到不确定的地方,AI 不会停下来确认,而是自己做决定(且不会告诉你它在猜)不知道接口字段名 → 自己造一个「看起来合理的」

工作流的本质

工作流的本质是减少 AI 猜你的次数。把该说清楚的事,在正确的阶段说清楚。

完整工作流

需求 → [Chat 阶段] 梳理&方案

→ [OpenSpec 阶段] 结构化规范

→ [Coding 阶段] 代码生成

第一阶段:Chat 阶段

这个阶段在做什么

  • 拿到新需求之后,不着急写代码
  • 用AI帮你「想清楚」:澄清需求盲点、讨论技术方案、暴露潜在风险

关键技巧

  • 提供足够的上下文:技术栈、团队规范、已有约束、接口API
  • 避免:「帮我做一个xxxx功能」这种开放式指令

这个阶段的产出物

一份双方(我和AI)对齐后的「需求理解文档」,为下一步做输入

第二阶段:OpenSpec阶段

上一阶段的产物,作为这阶段创建方案的提示词,可以让提案创建的更准确。

如何使用openspec

下面我们以官网的例子「为应用添加深色模式」,完整演示一遍工作流。

1. 发起变更(默认流程)
You: /opsx:propose add-dark-mode

AI:  已创建 openspec/changes/add-dark-mode/
     ✓ proposal.md  — 说明做这件事的原因及变更内容
     ✓ specs/       — 需求与场景描述
     ✓ design.md    — 技术方案
     ✓ tasks.md     — 实现任务清单
     准备好开始实现了!
2.生成的文件内容

proposal.md - 记录变更意图:

# Proposal: Add Dark Mode

## Intent
用户希望在夜间使用时减少眼睛疲劳,因此提出了深色模式需求。

## Scope
- 在设置中添加主题切换开关
- 支持读取系统主题偏好 
- 将用户偏好持久化存储到 localStorage

## Approach
使用 CSS 自定义属性实现主题化,配合 React Context 进行状态管理。

specs/ui/spec.md - 以增量方式描述新增需求:

# UI 模块变更说明

## 新增需求

### 需求:主题选择
系统应允许用户在浅色主题和深色主题之间自由切换。

#### 场景:手动切换
- GIVEN 用户正在访问任意页面
- WHEN   用户点击主题切换开关
- THEN 主题立即切换
- AND 该偏好在会话之间持续生效

#### 场景:跟随系统偏好
- GIVEN 用户尚未保存任何主题偏好
- WHEN 应用加载时
- THEN 自动采用系统的色彩方案偏好

tasks.md - 实现任务清单:

# 任务清单

## 1. 主题基础设施
- [ ] 1.1 创建包含浅色/深色状态的 ThemeContext
- [ ] 1.2 添加颜色相关的 CSS 自定义属性
- [ ] 1.3 实现 localStorage 持久化逻辑

## 2. UI 组件
- [ ] 2.1 创建 ThemeToggle 组件
- [ ] 2.2 在设置页面添加切换开关
- [ ] 2.3 在 Header 中添加快捷切换入口

## 3. 样式
- [ ] 3.1 定义深色主题色板
- [ ] 3.2 更新各组件,改用 CSS 变量

怎么用好openspec

review 生成的提案是重点

  • review的是逻辑,不是代码
  • 发现问题的成本,远低于代码写完
  • 修改 Spec 比重写代码要容易的多

第三阶段:Coding阶段

1. 执行实现
你:  /opsx:apply

AI:  正在逐步执行任务……
      ✓ 1.1 已创建包含浅色/深色状态的 ThemeContext
      ✓ 1.2 已将 CSS 自定义属性添加到 globals.css
      ✓ 1.3 已实现 localStorage 持久化逻辑
      ✓ 2.1 已创建 ThemeToggle 组件
      ……
      所有任务已完成!

2. Review AI生成的代码
  • 对着tasks.md 确认任务完成情况
  • 查看边界情况有没有被突破
  • 看opespec里写的Decisions的实现。Decisions有几条,就重点检查几个地方。
3. 归档
你:  /opsx:archive

AI:  正在归档 add-dark-mode……
      ✓ 已将变更规范合并到 openspec/specs/ui/spec.md
      ✓ 已移动至 openspec/changes/archive/2025-01-24-add-dark-mode/
      完成!可以开始下一个功能了。

至此,本次的增量规范已并入主规范文档,完整记录了系统的演进过程。