Skills: Variáveis e Sistema de Templates
Última atualização: 2026-08-31
Variáveis transformam Skills de "templates hardcoded" em "ferramentas flexíveis" — uma definição, mil reutilizações.
1. Tipos de variáveis
(1) Variáveis de entrada do usuário
Parâmetros fornecidos por quem chama:
variables:
- name: target_file
description: "Caminho do arquivo a revisar"
required: true
- name: severity_level
description: "Nível mínimo de severidade"
default: "warning"
choices: ["info", "warning", "error", "critical"]
(2) Variáveis de ambiente
Obtidas automaticamente do ambiente de execução:
variables:
- name: current_branch
type: env
source: "GIT_BRANCH"
- name: project_root
type: env
source: "PROJECT_ROOT"
(3) Variáveis de contexto
Injetadas a partir do contexto da conversa ou do projeto:
variables:
- name: tech_stack
type: context
source: "project.language"
- name: changed_files
type: context
source: "git.changed_files"
2. Sintaxe de templates
(1) Substituição básica
Por favor revise {{target_file}}, focando em problemas de nível {{severity_level}} ou superior.
(2) Renderização condicional
## Estratégia de revisão
{{#if tech_stack == "python"}}
Revise pelas convenções Python: type hints, docstrings, PEP 8
{{/if}}
{{#if tech_stack == "typescript"}}
Revise pelas convenções TypeScript: segurança de tipos, detecção de any, definições de interface
{{/if}}
(3) Renderização em loop
## Lista de arquivos alterados
{{#each changed_files}}
- {{this}}
{{/each}}
(4) Valores padrão e fallbacks
O estilo de código segue {{linter_config || "padrões da indústria"}}.
3. Validação de variáveis
(1) Validação de tipo
variables:
- name: max_lines
type: integer
min: 10
max: 500
default: 100
- name: output_format
type: enum
choices: ["markdown", "json", "table"]
default: "markdown"
(2) Verificação de campos obrigatórios
Fluxo de validação de variáveis:
1. Verificar se todas as variáveis obrigatórias foram fornecidas
2. Verificar se os tipos correspondem
3. Verificar se os valores estão dentro do intervalo de choices
4. Verificar restrições de min/max
5. Não fornecido mas tem padrão → Usar valor padrão
6. Falha na validação → Solicitar ao usuário que forneça
4. Variáveis na prática
▶ Exemplo: Skill de deploy parametrizado
Alice criou um Skill de deploy flexível:
---
name: smart-deploy
variables:
- name: environment
description: "Ambiente de deploy"
required: true
choices: ["staging", "production"]
- name: skip_tests
description: "Se deve pular os testes"
type: boolean
default: false
- name: rollback_on_fail
description: "Se deve reverter em caso de falha"
type: boolean
default: true
---
# Deploy para {{environment}}
{{#if skip_tests}}
⚠️ Pulando testes, deploy direto
{{/if}}
{{#if !skip_tests}}
1. Execute a suíte completa de testes
2. Confirme que todos os testes passaram
{{/if}}
3. Deploy para {{environment}}
{{#if rollback_on_fail}}
4. Verifique sucesso do deploy, rollback automático em caso de falha
{{/if}}
Bob comentou: "Parametrização faz um Skill valer por dez — staging e production não precisam de Skills separados, uma variável resolve."
❓ Perguntas Frequentes
P: Variáveis demais tornam o Skill complexo? R: Sim. Recomenda-se no máximo 5 variáveis principais e 3 opcionais. Se precisar de mais, considere dividir em múltiplos Skills. P: A sintaxe de template é a mesma em todas as plataformas? R: Não. Claude Code usa
{{var}}, Cursor usa$var, Copilot usa${var}. Este curso usa a sintaxe do Claude Code; os conceitos são universais e multiplataforma. P: Variáveis podem ser computadas dinamicamente em tempo de execução? R: Sim, através de variáveis de contexto e variáveis de ambiente. Mas computação complexa é melhor descrita como lógica em linguagem natural no prompt do Skill, deixando a IA raciocinar.
📖 Resumo
- Três tipos de variáveis: entrada do usuário, ambiente, contexto
- Sintaxe de template: substituição, condicionais, loops, valores padrão
- Validação de variáveis: tipo, obrigatório, restrições de intervalo
- Princípio de design: variáveis principais <5, definir padrões razoáveis
📝 Exercícios
- Básico (dificuldade⭐): Adicione uma variável
severity_levelao Skill code-review para controlar o nível de saída da revisão. - Intermediário (dificuldade⭐⭐): Crie um Skill de deploy parametrizado com suporte a seleção de ambiente, toggle de pular testes e variável de estratégia de rollback.
- Avançado (dificuldade⭐⭐⭐): Projete um sistema de validação de variáveis que trate verificações de tipo, dependências (ex.: produção exige approver) e padrões dinâmicos.