返回目录
开源项目文档办公类新手

Old Coder skill(老码农 skill):面向编码 Agent 的证据优先开发技能

old-coder 是一个纯 Markdown 的编码 Agent 技能,核心主张是「不读代码,让代码跑完整个 gauntlet(层层校验)」。它要求 Agent 写码前先产出 SPEC(测试计划)由人审批,写码后交付 EVIDENCE(一次全新运行的证据报告),人只审这两份文档。适用于 Claude Code、Codex CLI、Cursor、Aider 或自建 Agent 循环,另附 old-coder-api 配套技能与限流器演示。

0 次阅读2026/09/18 发布
Old Coder skill(老码农 skill):面向编码 Agent 的证据优先开发技能 来源图片

社区作者 · zZz

它解决什么问题

Old Coder skill(老码农 skill)是一个面向 Agent 时代的编码策略技能:不读代码,而是让代码跑完整个 gauntlet(重重校验)。它让编码 Agent 必须自证其工作——不再由人逐行读代码,而是由 Agent 在写码前提交测试计划、写码后提交证据报告,人只审这两份文档。技能本身是纯 Markdown,因此任何能遵循指令的编码 Agent 都能使用:Claude Code、Codex CLI、Cursor、Aider,或你自己的 Agent 循环。

配图 1(old-coder: SPEC → GAUNTLET → EVIDENCE)展示了整体流程。

思想来源:Uncle Bob(Robert C. Martin)谈与编码 Agent 协作时的策略——不读 Agent 写的任何代码,而是用极端约束把 Agent 包围起来:单元测试、gherkin 测试、QA 流程、质量指标、变异测试、测试覆盖率等。最终因为代码必须跑完所有约束与测试组成的 gauntlet,因而对产出有很高信心。若你不打算读代码,那么你读的东西就必须承担信任。

工作流程:SPEC(Agent 写测试计划,你审批)→ RED(写一个测试并看它失败)→ GREEN(写代码直到通过)→ REFACTOR(清理代码,测试不动)→ GAUNTLET(运行全部检查)→ EVIDENCE(你读报告而不是读代码),REFACTOR 之后回到 RED 进入下一个行为。

你只读两份文档: 1)SPEC(写任何代码之前)——代码必须做与绝不能做的具体示例,外加 Agent 想要安装哪些工具;批准它就是你要给出的那一个「是/否」。 2)EVIDENCE(代码完成之后)——来自最后一次全新运行的真实数字,你可以用单条命令自行重跑。

中间的 gauntlet 检查项与它回答的问题:完整测试套件(有没有东西被弄坏?);类型 + lint + 复杂度(有没有明显错误?有没有不可读的乱麻?);变更行覆盖率(每一行新代码是否真的被测试执行到?);变异测试(故意植入 bug,测试能否抓住?);基于属性的测试(规则能否经受数百次随机输入?);真实执行(脱离测试脚手架,它真的能跑起来吗?);供应链与密钥(Agent 是否悄悄引入了有风险的包,或泄露了密钥?);套件健康度(测试本身是否稳定、是否与顺序无关?)。

此外还有一组领域专用层菜单——并发、UI 检查、API 兼容性、性能、可观测性——依据风险模型按任务挑选(见 references/gauntlet.md)。投入随风险伸缩:改个错别字只跑少数几项检查;任何涉及金钱、登录、数据或并发的改动要跑全部检查,并且 Agent 先要用敌意输入攻击自己的代码。

保持 Agent 诚实:由于 Agent 是在给自己的作业打分,规则很严格——绝不为了让测试通过而削弱测试;绝不报告没有真正运行过的检查;任何未经验证的内容都标注为 unverified,绝不标注为 pass;如果没有人类批准过 spec,报告必须写明这一点并声明确认信心更低。另有一条明确写出的限制:gauntlet 只能把 spec 中表达的约束转化为可执行证据,它无法证明 spec 本身是完备的,也无法认证自己的检查器与映射关系。这正是为什么 SPEC 需要你批准,也是为什么 EVIDENCE 报告提供的是有边界的、可审计的信心,而非绝对证明。

