AI 编程越用越返工?因为你让 AI 自己批改自己的作业

发布时间:2026/10/11 12:14:33

AI 编程越用越返工?因为你让 AI 自己批改自己的作业 AI 编程很强这一点没人否认。但你有没有发现一个诡异的现象代码出得更快了返工反而更多了。需求确实更容易写偏了。你给它一句话它给你补成一整套系统——推荐引擎、统计报表、多标签筛选、三张数据库表、权限模块、完整测试计划。看起来很积极但越积极越危险因为这些范围还没被你确认就已经被固化进了代码。最后还是你在修范围、改命名、补测试、查 bug、补验收。你不是没有用 AI你是被 AI 的输出拖着跑。问题的根源不在于 AI 不够强而在于你缺少一套控制 AI 输出的流程。今天分享一个核心方法论我叫它三权分立。它帮我把 AI 编程从人肉流水线变成了可控的开发链路。一、你现在的工作方式人肉流水线先看你现在的状态。你手动在每个 AI 窗口之间当调度员输入需求、让 AI 澄清、确认、切窗口写代码、再切回来自己验收。看起来在协作其实你是人肉流水线。更关键的问题藏在深处——写代码的和验收代码的是同一个 AI。它给你一份看起来很完整的输出但里面可能埋了没确认的假设、跳过的步骤甚至是伪造的证据。同一个 AI 同时扮演写代码和验代码两个角色这就是提示词驱动的天花板。提示词写得再长、再漂亮也解决不了这个结构性矛盾。就像你不能让一个学生自己出题、自己答卷、自己批卷然后相信他考了满分。二、三权分立把四个角色分开核心思路其实很简单。把原来你一个人当调度员拆成四个角色各管各的。总控 Skill 是流程调度员。它就是一个 SKILL.md 文件定义了状态机——管理流程推进决定什么时候让 AI 写、什么时候让 AI 验、什么时候停下来问你。Maker 是执行者。它只负责写代码和生成证据。它最多把自己的产出标记为 ready_for_checker禁止自己声明我做完了。Checker 是验收者。它只读权限不改代码。它读 OpenSpec、源码、diff 和证据只输出三个结果之一PASS、FAIL 或 BLOCKED。你 是关键决策者。你只在四个关键点介入启动需求、确认方案、确认切片、处理阻塞。其他全自动。这四个角色里最重要的规则只有一条写代码的 AI 永远不能验收自己的代码。只有 Checker 说 PASS才算完成。三、Maker 永远不能自己判 PASS这是整套方法论最关键的一条规则值得单独拿出来说。Maker 只能标记 ready_for_checker永远不能自己判 PASS。只有 Checker 独立审查后返回 PASS总控才把状态改成 done。如果 Checker 说 FAIL工作自动回到 Maker。但 Maker 只修失败项不扩大范围不改验收标准。如果 Checker 说 BLOCKED才升级到你来做决策。这条规则消灭了 AI 编程最大的风险——AI 自己批改自己的作业。你可能会觉得这是常识但你去看看现在市面上绝大多数 AI 编程教程和工作流是不是都在让同一个 AI 从写代码到跑测试一条龙包办那个测试通过到底是真的通过了还是 AI 帮你写了一个永远会通过的测试四、从模糊需求到可控交付的状态机整条链路是这样的澄清 → 方案 → 切片 → 执行 → 验收 → 最终 QA具体来说先澄清需求AI 读上下文只问一个关键问题不写代码。然后自动生成方案proposal、design、spec 和 tasks.md。接着拆成 vertical slice issues过质量门禁。然后 Maker 逐个执行 issue每个 issue 必须通过 Checker 才能继续。全部完成后跑最终 QA。每一步都有明确的门禁不允许跳步。这不是纸面上的理论。它背后是真实的 skill 编排——从 grill-with-docs需求澄清到 to-issues任务切片到 writing-plans实现计划到 TDD测试驱动开发到 review代码审查到 verification完成验证每一步都有对应的开源工具支撑。举个真实场景。给制造 ERP 加自动拆批功能按产线产能约束拆分批次。Checker 审查后查出三个问题验收标准缺失、跨天场景未覆盖、门禁逻辑没说清。直接打回 Maker 修复。再比如 Web 路由迁移产品页路由从旧组件树迁到新架构。Checker Gate 要求必须真实点击产品中心入口验证页面到达 /product-center 而不是被重定向到旧的 /category/cabinet 路径。不能只检查 href 属性——那只是表面通过。这些都是真实开发中会碰到的硬骨头不是玩具 Demo。五、五大反模式你必须避开的坑用了这套方法之后我总结出五个必须避免的反模式。第一手动写 Maker 提示词。 每个 issue 都手写一遍 Maker 提示词效率极低容易出错。应该由总控 skill 自动编排。第二手动写 Checker 提示词。 每个 issue 都手写验收提示词跟没有这套方法没区别。第三在聊天里维护第二份 TODO。 tasks.md 是唯一执行清单聊天里再造一份会导致状态分裂。你在聊天里说这个先跳过但 tasks.md 里没改后面执行的时候一定会冲突。第四让 Maker 自评 PASS。 这是最危险的反模式。AI 批改自己的作业永远判自己通过。第五Checker 没过就进入下一个 Issue。 带病推进后期必然返工而且问题越积越深。这五条是无数真实开发踩坑总结出来的。每一条看起来都好像也没那么严重但每一条都会在项目后期以十倍的成本回来找你。六、小改动不用走全流程有人会说改个 typo 也要走十步流程吗当然不是。这套方法论内置了风险自适应机制。AI 会先评估变更的风险等级。如果是低风险的小改动——比如改个错别字、调整一下样式——直接跳过方案阶段做最小变更加针对性验证。只有高风险变更比如涉及权限、租户隔离、核心业务逻辑的改动才走完整流程。流程的重量应该随风险自动调节而不是要么全跑要么全不跑。七、一句话记住以前你是流程调度员AI 是执行者。以后Skill 是流程调度员Maker 是执行者Checker 是验收者你是关键决策者。而且这不需要任何插件或复杂工具。只需要一个 SKILL.md 定义状态机加上固定的 Maker 和 Checker 提示词模板。本质是用纪律编排现有能力实现质变。AI 编程真正的提效不是让 AI 更快写代码而是让你更少为 AI 的输出返工。如果你看完想系统掌握这套控制 AI 编程的方法我做了一套 12 集实战课程前两集免费帮你建立判断框架。CSDN 搜索AI 编程实战 Superpowers gstack MattPocockSkills。
延伸阅读

