The skills I use every day
Matheus Cardoso
Nineteen skills for Claude Code, in a public repository. Half of them are engineering, half are interface. Each one is a mode of work: it puts the agent in a specific role, with a specific job and a definition of done it cannot pretend to have met.
The problem
Every time you open Claude Code, you start from zero. The agent does not know where your bar is. It does not know that "works on my machine" is not enough, that security is not the last step, that a templated interface fails.
So you repeat yourself. "Check security on every layer." "Run the tests before telling me you are done." You say the same things with different words every session, and the result depends on how well you translated your standard in that particular moment. That is variance, and variance in a process is a bug.
A skill is that standard written once. A markdown file with frontmatter. No build, no runtime, no dependency.
Installation
Two doors. The plugin installs the set as a managed bundle that updates when I ship. The clone puts the files where you can edit them. Pick one: installing both leaves you with every skill twice.
# plugin: atualiza junto com o repositório
/plugin marketplace add matheuscarddoso/skills
/plugin install mcardoso-skills@mcardoso
# ou clone, se você quer editar as skills
git clone https://github.com/matheuscarddoso/skills.git ~/Projects/skills
~/Projects/skills/scripts/installThen /ask and one sentence describing your situation. It decides which skill fits and calls it.
The nineteen
Interface
Engineering
If you only adopt three, adopt /grill, /review and /designer. One stops you building the wrong thing, one stops you shipping it, and one stops you shipping it ugly.
How a skill is built
The description is not decoration: it is what decides whether the agent ever reaches the skill. It has to say what the skill is and list the triggers, including the phrases a person actually types when they have the problem.
---
name: investigate
description: Diagnóstico disciplinado de bug difícil ou regressão de
performance, por fases com trava entre elas. Use quando algo está
quebrado e a causa é desconhecida, quando o usuário disser "tá lento",
"não funciona", "por que isso quebrou".
---
## Fase 3: Minimize
Corte tudo que não é necessário pro vermelho. Metade da entrada,
metade do caminho de código, uma dependência de cada vez. Continua
vermelho, o corte fica. Ficou verde, o corte tocou a causa.
**Trava:** nada mais pode ser removido sem o vermelho virar verde.The rest is steps with a checkable definition of done. "Until you are aligned" invites the agent to declare victory early. "Nothing more can be removed without the red turning green" does not.
Who calls it
The nineteen split on one axis: who can call them. Ten only answer when you type, because a full audit the agent fires on its own is expensive and lands in the middle of your work.
The other nine answer the agent too, and that is where I feel the difference most. When someone says "it is slow and I do not know why", it takes the phased diagnosis instead of guessing. And while it writes a component it reaches a11y and polish as it goes, rather than me finding the problem at review.
What it costs in tokens
A skill is context, and context is money and attention. A suite that charges a lot per call becomes a suite you stop using, and the best skill in the world, unused, does nothing. So cost here is a design constraint, not an optimisation for later.
The description of every installed skill sits in context every session, whether it was used or not. It is the only cost you always pay, which is why it has the hardest budget. The body carries only what every run needs; what only some runs reach lives in references/, behind a link with the condition written out.
In practice: the whole suite adds up to 42 thousand tokens and no session pays that. /security on a quick pass costs a thousand, and the full audit across fourteen domains costs almost four thousand. You pay for what you use.
$ node scripts/skills.mjs bill
skill chamada + references refs descrição
--------------------------------------------------------------
ask 571 571 0 47
grill 946 946 0 90
a11y 1226 3296 3 98
color 1210 3194 3 72
designer 1341 2584 2 89
layout 1345 2720 2 85
microcopy 1137 1965 1 56
polish 1378 3376 3 95
teardown 1159 1796 1 80
typography 1230 2485 2 79
variant 1245 1857 1 77
deploy 705 1240 1 75
engineer 1258 4613 6 105
investigate 849 849 0 79
kickoff 1011 3620 4 79
qa 751 1213 1 83
review 798 1284 1 79
security 998 3937 4 92
tdd 737 737 0 61
--------------------------------------------------------------
Sempre carregado (soma das descrições): 1550 tokens de 1600
Chamada mais cara: 1378 tokensAnd the budget breaks the build. Doubling the suite from eleven to nineteen skills took the always-loaded cost from 899 to 1,550 tokens, and the 1,600 ceiling did not move: what paid for it was cutting the trigger lists down to the terms that actually tell one skill from its neighbour. The next one arrives by tightening another description. A budget that does not break the build is not a budget, it is an intention.
None of them assume a language
Each body speaks in capability, not tooling: "the project's static analyser, at the level it maintains", not "PHPStan at level 6". That is not diplomacy. It is what keeps the skill useful when you change stack halfway through a project.
The specifics live in references/stacks/, and the skill reads only the file for the stack it detected. Adding Python and TypeScript to /engineer raised its deep cost and barely moved its call cost, because a Python project does not pay for the other two.
More
The repository is MIT and the skills are markdown you can read in one sitting. Three repositories shaped it, and all three are worth reading: Rodrigo's skills gave the substance, Matt Pocock's the architecture, and Garry Tan's gstack the rigour of a suite. Code at matheuscarddoso/skills.