Skills for Real Engineers

Matt Pocock 公开的自用 AI 代理 Skill 集——不做 Vibe Coding,用经典软件工程纪律驾驭编码代理。小而美、可组合、模型无关。

41个 Skill
6个分组桶
26 / 15用户调用 / 模型触发
16 万+GitHub Stars
Philosophy

设计哲学:不接管流程,只做可组合的纪律

GSD、BMAD、Spec-Kit 等方案试图"拥有整个流程",代价是控制权旁落、流程出 bug 难排查。本仓库反其道而行:每个 Skill 只做一件事,嵌入你现有的工作流。

框架派 · GSD / BMAD / Spec-Kit

接管你的流程

  • 一整套项目管理体系,控制权交给框架
  • 流程内部出错时难以调试和干预
  • 想换掉一个环节?往往牵动全身
  • 倾向于绑定特定工具链与玩法
本仓库 · mattpocock/skills

给你可组合的积木

  • 每个 Skill 小而独立,只做一件事
  • 纯 Markdown,模型无关——Claude Code / Codex / Cursor 通吃
  • 不合用的 Skill 直接改文件或删掉,不波及整体
  • 思想源自 TDD、DDD、深模块等经典工程实践
Mechanism

核心机制:一张轴切开的双轨制

整个仓库的 Skill 只按一条轴分类——"谁能触发它"。这条边界保证了:编排权永远在你手里,纪律却能自动生效。

⌨ User-Invoked · 26 个

用户调用型 = 编排者

  • 只有你输入 /grill-me 这样的命令才运行
  • SKILL.md 中标记 disable-model-invocation: true
  • 职责是编排:对齐需求、拆解工单、分诊流转
/grill-me/to-spec/to-tickets/implement/triage/wayfinder
🤖 Model-Invoked · 15 个

模型调用型 = 纪律载体

  • 或代理自己都能触发——任务匹配时自动加载
  • 承载可复用的工程纪律:TDD、Bug 诊断、代码审查
  • 描述任务即可,无需记住任何命令
tdddiagnosing-bugscode-reviewcodebase-designresearch
铁律:用户调用型可以引用模型调用型,但永远不能触发另一个用户调用型。
换言之——你做编排者,纪律自动生效。
Failure Modes

它要解决的四大失败模式

README 中作者开宗明义:这套 Skill 是为修复他在 Claude Code、Codex 等代理上反复见到的四类失败而生。

失败模式 #1

“代理做的不是我要的”

软件开发最常见的失败是错位——你以为对方懂了,看到成果才发现完全不是那回事。AI 时代同样如此:你和代理之间有沟通鸿沟。

修复:Grilling 拷问会话
开始前让代理逐条拷问你,把决策树每个分支问清楚 → /grill-me /grill-with-docs(每次改动前都用)
失败模式 #2

“代理太啰嗦了”

代理被丢进项目,边干边猜行话,用 20 个词表达 1 个词就能说清的事——会话臃肿、token 浪费。

修复:DDD 统一语言
建立共享术语表 CONTEXT.md,变量、函数、文件命名全部一致 → grill-with-docs domain-modeling
失败模式 #3

“代码根本跑不起来”

对齐了需求,代理还是产出垃圾?问题在反馈环——没有对代码实际运行效果的反馈,代理就是在盲飞。

修复:反馈环纪律
红-绿-重构循环 + 系统化 Bug 诊断 → tdd diagnosing-bugs(模型自动触发)
失败模式 #4

“我们造出了一坨屎山”

代理极大加速编码,也以前所未有的速度加速软件熵增。代码库复杂度失控。

修复:每天投资设计
深模块设计纪律 + 定期架构扫描 → codebase-design improve-codebase-architecture(作者建议每隔几天跑一次)
Workflow

工作流全景:从想法到交付的五段流水线

把 41 个 Skill 按真实工程流程串起来——这就是作者自己的日常开发方式。

