实测AI编程技能库:Markdown文件竟成生产力神器

一个被20万Star验证的编程范式
当我们谈论AI编程工具时,往往想到的是复杂的插件、代码模板或昂贵的订阅服务。但知名技术UP主Theo(t3.gg)最近的一次深度实测,却把焦点放到了一组看似平平无奇的Markdown文件上。
这组文件来自TypeScript社区的顶级创作者Matt Pocock(Theo戏称其为"排名第一的TypeScript YouTuber")。Pocock发布的这套面向真实工程师的AI技能集(AI Skills),已经在GitHub上斩获超过20万Star,跻身GitHub全站Star数前十的项目之列。
要理解这个数字的分量,需要知道GitHub全站Star数前十的项目通常是freeCodeCamp(约40万Star)、free-programming-books(约34万Star)这类经过多年积累的大型社区资源。一个由纯Markdown文件组成的项目能在短时间内跻身这一梯队,说明AI编程工具的需求已经从"写代码"转向了"如何与AI协作"这一更深层的方法论问题。
最令人惊讶的是——这些不过是一堆简单的Markdown文本文件。Theo坦言,他最初对这套技能集持怀疑态度,甚至一度"忽略"了它。但经过一周的实际使用,他的看法发生了根本性转变。
什么是AI Skills?技能文件的运作机制
所谓"Skill",本质上是一个带有名称(name)和描述(description)的Markdown文件。AI Agent能够看到所有已安装技能的名称和描述,然后根据当前任务判断哪个技能有用,主动将对应的Markdown内容读入上下文。
这套机制之所以能工作,依赖于现代AI编程Agent的上下文管理能力。像Claude Code、Cursor Agent等工具在执行任务时,会将项目目录中的特定配置文件读入上下文窗口(context window)——这是大语言模型一次推理能处理的全部文本范围,目前主流模型可处理128K到200K token。Markdown文件之所以成为技能载体,是因为它既是人类可读的纯文本格式,又能被模型无损解析。技能文件的name和description字段本质上构成了一个轻量级的检索增强生成(RAG)系统——Agent先根据description判断相关性,再按需加载完整内容,避免了一次性加载所有技能导致的上下文污染问题。
Theo在视频中提出了一个非常犀利的观点:技能的"description"字段本质上不应该叫"描述",而应该叫"触发器(trigger)"。它的作用不是准确概括技能能做什么,而是像YouTube视频缩略图一样——吸引"正确的Agent"在"正确的任务"中点击并调用它。
他还区分了两种技能调用模式:
- 用户主动调用(user-invoked):需要手动通过
/命令或$命令触发,类似插件 - 模型自动调用(model-invoked):由模型根据描述自行判断是否启用,用于引导模型的行为方式

这种设计的巧妙之处在于,对于像"诊断Bug"这样的技能,让模型自动识别并调用最为高效;而对于"grill me(拷问我)"这类工作流技能,则更适合手动触发。
最实用的技能:Unslopped去除AI文本味道
在众多技能中,真正让Theo"入坑"的,是来自另一套技能库P-Stack的 unslopped 技能。这套P-Stack由前React核心团队成员、React Compiler主要贡献者Lauren(网名potato,现就职于Cursor)打造。
React Compiler(原名React Forget)是Meta内部孵化多年的实验性项目,旨在通过编译时自动优化React组件的重渲染行为,使开发者不再需要手动编写useMemo、useCallback等性能优化代码。Lauren作为该项目的主要贡献者之一,后来加入了Cursor——2023至2024年AI编程赛道中增长最快的IDE产品,基于VS Code的开源代码构建,核心差异化在于深度集成了AI Agent能力。Lauren在Cursor的工作经验使她对AI Agent的实际行为模式有深入理解,这也解释了为什么P-Stack技能库在Agent行为引导方面表现得更为精细。
unslopped技能的目标非常简单:去除AI生成文本的"味道",赋予文字人类的声音。其核心流程是:扫描AI套路模式 → 重写并保留原意 → 匹配预期语气 → 加入"灵魂" → 自我审查。
这里的"味道"在技术社区中有一个专门的术语——Slop(AI垃圾文本)。这个词在2024年开始广泛流行,用来形容AI生成的那些空洞、冗余、充满固定套路的文本。典型特征包括:过度使用破折号(em dash)、大量以"In today's rapidly evolving landscape"开头的段落、无实质内容的总结性句子、以及"It's worth noting that"等填充短语。这一现象的根源在于大语言模型的训练数据中包含了大量此类写作模式,模型会倾向于生成统计概率最高的表达方式。unslopped技能本质上是通过系统提示词工程(system prompt engineering)来覆盖模型的默认输出倾向,强制其采用信息密度更高的写作风格。
它要求AI做到:
- 削减空洞的吹捧(如"pivotal moment"、"testament to"、"evolving landscape")
- 直接说清楚发生了什么,而非堆砌形容词
- 有观点,对事实做出反应,而非中性罗列优劣
- 变化句式节奏,短句长句穿插
- 恰当使用第一人称"我"
- 减少破折号(em dash)的滥用