更多相关文章

2026/10/11 2:17:41

3分钟上手:ChanlunX缠论可视化插件如何让股票分析变得简单高效

3分钟上手:ChanlunX缠论可视化插件如何让股票分析变得简单高效 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 还在为复杂的缠论理论而头疼吗?ChanlunX缠论可视化插件正是为你准备…

2026/10/10 12:56:28

前端缓存控制与版本管理实战指南

1. 问题背景与核心挑战作为一名长期奋战在一线的前端开发者,我经历过无数次这样的场景:深夜上线新版本后,客服电话突然被打爆——"为什么我的页面还是旧版?"。这背后往往都是浏览器缓存机制在作祟。缓存这把双刃剑&…

2026/10/11 13:18:09

Qt文件管理器实战:QFileSystemModel与QTreeView工程解析

简介:这是一份面向QT初学者与C GUI开发入门者的轻量级文件管理器项目源码,基于QT框架实现,帮助读者理解桌面端文件管理工具的基本架构与交互逻辑。压缩包共33个文件,约80KB,包含8个cpp源文件、7个h头文件、4个ui界面文…

2026/10/11 13:18:09

运动想象脑电分类实战:CNN局部特征+Transformer全局注意力

简介:运动想象脑电信号分类项目,基于Transformer框架并结合CNN提取局部时间空间特征,是一份完整的Python毕设源码,面向计算机、人工智能及相关专业的学生与从业者,可用于期末课程设计、大作业或毕业设计等场景。项目由…

2026/10/11 13:18:09

WSL2系统时间漂移怎么解决?从根因到自动校准完整指南

最近在做一次AI使用验证时,我把环境搭在了Windows上,通过WSL2装了一个Ubuntu系统。任务本身不算复杂,但运行到第二天,我注意到一个特别诡异的细节:Ubuntu里的系统时间比宿主机Windows慢了好几分钟,而且这个…

2026/10/11 13:18:09

用 PySpark 分析泰坦尼克数据集,几行代码看出生存率

学大数据处理,第一课往往不是背概念,而是先跑通一个真实数据集。泰坦尼克号乘客数据(titanic.csv)几乎是 Spark 入门最经典的练手材料:字段不多、关系直观,又能立刻看出"数据会说话"。这篇文章用…

2026/10/11 13:13:09

Jmeter接口测试实战:从HTTP基础到参数化、断言与压测

1. 项目概述:接口测试为什么要选Jmeter先开门见山说结论:用Jmeter做HTTP接口测试,是目前中小团队和个人测试最“性价比”的选择之一。你不需要写一段复杂的Java代码,不需要维护一套平台,只要把Jmeter装好,按…

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