# Avaliações de Competências

> Como este repositório verifica se as suas competências realmente funcionam - antes de serem lançadas e em cada alteração posterior. Estrutura: uma pasta por competência, evals/<nome-da-competência/, espelhando o nome da competência. Estes ficheiros nunca são incluídos numa instalação; as pastas de competências contêm apenas o que é executado em tempo de execução.

- Fonte: https://doutorai.pt/apps/evals
- Categoria: Skills de Agentes
- Dificuldade: Médio
- Modelos: OpenAI, Claude
- Frameworks: -
- Corre local?: Precisa de APIs cloud
- Chaves necessárias: Nenhuma
- Licença: Apache-2.0
- Site: Doutor AI (https://doutorai.pt) - ferramentas de IA para pequenos negócios em português

## Tutorial completo

# Skill Evals

Como este repositório verifica se as suas habilidades realmente funcionam - antes de serem lançadas e em cada alteração posterior. Estrutura: uma pasta por habilidade, `evals/<skill-name>/`, espelhando o nome da habilidade. Estes ficheiros nunca são incluídos numa instalação; as pastas de habilidades contêm apenas o que é executado em tempo de execução.

O modelo de níveis segue
[addyosmani/agent-skills](https://github.com/addyosmani/agent-skills/tree/main/evals)
- mesmos nomes, mesmas funções - além de dois níveis próprios, porque as habilidades aqui incluem código executável e as dele não:

| Nível | O que verifica | Executa | Custo |
|---|---|---|---|
| 1. Estrutural | Frontmatter, nomenclatura, name==dir, espaços reservados não preenchidos, dumps de prompts apenas de texto (`tools/skill_lint.py --strict`) | CI | Gratuito |
| 1b. Segurança *(nossas)* | Iscas de instalação, chamadas de rede não declaradas, acesso a credenciais, payloads ofuscados (`tools/skill_scanner.py`) | CI | Gratuito |
| 2. Gatilho & roteamento | Prompts positivos clarificam negativos quase-miss em vocabulário de descrição; com 2+ habilidades, os positivos classificam a sua própria habilidade primeiro e não há duas descrições que quase colidam (`tools/run_trigger_evals.py`) | CI | Gratuito |
| 2b. Scripts determinísticos *(nossos)* | Os scripts agrupados da habilidade fazem o que afirmam - cada classificador, caso limite e forma de saída contra fixtures sintéticos (`<skill>/test_*.py`) | CI | Gratuito, ~10s |
| 3. Comportamental | Um agente seguindo a habilidade satisfaz as suas `expectations[]` - `evals.json` utiliza o [schema do skill-creator](https://github.com/anthropics/skills/tree/main/skills/skill-creator) palavra por palavra, por isso o seu `run_eval.py`, benchmarking e visualizador de eval funcionam contra os nossos ficheiros sem modificações | Sob demanda | Tokens |

## Execução

```bash
# Tiers 1–2b, exactly what CI runs - deterministic, git + Python only
python3 agent_skills/evals/tools/skill_lint.py agent_skills/project-graveyard --strict
python3 agent_skills/evals/tools/skill_scanner.py agent_skills
python3 agent_skills/evals/tools/run_trigger_evals.py
python3 agent_skills/evals/project-graveyard/test_graveyard.py
```

Tier 3 é sob demanda e gasta tokens: cada `evals.json` da habilidade está no esquema do criador de habilidades, por isso executa-o com as ferramentas da Anthropic (instala o plugin do criador de habilidades e aponta `run_eval.py` para o ficheiro), ou manualmente - nova sessão de agente, cola cada prompt, classifica em relação a `expectations[]`. Os casos marcados como `lexical: false` em `trigger-cases.json` (ativados por raciocínio, por exemplo, modo necromante) estão apenas cobertos aqui. Reexecuta o nível 3 sempre que o comportamento de `SKILL.md` mudar; reexecuta o nível 2 sempre que uma `description` mudar.

## Histórico

Não é teatro: o nível 1 detetou um erro de caminho de symlink que desativava silenciosamente a deteção de recaídas no macOS, e um revisor externo que o executou num checkout limpo do Linux detetou um erro de ordenação de sistema de ficheiros que atribuiu incorretamente a cadeia de eliminação. Ambos corrigidos antes da fusão. Esse é o trabalho.

## Adicionar uma habilidade

Nova habilidade → novo `evals/<skill-name>/` com, no mínimo, um `test_<skill>.py` determinístico (autónomo, fixtures de tempdir, saída 0/1) e um `trigger-cases.json`. O CI apanha `test_*.py` automaticamente.

## Poupe horas todas as semanas com IA, sem complicações

O **Doutor AI** dá-lhe 1859 prompts de IA prontos a copiar, por indústria e em português simples - mais uma biblioteca técnica completa para quem quer ir mais longe. [Ver planos →](https://doutorai.pt/precos)

---
Conteúdo de Doutor AI (https://doutorai.pt). Ao citar, indique a fonte: https://doutorai.pt/apps/evals
