一天一个开源项目(第85篇):TypeScript 巫师把自己的 Claude 配置推到了 GitHub,一夜全球第一

引言

"给真正工程师的 Agent 技能,不是氛围编程。" --- Matt Pocock,README 第一句话

这是"一天一个开源项目"系列的第 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 个 Star,awesome-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 应该如何工作------任务目标、执行步骤、禁止事项、输出格式。

安装方式极其简单:

bash 复制代码
npx skills@latest add mattpocock/skills/grill-me
# 工具会把 SKILL.md 复制到你的 .claude/ 目录

关于作者:Matt Pocock

Matt Pocock 在 TypeScript 社区的地位,大概相当于这个领域的"布道者":

  • GitHub: 10,300+ 关注者
  • 身份:TypeScript 巫师(GitHub bio: "TypeScript wizard"),教开发者为生
  • 代表项目
    • Total TypeScript:生产级 TypeScript 综合课程,其核心商业产品
    • ts-reset(8,400 ⭐):被称为"TypeScript 的 CSS Reset"
    • evalite(1,500 ⭐):用 TypeScript 评估 LLM 应用
    • sandcastle(1,000 ⭐):TypeScript 沙箱 coding agent 编排
  • AI Hero Newsletter:约 60,000 订阅者
  • 前经历:前 Vercel 工程师、前 Stately 工程师;曾做过声乐教练(是的,真的)

他不是一个"写工具给别人用"的人------他首先是一个每天认真用 AI 干活的工程师,然后才是一个教别人的人。这个仓库是他日常工作流的直接产物。

项目数据

  • GitHub Stars: 30,800+(24 小时内 22,000)
  • 🍴 Forks: 2,400+
  • 📝 Commits: 34
  • 📄 License: MIT
  • 📦 安装工具 : npx skills@latest
  • 📰 配套 Newsletter: AI Hero(60,000 订阅者)

主要功能

核心哲学:让 AI 慢下来

现在绝大多数人用 AI 写代码的思路是"生成"------让它帮你写函数、补样板、一键出页面,越快越好。业界称之为 Vibe Coding(氛围编程)。

Matt 的思路反过来。他教 Claude 做的事,大部分不是生成代码,而是在写代码之前把问题想清楚

来看几个核心技能:

grill-me------最有用的技能

Matt 本人说这是他用过最有用的技能。

它的功能:让 Claude 扮演一个会追着你问的严苛面试官,盘问你的技术方案

不是那种客客气气提两条建议的"AI 反馈"。是追着你问------每个分支、每个边界条件、每个你没想到的 case,每次只问一个问题,一直问到你自己都觉得"操,这个我确实没想清楚"为止。

技能的几个关键设计:

  • 每次只问一个问题(避免问题轰炸,强制逐步深思)
  • 给出推荐答案(不是光问,还会帮你想)
  • 主动探索代码库以自己回答问题,而非总是问你
  • 目标:在开始写代码之前,把所有决策分支都解决掉
vbnet 复制代码
用例:你想给项目加一个缓存层
使用 grill-me 后:
  "你的缓存粒度是什么?函数级还是请求级?"
  "如果缓存键冲突,你的失效策略是什么?"
  "你有 race condition 的场景吗?多个请求同时缓存未命中?"
  "如果缓存服务挂了,降级方案是什么?"
  "你的测试怎么 mock 缓存?"
  ...
磨完之后,你的设计要么变得更严密,要么你意识到不该做这件事。

tdd------强制红绿重构循环

这个技能不让 Claude 一口气把功能写完。它强制执行严格的 TDD 工作流:

markdown 复制代码
Tracer Bullet(先打通最简路径)
    ↓
增量循环:
  写一个会失败的测试
    ↓
  写刚好让这个测试通过的最少代码
    ↓
  重构(代码更干净,测试依然通过)
    ↓
  下一个测试...

几个关键约束(来自 SKILL.md):

  • 禁止水平切片:不允许先写完所有测试再实现(会导致过度设计)
  • 测试验证行为,不验证实现:通过公共接口测,而非内部细节
  • 配套 6 个参考文档:deep-modules.mdinterface-design.mdmocking.mdrefactoring.mdtests.md

很慢,很笨,很老派------但这恰恰是严肃工程师写代码的方式。

triage-issue------先诊断,再修复

拿到一个 bug 报告,大多数人(包括大多数 AI)的反应是:找到那行代码,改掉,提 PR。

Matt 的 triage-issue 技能在修复之前多加了一步:彻底诊断

五阶段流程:

markdown 复制代码
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,每个被限制在不同维度:

css 复制代码
子 Agent A:最少方法数(追求最简接口)
子 Agent B:最大灵活性(追求最强扩展性)
子 Agent C:优化最常见场景(追求最低使用摩擦)

三个方案出来之后,从简洁性、泛化能力、实现效率、"深度"(接口隐藏了多少复杂性)四个维度评估,帮你做决策。

to-issues------垂直切片分解

把一个功能计划拆解成 GitHub Issues------听起来很普通,但关键在于它的拆分原则:垂直切片(Vertical Slice)

yaml 复制代码
❌ 水平切片(别这么做):
   Issue 1: 数据库 Schema
   Issue 2: API 层
   Issue 3: 前端 UI
   Issue 4: 测试

✅ 垂直切片(Matt 的方式):
   Issue 1: 用户可以创建基础草稿(schema + API + UI + tests 全穿透)
   Issue 2: 草稿可以添加富文本内容
   Issue 3: 草稿可以发布

