Skip to content

AI 协作编程工作流

流水线总览

text
1. 澄清需求 (Brief)
2. 定接口/边界 (Contract)
3. AI 出草案 (Draft)
4. 本地跑通 (Verify)
5. 人工 diff 评审 (Review)
6. 补测试与文档 (Harden)
7. PR / 合并 (Ship)
阶段人的输出AI 的输出完成标准
Brief用户故事、非目标需求澄清问题列表无歧义验收句
ContractAPI/表结构草案OpenAPI/类型草稿类型可编译
Draft选定方案实现代码能本地跑
Verify跑测命令修报错建议测试绿
Review合并决策风险点评清单勾完

需求 Brief 模板

markdown
## 背景
...

## 要做
- [ ] ...

## 不做
- ...

## 验收
给定输入 X,输出 Y;错误时返回 Z。

让 AI 先写「契约」再写实现

TypeScript 接口

ts
/** 用户导出任务 */
export interface ExportJob {
  id: string
  userId: string
  status: 'pending' | 'running' | 'done' | 'failed'
  createdAt: string // ISO-8601
}

export interface ExportService {
  create(userId: string): Promise<ExportJob>
  get(id: string): Promise<ExportJob | null>
}

OpenAPI 片段

yaml
paths:
  /export-jobs:
    post:
      summary: Create export job
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [userId]
              properties:
                userId:
                  type: string
      responses:
        '201':
          description: Created

SQL 迁移草稿

sql
CREATE TABLE export_jobs (
  id            UUID PRIMARY KEY,
  user_id       TEXT NOT NULL,
  status        TEXT NOT NULL CHECK (status IN ('pending','running','done','failed')),
  created_at    TIMESTAMPTZ NOT NULL DEFAULT now()
);

CREATE INDEX idx_export_jobs_user ON export_jobs (user_id);

本地验证命令(示例 monorepo)

bash
# 安装
pnpm install

# 类型检查
pnpm exec tsc -p packages/api --noEmit

# 单测
pnpm test --filter api

# 只跑与本次改动相关的测试
pnpm exec vitest run src/export

# 格式与静态检查
pnpm lint && pnpm format:check

Git 分支约定

bash
git switch -c feat/export-job
git status
git diff --stat
git add -p
git commit -m "feat(api): add export job skeleton"
git push -u origin HEAD
提交信息规范(展开)
text
feat: 新功能
fix: 修复
docs: 文档
refactor: 重构(无行为变化)
test: 测试
chore: 杂项/依赖

失败时的回退

情况动作
AI 改崩一大片git checkout -- .git restore -p
半对半错保留文件,人工挑段 cherry-pick
依赖装坏删 lock 慎用;优先 git diff package-lock
bash
# 查看某次 AI 提交改了什么
git show --stat HEAD
git log --oneline -10

文件夹树 ← docs/ 目录 · Git · Cloudflare Pages