仓库内容:skills/old-coder/(可靠的编码工作流,SKILL.md + references/);skills/old-coder-api/(HTTP/JSON API 设计与评审,SKILL.md + references/);demo-rate-limiter/(在 old-coder 下端到端构建的一个限流器)。演示的关键在于其 evidence.md:41 个测试、100% 覆盖率(49/49 语句、20/20 分支)、22/22 植入 bug 被抓。

更重要的是,对先前「绿色」状态做全新上下文验证时,仍然发现了真实的行为缺陷和一个不健全的变异运行器——这说明绿色的 gauntlet 并不自我认证。当前报告公开了修复内容以及最终状态的验证状态。

适用对象:使用编码 Agent 的开发者与团队,尤其是希望在不逐行读代码的前提下获得较高可信度,并且愿意承担 SPEC 审批职责的人;也适用于想为自建 Agent 循环加装证据优先约束的工程团队。许可证:MIT。

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

准备环境:该技能本身是纯 Markdown,可配合任何能遵循指令的编码 Agent 使用(Claude Code、Codex CLI、Cursor、Aider 或自建 Agent 循环);使用 npx 方式安装时需要可用的 npx 环境(来源未明确具体版本要求,待核验)。

方式一,用 skills CLI 安装 old-coder:

命令
npx skills add https://github.com/amazingang/old-coder --skill old-coder

方式二,手动安装到 Claude Code:把技能复制进 skills 目录,然后通过 /old-coder 调用,或在带有高保障要求的请求上让它自动触发:

命令
cp -r skills/old-coder ~/.claude/skills/

或者复制到 <project>/.claude/skills/

方式三,用于其他 Agent:把 skills/old-coder/SKILL.md 加进你的 AGENTS.md、规则文件或系统提示词,并让它的 references/ 目录与它放在一起。

可选配套技能 old-coder-api:本仓库还包含一个聚焦的 HTTP/JSON API 设计与评审技能。当你需要兼容性、授权、幂等性、分页、限流与可运维性等门禁时安装它:

命令
npx skills add https://github.com/amazingang/old-coder --skill old-coder-api

同时安装两个技能:

命令
npx skills add https://github.com/amazingang/old-coder --skill old-coder --skill old-coder-api

两者同时适用时,old-coder 负责工作流、审批与证据;old-coder-api 负责 API 契约,它的门禁决策会成为 SPEC 约束与 gauntlet 检查。

首次运行:安装后在 Claude Code 中调用 /old-coder,或在请求中提出高保障需求让它触发;随后按流程先审批 Agent 产出的 SPEC,再在代码完成后读取 EVIDENCE 报告。

复现演示(demo-rate-limiter,端到端在 old-coder 下构建的限流器):

命令
cd demo-rate-limiter
命令
python3 -m venv .venv && .venv/bin/pip install -r requirements-dev.txt -e .
命令
./tools/gauntlet.sh

常见问题(依据来源可确认的要点):报告必须使用真实数字、可由你亲自重跑;任何未经验证的项必须标注 unverified 而非 pass;绝不允许为了通过测试而削弱测试,或报告未真正运行的检查;若没有人类批准过 spec,报告必须写明并降低信心声明。来源未提供更多 FAQ 细节,待核验。

来源教程配图

old-coder: SPEC → GAUNTLET → EVIDENCE
配图 1 · old-coder: SPEC → GAUNTLET → EVIDENCE查看原图

适用场景

让编码 Agent 在写码前产出可审批的 SPEC(测试计划与拟安装工具清单)
在代码完成后获取可被人工用一条命令重跑的 EVIDENCE 证据报告
替代逐行读代码
为高保障改动(涉及金钱
登录
数据
并发)配置全套 gauntlet 检查
通过变异测试与基于属性的测试验证测试套件是否真的能抓住缺陷
检查变更行覆盖率
类型/lint/复杂度
真实执行
供应链与密钥泄露