拒绝 AI “屎山”代码!我用这套“强约束”工作流,让 AI 真正进入工程实战

49 阅读4分钟

仓库地址github.com/nianyi778/a… 关键词:AI 编程、工程化、工作流、GitHub Template、强约束


🛑 痛点:你是不是也这样用 AI?

打开 ChatGPT 或 Copilot,直接问:“帮我写一个登录页面”。 AI 刷刷刷生成一堆代码。 你复制粘贴,运行报错。 你把报错丢回给 AI:“报错了,修一下”。 AI 又生成一堆代码,你再粘贴……

半小时后,你发现:

  1. 代码逻辑乱成一团,变量名风格不统一。
  2. 改了一个 Bug,引入了三个新 Bug。
  3. 你根本不知道刚才那段代码改了哪里,想回滚都不知道回滚到哪个版本。
  4. 最终结论:AI 只能写写 Demo,真做项目还是得靠自己。

💡 破局:AI 缺的不是“智商”,是“工程约束”

资深工程师和实习生的区别,不在于谁会写的语法更多,而在于工程素养

  • 谋定而后动:先设计方案,再写代码。
  • 风险控制:知道哪些能改,哪些不能动。
  • 可追溯:清楚每次变更的上下文。

如果我们能把这些“工程素养”变成一套强制性的协议,强迫 AI 遵守,会发生什么?

这就是我开源 ai-dev-workflow-template 的初衷。这不是一个简单的 Prompt 集合,而是一套基于 Git 的 AI 协作工程标准


📦 什么是 AI Dev Workflow?

这是一套可以直接作为 GitHub Template 使用的仓库模板。它通过文档结构指令约束,把 AI 锁死在一个标准的软件开发生命周期(SDLC)里。

核心原则(The Iron Rules)

  1. 文档优先 (Documentation First):不写清楚需求和方案,不许写代码。
  2. 人工授权 (Human in the Loop):AI 必须获得你的“批准实现”指令,才能进入编码阶段。
  3. 分阶段交付 (Staged Delivery):需求 -> 方案 -> 代码 -> 验收,严禁跳步。

仓库结构一览

.
├── AI_INSTRUCTIONS.md      # ⭐ 核心:给 AI 的“宪法”,定义了它必须遵守的规则
├── CONSTRAINTS.md          # 🚧 边界:定义技术栈限制(如:禁止用 Raw SQL,必须用 SwiftUI 等)
├── WORKFLOW.md             # 🔄 流程:说明 6 个开发阶段
├── templates/              # 📄 模板库
│   ├── CHANGE_REQUEST.md       # 阶段 1:需求定义
│   ├── IMPLEMENTATION_PLAN.md  # 阶段 2:技术方案
│   ├── CODE_REVIEW_CHECKLIST.md# 阶段 4:自检清单
│   └── ...
└── .github/                # 🤖 GitHub 原生集成(Issue/PR 模板)

🚀 实战教程:如何用这套模板开发一个功能?

假设我们要在一个 iOS 项目中开发一个“用户个人中心”页面。

第一步:初始化(只需一次)

  1. 访问 仓库地址
  2. 点击 Use this template 创建你的新项目(或者把文件复制到你现有的项目根目录)。
  3. 修改 CONSTRAINTS.md,配置你的技术栈约束(例如:必须使用 SwiftUI, 禁止使用 CoreData)。

第二步:发起变更(阶段 1)

在 GitHub 上创建一个 New Issue,选择 Change Request 模板。 或者在本地复制 templates/CHANGE_REQUEST.md

填入你的想法:

需求:实现一个个人中心页,包含头像、昵称和退出登录按钮。 非目标:暂时不做头像上传功能。

第三步:AI 介入(阶段 2 - 方案设计)

AI_INSTRUCTIONS.md 的内容(作为 System Prompt 或第一句话)发给 AI,然后把刚才写的 Change Request 发给它。

AI 会回复你一份 IMPLEMENTATION_PLAN.md(实现方案),包含:

  • 涉及文件ProfileView.swift, AuthService.swift
  • 核心逻辑:使用 AppStorage 存储用户信息,点击退出调用 AuthService.logout()
  • 风险:退出登录后需要重置导航堆栈。

第四步:人类审批(关键!)

你查看了 AI 的方案,发现它想用 UserDefaults 存大量数据,这违反了你的最佳实践。

:拒绝。用户信息应该封装在 UserSession 单例中,不要直接散落在 AppStorage

AI:收到,重新修改方案...(输出新方案)

批准实现

第五步:代码实现(阶段 3)

只有收到“批准实现”四个字,AI 才会开始输出代码。 此时它会严格按照刚才确认的方案来写代码,不会自作聪明地加什么“炫酷动画”或者“顺手重构网络层”。

第六步:验收与归档(阶段 4-6)

AI 写完后,会根据 CODE_REVIEW_CHECKLIST.md 自检。 你运行代码,确认无误。 最后,AI 会帮你生成 CHANGELOG_ENTRY.md,归档到 docs/changes/ 目录下。


🌍 适用任何语言

这套流程是语言无关的。你只需要修改 CONSTRAINTS.md 文件:

  • Java 后端:规定必须用 Spring Boot,禁止直接写 SQL。
  • Rust 系统编程:规定禁止 unsafe 代码,必须处理所有 Result
  • React 前端:规定必须用 Functional Component 和 Hooks。
  • iOS/Android:规定 UI 框架和架构模式。

📝 总结

AI 编程的未来,不是 AI 取代程序员,而是懂工程管理的程序员 + 强执行力的 AI

这套 ai-dev-workflow-template 帮你把 AI 关进“工程化的笼子”里,让它从一个“随心所欲的黑客”变成一个“严谨可靠的执行者”。

👉 立即尝试: github.com/nianyi778/a…

如果你觉得有用,欢迎 Star ⭐️ 支持一下!