# example-skill > Exemplo completo de skill com todas as funcionalidades. Use quando precisar demonstrar o sistema de skills. - Author: Brev Mídias - Repository: brevMidias/JarvisServer - Version: 20260126220414 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/brevMidias/JarvisServer - Web: https://mule.run/skillshub/@@brevMidias/JarvisServer~example-skill:20260126220414 --- --- name: example-skill description: Exemplo completo de skill com todas as funcionalidades. Use quando precisar demonstrar o sistema de skills. metadata: {"jarvis":{"emoji":"🎯","requires":{"bins":["node"],"anyBins":["curl","wget"],"env":["EXAMPLE_API_KEY"]},"platforms":["darwin","linux","win32"]}} --- # 🎯 Example Skill Esta é uma skill de exemplo que demonstra todas as funcionalidades do sistema de skills melhorado. ## Funcionalidades Demonstradas ### 1. Verificação de Binários (bins) Esta skill requer que `node` esteja instalado no sistema. ### 2. Binários Alternativos (anyBins) Pelo menos um dos seguintes deve estar disponível: - `curl` (preferencial) - `wget` (alternativa) ### 3. Variáveis de Ambiente Requer: `EXAMPLE_API_KEY` (pode vir de process.env ou skills.config.json) ### 4. Multi-plataforma Funciona em macOS, Linux e Windows. ## Como Usar ### Formato 1: Comando direto ``` /example-skill "seu argumento aqui" ``` ### Formato 2: Comando genérico ``` /skill example-skill "seu argumento aqui" ``` ## Configuração Adicione ao `skills.config.json`: ```json { "skills": { "entries": { "example-skill": { "enabled": true, "env": { "EXAMPLE_API_KEY": "sua_chave_aqui" }, "config": { "timeout": 5000, "debug": true } } } } } ``` ## Capabilities Esta skill pode: - ✅ Detectar automaticamente se está habilitada - ✅ Hot reload quando modificada - ✅ Verificar dependências (bins e env vars) - ✅ Receber configurações customizadas - ✅ Ser invocada via comando de usuário ## Exemplo de Implementação ```typescript // Processar comando da skill const result = skillManager.handleSkillCommand('/example-skill "test"'); if (result) { const { skill, args } = result; // Aplicar env overrides const cleanup = skillManager.applySkillEnvOverrides(skill.name); try { // Acessar variáveis de ambiente const apiKey = process.env.EXAMPLE_API_KEY; // Acessar configurações customizadas const skillConfig = skillsConfig?.entries?.[skill.name]; const timeout = skillConfig?.config?.timeout || 5000; // Executar lógica da skill console.log(`Executando com args: ${args}`); console.log(`Timeout: ${timeout}ms`); } finally { // Restaurar env vars originais cleanup(); } } ``` ## Testing Para testar esta skill: 1. Verifique se está ativa: ```bash GET /api/skills/stats ``` 2. Teste o comando: ``` /example-skill "hello world" ``` 3. Modifique este arquivo e observe o hot reload nos logs: ``` 📝 Skill file changed: .../SKILL.md 🔄 Reloading skills due to changed... ✅ Loaded N skills (X eligible) ``` ## Observações - Esta skill é sempre elegível pois `node` geralmente está disponível - Se `curl` e `wget` não estiverem disponíveis, a skill ficará inelegível - Env vars podem vir do sistema ou do config da skill - Modificações neste arquivo recarregam automaticamente (se hot reload estiver ativo) --- **Criado por:** Sistema de Skills do Jarvis **Versão:** 2.0 (com hot reload, bins check, anyBins, comandos de usuário, config per-skill)