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/install

Then /ask and one sentence describing your situation. It decides which skill fits and calls it.


The nineteen

Interface

/designerCoordinates the eight below and returns one ranked verdict.
/layoutStructure, grouping, reading order, breakpoints that come from content.
/typographyChoosing type, scale, measure, line height, truncation.
/colorPalettes in oklch, semantic color, contrast, tokens, theming.
/a11ySemantics, focus, keyboard, ARIA, forms, hit areas.
/polishThe finish: radius, shadow, surface, icons, motion.
/microcopyInterface copy, from button labels to errors and empty states.
/variantThree different versions behind a picker in the real page.
/teardownTakes someone else's interface apart and explains the mechanism.

Engineering

/grillA hard interview before building, one question at a time.
/kickoffNew project: stack with a written reason, security on day one.
/tddRed, green, refactor, one vertical slice at a time.
/investigateHard bugs in six phases, with a gate between each.
/reviewThe diff on two axes that never pollute each other.
/engineerEvery layer audited, from a non-negotiable minimum.
/qaFive checks, real flows, and what should have been tested.
/securityThree levels, and the third chains findings until they turn critical.
/deployA security gate, and reproducibility from a clean clone.
/askA router over all of them. Describe the situation, it picks one.

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.

1.550 tokensalways loaded
1.378 tokenspriciest call
42.276 tokenseverything at once

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 tokens

And 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.