更关键的一条原则是:"说它做什么,而不是它感觉如何"。比如与其说"数据库保持在手边",不如直接说".toSQL() 返回发送给数据库的确切字符串"。如果一句话在别的项目文档里原封不动也能用,那它对当前项目就毫无信息量,应该删掉。
实测效果:可读性天壤之别
Theo做了一个直观对比:他用同一个模型(Claude),分别在装了unslopped和没装的情况下,让它解释自己的开源项目T3 Chat。
结果差异巨大。没有unslopped时,模型输出的文本充斥着"The core idea is already clear"这类空话,以及大量破折号;而应用了unslopped后,回答变得直接、易于扫读、信息密度高。
"我已经很难忍受看未经处理的AI文本了,"Theo在直播中感叹,"当我读那些'slop'(AI垃圾文本)时,它真的伤害到我了。"他甚至表示,正是这个技能从根本上改变了他愿意阅读Agent回复的意愿。
有趣的是,当Theo用AI检测工具审查时,unslopped技能本身居然被判定为"AI生成",但它读起来却异常流畅、密度极高、写得很好。这恰恰印证了一个观点:当你的历史记录里有优秀的写作范例时,模型更倾向于遵循优秀的范式。这与大语言模型的"上下文学习"(in-context learning)能力直接相关——模型会从当前对话或上下文中的示例中学习输出模式,而不仅仅依赖训练时的参数。一份写作质量极高的技能文件本身就是最好的few-shot示范。
Grilling技能:让AI反向拷问你的决策
另一个让Theo"看到光"的是Matt Pocock的 grilling(拷问) 技能。它的作用是让AI围绕一个计划决策或想法,对用户进行无情的"审讯",直到双方对要构建的东西达成共识。
技能的核心机制是把决策映射成一棵"设计树",每个决策分支出依赖它的子决策,然后一轮一轮地推进"前沿"——即那些前置条件已经确定的决策。这种方法与软件工程中的架构决策记录(Architecture Decision Records, ADR)和产品管理中的机会解决方案树(Opportunity Solution Tree)有相似的思想渊源。其核心思路是:任何复杂系统的设计都可以分解为一系列相互依赖的决策节点,每个节点的选择会约束或开启下游的可选方案。所谓"前沿"概念借鉴自图论中的广度优先搜索——只处理前置条件已确定的节点,确保每一步决策都建立在已有共识之上。这种结构化的拷问方式比自由讨论更高效,因为它避免了在前提未明确时就争论实现细节的常见陷阱。
Theo实测时让AI拷问他自己的Lakebed项目,AI立刻提出了一系列尖锐问题:谁是用户?谁付费?下一个真正的里程碑是什么?capsule格式是规范还是仅仅是实现?
"这些确实是好问题,"Theo承认。更妙的是,当他切换到不同模型时,模型甚至在后台派生了子Agent去挖掘更多数据,为后续提问做准备。

