快速判断
一句判断
面向编码工作流的开发纪律组合,核心是 test-first 的 TDD 和按标准 / 规格双轴审查代码。
Matt Pocock 日常工程实践中使用的 Agent skills,用于推动真实工程任务,而不是停留在 vibe coding。
读原文顺序
- 先读 README 开头,判断仓库解决的问题。
- 再看能力结构或包含内容,确认是否需要整体安装。
- 最后看安装、许可证和维护说明。
需要一次理解或安装 Mattpocock Skills 仓库里的多个相关 skills。
同一仓库内的 skills 彼此有关联,适合作为一个能力包评估。
面向编码工作流的开发纪律组合,核心是 test-first 的 TDD 和按标准 / 规格双轴审查代码。适合想把测试驱动和代码评审变成 Agent 默认动作的开发者;偏工程流程,不覆盖内容或业务类任务。
策展备注: 面向编码工作流的开发纪律组合,核心是 test-first 的 TDD 和按标准 / 规格双轴审查代码。适合想把测试驱动和代码评审变成 Agent 默认动作的开发者;偏工程流程,不覆盖内容或业务类任务。
Skills For Real Engineers
这些是 Matt Pocock 每天用于真实工程工作的 Agent skills,不是 vibe coding。
开发真实应用很难。GSD、BMAD、Spec-Kit 等方法试图通过接管流程来帮你推进,但它们也会拿走你的控制权,让流程里的 bug 更难处理。
这个仓库里的 skills 被设计得很小、容易改、可组合,并且适用于任何模型。它们建立在几十年的工程经验之上。你可以拆开、改造,并变成自己的版本。
如果想跟进这些 skills 的更新或新 skill,可以订阅作者的 newsletter。
快速开始(30 秒设置)
- 运行 skills.sh installer:
npx skills@latest add mattpocock/skills
- 选择你想安装的 skills,以及要安装到哪些 coding agents。
务必选择 /setup-matt-pocock-skills。
- 在你的 Agent 中运行
/setup-matt-pocock-skills。它会:
- 询问你使用哪个 issue tracker(GitHub、Linear 或本地文件)。
- 询问你 triage ticket 时会用哪些 labels(
/triage会用到)。 - 询问你希望把生成的 docs 保存在哪里。
- 完成,开始使用。
为什么这些 Skills 存在
作者创建这些 skills,是为了解决在 Claude Code、Codex 和其他 coding agents 中反复看到的失败模式。
1. Agent 没做我想要的东西
最常见的软件开发失败模式是错位。你以为开发者理解了需求,直到看到成品才发现完全不是那么回事。AI 时代也是一样:你和 Agent 之间存在沟通缺口。
解决方法是让 Agent 做一次深入追问,也就是 grilling session。相关 skills:
/grill-me:用于非代码场景。/grill-with-docs:类似/grill-me,但会额外建立项目文档和共享语言。
这些 skills 会在开始前帮你和 Agent 对齐,并深入思考本次变更。每次要改东西时都值得用。
2. Agent 太啰嗦
项目开始时,开发者和领域专家常常不在同一套语言里。Agent 被扔进项目后也会一边摸索术语一边工作,于是用 20 个词解释 1 个词就能表达的东西。
解决方法是建立共享语言。共享语言文档能帮助 Agent 解码项目术语,让命名、导航和推理更稳定,也能减少 token 浪费。
/grill-with-docs 内置了这个能力:它既是 grilling session,也会帮助建立项目 domain model,并把难解释的决策记录到 ADR 中。
3. 代码跑不起来
当你和 Agent 已经对齐,但它仍然产出有问题的代码,就要检查反馈回路。
Agent 如果没有静态类型、浏览器访问、自动化测试等反馈,就等于盲飞。自动化测试中,red-green-refactor 循环很关键:先写失败测试,再修到通过。
仓库提供 /tdd skill 来强化这个循环,也提供 /diagnosing-bugs skill,用简单循环包装更好的调试实践。
4. 我们造出了泥球
Agent 会显著加速编码,也会显著加速软件熵。大量 AI 辅助构建的应用会快速变复杂、难以修改。
解决方法是重新关心代码设计。相关 skills:
/to-spec:在创建 spec 前询问你会触碰哪些模块。/improve-codebase-architecture:扫描代码库,找出可以改善架构的位置,并以可视化 HTML 报告呈现。
作者建议每隔几天在代码库上运行一次架构改进流程。
总结
软件工程基本功比以往更重要。这些 skills 是作者把这些基本功压缩成可重复实践的一次尝试,目标是帮助你交付更好的应用。
Reference
这些 skills 按“谁能调用”划分:
- User-invoked skills:只有用户输入时才会触发,主要负责组织和编排。
- Model-invoked skills:用户可以调用,Agent 也可以在任务匹配时自动调用,用来承载可复用纪律。
User-invoked skill 可以调用 model-invoked skills,但不应调用另一个 user-invoked skill。
Engineering Skills
User-invoked
ask-matt:帮助判断当前情况适合哪个 skill 或流程。grill-with-docs:带项目 domain model、术语和 ADR 更新的 grilling session。triage:用一组 triage 角色推动 issue 状态流转。improve-codebase-architecture:扫描代码库并呈现架构改善机会。setup-matt-pocock-skills:为本仓库 skills 配置 issue tracker、labels 和文档位置。to-spec:把当前对话整理成 spec,并发布到 issue tracker。to-tickets:把计划、spec 或对话拆成 tracer-bullet tickets。implement:按 spec 或 tickets 实现,并结合/tdd与/code-review。wayfinder:为超出单次 Agent 会话的大块工作建立调查地图。
Model-invoked
prototype:做一次性原型来回答设计问题。diagnosing-bugs:严谨调试循环:复现、最小化、假设、埋点、修复、回归测试。research:基于高可信一手来源调查问题,并记录为带引用的 Markdown。tdd:红绿重构驱动的测试优先开发。domain-modeling:主动构建和打磨项目 domain model。codebase-design:围绕 deep modules、clean seam、testability 设计代码结构。code-review:从标准和规格两个维度并行审阅 diff。
Productivity Skills
grill-me:对计划或设计进行高强度追问,直到决策树被澄清。handoff:把当前对话压缩成 handoff 文档,方便另一个 Agent 接手。
<p> <a href="https://www.aihero.dev/s/skills-newsletter"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://res.cloudinary.com/total-typescript/image/upload/v1777382277/skills-repo-dark_2x.png"> <source media="(prefers-color-scheme: light)" srcset="https://res.cloudinary.com/total-typescript/image/upload/v1777382277/skill-repo-light_2x.png"> <img alt="Skills" src="https://res.cloudinary.com/total-typescript/image/upload/v1777382277/skill-repo-light_2x.png" width="369"> </picture> </a> </p>
Skills For Real Engineers
My agent skills that I use every day to do real engineering - not vibe coding.
Developing real applications is hard. Approaches like GSD, BMAD, and Spec-Kit try to help by owning the process. But while doing so, they take away your control and make bugs in the process hard to resolve.
These skills are designed to be small, easy to adapt, and composable. They work with any model. They're based on decades of engineering experience. Hack around with them. Make them your own. Enjoy.
If you want to keep up with changes to these skills, and any new ones I create, you can join ~60,000 other devs on my newsletter:
Quickstart (30-second setup)
- Run the skills.sh installer:
npx skills@latest add mattpocock/skills
- Pick the skills you want, and which coding agents you want to install them on. Make sure you select
/setup-matt-pocock-skills.
- Run
/setup-matt-pocock-skillsin your agent. It will:
- Ask you which issue tracker you want to use (GitHub, Linear, or local files) - Ask you what labels you apply to tickets when you triage them (/triage uses labels) - Ask you where you want to save any docs we create
- Bam - you're ready to go.
Why These Skills Exist
I built these skills as a way to fix common failure modes I see with Claude Code, Codex, and other coding agents.
#1: The Agent Didn't Do What I Want
"No-one knows exactly what they want" David Thomas & Andrew Hunt, The Pragmatic Programmer
The Problem. The most common failure mode in software development is misalignment. You think the dev knows what you want. Then you see what they've built - and you realize it didn't understand you at all.
This is just the same in the AI age. There is a communication gap between you and the agent. The fix for this is a grilling session - getting the agent to ask you detailed questions about what you're building.
The Fix is to use:
/grill-me- for non-code uses/grill-with-docs- same as/grill-me, but adds more goodies (see below)
These are my most popular skills. They help you align with the agent before you get started, and think deeply about the change you're making. Use them _every_ time you want to make a change.
#2: The Agent Is Way Too Verbose
With a ubiquitous language, conversations among developers and expressions of the code are all derived from the same domain model. Eric Evans, Domain-Driven-Design
The Problem: At the start of a project, devs and the people they're building the software for (the domain experts) are usually speaking different languages.
I felt the same tension with my agents. Agents are usually dropped into a project and asked to figure out the jargon as they go. So they use 20 words where 1 will do.
The Fix for this is a shared language. It's a document that helps agents decode the jargon used in the project.
<details> <summary> Example </summary>
Here's an example CONTEXT.md, from my course-video-manager repo. Which one is easier to read?
- BEFORE: "There's a problem when a lesson inside a section of a course is made 'real' (i.e. given a spot in the file system)"
- AFTER: "There's a problem with the materialization cascade"
This concision pays off session after session.
</details>
This is built into /grill-with-docs. It's a grilling session, but that helps you build a shared language with the AI, and document hard-to-explain decisions in ADR's.
It's hard to explain how powerful this is. It might be the single coolest technique in this repo. Try it, and see.
[!TIP] A shared language has many other benefits than reducing verbosity: - Variables, functions and files are named consistently, using the shared language - As a result, the codebase is easier to navigate for the agent - The agent also spends fewer tokens on thinking, because it has access to a more concise language
#3: The Code Doesn't Work
"Always take small, deliberate steps. The rate of feedback is your speed limit. Never take on a task that’s too big." David Thomas & Andrew Hunt, The Pragmatic Programmer
The Problem: Let's say that you and the agent are aligned on what to build. What happens when the agent _still_ produces crap?
It's time to look at your feedback loops. Without feedback on how the code it produces actually runs, the agent will be flying blind.
The Fix: You need the usual tranche of feedback loops: static types, browser access, and automated tests.
For automated tests, a red-green-refactor loop is critical. This is where the agent writes a failing test first, then fixes the test. This helps give the agent a consistent level of feedback that results in far better code.
I've built a /tdd skill you can slot into any project. It encourages red-green-refactor and gives the agent plenty of guidance on what makes good and bad tests.
For debugging, I've also built a /diagnosing-bugs skill that wraps best debugging practices into a simple loop.
#4: We Built A Ball Of Mud
"Invest in the design of the system _every day_." Kent Beck, Extreme Programming Explained
"The best modules are deep. They allow a lot of functionality to be accessed through a simple interface." John Ousterhout, A Philosophy Of Software Design
The Problem: Most apps built with agents are complex and hard to change. Because agents can radically speed up coding, they also accelerate software entropy. Codebases get more complex at an unprecedented rate.
The Fix for this is a radical new approach to AI-powered development: caring about the design of the code.
This is built in to every layer of these skills:
/to-specquizzes you about which modules you're touching before creating a spec
And crucially, /improve-codebase-architecture helps you rescue a codebase that has become a ball of mud. I recommend running it on your codebase once every few days.
Summary
Software engineering fundamentals matter more than ever. These skills are my best effort at condensing these fundamentals into repeatable practices, to help you ship the best apps of your career. Enjoy.
Reference
These split on one axis — who can invoke them. User-invoked skills are reachable only when you type them (e.g. /grill-me); their job is to orchestrate. Model-invoked skills can be invoked by you _or_ reached for automatically by the agent when the task fits; they hold the reusable discipline. A user-invoked skill may invoke model-invoked skills, but never another user-invoked one.
Engineering
Skills I use daily for code work.
User-invoked
- ask-matt — Ask which skill or flow fits your situation. A router over the user-invoked skills in this repo.
- grill-with-docs — Grilling session that also builds your project's domain model, sharpening terminology and updating
CONTEXT.mdand ADRs inline. - triage — Move issues through a state machine of triage roles.
- improve-codebase-architecture — Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
- setup-matt-pocock-skills — Configure this repo for the engineering skills (issue tracker, triage labels, domain doc layout). Run once per repo before using the other engineering skills.
- to-spec — Turn the current conversation into a spec and publish it to the issue tracker. No interview — just synthesizes what you've already discussed.
- to-tickets — Break any plan, spec, or conversation into a set of tracer-bullet tickets, each declaring its blocking edges — written as text in a local file, or as native blocking links on a real tracker.
- implement — Build the work described by a spec or set of tickets, driving
/tddat pre-agreed seams and closing out with/code-reviewbefore committing. - wayfinder — Plan a huge chunk of work, more than one agent session can hold, as a shared map of investigation tickets on the issue tracker — resolve them one at a time until the way to the destination is clear.
Model-invoked
- prototype — Build a throwaway prototype to answer a design question — a runnable terminal app for state/logic questions, or several radically different UI variations toggleable from one route.
- diagnosing-bugs — Disciplined diagnosis loop for hard bugs and performance regressions: reproduce → minimise → hypothesise → instrument → fix → regression-test.
- research — Investigate a question against high-trust primary sources and capture the findings as a cited Markdown file in the repo, run as a background agent.
- tdd — Test-driven development with a red-green-refactor loop. Builds features or fixes bugs one vertical slice at a time.
- domain-modeling — Actively build and sharpen a project's domain model — challenge terms against the glossary, stress-test with edge-case scenarios, and update
CONTEXT.mdand ADRs inline. - codebase-design — Shared discipline and vocabulary for designing deep modules: a lot of behaviour behind a small interface, placed at a clean seam, testable through that interface.
- code-review — Two-axis review of the diff since a fixed point: Standards (does it follow the repo's coding standards, plus a Fowler smell baseline?) and Spec (does it faithfully implement the originating issue/PRD?), run as parallel sub-agents so neither pollutes the other.
Productivity
General workflow tools, not code-specific.
User-invoked
- grill-me — Get relentlessly interviewed about a plan or design until every branch of the decision tree is resolved.
- handoff — Compact the current conversation into a handoff document so another agent can continue the work.
- teach — Teach the user a new skill or concept over multiple sessions, using the current directory as a stateful teaching workspace.
- writing-great-skills — Reference for writing and editing skills well: the vocabulary and principles that make a skill predictable.
Model-invoked
- grilling — Interview the user relentlessly about a plan or design until every branch of the decision tree is resolved. The reusable loop behind
grill-meandgrill-with-docs.