👨🏫 Project origins
O mp-skill is the Portuguese version of the repository mattpocock/skills, created by Matt Pocock — the same person behind Total TypeScript, from the TypeScript articles that have probably already gotten you out of a jam, and from the newsletter AI Hero about AI applied to engineering.
Matt started putting these skills together after running into the failure modes recurring issues with Claude Code and Codex: the agent forgets context between sessions, invents APIs that don't exist, skips tests, makes unnecessarily large refactors, or simply "hallucinates" a plan and starts writing code that doesn't work.
Instead of accepting this as a "model limitation," Matt decided encode the solutions. Every time I discovered a pattern that avoided a failure mode, it became a skill. Every time I had to repeat an instruction manually in three consecutive sessions, it became a skill. The result is a repository that looks small but solves dozens of real problems.
🎯 The central premise
Skills are the agent’s external memory. Instead of explaining again in every session how you want it to do TDD, write commits, or open PRs, you record it once, and the skill loads it into the right context at the right time.
- • Failure modes become reusable guardrails, not notes in CLAUDE.md
- • Each skill is a Markdown file—versionable, diffable, and reviewable
- • The agent loads only what matters for the current task
💡 Why skills > "vibe coding"
"Vibe coding" — letting the agent improvise without direction — works in five-minute demos. In a real project, three sessions later, you're fixing the same class of error for the fifth time.
Skills change the game: you pays the cognitive cost once (write the skill) and reap the benefits in every future session. It's investment, don't improvise.
Matt documents the project’s evolution in his newsletter. Worth reading — especially the posts where he explains why a skill was created (which agent error it tries to fix).
🔗 Newsletter: aihero.dev/s/skills-newsletter
🧩 Philosophy: small, composable, adaptable
Three adjectives define the project: small (small), composable (composable) and adaptable (adaptable). Each skill does one thing, does it well, and can be combined with others freely.
This philosophy is a direct answer to the "all-in-one" frameworks that emerged in the ecosystem — GSD, BMAD-METHOD, Spec-Kit. They work, but come with a cost: you adopt their entire process or none of it.
✓ Skills (mp-skill)
- ✓ Small — one skill, one problem, ~200 lines of Markdown
-
✓
Composable — use
/grill-me+/tdd+/handofffrictionless - ✓ Adaptable — fork it, edit it, add your rule, commit it
- ✓ Optional — you choose which ones to install and ignore the rest
- ✓ Transparent — opens the .md, reads it, understands it, adjusts it
✗ "All-in-one" frameworks
- ✗ Large — adoption requires reorganizing the entire project
- ✗ Monolithic — coupled parts; you can't use just one
- ✗ Opinionated — assume a flow (PRD → tasks → code) that may not be yours
- ✗ Black box — behavior embedded in scripts/templates
- ✗ Lock-in — leaving costs more than joining
🔧 "Hack around with them"
Matt uses this expression in the README: "these skills are meant to be hacked around with". In other words: don’t treat it as a final product. Treat it as a starting point.
Each skill is a 100–300-line Markdown file. You open it, read it, adjust the tone, swap an example, add a section specific to your team, and remove what you don’t use. No build step, no framework, no permission required.
This is the opposite of "I installed it and followed the tutorial". É "brought it into my project and made my own".
🗂️ Buckets: how skills are organized
The repository groups skills into buckets (folders) according to maturity and purpose. This isn’t just an organizational detail—it defines which skills are publicly visible and which ones stay internal.
📁 Bucket tree
skills/ ├── engineering/ # daily code work — TDD, code review, debugging ├── productivity/ # daily non-code workflow — handoff, grill-me ├── misc/ # kept around but rarely used ├── personal/ # tied to author's setup, not promoted ├── in-progress/ # drafts not yet ready to ship └── deprecated/ # archived, kept for reference
The first three (engineering, productivity, misc) are public: appear in the project README and in the list .claude-plugin/plugin.json. The last three (personal, in-progress, deprecated) stay internal: exist in the repo, but aren’t officially exposed as plugin skills.
📋 Promotion rule (from mp-skill’s CLAUDE.md)
- Every skill in engineering/, productivity/, or misc/ must have:
- • Entry in the
README.mdfrom the root (linking to theSKILL.md) - • Entry in the
.claude-plugin/plugin.json - • Entry in the
README.mdof the bucket itself (with a one-line description)
- • Entry in the
- Skills in personal/, in-progress/, deprecated/ MUST NOT appear in either of these two public places.
This structure keeps the repository honest: what’s promoted has been tested and Matt actually uses it; what’s in drafts is clearly identified; what’s been discontinued stays documented but doesn’t get in the way of people getting started.
⚖️ Difference vs. GSD / BMAD / Spec-Kit
GSD (Get-Stuff-Done), BMAD-METHOD, and Spec-Kit are popular frameworks for "agentic coding." They work — but they solve a different problem than skills do. It’s worth understanding the difference before choosing.
✓ mp-skill (composite skills)
- ✓ You choose which skills to use at each stage
- ✓ Works with your current workflow without rewriting anything
- ✓ Each skill is independent—one failure doesn’t bring down the others
- ✓ Adoption curve incremental: install one, use it, then add another
- ✓ Easy exit: deleting a skill means removing one file
✗ Frameworks with a built-in process
- ✗ O the framework chooses the sequence of steps for you
- ✗ Requires reorganizing folders, files, and agents
- ✗ Tightly coupled components—breaking one affects the others
- ✗ Adoption curve all-or-nothing: learn the whole method or don’t use it
- ✗ Expensive exit: removing the framework is a refactor
📊 Comparison by dimension
| Dimension | mp-skill | GSD / BMAD / Spec-Kit |
|---|---|---|
| Control | You decide when each skill kicks in | Framework dictates the order of steps |
| Flexibility | High — catches 1, ignores 9 | Download — closed package |
| Curve | Incremental (skill by skill) | Steep (complete method all at once) |
| Customization | Editing Markdown | Rewrite templates / scripts |
| Coupling | Zero friction between skills | High between components |
| When it makes sense | When you already have a way of working and want to strengthen it | When you don't have a process yet and are willing to adopt theirs |
It's not “one is better than the other” — it's different problem. If you need a complete process from scratch, use a framework. If you already have a process and want to strengthen the agent’s weak points, use skills.
👥 Who uses it and for what
Skills aren’t exclusive to one profile. What changes is which skills go in and in what order. Three common profiles:
🧑💻 Solo engineer
Side project, freelance, early-stage startup
- • Want an agent that don’t forget context between sessions
- • Use
/handoff,/grill-me,/tdd - • Adapts everything to his style
👥 Small team
2-8 devs, same codebase
- • Want standardize how the agent works for everyone
- • Fork the repo and commit your customizations
- • Each skill PR is reviewed like code
🏢 Enterprise team
Compliance, formal code review
- • Skills become versioned policy ("the agent NEVER does X")
- • Auditing becomes trivial: everything is in Markdown
- • Integrates with existing PR review
And what’s the typical adoption curve? It almost always follows the same order — install the repo, test a skill, see the benefit, add the next one. In two weeks, it becomes a workflow.
⏱️ Typical adoption timeline
Day 1 — Install the plugin
~10 minutes
Clones the repo, registers it as a plugin in Claude Code, confirms that /grill-me appears. Doesn't use it yet — only checks that it loaded.
Day 2-3 — First skill: /grill-me
~30 minutes
Uses /grill-me before writing serious code. Find out that the agent asks questions that itself should have done earlier. It becomes a habit in 2-3 sessions.
Week 1 — Add /tdd
~1 hour to internalize
Uses /tdd for new tasks. The agent starts with the test, not the code. Stop "implementing and then testing"—test first, always.
Week 2 — Complete workflow
Already a habit
Composes: /grill-me → /tdd → /code-review → /handoff. You no longer think "which skill?" — you know.
📜 License and contribution model
The project is MIT. Practical translation: you can use, copy, modify, distribute, and sell it—in a personal project, at a company, or in a commercial product. The only requirement is to keep the copyright notice and license in the code.
Contribution model is fork-friendly. Matt accepts PRs, but expects each PR to be focused: a new skill, a fix to an existing skill, a docs improvement. Giant PRs ("I rewrote everything") tend to be rejected—not out of hostility, but because philosophy: the project is intentionally small.
🔀 How to open a PR against mattpocock/skills
# 1. Fork no GitHub, depois: git clone https://github.com/SEU_USER/skills.git cd skills git checkout -b minha-skill # 2. Criar a skill em engineering/ ou productivity/ mkdir -p skills/engineering/minha-skill $EDITOR skills/engineering/minha-skill/SKILL.md # 3. Registrar nos dois lugares públicos obrigatórios: $EDITOR README.md # adicionar linha com link $EDITOR .claude-plugin/plugin.json # adicionar entrada $EDITOR skills/engineering/README.md # descrição de 1 linha no bucket # 4. Commit + push + PR git add . git commit -m "feat: add /minha-skill" git push origin minha-skill gh pr create --base main
💡 Before opening a PR
Read the CONTRIBUTING.md (if one exists) and take a look at recent PRs to understand what tends to be accepted.
A new skill needs to justify which failure mode it resolves — this is the main criterion. "I thought it was cool" doesn’t count; "keeps the agent from forgetting X after Y" does.
🇧🇷 mp-skill vs mattpocock/skills
This repository (mp-skill, maintained by inematds) is a active fork of the mattpocock/skills with two extra goals:
🌐 Translation into Brazilian Portuguese
Skills translated into Portuguese, keeping command names in English (/grill-me, /tdd) for compatibility with the original.
Examples adapted to Brazilian reality where it makes sense (dates, formats, cultural context).
📚 Integrated course
This page is part of a course in 3 tracks that teaches when to use each skill and how to compose the workflow.
Track 1: Fundamentals · Track 2: mp-skill · Track 3: Workflow.
🔗 Want the original upstream?
Matt’s official repository is at github.com/mattpocock/skills. New skills and fixes show up there first—the mp-skill does rebase periodically to pull in changes.
If you want to contribute a new skill, open a PR against the upstream, not against the mp-skill. This is just translation + course.
In summary: mp-skill = mattpocock/skills + PT-BR + course. Same philosophy, same core set of skills, same bucket structure — just with the language barrier removed and instructional material added.
📌 Module Summary
Next Module:
2.2 — Installing and setting up mp-skill in Claude Code