🎯
① 需求对齐解决“做的不是我要的”
📋
② 规划拆解把共识落成可执行单元
🔨
③ 实现执行反馈环驱动,小步快跑
🛡️
④ 质量与设计对抗熵增,每天投资设计
📦
⑤ 沉淀与交接会话之间的记忆延续

实线 chip = 用户调用(输入 / 命令触发);虚线 chip = 模型自动触发(代理判断任务匹配时自行加载)。点击任意 chip 可跳转到下方卡片。

Catalog

全部 41 个 Skill 目录

按仓库的六个分组桶组织。蓝标 = 用户调用(输入 / 命令触发);紫虚线标 = 模型自动触发。每个卡片附英文原始描述。

⚙️

Engineering 工程

日常代码工作的核心桶——作者每天在用、对外主推的一组

17 个
/ask-matt⌨ 用户调用 /

路由器:描述你的处境,它告诉该用哪个 Skill 或流程——本仓库的入口向导。

Ask which skill or flow fits your situation. A router over the skills in this repo.

/grill-with-docs⌨ 用户调用 /

招牌 Skill 的工程版:拷问式访谈打磨计划,同时顺手沉淀文档——更新 CONTEXT.md 术语表与 ADR 决策记录。

A relentless interview to sharpen a plan or design, which also creates docs (ADRs and glossary).

/triage⌨ 用户调用 /

工单分诊状态机:分类 → 验证 → 打标签,推动 issue 和外部 PR 在分诊角色间流转。

Move issues and external PRs through a state machine of triage roles.

/improve-codebase-architecture⌨ 用户调用 /

屎山救援:扫描代码库的“深模块”改造机会,生成可视化 HTML 报告,再针对你选中的方向展开拷问。作者建议每隔几天跑一次。

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

/setup-matt-pocock-skills⌨ 用户调用 /

每个仓库运行一次的配置器:设定 issue 追踪器(GitHub/Linear/本地)、分诊标签词汇、文档存放位置——使用其他工程 Skill 的前提。

Configure this repo for the engineering skills — issue tracker, triage labels, docs layout.

/to-spec⌨ 用户调用 /

把当前对话直接合成为规格文档并发布到 issue 追踪器——不做访谈,只提炼已经讨论过的内容;生成前会追问你涉及哪些模块。

Turn the current conversation into a spec and publish it to the project issue tracker.

/to-tickets⌨ 用户调用 /

把计划、规格或对话拆成一组“曳光弹”工单,每个工单声明自己的阻塞依赖边——写成文本或追踪器上的原生阻塞链接。

Break a plan, spec, or conversation into tracer-bullet tickets, each declaring its blocking edges.

/implement⌨ 用户调用 /

按规格或工单集实现功能:在预先约定的接缝处驱动 /tdd,提交前以 /code-review 收尾。

Implement a piece of work based on a spec or set of tickets.

/wayfinder⌨ 用户调用 /

规划超过单个代理会话容量的大型工作:拆成 issue 追踪器上的“调查工单共享地图”,逐个解决直到通往目标的路径清晰。

Plan a huge chunk of work as a shared map of investigation tickets on the issue tracker.

/prototype🤖 模型自动触发

用一次性原型回答设计问题:状态/逻辑问题做可运行的终端程序,UI 问题做多个可一键切换的迥异变体。

Build a throwaway prototype to answer a design question.

/diagnosing-bugs🤖 模型自动触发

疑难 Bug 与性能回退的诊断循环:复现 → 最小化 → 假设 → 插桩 → 修复 → 回归测试。

Diagnosis loop for hard bugs and performance regressions.

/research🤖 模型自动触发

针对高可信一手资料调查问题, findings 落成仓库内带引用的 Markdown 文件,以后台代理方式运行。

Investigate a question against high-trust primary sources, capture findings as a cited Markdown file.

/tdd🤖 模型自动触发