在被拷问过程中,Theo频繁地不同意AI推荐的答案,反而正因此理清了自己项目的真实需求:"该死,这真的会帮到我。我有点恼火(因为它太有用了)。"
其他值得关注的AI编程技能
Theo在两套技能库中还挖掘出多个亮点:
Matt Pocock技能库精选
- wizard:引导人类完成只有人才能执行的步骤(如访问Agent无法进入的仪表盘、执行sudo命令)
- diagnosing bugs:自动识别并帮助定位根因,Theo表示这几天已经帮他解决了大量调试问题
- writing for agents:教Agent如何为其他Agent写指令,解决了"Agent给子Agent写提示词很糟糕"的痛点
- wait, what:当回复看不懂时,用简单语言重述一遍
P-Stack技能库精选(by potato)
- arena:并行派生N个尝试,通读所有候选,选最强的作为基础,嫁接其他方案的优点,验证结果——Theo戏称这个技能已经让他烧掉了数百美元的推理费用。这种策略在AI领域被称为"best-of-N sampling"或"tournament selection"的变体,原理是同一任务让模型生成N个独立方案后择优。质量提升显著,但代价是推理成本线性增长。以当前主流模型的API定价(输入约3美元/百万token、输出约15美元/百万token),如果每次任务并行5个方案,单次操作的API费用可能达到数美元甚至更多,多轮迭代下来费用确实可观。
- blast radius(影响半径):在改动上线前找出它会在别处破坏什么
- show me your work:用TSV格式记录Agent的每一步决策(做了什么、为什么、依据、结果),便于事后审查

两套技能库的风格差异与选择建议
视频中有一个反复出现的"梗":Theo发现Matt Pocock的技能文件里满是破折号(em dash),一个页面就有九个,"几乎每段一个"。他半开玩笑地说想fork一个"去破折号版"的Matt Pocock技能库。
更实质的对比是:Theo认为P-Stack的写作更易读、行为更贴合他的日常工作,因此在哲学上更认同potato的路线。但P-Stack最大的问题是过于绑定Cursor——部分技能只能在Cursor中使用。
这一限制折射出当前AI编程工具生态的碎片化现状。不同的AI编程环境各自定义了不同的配置文件格式和Agent行为接口:Cursor使用.cursor/rules目录存放规则文件,Claude Code使用.claude/目录,VS Code的Copilot则依赖.github/copilot-instructions.md。这种碎片化意味着一套精心编写的技能文件往往无法跨工具复用。社区已经开始出现标准化的呼声,但目前尚未形成统一规范。
Theo甚至呼吁有人能把P-Stack做成通用(非Cursor专属)版本,本质上是在推动技能文件格式的去平台化。
不过Theo强调,这从来不是"二选一"的对立:"两套技能库里都有真金白银,都值得看。"
核心启示:不要盲目复制,要建立自己的技能体系
Theo在视频中反复强调一个最重要的观点:你不应该从盲目复制别人的配置中获得任何东西。
"如果你只是复制粘贴我的代码库、改改东西,那你算不上好工程师。但如果你把我的代码库当作学习和构建自己技能的参考点,那你就是好工程师。"
他建议的正确做法是:
- 让你的Agent了解P-Stack和Matt Pocock技能库
- 让它审查你的使用历史,找出哪些技能真正适合你的工作
- 先装unslopped,这样你之后会真正愿意读AI的回复
- 安装前先阅读技能的Markdown内容
- 用一个专属仓库(Theo称之为"fleet")统一管理所有机器上的技能
Theo透露,如今他打开代码编辑器基本只为编辑Markdown文件和环境变量。"这已经不算玩笑了。"正是这种深入技能配置的做法,让他能够进行更多并行Agent工作,在一个周末内以极少的故障提交了大量PR。
别害怕打开你的 .claude 和 .agents 目录去编辑这些文件——一旦你开始动手,就会发现能做的酷炫事情多到超乎想象。
核心要点
相关推荐

Anthropic招聘直问金钱观:AI安全公司如何筛选价值观
Anthropic在招聘中直接询问候选人的金钱观,通过价值观对齐筛选真正认同AI安全使命的人才。本文解析这一做法背后的逻辑及对AI行业人才竞争的深远影响。

AureaCam:实时构图评分工具,用三分法和黄金比例训练摄影直觉
AureaCam 是一款基于三分法和黄金比例的实时构图评分工具,通过0-100分即时反馈帮助摄影初学者快速建立构图直觉。PWA形态免安装,打开浏览器即可使用。

MiniMax H3提示词怎么写?一个Skill搞定
MiniMax H3视频模型提示词不会写?本文拆解H3提示词六大核心要素:人物、场景、动作、镜头、时间轴、声音,并介绍ProMate Skill工具,一句话自动生成专业分镜级提示词,附A/B实测对比效果。