我是小C。
一个懂编程教育、正在用 AI 升级教学和内容创业的老师。
C++ 信息学奥赛教练,编程讲师,少儿编程资深专家。
企业AI落地咨询、AIGC深度玩家。
常驻讲台,偶尔经过食堂。
致力于反努力机制下的AI知识传播与教育造物。
AI 写代码总踩坑?这个 GitHub 项目能治它
你有没有过这种经历?
让 AI 帮你写一段代码,写得飞快,输出的时候也像那么回事。
你高高兴兴复制粘贴进去。
跑一下直接报错。
或者你说"先看一下我那个文件"。AI 一本正经地说"好的,我看过了"。
但你打开一看,它根本就没看,自己瞎编了一个。
再不然就是给你编一个看着像函数、其实根本不存在的名字,理直气壮地用上。
这种情况不是偶尔,是常态。
最近我在 GitHub 上挖到一个 8 万 4 千多颗星 的项目,叫 agent-skills。
听起来名字很洋气。
说白了它就干一件事:把"老程序员的工作习惯"写成了 AI 必须照做的规矩。
今天拆给你听,不写代码也能看懂。
一、AI 写代码,为啥总出错?
很多人以为,AI 写代码不够好,是因为模型不够聪明。
错。
它不笨,它就是懒。
你让它"做个登录功能"。它的默认反应是:
跳过"先列需求"这步(先干起来再说) 跳过"做完先测试"这步(能跑就行) 跳过"自检一遍"这步(看着对就完事) 跳过"安全检查"这步(以后出问题再说) 一次提交一大堆改动(一次性堆上去省事)
每一项"跳过",都是一个 Bug 的种子。
你跟它说"你别偷懒"。
它听不进去。
因为它从来没人教过它"什么是工程上的好习惯"。
agent-skills 干的事,就是把这些好习惯一条一条列出来,硬塞给 AI,让它必须照做。
就像小学上课的课堂规则一样:先举手,再发言,回答完要说"我说完了"。
二、这个项目,到底是个啥?
作者是个老外大牛,叫 Addy Osmani,在 Google Chrome 团队当工程负责人,写过一本很有名的前端书。
他做这个项目的想法特别朴素:
别指望 AI 自动变靠谱,直接把"靠谱的做法"写成 AI 必须执行的清单。
项目里一共有:
**24 套"标准动作"**(按做事的先后顺序分好的) **4 个"专家身份"**(代码审查员、测试员、安全员、性能审计员) 7 份补充检查表(防止漏掉细节) **8 个"快捷指令"**(直接打 /spec/plan/build等就行)
最关键的一点:它就是一堆普通的文本文件,不是某个工具专属的。
你用的是 Claude Code、Cursor、Copilot、Codex、Gemini 还是别的什么工具,它都能装上去用。
我就是喜欢这种"不绑架人"的工具。
三、24 套"标准动作",到底覆盖了啥?
作者把"做完一个软件"这件事,拆成了 6 个阶段,每个阶段都给你一组动作:
第 1 步:想清楚再动手
interview-me:AI 反过来问你,把你脑子里模糊的想法问到清清楚楚 idea-refine:把"我想做个 App"变成一份可以照着做的方案 spec-driven-development:没写清楚要干什么,不许开始写代码
第 2 步:把大任务拆成小任务
planning-and-task-breakdown:把一堆要做的事拆成一张一张能打勾的小清单
第 3 步:开始动手做
incremental-implementation:一次只做一小块,方便回退 test-driven-development:先出题,再写答案,做完跑一遍验证 context-engineering:给 AI 看它需要看的材料就行,别一口气塞一堆
第 4 步:测试看对不对
browser-testing-with-devtools:用浏览器的开发工具实测 debugging-and-error-recovery:出错时按 5 步查(重现 → 找位置 → 缩小范围 → 修复 → 加保险)
第 5 步:自己审一遍
code-review-and-quality:从 5 个角度看代码质量,一次改的东西不超过 100 行 code-simplification:把复杂代码简化(规则:旧的逻辑如果没人怀疑它错了,就先别动) security-and-hardening:防常见的网络攻击套路
第 6 步:发出去上线
git-workflow-and-versioning:每次只改一个东西,改完立刻存个档 ci-cd-and-automation:问题越早发现越好(自动化测试一有改动就立刻跑) observability-and-instrumentation:上线后盯着数据看(请求多少、报错多少、慢的有几个)
说白了,这不是 24 个软件,是 24 套"老程序员的标准操作手册"。
四、最有意思的:AI 的"自我安慰"清单
每一套"标准动作"里,都有这么一节:
Rationalizations(自我安慰)。
它把 AI 写代码时的所有"自我开脱"借口都列出来,再一一怼回去:
"我稍后补测试。" → "不行,你现在就得补。" "这只是 demo,不用测。" → "Demo 也会变成正式上线的代码。" "先这样,下个 PR 再优化。" → "下个 PR 永远不来。" "这个文件应该不存在,没事。" → "没事个鬼,你编出来的。"
等于把"老程序员平时骂新人的话",翻译成了机器能听懂的语言。
我看到这一段笑出声,句句扎心。
五、新手先学这 2 套,最管用
24 套全学压力太大。我建议新手先学 2 套,今晚就能见效。
第 1 套:写代码前,先说清楚要干什么
学名:spec-driven-development(先写需求)
用了它之后,AI 写代码前**必须先交一份"需求文档"**:
我要做的东西,目标是什么 哪些事不要做(边界) 做到什么程度算合格(验收标准)
你点头说"行",它才动手。
这一招能挡掉一半"看着对、用着崩"的坑。
打个比方:就像写作文前先列提纲,不然写着写着就跑了题。
第 2 套:写代码前,先出考题
学名:test-driven-development(先写测试)
用了它之后,AI 必须先写一个考题(肯定是错的),再写代码让这个考题通过,通过之后再整理一遍。
这一招把"我稍后补测试"这个最常见的借口,直接堵死了。
打个比方:就像期末考试前,老师先想好"答对哪几点给多少分",学生照着拿分。
六、5 分钟就能上手,照着抄
第 1 步:挑你正在用的 AI 工具
下面这些都能装:
Claude Code(最推荐,我主力也是它) Cursor、Copilot、Codex Gemini CLI Windsurf、Kiro、OpenCode 不确定的话,还有一行命令通用的方式
第 2 步:复制一行命令去安装
# 把 24 套动作全装上
npx skills add addyosmani/agent-skills
# 只装你想试的那 1 套(适合尝鲜)
npx skills add addyosmani/agent-skills --skill test-driven-development
如果你用的是 Claude Code,最简单:
/plugin marketplace add addyosmani/agent-skills
/plugin install agent-skills@addy-agent-skills
第 3 步:直接用
装完之后,输入这样的指令就行:
/spec 我要做一个用户登录功能
AI 会先问你一堆问题,搞清楚你要什么,再交一份方案,等你点头才开始干。
/test 帮我写这个登录的测试
AI 会先出考题,再写答案。
从此你不用再说"请认真点"这种空话。 它被规矩绑死了。
七、3 个最容易踩的坑,提前提醒你
1. 只装 1 套可能少东西
它里面有些"补充检查表"是全局共享的,只装一个的话那几张表会找不到。
建议整套装,或者手动把对应的检查表也拷过去。
2. 别想着"装了就万事大吉"
它不是让 AI "一次就对",而是让它 "按对的方式做"。
装了那套"先写测试"的,不等于从此不用写测试。
它只是让 AI 逼着自己按流程走,每一步都能查能验。
3. 你用的 AI 工具得支持"加载规矩"
如果你的 AI 工具不让你加自定义规矩,那就算装了也发挥不出来。
目前生态最完整的是 Claude Code,强烈推荐做主力。
八、为啥我说每个用 AI 写代码的人都该用这个?
回到开头那个问题:
AI 写代码"看着对、用着崩",本质是它没有"工作规矩"。
你跟它说"认真点"。没用。
你必须把"认真"翻译成 "先写计划、先出考题、先自检" 这种机器能听懂的动作。
agent-skills 把这套动作打包好了。
24 套看着多,但你今天只要装 2 套:
写代码前先想清楚要干什么 写代码前先出好考题
装完你会发现两件事:
AI 写代码翻车的次数,明显少了 你自己写的提示词,从"模糊要求"变成了"验收标准"
后者才是程序员真正的护城河。
AI 不会取代你。但会用 AI 的工程师,会取代不会用 AI 的工程师。
夜雨聆风