测试驱动开发:红-绿-重构循环,一次实现一个垂直切片,内含好测试与坏测试的判别指导。

Test-driven development with a red-green-refactor loop.

/domain-modeling🤖 模型自动触发

主动构建和打磨项目领域模型:对照术语表挑战用词、用边界场景压测、就地更新 CONTEXT.md 与 ADR。

Build and sharpen a project's domain model — challenge terms, stress-test with edge cases.

/codebase-design🤖 模型自动触发

“深模块”设计纪律与共享词汇:小接口背后承载大行为、落在干净的接缝上、可仅通过接口测试。

Shared discipline and vocabulary for designing deep modules.

/code-review🤖 模型自动触发

双轴审查 diff:规范轴(仓库标准 + Fowler 坏味道基线)与规格轴(是否忠实实现原始 issue/PRD),由并行子代理执行互不污染。

Two-axis review: Standards and Spec, run as parallel sub-agents.

/resolving-merge-conflicts🤖 模型自动触发

逐块解决进行中的 git merge/rebase 冲突,每个块追溯到冲突双方的原始意图来解决,绝不 --abort。

Work through a merge/rebase conflict hunk by hunk, resolving by intent — never --abort.

🧭

Productivity 效率

通用工作流工具,不限于代码场景

5 个
/grill-me⌨ 用户调用 /

本仓库最出圈的 Skill:无情拷问你的计划或设计,直到决策树的每个分支都有答案。每次改动前都应该用。

A relentless interview to sharpen a plan or design.

/grilling🤖 模型自动触发

grill-me 的模型自动触发版:当代理判断当前计划/决策/想法需要打磨时,自动开始拷问。

Grill the user relentlessly about a plan, decision, or idea — model-invoked.

/handoff⌨ 用户调用 /

把当前对话压缩成交接文档,让另一个代理(或下一个会话)无缝接手继续工作。

Compact the conversation into a handoff document for another agent to pick up.

/teach⌨ 用户调用 /

跨多个会话教你一项新技能或概念,教学内容基于当前工作区的真实代码。

Teach the user a new skill or concept, within this workspace.

/writing-great-skills⌨ 用户调用 /

写好 Skill 的参考手册:让 Skill 真正生效的词汇与原则——写自己的 Skill 前必读。

Reference for writing and editing skills well.

🧰

Misc 杂项

保留但使用频率低的工具型 Skill

4 个
/git-guardrails-claude-code🤖 模型自动触发

配置 Claude Code hooks 拦截危险 git 命令(push、reset --hard、clean、branch -D 等),给代理装上护栏。

Set up Claude Code hooks to block dangerous git commands.

/migrate-to-shoehorn🤖 模型自动触发

把测试文件中的 as 类型断言迁移到 @total-typescript/shoehorn(更安全的测试数据构造方式)。

Migrate test files from `as` type assertions to @total-typescript/shoehorn.

/scaffold-exercises🤖 模型自动触发

创建教学练习目录结构:章节、题目、答案、讲解四件套。

Create exercise directory structures with sections, problems, solutions, explainers.

/setup-pre-commit🤖 模型自动触发

配置 Husky pre-commit 钩子:lint-staged(Prettier)+ 类型检查 + 测试,提交前自动把关。

Set up Husky pre-commit hooks with lint-staged, type checking, tests.

🔒

Personal 个人

绑定 Matt 个人环境的 Skill,参考价值大于直接使用

2 个
/edit-article⌨ 用户调用 /

编辑改进文章:重构章节结构、提升表达清晰度、收紧行文。

Edit and improve articles by restructuring sections and tightening prose.

/obsidian-vault🤖 模型自动触发

在 Obsidian 笔记库中搜索、创建、管理笔记,维护 wikilinks 与索引笔记(绑定作者个人环境)。

Search, create, and manage notes in the Obsidian vault.

🚧

In-Progress 进行中

正在打磨的草稿,可能变动较大

