分享个自己做的东西。
问题
用 AI 写代码越来越爽,但也越来越烦。主要几个痛点:
1. 你变成了人肉 QA Claude 说"搞定了",你一跑全是 bug 。然后进入死循环:测→报→修→测→报→修…… 明明是让它帮你省时间的,结果你的时间全花在当测试员上了。
2. 完全黑盒 让它搞个复杂点的东西,跑了 20 分钟,你完全不知道它到哪了、在干什么、卡住了没有。
3. 失忆 换个 session 、compact 一下、context 太长被截断——它就忘了项目是什么、之前做了什么决定、代码为什么这么写。下次对话从零开始解释。
4. 偷工减料 你让它写个完整功能,它可能跳过测试、不做错误处理、架构随便搞。你不盯着它就不老实。
我的方案
拿 Claude Code 的 dynamic workflow 做了个强制流水线。你给一句话需求,它必须走完 9 个阶段才交付:
/lightsout 用 Express + SQLite + React 做个看板应用,支持拖拽、标签、到期提醒
然后它自动跑:
- 需求编写 → 独立 agent 审查(不过就打回重写)
- 交互设计 → 独立 agent 审查
- 技术架构 → 独立 agent 审查
- 一致性检查 → 三份文档互相对不上的地方找出来修掉
- 测试用例设计 → 写代码之前先把测试想清楚
- 写代码 → 自主决定要不要拆分并行(全栈项目自动拆前后端)
- QA → 跑测试,没过就自己修,最多 5 轮
- E2E 验证 → 真的把应用跑起来试
- 最终检查 → 需求文档 vs 实际代码逐条对比,有遗漏就补
全程你不需要介入。跑完之后你拿到的是:
src/ # 能跑的代码
tests/ # 测试全过
docs/
spec.md # 产品需求(每个功能的场景、错误处理都写了)
design.md # 交互设计
architecture.md # 技术架构( ADR 、模块划分、技术选型理由)
test-cases.md # 测试设计
这些文档是项目的"记忆"——下次开新 session ,agent 读一遍 docs/ 就知道项目全貌,不用你重新解释。
核心设计
写的人和审的人必须是不同 agent 。 自己审自己肯定放水。拆开之后质量真的不一样——reviewer 会挑出 writer 自己看不到的问题。
文档先行,代码最后。 不是先写代码再补文档,而是需求、设计、架构全部写完审完了再动手。这样写出来的代码有据可依,测试有的放矢。
代码阶段自己决定策略。 简单项目(比如命令行工具)一个 agent 自己 TDD 搞定。复杂项目(全栈应用)它会自动拆分模块,先搞 shared types ,然后前后端并行开发,最后自己跑集成测试。
每个环节自带修复循环。 审查没过?打回重写。测试挂了?自己修。最多 5 轮。不需要你介入指挥。
实测数据
跑了 4 个全新项目:
项目 类型 测试数 结果 批量文件重命名工具 Python CLI 67 个测试 一次通过 实时 Markdown 编辑器 Express + React + WebSocket 66 个测试 1 轮修复后通过 个人记账 API + Dashboard FastAPI + React 50 个测试 一次通过 看板应用 Express + React + 拖拽 — 一次通过每个项目都手动验证过——真的能跑,功能正常。
代价
本质上这东西是拿 token 换你的时间和精力。每次跑 30-50 个 agent call ,45 分钟到 2 小时不等。如果这个 token 开销让你肉疼,那可能不适合你。但如果你有公司报销,或者你觉得自己的注意力比 token 值钱——与其花一小时盯着它干活、测 bug 、来回沟通,不如让它自己跑完所有环节,你回来看成品——那这个 trade-off 就很值。
Repo
GitHub: https://github.com/DreamChaserEric/claude-lights-out
一行安装:
curl -fsSL https://raw.githubusercontent.com/DreamChaserEric/claude-lights-out/main/install.sh | bash
需要 Claude Code 且支持 workflow 功能。 欢迎反馈。