每个 Issue 被分类为:

  • HITL(Human In The Loop):需要人工决策介入
  • AFK(Away From Keyboard):可以无人值守让 Agent 执行

git-guardrails-claude-code------防 AI 删库

通过 Claude Code 的 PreToolUse hook 拦截危险 git 命令。被拦截的操作包括:

css 复制代码
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 Issue
request-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 为例:

bash 复制代码
skills/tdd/
├── SKILL.md           ← 主技能定义(任务目标、执行步骤、约束条件)
├── deep-modules.md    ← 参考资料:深模块设计原则
├── interface-design.md
├── mocking.md
├── refactoring.md
└── tests.md

SKILL.md 的典型结构:

markdown 复制代码
# 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,不是巧合。

css 复制代码
同样的模型(GPT-4o / Claude Opus)
同样的工具(Cursor / Claude Code)
同样的订阅费

为什么有人效率翻倍,有人整天在跟废代码搏斗?

差距不在模型,在配置:
  • 怎么描述问题的边界
  • 在哪些节点要求 AI 停下来等你确认
  • 遵循什么工程约定
  • 容忍哪些错误,不容忍哪些
  
这些东西没有人教你,也没有人卖给你。
只能在日复一日的使用中磨出来。

Matt 把他磨出来的那一套公开了。业界把这件事称为 Claude Code Skills 生态的 "npm 时刻"------就像当年 npm 让 Node.js 社区能共享工具包,Skills 让 Claude Code 社区开始共享工作流配方。JetBrains 等大厂也在这个事件之后开始发布官方 skills 包。

"你的 .claude 目录是空的吗?"

这是这个项目引发的最有价值的问题。

如果你的 .claude 目录(或 .cursorrulesAGENTS.md)是空的,那你每次都在从零开始。你的 AI 不记得你上次踩过什么坑,不知道你项目的架构约定,不清楚你团队的代码规范。每次都是一个什么都不知道的新人。

Matt 的 21 个技能不是让你照单全收的------他写 TypeScript,做教育产品,工作流跟你大概率不同。但他提供了一个活的样本,让你看到:一个认真用 AI 干活的工程师,他的"配方"长什么样


项目地址与资源

官方资源

相关项目


总结与展望

核心要点

  1. 反氛围编程:Matt 的技能大多不是帮你更快生成代码,而是帮你在写代码之前把问题想清楚------这是高级工程师使用 AI 的方式
  2. 垂直切片优先tddto-issuestriage-issue 都强调"一次一个完整路径",而非"先把所有 X 层做完"
  3. Skill 文件是工程产物 :就像 Dockerfile、.eslintrctsconfig.json,你的 AI 配置也是需要维护的工程产物
  4. "npm 时刻"的意义:这个仓库的走红标志着 Claude Code Skills 生态开始出现社区共享规范------从个人配置到可复用的工作流包
  5. 差距在配置,不在模型:同样的 Claude Opus,有人用来 vibe coding,有人用来严肃工程;差距在你喂给它的那些东西

适合谁使用

  • Claude Code 重度用户:你已经在用 Claude Code,想让工作流更严格、更可靠
  • TypeScript 工程师 :部分技能(migrate-to-shoehornscaffold-exercises)高度针对 TypeScript 生态
  • 想建立自己 skill 库的工程师 :Matt 的仓库是最好的参考样本,write-a-skill 技能甚至能帮你生成新技能
  • 团队工程实践负责人git-guardrailsto-issuestriage-issue 可以直接标准化团队的 AI 使用规范

值得思考的问题

Matt Pocock 在 README 写的那句话值得反复读:"给真正工程师的 Agent 技能,不是氛围编程。"

这句话背后有一个判断:AI 编程有两条路。一条是用 AI 生成更多代码,更快交付------Vibe Coding。另一条是用 AI 把每一行代码前的思考做得更彻底------让 AI 成为你更严格的思维伙伴,而不是更快的打字机。

两条路都能到达,但到达的地方不一样。


访问我的个人网站,探索更多实用知识和有趣产品

相关推荐
爱艺江河3 小时前
智慧合规的HarmonyOS原生实践:与OpenClaw适配的项目方案浅析
人工智能·华为·harmonyos
xiaoduo AI3 小时前
客服机器人用知识图谱推理吗?Agent功能介绍+关联问答,跨品类问题能推导?
人工智能·机器人·知识图谱
Data-Miner3 小时前
数以轻舟聚焦Excel-Agent场景:当AI做表工具学会说人话
人工智能·excel
甲维斯3 小时前
完了!我要背弃Opus4.7叛逃到GPT5.5+Codex了
人工智能·ai编程
夏沫の梦3 小时前
生图新王GPT-image-2已用!附使用教程+生成案例
人工智能
AI木马人3 小时前
13.【多租户架构实战】如何让一个AI系统同时服务多个用户且数据完全隔离?(完整设计方案)
人工智能·架构
sjsjsbbsbsn3 小时前
大模型核心知识总结
java·人工智能·后端
qq_411262424 小时前
四博 AI 双目智能音箱方案:把“会说话的音箱”升级成“会表达、会感知、会控制”的 AI 终端
人工智能·智能音箱
努力努力再努力FFF4 小时前
跨境电商运营想用AI优化广告和选品,该从哪里开始学?
人工智能