尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

给 AI 一个分寸感:andrej-karpathy-skills 实战

给 AI 一个分寸感:andrej-karpathy-skills 实战 给 AI 一个分寸感andrej-karpathy-skills 实战【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathys observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills给上传函数加两条日志。AI 加上了顺手把整个函数的单引号换成双引号、给签名补了类型标注、加了 docstring、重排了空白连布尔返回逻辑都改了。真实改动就两行diff 却是三十行。你大概率也撞见过这种场景。问题不在模型不够聪明而在它缺少分寸感。andrej-karpathy-skills 把一套源自 Andrej Karpathy 对 LLM 写代码观察的行为准则装进了一个 CLAUDE.md 文件动手前先问清楚先写最短的版本只碰该碰的行。整个项目的核心就是一份拿来即用的行为说明书日常用 Claude Code、Cursor 或任何会读根目录指令文件的工具都能直接套用。这份文件写了什么AI 要过的四道自检题CLAUDE.md 里的规则对应四类高频翻车每条都自带一道交付前必须通过的自检测试这是它和一般提示词的差别所在。不确定就先问把假设摆上台面对应 Think Before Coding。任务有多种理解时并排列出来让你选不许默默挑一条开干有不清楚的地方停下来、说清哪里不清楚、然后提问。目的只有一个把澄清问题挪到实现之前而不是返工之后。200 行能压到 50 行就重写对应 Simplicity First。不写没人要的功能不给一次性代码搭可配置的架子不为不可能的场景写容错。自检题是一道很狠的话一个资深工程师会说这写复杂了吗会就重写。每一行改动都要能追溯到请求对应 Surgical Changes。修 bug 时不许顺手改进相邻代码不许重构没坏的东西代码风格要跟现有的一致发现无关的死代码只报告、不删除。唯一允许清理的是你自己这次改动造成的孤儿代码。把修一下改写成让测试通过对应 Goal-Driven Execution。修复认证系统这种没尽头的说法会被改写成先写一个能复现问题的测试让它通过再确认没有回归。多步任务则输出步骤 → 验证方式的计划一步步循环。这背后是 Karpathy 的观察模型非常擅长朝着明确目标循环干活给它成功标准它会自己跑给它模糊标准你就得反复追问。两条安装路径一条全局一条按项目路径 AClaude Code 插件一次装全项目通用在 Claude Code 里执行两条命令即可之后所有项目都能用/plugin marketplace add forrestchang/andrej-karpathy-skills /plugin install andrej-karpathy-skillskarpathy-skills路径 B往项目里放一份 CLAUDE.md想按项目控制、或用的是别的工具把文件放进项目根目录就行git clone https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills cp andrej-karpathy-skills/CLAUDE.md 你的项目根目录/CLAUDE.md项目里已有 CLAUDE.md 时用追加而不是覆盖原有规则不受影响echo CLAUDE.md cat andrej-karpathy-skills/CLAUDE.md CLAUDE.md这个文件本来就设计为和你自己的项目指令合并。文末加一节项目专属规则即可比如 Use TypeScript strict mode、All API endpoints must have tests——这两个例子直接取自 README.md 的推荐写法。用 Cursor 的拷一个 .mdc 规则文件仓库里已附带.cursor/rules/karpathy-guidelines.mdc把它拷进目标项目的.cursor/rules/目录即生效具体见 CURSOR.md。注意 Cursor 默认不读根目录的指令文件别指望 CLAUDE.md 在那边直接起作用。同一个任务两种 diff拿修复空 email 导致校验崩溃来对照EXAMPLES.md 里两组结果的差距很直观。❌ 装指南前def validate_user(user_data): - # Check email format - if not user_data.get(email): Validate user data. email user_data.get(email, ).strip() if not email: raise ValueError(Email required) - if not in user_data[email]: if not in email or . not in email.split()[1]: raise ValueError(Invalid email) if len(username) 3: raise ValueError(Username too short) if not username.isalnum(): raise ValueError(Username must be alphanumeric)docstring、注释改写、顺手加强的校验外加没人要的 username 规则全挤在同一次提交里。✅ 装指南后def validate_user(user_data): # Check email format - if not user_data.get(email): email user_data.get(email, ) if not email or not email.strip(): raise ValueError(Email required)整个 diff 都能追溯到处理空 email这一个请求。规则里的验收标准写得很直白每一行改动都说不清来路的就不该出现在 diff 里。它什么时候帮到你什么时候添堵明码标价的取舍这套规则偏向谨慎胜过速度。改错别字、显而易见的单行修复不必走全流程——文件里写明了目标是减少非琐碎工作上的昂贵失误不是拖慢简单任务。前期节奏会变慢动手前它多想、多问第一反应可能比你预期的慢半拍。换来的通常是更少的重写一遍和 Review 时更少的这行为啥改。软约束不是硬卡口它是一份文字指令不是 linter不会机械拦截越界改动。大任务里模型若跑偏仍需你自己提醒。工具要求任何支持根目录指令文件的工具都能放Cursor 例外走.mdc规则文件那条路。一周之后问自己四个问题打开 diff每一行改动你都能说清来路吗给它让搜索变快这种有多种理解的任务它是先列出几种解释让你选还是直接挑一条开干它的第一版代码就已经是最短版本你还需要说简单点吗澄清问题发生在动手之前还是做错之后四个问题里有三个答案是肯定的说明这套准则真正在起作用而不只是躺在根目录吃灰。今晚就能试要做的事只有一件克隆仓库把 CLAUDE.md 放进你改动最频繁的项目然后盯着下一个 diff 看变化。整套准则浓缩在这一个 CLAUDE.md 文件里想多看几组错在哪、该怎么写的对照翻 EXAMPLES.md需要中文版看 README.zh.md。若想把准则变成可复用的个人技能仓库里还有现成的 SKILL.md 定义。【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathys observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表