9 个
/batch-grill-me⌨ 用户调用 /

grill-me 的批处理版:一次性抛出所有前沿问题,逐轮拷问。

A relentless interview that asks every frontier question at once, round by round.

/claude-handoff⌨ 用户调用 /

handoff 的后台版:把当前对话交给一个全新的后台代理,立即继续工作。

Hand the conversation off to a fresh background agent.

/loop-me⌨ 用户调用 /

围绕你想构建的工作流进行规格拷问,帮你设计自动化流程。

Grill me about specs for the workflows I want to build.

/setup-ts-deep-modules⌨ 用户调用 /

把 dependency-cruiser 接入 TypeScript 仓库,用工具强制每个 package 保持深模块结构。

Wire dependency-cruiser into a TypeScript repo so each package is a deep module.

/to-questionnaire⌨ 用户调用 /

遇到一个你答不了的决策?把它变成一份问卷,交给能回答的人填写。

Turn a decision you can't fully answer into a questionnaire for someone else.

/wizard⌨ 用户调用 /

生成一个交互式 bash 向导,一步步引导真人完成手工操作流程。

Generate an interactive bash wizard that walks a human through a manual procedure.

/writing-fragments⌨ 用户调用 /

写作·探索阶段:挖掘原始素材片段,暂不做结构化。

Writing, explore — mine raw fragments, no structure yet.

/writing-beats⌨ 用户调用 /

写作·组装阶段:把素材组织成“节拍”叙事线,每个术语先落地再推进。

Writing, exploit — assemble raw material into a journey of beats.

/writing-shape⌨ 用户调用 /

写作·成文阶段:把素材逐段塑形成完整文章。

Writing, exploit — shape raw material into an article, paragraph by paragraph.

🗑️

Deprecated 已废弃

被 newer Skill 取代,保留供考古

4 个
/design-an-interface🤖 模型自动触发

(已废弃)用并行子代理为一个模块生成多个迥异的接口设计。

Generate multiple radically different interface designs via parallel sub-agents.

/qa⌨ 用户调用 /

(已废弃)对话式 QA 会话:用户口头报告 bug,代理定位并修复。

Interactive QA session where user reports bugs conversationally.

/request-refactor-plan⌨ 用户调用 /

(已废弃)通过访谈制定小步提交的重构计划,归档为 GitHub issue。

Create a detailed refactor plan with tiny commits via user interview.

/ubiquitous-language⌨ 用户调用 /

(已废弃)从对话中提取 DDD 式统一语言术语表——能力已并入 grill-with-docs 与 domain-modeling。

Extract a DDD-style ubiquitous language glossary from the conversation.

Quickstart

安装:两条路线

路线 A · skills.sh 安装器

复制进你的仓库,随便改

# 交互式安装:选 Skill、选代理、选作用域
npx skills@latest add mattpocock/skills

# 然后在代理里运行一次配置(每个仓库一次)
/setup-matt-pocock-skills

安装到共享缓存 ~/.agents/skills/,再软链接到各代理目录(Claude Code、Codex、Cursor 等)。fork 思维——文件是你的,随便 hack。

路线 B · Claude Code 插件

订阅式安装,自动跟随更新

# 在 Claude Code 内执行
/plugin marketplace add mattpocock/skills
/plugin install mattpocock-skills@mattpocock

# 同样需要运行一次配置
/setup-matt-pocock-skills

只读、免维护、作者发新版即更新。订阅思维——你只想让它工作,不打算改它。

⚠️ Windows 提示:安装器在 Windows 上用 Junction 代替软链接,偶发“装到 ~/.agents/skills/ 但 ~/.claude/skills/ 缺链接”的问题。装完先检查 dir %USERPROFILE%\.claude\skills,缺失时手动补:mklink /J。此外 /setup-matt-pocock-skills 是必选项——它配置 issue 追踪器、分诊标签和文档目录,是工程类 Skill 闭环的前提。