๐ณ Visao geral da estrutura
O repositorio mp-skill/ e organizado em uma raiz curta com tres tipos de elementos: arquivos de documentacao na raiz, pastas de servico (docs, scripts, manifest) e a pasta skills/ dividida em buckets. Veja a arvore inteira em um lugar so:
mp-skill/ โโโ README.md # indice publico de skills โโโ CONTEXT.md # quem e o autor, principios โโโ CLAUDE.md # regras do repo para o agente โโโ LICENSE # licenca de uso โโโ .claude-plugin/ โ โโโ plugin.json # manifest do plugin Claude Code โโโ docs/ # documentos longos, ADRs โโโ scripts/ # automacoes auxiliares โโโ skills/ โโโ engineering/ # codigo diario (publico) โโโ productivity/ # workflow nao-codigo (publico) โโโ misc/ # uso raro (publico) โโโ personal/ # meu setup (privado) โโโ in-progress/ # rascunhos (privado) โโโ deprecated/ # aposentadas (privado)
๐ Leitura rapida do layout
- โข Raiz enxuta: apenas 4 arquivos `.md` + 1 LICENSE + 3 pastas de servico.
- โข Tudo que vira skill mora em
skills/: nada fora desse diretorio. - โข Seis buckets, seis intencoes: nenhum bucket compete com outro.
- โข Visibilidade publica vs privada e decidida pelo bucket โ nao por flag dentro do `.md`.
โ๏ธ skills/engineering/ โ codigo diario
O bucket engineering/ guarda as skills que voce realmente puxa quando esta escrevendo, lendo ou revisando codigo. Sao 10 skills, cada uma com um proposito reduzido e um verbo claro. Se uma skill aqui nao for usada por semanas, ela desce para misc/ โ engineering nao acumula bagagem.
As 10 skills de engineering/
๐ก Dica pratica
Antes de criar uma nova skill em engineering/, leia os nomes das 10 existentes. Se a nova ideia for variacao de uma delas, e melhor estender a existente do que duplicar. O bucket so cresce quando uma intencao realmente nova aparece.
๐งฐ skills/productivity/ โ workflow nao-codigo
O bucket productivity/ existe para skills que orquestram o trabalho: conduzir entrevistas, fechar sessoes, escrever, decidir. Nao tem nada de compilar codigo aqui. Sao 4 skills, todas usadas em ritmo semanal.
As 4 skills de productivity/
-
1
grill-me โ sessao adversarial: o agente questiona seu plano antes de voce gastar tempo executando.
-
2
handoff โ empacota o estado de uma sessao para o proximo agente continuar sem perder contexto.
-
3
brainstorm โ explora intencao e requisitos antes de qualquer linha de codigo.
-
4
doc-coauthoring โ guia um fluxo estruturado de co-autoria de documentos longos.
๐ Por que separar de engineering/
Skills de productivity ativam em fases diferentes do trabalho โ antes (brainstorm, grill-me), durante (handoff) ou paralelo (doc-coauthoring). Misturar com engineering polui o triggers do agente: ele tenta puxar handoff no meio de um TDD, ou tdd durante uma conversa de PRD.
๐ฆ skills/misc/ โ uso raro
misc/ e o purgatorio. Skills que ja foram uteis, ainda servem em casos especificos, mas nao merecem espaco mental diario. Ficam aqui exatamente para nao poluir engineering ou productivity.
benchmark-models
Roda um set de prompts em varios modelos e compara saidas. Util quando voce esta avaliando upgrade de modelo, raro em dia comum.
export-conversation
Empacota uma conversa em markdown para arquivar ou compartilhar. So aparece quando voce realmente quer guardar tudo.
video-transcript
Transcreve e resume um video. Usado pontualmente quando alguem manda uma palestra de 1h.
scrape-doc
Captura uma pagina HTML e converte para markdown limpo. Soluciona um problema bem especifico.
โฌ๏ธ Quando puxar de misc/ para engineering/
Se voce notar que esta invocando uma skill de misc/ mais de 2x por semana, ela ja nao e mais "rara". Promova para engineering/ ou productivity/, adicione no README e no plugin.json. O caminho inverso tambem vale: skill em engineering parada ha 1+ mes desce para misc.
๐ personal/, in-progress/, deprecated/
Os tres buckets privados. Tudo aqui esta no repo, mas nao aparece no README.md nem no plugin.json. Saber a diferenca entre eles evita poluir o catalogo publico com rascunhos ou ferramentas tao especificas que so funcionam na sua maquina.
โ Aparece publicamente
-
โ
Skills em
engineering/ -
โ
Skills em
productivity/ -
โ
Skills em
misc/ -
โ
Listadas no
README.mdraiz -
โ
Registradas em
.claude-plugin/plugin.json -
โ
Listadas no
README.mddo bucket
โ Fica privado
-
โ
personal/โ amarrada ao meu setup -
โ
in-progress/โ rascunho nao terminado -
โ
deprecated/โ aposentada, mantida por historico - โ NUNCA aparece no README raiz
-
โ
NUNCA entra em
plugin.json - โ NUNCA citada no README do bucket
๐ Regra de promocao
Para uma skill sair de personal/in-progress/deprecated e entrar em engineering/productivity/misc, voce precisa, na mesma PR:
- 1. Mover a pasta para o bucket publico correto.
- 2. Adicionar uma linha no
README.mdraiz linkando oSKILL.md. - 3. Adicionar entrada em
.claude-plugin/plugin.json. - 4. Atualizar o
README.mddo bucket com a descricao de uma linha.
Sem esses 4 passos, a promocao esta incompleta โ e o agente vai conseguir descobrir a skill mas o catalogo humano nao.
๐ CLAUDE.md, CONTEXT.md, README.md
Os tres `.md` da raiz tem publicos distintos. Trocar um pelo outro confunde tanto humano quanto agente. Memorize: README e para quem chega, CONTEXT e para entender intencao, CLAUDE e para o agente operar.
README.md
publico humanoIndice navegavel das skills publicas. Cada skill linkada para seu SKILL.md. Quem chega no GitHub le esse arquivo primeiro.
CONTEXT.md
intencao e principiosQuem e o autor, por que o repo existe, principios de design que orientam decisoes (ex: "skills sao pequenas e focadas"). Estavel, raramente muda.
CLAUDE.md
regras do agenteConvencoes operacionais: onde criar skills, o que precisa aparecer em README/plugin.json, restricoes de bucket. Lido pelo Claude Code automaticamente.
# Trecho real do CLAUDE.md deste repo Skills are organized into bucket folders under `skills/`: - engineering/ # daily code work - productivity/ # daily non-code workflow tools - misc/ # kept around but rarely used - personal/ # tied to my own setup, not promoted - in-progress/ # drafts not yet ready to ship - deprecated/ # no longer used Every skill in engineering/, productivity/, or misc/ must have a reference in the top-level README.md and an entry in .claude-plugin/plugin.json. Skills in personal/, in-progress/, and deprecated/ must not appear in either.
๐งญ Dica pratica
Quando estiver em duvida onde escrever uma nova regra, pergunte: quem precisa ler isso? Se for humano explorando o projeto, vai em CONTEXT ou README. Se for o agente operando, vai em CLAUDE. Misturar tudo em README e o erro mais comum โ e o que torna o repo dificil de manter.
๐ก plugin.json e como o Claude Code descobre skills
O Claude Code nao descobre suas skills por magia de filesystem. Ele le um manifest em .claude-plugin/plugin.json que lista, explicitamente, cada skill publica. Sem entrada no manifest, a skill existe no disco mas o agente nao a enxerga.
// .claude-plugin/plugin.json { "name": "mp-skill", "version": "1.0.0", "description": "Skills do Matt Pocock para Claude Code", "skills": [ { "name": "diagnose", "path": "skills/engineering/diagnose" }, { "name": "tdd", "path": "skills/engineering/tdd" }, { "name": "handoff", "path": "skills/productivity/handoff" } // ... uma entrada por skill publica ] }
โ Bom uso do manifest
- โUma entrada por skill publica
- โPath relativo ao raiz do repo
- โNome bate com o
name:do frontmatter - โAtualizado na mesma PR que adiciona a skill
โ Erros tipicos
- โListar skills de
personal/ouin-progress/ - โNome divergente do frontmatter
- โPath apontando para arquivo, nao para pasta
- โEsquecer entrada โ skill "invisivel" para o agente
๐ Fluxo de descoberta
O Claude Code carrega o plugin.json ao iniciar, le cada path listado, abre o SKILL.md de cada um e indexa o frontmatter (especialmente o description) na memoria de triggers. E o description que decide se a skill ativa em uma conversa โ nao o nome do arquivo.
๐งฌ Anatomia de uma SKILL.md
Toda skill e um unico arquivo: SKILL.md, dentro de uma pasta com o nome da skill. Frontmatter YAML no topo, corpo em markdown abaixo. Nao tem mais arquivos obrigatorios โ se voce precisar de referencias, coloque em references/ dentro da pasta.
--- <-- frontmatter YAML name: minha-skill description: Use when ... (descricao de trigger) --- <-- fim do frontmatter # Skill body Instrucoes em markdown para o agente seguir quando esta skill ativa. Pode ter exemplos, regras, checklists, snippets de codigo. Mantenha conciso: o agente vai ler isso TODA vez que a skill ativar. Cada linha gasta contexto.
๐ฏ Regras do description
- โข Comece com "Use when ..." ou "Use this when ..." โ o agente busca esse padrao.
- โข Liste gatilhos concretos: "when the user wants to debug a failing test", nao "for debugging".
- โข Inclua palavras-chave que o usuario provavelmente vai dizer ("rebind", "permission", "bucket").
- โข Se houver casos onde NAO usar, mencione: "Skip if ...".
- โข 1-3 frases. Triggers gastam contexto em toda conversa.
๐ Estrutura de pasta de uma skill
skills/engineering/diagnose/ โโโ SKILL.md # obrigatorio โโโ references/ # opcional, refs longas โ โโโ checklist.md โโโ examples/ # opcional, exemplos โโโ caso-1.md
๐ Resumo do Modulo
Proximo Modulo:
2.3 โ Convencoes de nomeacao e granularidade de skills