引言“给真正工程师的 Agent 技能不是氛围编程。”— Matt PocockREADME 第一句话这是一天一个开源项目系列的第85篇。今天的项目是skillsGitHub。先说这个仓库有多不寻常。它不是新框架。不是哪个大厂的开源项目。甚至不是一个能直接运行的程序。它只是一个工程师的.claude工作目录里面放着 21 个 Markdown 文件每个文件告诉 Claude Code 在某种场景下该怎么干活。Matt Pocock把这个目录推到了 GitHub什么推广都没做——没写博客解释没录视频演示没在 Hacker News 发帖。24 小时内拿了22,000 Stars登顶GitHub 全球 Trending 第一。最终停在了30,800 Stars。这不是偶然。同一天free-claude-code拿了 1,701 个 Starawesome-codex-skills拿了 517 个三个仓库霸占 Trending 前列主题完全一样怎么调教你的 AI。那天 GitHub 社区在集体投票我们需要这个。你将学到什么为什么配置 AI 工作方式正在成为新的工程实践Matt 的 8 个核心技能逐一拆解grill-me、tdd、triage-issue 等垂直切片与反氛围编程哲学如何安装并定制这些技能到你自己的工作流前置知识使用过 Claude Code 或其他 AI 编程助手了解基本的软件工程概念TDD、重构、PRD 等项目背景它是什么skills是 Matt Pocock 个人 Claude Code 技能库的公开版本。每个技能是一个独立文件夹主文件为SKILL.md描述了一个特定工程场景下 Agent 应该如何工作——任务目标、执行步骤、禁止事项、输出格式。安装方式极其简单npx skillslatestaddmattpocock/skills/grill-me# 工具会把 SKILL.md 复制到你的 .claude/ 目录关于作者Matt PocockMatt Pocock 在 TypeScript 社区的地位大概相当于这个领域的布道者GitHub: 10,300 关注者身份TypeScript 巫师GitHub bio: “TypeScript wizard”教开发者为生代表项目Total TypeScript生产级 TypeScript 综合课程其核心商业产品ts-reset8,400 ⭐被称为TypeScript 的 CSS Resetevalite1,500 ⭐用 TypeScript 评估 LLM 应用sandcastle1,000 ⭐TypeScript 沙箱 coding agent 编排AI Hero Newsletter约 60,000 订阅者前经历前 Vercel 工程师、前 Stately 工程师曾做过声乐教练是的真的他不是一个写工具给别人用的人——他首先是一个每天认真用 AI 干活的工程师然后才是一个教别人的人。这个仓库是他日常工作流的直接产物。项目数据⭐GitHub Stars: 30,80024 小时内 22,000Forks: 2,400Commits: 34License: MIT安装工具:npx skillslatest配套 Newsletter: AI Hero60,000 订阅者主要功能核心哲学让 AI 慢下来现在绝大多数人用 AI 写代码的思路是生成——让它帮你写函数、补样板、一键出页面越快越好。业界称之为Vibe Coding氛围编程。Matt 的思路反过来。他教 Claude 做的事大部分不是生成代码而是在写代码之前把问题想清楚。来看几个核心技能grill-me——最有用的技能Matt 本人说这是他用过最有用的技能。它的功能让 Claude 扮演一个会追着你问的严苛面试官盘问你的技术方案。不是那种客客气气提两条建议的AI 反馈。是追着你问——每个分支、每个边界条件、每个你没想到的 case每次只问一个问题一直问到你自己都觉得操这个我确实没想清楚为止。技能的几个关键设计每次只问一个问题避免问题轰炸强制逐步深思给出推荐答案不是光问还会帮你想主动探索代码库以自己回答问题而非总是问你目标在开始写代码之前把所有决策分支都解决掉用例你想给项目加一个缓存层 使用 grill-me 后 你的缓存粒度是什么函数级还是请求级 如果缓存键冲突你的失效策略是什么 你有 race condition 的场景吗多个请求同时缓存未命中 如果缓存服务挂了降级方案是什么 你的测试怎么 mock 缓存 ... 磨完之后你的设计要么变得更严密要么你意识到不该做这件事。tdd——强制红绿重构循环这个技能不让 Claude 一口气把功能写完。它强制执行严格的 TDD 工作流Tracer Bullet先打通最简路径 ↓ 增量循环 写一个会失败的测试 ↓ 写刚好让这个测试通过的最少代码 ↓ 重构代码更干净测试依然通过 ↓ 下一个测试...几个关键约束来自 SKILL.md禁止水平切片不允许先写完所有测试再实现会导致过度设计测试验证行为不验证实现通过公共接口测而非内部细节配套 6 个参考文档deep-modules.md、interface-design.md、mocking.md、refactoring.md、tests.md很慢很笨很老派——但这恰恰是严肃工程师写代码的方式。triage-issue——先诊断再修复拿到一个 bug 报告大多数人包括大多数 AI的反应是找到那行代码改掉提 PR。Matt 的triage-issue技能在修复之前多加了一步彻底诊断。五阶段流程1. 捕获问题理解症状 2. 探索诊断翻遍代码库找根因 3. 确定修复方案不是第一个可行方案是最好的方案 4. 设计 TDD 修复计划先写测试再修复 5. 创建 GitHub Issue诊断报告 修复计划 验收标准注意这个技能的输出不是代码是 GitHub Issue。它的价值在于当你或另一个 Agent去执行修复时已经有了清晰的根因分析和测试驱动的路线图。design-an-interface——强制多方案比较这个技能实现了 John Ousterhout 在《A Philosophy of Software Design》中提出的Design It Twice原则对任何重要决策先生成至少两个真正不同的方案再做选择。实现方式启动多个并行子 Agent每个被限制在不同维度子 Agent A最少方法数追求最简接口 子 Agent B最大灵活性追求最强扩展性 子 Agent C优化最常见场景追求最低使用摩擦三个方案出来之后从简洁性、泛化能力、实现效率、“深度”接口隐藏了多少复杂性四个维度评估帮你做决策。to-issues——垂直切片分解把一个功能计划拆解成 GitHub Issues——听起来很普通但关键在于它的拆分原则垂直切片Vertical Slice。❌ 水平切片别这么做 Issue 1: 数据库 Schema Issue 2: API 层 Issue 3: 前端 UI Issue 4: 测试 ✅ 垂直切片Matt 的方式 Issue 1: 用户可以创建基础草稿schema API UI tests 全穿透 Issue 2: 草稿可以添加富文本内容 Issue 3: 草稿可以发布每个 Issue 被分类为HITLHuman In The Loop需要人工决策介入AFKAway From Keyboard可以无人值守让 Agent 执行git-guardrails-claude-code——防 AI 删库通过 Claude Code 的PreToolUsehook 拦截危险 git 命令。被拦截的操作包括git push含 --force git reset --hard git clean -f / -fd git branch -D git checkout . git restore .当 Claude 尝试执行这些命令时它会收到消息“it lacks authority to access these commands”。可以配置为项目级或全局级。其他技能一览技能作用to-prd对话上下文 → 结构化 PRD直接提交为 GitHub Issuerequest-refactor-plan创建带细小 commit 的重构计划通过用户访谈细化improve-codebase-architecture结合 CONTEXT.md 和 ADR 文档寻找架构深化机会setup-pre-commit配置 Husky lint-staged Prettier 类型检查ubiquitous-language从对话中提取 DDD 风格的统一语言词汇表write-a-skill按规范结构创建新 skill技能生成技能edit-article通过重组章节、提升清晰度来改进文章obsidian-vault在 Obsidian vault 中搜索、创建和管理笔记项目详细剖析Skill 文件的结构每个技能是一个独立文件夹主文件为SKILL.md。以tdd为例skills/tdd/ ├── SKILL.md ← 主技能定义任务目标、执行步骤、约束条件 ├── deep-modules.md ← 参考资料深模块设计原则 ├── interface-design.md ├── mocking.md ├── refactoring.md └── tests.mdSKILL.md的典型结构# TDD ## Goal Build features one vertical slice at a time using TDD... ## Steps 1. Tracer Bullet: First, write the minimal... 2. Increment: For each behavior to implement... a. Write a failing test b. Write minimal code to pass the test c. Refactor if needed ## Rules - NO horizontal slicing... - Tests should verify behavior, not implementation... ## Resources deep-modules.md interface-design.md为什么配置 AI正在成为工程实践同一天出现三个 AI 配置类仓库霸占 Trending不是巧合。同样的模型GPT-4o / Claude Opus 同样的工具Cursor / Claude Code 同样的订阅费 为什么有人效率翻倍有人整天在跟废代码搏斗 差距不在模型在配置 • 怎么描述问题的边界 • 在哪些节点要求 AI 停下来等你确认 • 遵循什么工程约定 • 容忍哪些错误不容忍哪些 这些东西没有人教你也没有人卖给你。 只能在日复一日的使用中磨出来。Matt 把他磨出来的那一套公开了。业界把这件事称为 Claude Code Skills 生态的“npm 时刻”——就像当年 npm 让 Node.js 社区能共享工具包Skills 让 Claude Code 社区开始共享工作流配方。JetBrains 等大厂也在这个事件之后开始发布官方 skills 包。“你的 .claude 目录是空的吗”这是这个项目引发的最有价值的问题。如果你的.claude目录或.cursorrules、AGENTS.md是空的那你每次都在从零开始。你的 AI 不记得你上次踩过什么坑不知道你项目的架构约定不清楚你团队的代码规范。每次都是一个什么都不知道的新人。Matt 的 21 个技能不是让你照单全收的——他写 TypeScript做教育产品工作流跟你大概率不同。但他提供了一个活的样本让你看到一个认真用 AI 干活的工程师他的配方长什么样。项目地址与资源官方资源GitHub: https://github.com/mattpocock/skills安装工具:npx skillslatestAI Hero Newsletter: https://aihero.dev60,000 订阅者Total TypeScript: https://totaltypescript.com相关项目ts-reset8,400 ⭐: https://github.com/total-typescript/ts-resetevalite1,500 ⭐: LLM 应用评估工具Simon Willison 的 skills: 另一个被广泛参考的 Claude skills 个人仓库MCP 协议文档: https://modelcontextprotocol.io总结与展望核心要点反氛围编程Matt 的技能大多不是帮你更快生成代码而是帮你在写代码之前把问题想清楚——这是高级工程师使用 AI 的方式垂直切片优先tdd、to-issues、triage-issue都强调一次一个完整路径而非先把所有 X 层做完Skill 文件是工程产物就像 Dockerfile、.eslintrc、tsconfig.json你的 AI 配置也是需要维护的工程产物npm 时刻的意义这个仓库的走红标志着 Claude Code Skills 生态开始出现社区共享规范——从个人配置到可复用的工作流包差距在配置不在模型同样的 Claude Opus有人用来 vibe coding有人用来严肃工程差距在你喂给它的那些东西适合谁使用Claude Code 重度用户你已经在用 Claude Code想让工作流更严格、更可靠TypeScript 工程师部分技能migrate-to-shoehorn、scaffold-exercises高度针对 TypeScript 生态想建立自己 skill 库的工程师Matt 的仓库是最好的参考样本write-a-skill技能甚至能帮你生成新技能团队工程实践负责人git-guardrails、to-issues、triage-issue可以直接标准化团队的 AI 使用规范值得思考的问题Matt Pocock 在 README 写的那句话值得反复读“给真正工程师的 Agent 技能不是氛围编程。”这句话背后有一个判断AI 编程有两条路。一条是用 AI 生成更多代码更快交付——Vibe Coding。另一条是用 AI 把每一行代码前的思考做得更彻底——让 AI 成为你更严格的思维伙伴而不是更快的打字机。两条路都能到达但到达的地方不一样。访问我的个人网站探索更多实用知识和有趣产品