news 2026/9/8 15:43:47

用 andrej-karpathy-skills 跑通 TDD 的 4 个关键动作,让 AI 改码不返工

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用 andrej-karpathy-skills 跑通 TDD 的 4 个关键动作,让 AI 改码不返工

用 andrej-karpathy-skills 跑通 TDD 的 4 个关键动作,让 AI 改码不返工

【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills

让 AI 修个 bug,它顺手改了引号风格、补了没人要的类型标注、还重构了两个无关函数——这种动辄 400 行 diff 的返工,根源往往在于:你给的是指令,不是验收标准。

andrej-karpathy-skills 针对这个痛点,把 AI 编程常见的毛病(擅自猜假设、过度设计、顺手改无关代码、没有目标感)逐条写成行为规则,可以直接装进项目。其中"目标驱动执行"这条,和测试驱动开发(TDD)的"红 → 绿"循环正好咬合:先告诉 AI 什么算成功,再让它自己循环到测试通过

翻车现场:为什么"帮我修一下"总换来一堆无关改动

一个典型的返工长这样:你让 AI"修一下排序,重复分数会乱",它直接改了排序键,没写任何复现测试,改完回一句"已修复"。两周后换一组数据,又坏了。

拆开看,这份改动有三个问题:

  • 没有复现测试:修没修好全凭感觉,回归无从谈起
  • 范围蔓延:bug 只是空值判断的问题,它顺手加了用户名校验
  • 假设驱动:它自己"觉得"该顺便统一代码风格,于是改了半个文件

这三类问题不是模型变笨了,而是指令里根本没有"完成"的判断标准。

动手前先问清三件事

写第一行测试之前,先逼 AI(也逼自己)回答三个问题。这是SKILL.md里"思考先行"原则的落地版:

  1. 列出假设:输入范围、边界值(负数、零、重复项)各是什么?拿不准就问,别猜。
  2. 列出多种理解:需求有歧义时把解读摆出来让你挑,而不是默默选一个跑完。
  3. 指出更简单的路:存在成本更低的方案时直接说出来,该反驳就反驳。

这一步多花两分钟,能砍掉后面大部分返工。

把模糊需求翻译成验收标准(TDD 流程第一步)

"目标驱动执行"翻译成大白话:把任务变成可验证的目标,循环直到验证通过。做法是把随口一句话,改写成 AI 能自己判断对错的验收标准:

你随口说的话AI 该收到的验收标准
"加个校验"先为非法输入写测试,再让它们通过
"修这个 bug"先写能复现 bug 的测试,再让它通过
"重构 X"重构前测试全绿,重构后仍然全绿

验收标准写强了,AI 可以独立跑完整个循环;写弱了(比如"让它能跑就行"),你就得全程陪跑澄清。多步任务再补一张两列小计划:每一步后面跟一个"验证动作",做完一步验一步。

只写刚好够用的实现,别碰无关代码

测试开始变红之后,实现阶段要同时压住两个倾向:

  • 简洁至上:不写没被要求的功能、不做只有一处用到的抽象、不加没人要的配置项;200 行能写成 50 行的,重写。
  • 精准修改:只动和这次请求有关的行。发现相邻的死代码?提一句,但不删。

自检方法只有一句:diff 里的每一行,是否都能对应回你的请求?对不上的行,删掉。

🔁 修正过程:同一个 bug,换个说法再跑一遍

拿开头那个排序 bug 按新流程重跑一遍。

先定验收标准:"为重复分数写一个测试(当前应失败),修复后它稳定通过,且整个测试套件无回归。"

第一步,复现。测试长这样:

def test_sort_with_duplicate_scores(): scores = [{"name": "a", "score": 100}, {"name": "b", "score": 100}, {"name": "c", "score": 90}] result = sort_scores(scores) assert [r["score"] for r in result] == [100, 100, 90] assert result[0]["name"] == "a" # 同分稳定排序

跑一遍,红了——bug 被钉死在测试里。第二步,最小修复:排序键从单一分数改成"分数降序、名字升序"的元组,只改一行。第三步,验证:新测试稳定通过,旧测试无一回归。

整份 diff 只有两处:一条测试、一行排序键。翻车现场里的引号风格和"顺手重构",一行都没有出现。

安装只需两步

git clone https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills

把仓库里的CLAUDE.md拷到你项目根目录即可,Claude Code 启动时会自动读取;不想每个项目都拷,也可以按 README 装成 Claude Code 插件,一次安装、跨项目生效。规则全文在skills/karpathy-guidelines/SKILL.md,建议在此基础上追加项目自己的规则,比如"所有接口必须有测试"。

今天就能做的下一步

挑一个你正要交给 AI 的小任务,把那句"帮我改一下"改写成"先写测试复现或覆盖它,再让它通过",然后完整跑一遍 TDD 流程。

怎么判断这套规则起效了,看三个信号:diff 里只剩你要求的改动、因过度复杂而重写的次数变少、澄清问题发生在写代码之前,而不是翻车之后。

【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 2:18:29

如何在5分钟内用 Claude Code 生成第一套单元测试

如何在5分钟内用 Claude Code 生成第一套单元测试 【免费下载链接】claude-code Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and hand…

作者头像 李华
网站建设 2026/8/30 23:28:53

35W-100W封闭式AC-DC电源:选型、散热与实战经验

1. 35W到100W这个功率段,到底卡在市场的哪个位置 1.1 从应用场景看,为什么电源厂家都爱做这四个功率点 做电源设计或者给设备选型的人,一定见过那些外观长得几乎一模一样的金属小方块——封闭式AC-DC电源,功率从35W到100W&#x…

作者头像 李华
网站建设 2026/8/31 6:18:40

3行代码提取多人对话人声:Transformers语音分离

3行代码提取多人对话人声:Transformers语音分离 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference a…

作者头像 李华
网站建设 2026/9/1 1:34:55

基于维基百科与大模型生成的文本分辨测验项目全解析

先别急着去训练一个“AI 检测模型”。最近的 AI 应用开发和信息素养项目里,经常能遇到同一个问题:面对一段百科体文字,普通人到底能不能判断它来自维基百科的人类编辑,还是大模型生成的伪百科内容。如果不借助检测工具&#xff0c…

作者头像 李华
网站建设 2026/9/1 8:37:50

深入解析PCA降维:从最大投影方差与最小重构代价理解主成分分析

1. 项目概述:从数据“减肥”到洞察本质做数据分析或者机器学习的朋友,肯定都遇到过“维度灾难”这个头疼的问题。想象一下,你手头有一份用户画像数据,包含了年龄、收入、浏览记录、点击行为、地理位置等上百个特征。这些特征里&am…

作者头像 李华
网站建设 2026/9/1 1:33:26

Wi-Fi 6+蓝牙组合IC:IoT设备无线设计的关键实践与避坑指南

1. 为什么IoT设备从蓝牙和Wi-Fi的“二选一”走到了“双模组合” 1.1 单Wi-Fi和单蓝牙各自卡在哪里 做IoT硬件的人应该都有过这种纠结:一块设备,既要被手机App发现、又要连路由器上云,到底是选蓝牙还是选Wi-Fi?选蓝牙,…

作者头像 李华