Aprenda a criar, configurar e publicar seu próprio repositório de skills, agents e hooks para o Skill Manager for Copilot.
Atalho: Usando o Skill Manager
Se você já tem o Skill Manager instalado, pode criar a estrutura automaticamente:
Ctrl+Shift+P → Skills: Init RepositoryContinue lendo para entender cada parte em detalhe.
Um skill repo é um repositório Git contendo skills, agents e/ou hooks gerenciáveis pelo Skill Manager for Copilot.
Qualquer repositório Git — público ou privado — pode ser um skill repo. Basta seguir a estrutura de pastas esperada e, opcionalmente, adicionar um arquivo de configuração. O Skill Manager cuida do resto: sincronização, versionamento e distribuição.
O que você vai aprender neste tutorial:
.skillmanager.jsonO mínimo necessário para um skill repo funcional é uma pasta de skills com pelo menos uma skill contendo um SKILL.md:
meu-repo/
├── .skillmanager.json # (opcional) configuração do repo
└── skills/
└── minha-skill/
└── SKILL.md # definição da skill
Dica: Se o seu repo seguir os defaults (skills em skills/, agents em agents/, hooks em hooks/), o arquivo .skillmanager.json é totalmente opcional.
O .skillmanager.json fica na raiz do repositório e permite personalizar caminhos e comportamentos. Aqui está a configuração completa com todos os campos disponíveis:
{
"skills": {
"path": "skills",
"protectedBranch": "main"
},
"agents": {
"path": "agents"
},
"hooks": {
"path": "hooks"
},
"benchmarks": {
"path": "skill-benchmarks"
},
"neuralLink": {
"isRuntime": false,
"path": "",
"configTemplate": ""
},
"feedback": {
"defaultThreshold": 5,
"branchPattern": "feedback/{author}/{skill}/v{version}",
"reviewStorageLocal": ".vscode/skill-reviews"
}
}
skills| Campo | Default | Descrição |
|---|---|---|
path |
"skills" |
Pasta onde ficam as skills. Cada subpasta é uma skill. |
protectedBranch |
"main" |
Branch protegido usado como base para PRs de feedback. |
Exemplo: Se suas skills estão em src/copilot-skills/:
{
"skills": {
"path": "src/copilot-skills",
"protectedBranch": "main"
}
}
agents| Campo | Default | Descrição |
|---|---|---|
path |
"agents" |
Pasta onde ficam os agents (arquivos .agent.md). |
hooks| Campo | Default | Descrição |
|---|---|---|
path |
"hooks" |
Pasta onde ficam os scripts de hooks (.sh, .ps1). |
benchmarks| Campo | Default | Descrição |
|---|---|---|
path |
"skill-benchmarks" |
Pasta onde ficam os benchmarks para avaliação de skills. |
neuralLinkConfiguração do Neural Link runtime. Relevante apenas para repos que incluem o runtime do Neural Link (como o Skill Kit oficial).
| Campo | Default | Descrição |
|---|---|---|
isRuntime |
false |
Se true, indica que o repo contém o runtime do Neural Link. |
path |
"" |
Subdiretório onde o runtime está localizado dentro do repo. |
configTemplate |
"" |
Caminho para o template de configuração do Neural Link. |
A maioria dos repos não precisa configurar o neuralLink. Esse campo existe para repos que distribuem o próprio runtime.
feedbackConfiguração do sistema de feedback e push de melhorias.
| Campo | Default | Descrição |
|---|---|---|
defaultThreshold |
5 |
Número mínimo de feedbacks para disparar sugestão de push. |
branchPattern |
"feedback/{author}/{skill}/v{version}" |
Padrão do nome da branch criada ao enviar melhorias. |
reviewStorageLocal |
".vscode/skill-reviews" |
Pasta local onde reviews são armazenados antes do push. |
Se o arquivo não existir, todos os defaults acima são aplicados automaticamente. Você só precisa criá-lo se quiser:
mainCada skill é uma subpasta dentro da pasta de skills (skills/ por padrão):
skills/
└── minha-skill/
├── SKILL.md # (obrigatório) definição da skill
├── FEEDBACK.md # (opcional) template de feedback
└── references/ # (opcional) arquivos de referência
└── exemplo.md
| Arquivo | Obrigatório | Descrição |
|---|---|---|
SKILL.md |
✅ | Definição da skill — contém as instruções que o Copilot vai seguir |
FEEDBACK.md |
❌ | Template de feedback para facilitar contribuições de outros usuários |
references/ |
❌ | Pasta com arquivos de referência que a skill pode consultar |
---
version: 1.0.0
---
# Gerador de Testes Unitários
**WORKFLOW SKILL** — Gera testes unitários automaticamente para funções e classes.
## Quando usar
- Ao criar novas funções ou classes que precisam de cobertura de testes
- Ao refatorar código existente que não tem testes
## Instruções
1. Analise a função ou classe alvo
2. Identifique os cenários de teste: caminho feliz, edge cases, erros
3. Gere testes usando o framework de teste do projeto (Jest, Mocha, pytest, etc.)
4. Inclua assertions claras e descritivas
5. Nomeie os testes seguindo o padrão: "should [comportamento] when [condição]"
## Exemplo
Para uma função `soma(a, b)`:
```javascript
describe('soma', () => {
it('should return the sum of two positive numbers', () => {
expect(soma(2, 3)).toBe(5);
});
it('should handle negative numbers', () => {
expect(soma(-1, 1)).toBe(0);
});
});
```
O bloco entre --- no início do arquivo é o frontmatter YAML. Campos suportados:
| Campo | Descrição |
|---|---|
version |
Versão semântica da skill (ex: 1.0.0, 2.1.0). Usada pelo Skill Manager para controle de versão. |
# Feedback — Gerador de Testes Unitários
## O que funcionou bem?
<!-- Descreva o que a skill fez corretamente -->
## O que pode melhorar?
<!-- Sugestões de melhoria -->
## Contexto
- **Linguagem:** (ex: TypeScript, Python)
- **Framework de testes:** (ex: Jest, pytest)
- **Tipo de código:** (ex: função pura, classe com dependências)
Agents são arquivos .agent.md que definem assistentes personalizados com comportamentos específicos. Ficam na pasta agents/ por padrão:
agents/
└── meu-agent.agent.md
---
description: "Agent especialista em code review com foco em segurança"
---
# Security Reviewer
Você é um especialista em revisão de código com foco em segurança.
## Responsabilidades
- Analisar código em busca de vulnerabilidades comuns (OWASP Top 10)
- Verificar tratamento adequado de inputs do usuário
- Identificar credenciais ou segredos expostos no código
- Sugerir correções com exemplos práticos
## Regras
- Nunca aprove código com SQL injection, XSS ou CSRF
- Sempre sugira o uso de prepared statements para queries SQL
- Valide que toda entrada do usuário é sanitizada antes do uso
| Campo | Descrição |
|---|---|
description |
Descrição curta do agent para identificação na sidebar do Skill Manager. |
Hooks são scripts executados automaticamente em eventos específicos do agente (como antes de usar uma ferramenta ou ao finalizar). Ficam na pasta hooks/ por padrão:
hooks/
└── scripts/
├── pre-commit-guard.sh # Unix
├── pre-commit-guard.ps1 # Windows
├── stop-checklist.sh
└── stop-checklist.ps1
Hooks suportam scripts .sh (Unix) e .ps1 (Windows). O Skill Manager seleciona automaticamente o script correto para a plataforma.
Eventos suportados:
| Evento | Descrição | Timeout padrão |
|---|---|---|
PreToolUse |
Executado antes do agente usar uma ferramenta | 5s |
Stop |
Executado quando o agente finaliza | 12s |
SubagentStart |
Executado quando um sub-agente inicia | 5s |
Para um guia completo sobre criação de hooks, consulte a skill hooks-creator disponível no Skill Kit.
Existem 3 formas de adicionar seu repositório ao Skill Manager:
Ctrl+Shift+P (ou Cmd+Shift+P no macOS)https://github.com/seu-usuario/meu-skill-repo)Se o seu repositório é público, qualquer pessoa pode adicioná-lo ao Skill Manager dela usando os mesmos passos acima. Basta compartilhar a URL do repo!
O Skill Manager sincroniza automaticamente com os repositórios configurados. O intervalo padrão é de 3600 segundos (1 hora) e pode ser configurado em:
Settings → skillManager.syncInterval (valor em segundos; 0 desabilita o sync automático)
Ctrl+Shift+P → Skills: Pull All
Isso sincroniza todas as skills, agents e hooks de todos os repositórios configurados.
Quando você melhora uma skill localmente e quer contribuir de volta:
Ctrl+Shift+P → Skills: Push ImprovementO Skill Manager cria automaticamente uma branch seguindo o padrão configurado (ex: feedback/{author}/{skill}/v{version}), commita as mudanças e fornece o link para abrir o Pull Request.
Para facilitar que outros usem seu repositório como referência:
README.md na raiz com instruções claras sobre o conteúdo do repo e como usá-lo.skillmanager.json para documentar explicitamente a estrutura, mesmo que use os defaults — isso serve como documentaçãoFEEDBACK.md em cada skill para facilitar contribuições da comunidadeskills/:skills/
├── testing/
│ ├── unit-test-generator/
│ │ └── SKILL.md
│ └── test-reviewer/
│ └── SKILL.md
├── security/
│ ├── vulnerability-scanner/
│ │ └── SKILL.md
│ └── secrets-detector/
│ └── SKILL.md
└── documentation/
└── doc-generator/
└── SKILL.md
O repositório oficial de skills mantido pela comunidade:
🔗 https://github.com/AllanSantos-DV/skill-kit
Contém dezenas de skills, agents e hooks prontos para uso, além do runtime do Neural Link. É a melhor referência para entender a estrutura completa de um skill repo.
| O que | Onde | Arquivo |
|---|---|---|
| Skill | skills/nome-da-skill/ |
SKILL.md (obrigatório) |
| Agent | agents/ |
nome.agent.md |
| Hook | hooks/scripts/ |
nome.sh / nome.ps1 |
| Config | raiz do repo | .skillmanager.json (opcional) |
| Feedback | dentro de cada skill | FEEDBACK.md (opcional) |
| Referências | dentro de cada skill | references/ (opcional) |