把 AI 接进研发流水线:从代码生成到自动提交的一套完整工作流命令
AI编程 工作流自动化教程|附完整命令
在 AI 编程时代,真正拉开效率差距的并不只是“会不会使用 ChatGPT、Claude、Cursor、Copilot”,而是能否把 AI 能力嵌入到日常研发流程中,形成一套稳定、可复用、可自动执行的工作流。
很多开发者使用 AI 的方式仍然停留在“复制代码、粘贴问题、等待回答”的阶段。这种方式虽然能提升局部效率,但并不能真正改变软件开发流程。更高效的方式是:让 AI 参与需求拆解、代码生成、代码审查、测试生成、文档维护、提交信息生成、CI 检查、自动部署等环节,并通过脚本、命令行工具、Git Hooks、CI/CD 平台把这些动作串起来。
本文将以一个典型的 Web 项目为例,讲解如何搭建一套 AI 编程工作流自动化方案,并附上完整命令,帮助你把 AI 从“聊天工具”升级为“研发流水线助手”。
一、适用场景
这套工作流适合以下人群:
- 独立开发者,希望提升项目开发效率;
- 前端、后端、全栈工程师,希望把重复工作自动化;
- 技术团队负责人,希望统一代码规范和提交流程;
- 正在使用 Cursor、GitHub Copilot、Claude Code、OpenAI API 等 AI 工具的开发者;
- 希望用 AI 辅助生成测试、文档、提交信息和代码审查的团队。
本文示例以 Node.js 项目为主,但思想同样适用于 Python、Go、Java、PHP、Rust 等技术栈。
二、整体工作流设计
一个完整的 AI 编程自动化工作流可以分为以下几个阶段:
需求输入
↓
AI 拆解任务
↓
生成开发计划
↓
自动创建分支
↓
AI 辅助编码
↓
格式化与静态检查
↓
自动生成测试
↓
运行测试
↓
AI 代码审查
↓
生成提交信息
↓
Git 提交
↓
CI/CD 自动构建与部署
在实际落地时,我们不一定一次性实现所有环节。建议先从以下几个最有价值的自动化点开始:
- 自动初始化项目;
- 自动格式化代码;
- 自动运行测试;
- 自动生成 Git Commit Message;
- 自动进行 AI Code Review;
- 自动生成接口文档或 README;
- 在 CI 中强制检查质量。
三、准备环境
本文默认你已经安装以下工具:
- Git
- Node.js 18+
- npm / pnpm
- VS Code 或 Cursor
- 一个可用的 AI API Key,例如 OpenAI、Claude、DeepSeek、通义千问等
1. 检查基础环境
node -v
npm -v
git --version
如果你使用 pnpm,可以先安装:
npm install -g pnpm
pnpm -v
2. 创建示例项目
这里以 Vite + TypeScript 项目为例。
pnpm create vite ai-workflow-demo --template react-ts
cd ai-workflow-demo
pnpm install
启动项目:
pnpm dev
四、安装代码规范工具
自动化工作流的基础是统一代码规范。否则 AI 生成的代码风格不一致,项目很快会变得混乱。
我们安装 ESLint、Prettier、lint-staged 和 Husky。
pnpm add -D eslint prettier eslint-config-prettier eslint-plugin-react-hooks eslint-plugin-react-refresh
pnpm add -D husky lint-staged
初始化 ESLint:
pnpm create @eslint/config
如果你希望手动配置,也可以创建 eslint.config.js。
示例配置如下:
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import tseslint from 'typescript-eslint'
export default tseslint.config(
{ ignores: ['dist'] },
{
extends: [js.configs.recommended, ...tseslint.configs.recommended],
files: ['**/*.{ts,tsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
plugins: {
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
},
rules: {
...reactHooks.configs.recommended.rules,
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
},
},
)
创建 .prettierrc:
{
"semi": false,
"singleQuote": true,
"printWidth": 100,
"trailingComma": "all"
}
创建 .prettierignore:
dist
node_modules
coverage
pnpm-lock.yaml
在 package.json 中添加脚本:
{
"scripts": {
"dev": "vite",
"build": "tsc -b && vite build",
"preview": "vite preview",
"lint": "eslint .",
"format": "prettier --write .",
"format:check": "prettier --check ."
}
}
执行检查:
pnpm lint
pnpm format
五、配置 Git Hooks:提交前自动检查
Git Hooks 可以在代码提交前自动执行命令,例如格式化、Lint、测试等。
初始化 Husky:
pnpm exec husky init
配置 lint-staged:
在 package.json 中添加:
{
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"eslint --fix",
"prettier --write"
],
"*.{json,md,css,scss}": [
"prettier --write"
]
}
}
修改 .husky/pre-commit:
pnpm exec lint-staged
如果还希望提交前执行测试,可以写成:
pnpm exec lint-staged
pnpm test
此时,每次执行:
git add .
git commit -m "feat: init project"
都会自动触发格式化和静态检查。
六、接入 AI 命令行能力
接下来我们封装一个简单的 AI 命令行脚本,用于生成提交信息、解释代码变更、生成测试建议等。
这里以 OpenAI API 为例,你也可以替换成其他模型服务。
1. 安装依赖
pnpm add -D dotenv
pnpm add openai
创建 .env 文件:
touch .env
写入:
OPENAI_API_KEY=你的_API_Key
OPENAI_MODEL=gpt-4o-mini
注意:不要把
.env提交到 Git 仓库。
创建 .gitignore:
node_modules
dist
coverage
.env
七、编写 AI Commit Message 生成脚本
创建目录:
mkdir -p scripts
touch scripts/ai-commit.mjs
写入以下代码:
import 'dotenv/config'
import OpenAI from 'openai'
import { execSync } from 'node:child_process'
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
})
const model = process.env.OPENAI_MODEL || 'gpt-4o-mini'
function getGitDiff() {
try {
return execSync('git diff --cached', { encoding: 'utf-8' })
} catch (error) {
console.error('读取 git diff 失败:', error.message)
process.exit(1)
}
}
const diff = getGitDiff()
if (!diff.trim()) {
console.log('没有检测到暂存区变更,请先执行 git add .')
process.exit(0)
}
const prompt = `
你是一名资深软件工程师,请根据以下 Git 暂存区 diff 生成一个符合 Conventional Commits 规范的中文提交信息。
要求:
1. 格式必须为:type(scope): subject
2. type 可选:feat、fix、docs、style、refactor、test、chore、perf、build、ci
3. subject 使用简洁中文,不超过 50 个字
4. 如果有必要,可以在下一行补充 1-3 条说明
5. 不要输出多余解释
以下是 diff:
${diff}
`
const response = await client.chat.completions.create({
model,
messages: [
{
role: 'user',
content: prompt,
},
],
temperature: 0.2,
})
console.log(response.choices[0].message.content.trim())
在 package.json 中添加脚本:
{
"scripts": {
"commit:ai": "node scripts/ai-commit.mjs"
}
}
使用方式:
git add .
pnpm commit:ai
如果输出如下:
feat(app): 初始化 React TypeScript 项目结构
就可以直接提交:
git commit -m "feat(app): 初始化 React TypeScript 项目结构"
八、自动提交脚本:生成信息并提交
如果你希望进一步自动化,可以编写一个脚本:自动读取 AI 生成的提交信息并执行 git commit。
创建文件:
touch scripts/auto-commit.mjs
写入:
import 'dotenv/config'
import OpenAI from 'openai'
import { execSync } from 'node:child_process'
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
})
const model = process.env.OPENAI_MODEL || 'gpt-4o-mini'
function run(command) {
return execSync(command, { encoding: 'utf-8' }).trim()
}
const diff = run('git diff --cached')
if (!diff) {
console.log('没有暂存区变更,请先执行:git add .')
process.exit(0)
}
const prompt = `
请根据下面的 git diff 生成一个 Conventional Commits 风格的提交信息。
规则:
- 只输出一行
- 中文
- 格式:type(scope): subject
- 不超过 50 字
- 不要 Markdown
diff:
${diff}
`
const response = await client.chat.completions.create({
model,
messages: [{ role: 'user', content: prompt }],
temperature: 0.2,
})
const message = response.choices[0].message.content.trim().replaceAll('"', '\\"')
console.log(`AI 生成提交信息:${message}`)
run(`git commit -m "${message}"`)
console.log('提交完成')
添加脚本:
{
"scripts": {
"commit:auto": "node scripts/auto-commit.mjs"
}
}
完整使用流程:
git status
git add .
pnpm commit:auto
九、AI Code Review 自动化
除了生成提交信息,AI 更适合用于代码审查。我们可以让 AI 基于当前变更输出潜在问题、重构建议、安全风险和测试建议。
创建文件:
touch scripts/ai-review.mjs
写入:
import 'dotenv/config'
import OpenAI from 'openai'
import { execSync } from 'node:child_process'
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
})
const model = process.env.OPENAI_MODEL || 'gpt-4o-mini'
function getDiff() {
return execSync('git diff --cached', { encoding: 'utf-8' })
}
const diff = getDiff()
if (!diff.trim()) {
console.log('没有暂存区变更,请先执行 git add .')
process.exit(0)
}
const prompt = `
你是一名严格的高级代码审查工程师,请对以下 git diff 做 Code Review。
请从以下角度审查:
1. 是否存在明显 Bug
2. 是否存在类型问题或边界条件问题
3. 是否存在性能问题
4. 是否存在安全风险
5. 是否需要补充测试
6. 是否有更清晰的重构建议
输出格式:
## 总体评价
## 主要问题
## 优化建议
## 测试建议
如果没有明显问题,也请说明“未发现严重问题”。
diff:
${diff}
`
const response = await client.chat.completions.create({
model,
messages: [{ role: 'user', content: prompt }],
temperature: 0.3,
})
console.log(response.choices[0].message.content)
添加脚本:
{
"scripts": {
"review:ai": "node scripts/ai-review.mjs"
}
}
使用方式:
git add .
pnpm review:ai
建议你在提交前执行:
pnpm lint
pnpm build
pnpm review:ai
pnpm commit:auto
十、自动生成测试建议
AI 编程中,一个非常重要的实践是:不要只让 AI 写业务代码,也要让 AI 生成测试用例。测试能有效约束 AI 代码质量,减少“看起来能跑、实际上有坑”的问题。
安装测试框架 Vitest:
pnpm add -D vitest jsdom @testing-library/react @testing-library/jest-dom @testing-library/user-event
修改 package.json:
{
"scripts": {
"test": "vitest",
"test:run": "vitest run",
"test:coverage": "vitest run --coverage"
}
}
创建 src/setupTests.ts:
import '@testing-library/jest-dom'
修改 vite.config.ts:
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
export default defineConfig({
plugins: [react()],
test: {
environment: 'jsdom',
setupFiles: './src/setupTests.ts',
},
})
运行测试:
pnpm test
如果要让 AI 基于当前变更给出测试建议,可以复用前面的 ai-review.mjs,也可以创建单独脚本。
touch scripts/ai-test-plan.mjs
代码如下:
import 'dotenv/config'
import OpenAI from 'openai'
import { execSync } from 'node:child_process'
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
})
const diff = execSync('git diff --cached', { encoding: 'utf-8' })
if (!diff.trim()) {
console.log('没有暂存区变更,请先执行 git add .')
process.exit(0)
}
const prompt = `
请根据以下代码变更生成测试计划。
要求:
1. 列出需要新增或修改的测试文件
2. 列出核心测试用例
3. 标明边界条件
4. 如果适合,请给出 Vitest + Testing Library 示例代码
5. 使用中文输出
diff:
${diff}
`
const response = await client.chat.completions.create({
model: process.env.OPENAI_MODEL || 'gpt-4o-mini',
messages: [{ role: 'user', content: prompt }],
temperature: 0.2,
})
console.log(response.choices[0].message.content)
添加脚本:
{
"scripts": {
"test:ai-plan": "node scripts/ai-test-plan.mjs"
}
}
执行:
git add .
pnpm test:ai-plan
十一、自动生成项目文档
开发过程中,README、接口说明、组件说明经常滞后。我们可以让 AI 根据项目结构和关键文件自动生成文档草稿。
创建文件:
touch scripts/ai-docs.mjs
写入:
import 'dotenv/config'
import OpenAI from 'openai'
import { execSync } from 'node:child_process'
import fs from 'node:fs'
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
})
function run(command) {
return execSync(command, { encoding: 'utf-8' })
}
const tree = run('find src -maxdepth 3 -type f | sort')
let content = ''
for (const file of tree.split('\n').filter(Boolean)) {
if (file.endsWith('.ts') || file.endsWith('.tsx')) {
content += `\n\n--- FILE: ${file} ---\n`
content += fs.readFileSync(file, 'utf-8').slice(0, 3000)
}
}
const prompt = `
请根据以下项目文件结构和部分源码,生成一份中文 README 文档草稿。
要求包含:
1. 项目简介
2. 技术栈
3. 目录结构
4. 本地启动方式
5. 常用命令
6. 开发规范
7. 后续优化建议
项目内容:
${content}
`
const response = await client.chat.completions.create({
model: process.env.OPENAI_MODEL || 'gpt-4o-mini',
messages: [{ role: 'user', content: prompt }],
temperature: 0.3,
})
fs.writeFileSync('README.ai.md', response.choices[0].message.content)
console.log('已生成 README.ai.md')
添加命令:
{
"scripts": {
"docs:ai": "node scripts/ai-docs.mjs"
}
}
执行:
pnpm docs:ai
十二、封装一键工作流命令
当脚本逐渐增多后,我们需要把常用动作组合成一条命令。
在 package.json 中整理脚本:
{
"scripts": {
"dev": "vite",
"build": "tsc -b && vite build",
"preview": "vite preview",
"lint": "eslint .",
"format": "prettier --write .",
"format:check": "prettier --check .",
"test": "vitest",
"test:run": "vitest run",
"test:coverage": "vitest run --coverage",
"commit:ai": "node scripts/ai-commit.mjs",
"commit:auto": "node scripts/auto-commit.mjs",
"review:ai": "node scripts/ai-review.mjs",
"test:ai-plan": "node scripts/ai-test-plan.mjs",
"docs:ai": "node scripts/ai-docs.mjs",
"check": "pnpm format:check && pnpm lint && pnpm test:run && pnpm build",
"ai:before-commit": "pnpm review:ai && pnpm test:ai-plan",
"ship": "pnpm check && pnpm docs:ai"
}
}
常用命令如下:
pnpm check
用于提交前质量检查。
pnpm ai:before-commit
用于提交前 AI 审查和测试计划生成。
pnpm ship
用于发布前完整检查和文档生成。
推荐的开发流程是:
git checkout -b feat/user-profile
pnpm dev
# 完成功能开发后
pnpm format
git add .
pnpm ai:before-commit
pnpm check
pnpm commit:auto
十三、配置 GitHub Actions 自动检查
本地检查不能完全依赖开发者自觉,因此还需要在远程仓库配置 CI。
创建目录:
mkdir -p .github/workflows
touch .github/workflows/ci.yml
写入:
name: CI
on:
push:
branches:
- main
- master
- develop
pull_request:
jobs:
quality-check:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Format check
run: pnpm format:check
- name: Lint
run: pnpm lint
- name: Test
run: pnpm test:run
- name: Build
run: pnpm build
提交配置:
git add .
git commit -m "ci: 添加 GitHub Actions 质量检查流程"
git push origin main
以后每次提交或发起 Pull Request,GitHub Actions 都会自动执行格式检查、Lint、测试和构建。
十四、推荐的 AI 编程协作方式
AI 编程不是简单地“让 AI 写代码”,而是要建立清晰的协作边界。
1. 让 AI 先写计划,再写代码
不要直接说:
帮我实现登录功能。
更好的方式是:
请先分析当前项目结构,然后给出实现登录功能的任务拆解。
要求包含:
1. 需要新增的文件
2. 需要修改的文件
3. 状态管理方案
4. 接口调用方案
5. 测试用例设计
在我确认前不要写代码。
2. 小步提交,避免大规模不可控变更
AI 一次性修改太多文件时,出错概率会显著增加。建议每次只让 AI 完成一个明确任务,例如:
- 新增一个组件;
- 修复一个 Bug;
- 添加一个测试文件;
- 重构一个函数;
- 补充一段文档。
3. 用测试约束 AI
AI 生成代码后,一定要运行:
pnpm lint
pnpm test:run
pnpm build
如果失败,不要直接手动乱改,可以把报错交给 AI:
以下是测试失败日志,请分析原因并给出最小修改方案:
4. 保留人工 Code Review
AI Review 可以发现一部分问题,但不能完全替代人工审查。尤其是以下内容必须人工确认:
- 权限逻辑;
- 支付逻辑;
- 数据删除逻辑;
- 隐私与安全相关代码;
- 数据库迁移;
- 线上配置;
- 第三方 API 调用限制。
十五、完整命令汇总
下面是本文涉及的核心命令,方便复制使用。
项目初始化
pnpm create vite ai-workflow-demo --template react-ts
cd ai-workflow-demo
pnpm install
pnpm dev
安装规范工具
pnpm add -D eslint prettier eslint-config-prettier eslint-plugin-react-hooks eslint-plugin-react-refresh
pnpm add -D husky lint-staged
pnpm exec husky init
安装 AI 依赖
pnpm add openai
pnpm add -D dotenv
安装测试工具
pnpm add -D vitest jsdom @testing-library/react @testing-library/jest-dom @testing-library/user-event
常用开发命令
pnpm dev
pnpm format
pnpm lint
pnpm test
pnpm test:run
pnpm build
AI 自动化命令
git add .
pnpm commit:ai
pnpm review:ai
pnpm test:ai-plan
pnpm docs:ai
pnpm commit:auto
一键检查命令
pnpm check
pnpm ai:before-commit
pnpm ship
Git 提交流程
git checkout -b feat/example
git status
git add .
pnpm ai:before-commit
pnpm check
pnpm commit:auto
git push origin feat/example
十六、总结
AI 编程真正有价值的地方,不只是“帮你写一段代码”,而是把研发流程中重复、低价值、容易遗漏的环节自动化。通过本文这套方案,你可以逐步完成以下能力建设:
- 用 ESLint 和 Prettier 统一代码风格;
- 用 Husky 和 lint-staged 在提交前自动检查;
- 用 AI 生成规范化 Commit Message;
- 用 AI 进行代码审查;
- 用 AI 生成测试计划;
- 用 AI 自动生成项目文档;
- 用 GitHub Actions 在远程仓库执行质量检查;
- 用一键命令把开发、检查、审查、提交串成完整流水线。
建议你不要一开始就追求复杂的“全自动 AI Agent”。更稳妥的路径是:先把确定性强的流程自动化,再把 AI 放在需要理解、总结和建议的位置上。这样既能提高效率,又能保持工程质量和可控性。
最终目标不是让 AI 完全替代开发者,而是让开发者从重复劳动中解放出来,把更多精力放在架构设计、业务理解、质量把控和产品创新上。