MODULO 2.2

๐Ÿ—‚๏ธ Estrutura do repositorio

Cada pasta tem um proposito claro. Entender o layout do mp-skill/ e o que torna possivel encontrar uma skill em segundos, decidir onde criar a proxima e saber o que e publico e o que e privado.

9
Secoes
40
Minutos
Inter
Nivel
Pratico
Tipo
1

๐ŸŒณ 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`.
Raiz
4 docs + LICENSE
Servico
docs, scripts, plugin
Buckets
6 pastas em skills/
Promocao
README + plugin.json
2

โš™๏ธ 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/

diagnose Investiga um bug ou comportamento estranho de forma sistematica antes de chutar uma correcao.
grill-with-docs Estressa um plano contra a documentacao existente do projeto e atualiza ADRs inline.
triage Classifica issues e tarefas em buckets de prioridade rapida.
improve-architecture Audita arquitetura de codebase e propoe simplificacoes concretas.
setup-mp-skills Instala e configura todo o pacote de skills do Matt Pocock em um projeto novo.
tdd Conduz desenvolvimento orientado a testes com red-green-refactor explicito.
to-issues Quebra uma ideia ou plano em issues acionaveis no GitHub.
to-prd Converte uma conversa exploratoria em PRD estruturado.
zoom-out Forca um passo atras para revisar premissas e direcao do trabalho.
prototype Sobe um prototipo funcional descartavel para validar uma ideia.

๐Ÿ’ก 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.

Frequencia
Diaria
Foco
Codigo
Visibilidade
Publica
Tamanho
10 skills
3

๐Ÿงฐ 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.

4

๐Ÿ“ฆ 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.

1

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.

2

export-conversation

Empacota uma conversa em markdown para arquivar ou compartilhar. So aparece quando voce realmente quer guardar tudo.

3

video-transcript

Transcreve e resume um video. Usado pontualmente quando alguem manda uma palestra de 1h.

4

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.

5

๐Ÿ”’ 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.md raiz
  • โœ“ Registradas em .claude-plugin/plugin.json
  • โœ“ Listadas no README.md do 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.md raiz linkando o SKILL.md.
  • 3. Adicionar entrada em .claude-plugin/plugin.json.
  • 4. Atualizar o README.md do 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.

6

๐Ÿ“„ 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 humano

Indice navegavel das skills publicas. Cada skill linkada para seu SKILL.md. Quem chega no GitHub le esse arquivo primeiro.

CONTEXT.md

intencao e principios

Quem 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 agente

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

7

๐Ÿ“ก 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/ ou in-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.

8

๐Ÿงฌ 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
Obrigatorio
SKILL.md
Frontmatter
name + description
Trigger
"Use when..."
Corpo
Markdown conciso

๐Ÿ“Œ Resumo do Modulo

โœ“
Raiz enxuta โ€” 4 docs, LICENSE, 3 pastas de servico, 1 pasta `skills/`.
โœ“
6 buckets, 6 intencoes โ€” engineering, productivity, misc, personal, in-progress, deprecated.
โœ“
Publico vs privado โ€” decidido por bucket, nao por flag interna.
โœ“
Promocao em 4 passos โ€” mover pasta + README raiz + plugin.json + README do bucket.
โœ“
CLAUDE/CONTEXT/README โ€” tres publicos distintos: agente, principios, humano de chegada.
โœ“
plugin.json e o manifest โ€” sem entrada la, a skill e invisivel para o agente.
โœ“
SKILL.md = frontmatter + corpo โ€” description com "Use when..." e o que ativa a skill.

Proximo Modulo:

2.3 โ€” Convencoes de nomeacao e granularidade de skills