Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Audits a Claude Code / Agent SDK skill (or folder of skills) against 10 QA checks to verify it will trigger and execute correctly in any LLM (Claude, GPT, Gemini). Ativa quando o usuário diz "audit my skill", "roda skill-audit", "verifica se essa skill funciona", "check skill quality", "skill-audit ./my-skill", "minha skill não dispara", "migrei do Claude antigo e quebrou", ou colar path de um SKILL.md. Retorna score 0-10 por skill, issues priorizados, e sugestões de conserto. NÃO use para: cria
.claude/skills/okjpg-skill-audit/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 101% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 66% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 92% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 88% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 87% | 0% |
Auditoria estática de SKILL.md contra o padrão V3 (LLM-friendly). Roda 10 QA checks, detecta issues mecânicos e semânticos, entrega report priorizado. Útil especialmente pra quem migrou de Claude pre-4.5 — skills antigas costumam funcionar só no contexto do autor, não em agentes externos.
Aciona quando:
Exemplos literais de mensagens:
NÃO aciona se:
criar-skill ou skill-creatorSKILL.md (ex: script Python, README) → refatoração genérica| Parâmetro | Tipo | Obrigatório | Descrição | |-----------|------|-------------|-----------| | path | string | ✅ | Path de um SKILL.md OU pasta contendo subpastas com SKILL.md (recursivo) | | format | string | ❌ | markdown (default) ou json — formato do report |
| Campo | Tipo | Descrição | |-------|------|-----------| | score | int 0-10 | Quantos dos 10 QA checks a skill passa | | issues | array | Lista priorizada de problemas (ex: desc_no_triggers, examples_too_few) | | by_category | object | Score médio e passing rate por categoria de skill | | report | markdown | Report completo com ranking + detalhamento por skill |
Formato de entrega: arquivo markdown em ./audit-results.md + resumo no terminal.
.md ou diretório?.md → lista únicaglob **/SKILL.md recursivo no diretório--- ... ---) ou ~~~)./audit-results.md com:references/qa-checklist.md)## When NOT to Useevals/evals.json existe com 2+ casosmissing_frontmatteryaml_parse_errorevals/ existe mas sem evals.json → issue no_evals_folderlong, sugere mover conteúdo para references/link, url, path) em markdown link → ignorado (não conta como broken ref)Input real: skill-audit ./my-skill/SKILL.md
Workflow executado:
./my-skill/SKILL.md existename: my-skill, description de 32 palavras## When to Use, falta ## When NOT to UseOutput real:
skill-audit: 1 skill analisada
my-skill — 6/10 (232L, 32w desc, 4 triggers, 1 ex, 4 edge, evals ✗)
Issues: desc_too_short(32w), desc_no_negatives, examples_too_few(1), no_evals_folder
Report: ./audit-results.mdInput real: skill-audit ~/my-claude-skills/
Workflow executado:
~/my-claude-skills/ é diretórioSKILL.mdOutput real:
skill-audit: 12 skills analisadas
Score médio: 7.1/10
Passing (≥7): 4/12 (33%)
Top 3 issues mais comuns:
desc_no_negatives (12, 100%)
no_evals_folder (9, 75%)
desc_too_short (7, 58%)
Worst offenders:
1. legacy-skill-x — 3/10
2. migrated-from-gpt — 4/10
3. old-claude35-skill — 5/10
Report: ./audit-results.mdtemplates/SKILL-TEMPLATE.md + references/qa-checklist.md (read-only)| Erro | Causa provável | Fix | |------|----------------|-----| | Path não encontrado | Path inválido ou digitado errado | Verificar path absoluto; usar ls {path} pra confirmar | | yaml.YAMLError | Frontmatter mal formado | Abrir SKILL.md, verificar indentação e fechamento --- | | UnicodeDecodeError | SKILL.md em encoding não-UTF8 | Salvar como UTF-8 no editor | | ModuleNotFoundError: yaml | PyYAML ausente | pip3 install pyyaml | | Report não gerado | Permissão de escrita em ./audit-results.md | Rodar de diretório com permissão de escrita |
Sobre o score: 7/10 é o mínimo aceitável pra considerar uma skill "trigger-confiável" em LLMs externos. 10/10 é ideal. Abaixo de 7 geralmente significa que a skill foi escrita em prosa livre e não em contrato executável — formato comum em skills pre-V3.
Sobre evals.json: o check 10 não valida conteúdo dos evals, só presença do arquivo e estrutura mínima (2+ casos com prompt e expected_output). Qualidade dos evals é trabalho do autor da skill, não do audit.
Limitações conhecidas:
densas — revisar issues manualmente quando score for borderline (6-7)
Deriva de auditoria em 119 skills do workspace Amora (score médio 5.9 → 10.0).
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 17,675 | 2,394 | -86% | 1 | 1 | 0% | 4,339 | 2,654 | -39% | 0 | 0 | — |
case-15 | pass→pass | 8,288 | 3,073 | -63% | 1 | 1 | 0% | 1,607 | 2,844 | +77% | 0 | 0 | — |
case-20 | fail→fail | 13,372 | 7,719 | -42% | 1 | 1 | 0% | 2,808 | 3,921 | +40% | 0 | 0 | — |
case-02 | fail→fail | 18,829 | 9,804 | -48% | 1 | 1 | 0% | 3,865 | 3,420 | -12% | 0 | 0 | — |
case-03 | fail→fail | 17,234 | 2,578 | -85% | 1 | 1 | 0% | 4,097 | 2,671 | -35% | 0 | 0 | — |
case-04 | fail→pass | 6,371 | 1,838 | -71% | 1 | 1 | 0% | 1,298 | 2,608 | +101% | 0 | 0 | — |
case-05 | fail→pass | 8,881 | 3,133 | -65% | 1 | 1 | 0% | 1,688 | 2,798 | +66% | 0 | 0 | — |
case-06 | pass→pass | 7,739 | 3,000 | -61% | 1 | 1 | 0% | 1,596 | 2,831 | +77% | 0 | 0 | — |
case-07 | fail→pass | 7,660 | 3,071 | -60% | 1 | 1 | 0% | 1,511 | 2,894 | +92% | 0 | 0 | — |
case-08 | fail→pass | 6,882 | 2,276 | -67% | 1 | 1 | 0% | 1,423 | 2,681 | +88% | 0 | 0 | — |
case-09 | pass→pass | 7,764 | 1,822 | -77% | 1 | 1 | 0% | 1,566 | 2,619 | +67% | 0 | 0 | — |
case-10 | pass→pass | 5,984 | 2,649 | -56% | 1 | 1 | 0% | 1,157 | 2,773 | +140% | 0 | 0 | — |
case-21 | pass→pass | 3,809 | 5,569 | +46% | 1 | 1 | 0% | 746 | 3,338 | +347% | 0 | 0 | — |
case-11 | fail→pass | 6,538 | 1,687 | -74% | 1 | 1 | 0% | 1,390 | 2,601 | +87% | 0 | 0 | — |
case-12 | fail→pass | 6,959 | 2,963 | -57% | 1 | 1 | 0% | 1,351 | 2,830 | +109% | 0 | 0 | — |
case-13 | fail→pass | 3,006 | 2,524 | -16% | 1 | 1 | 0% | 597 | 2,752 | +361% | 0 | 0 | — |
case-14 | fail→fail | 7,859 | 4,438 | -44% | 1 | 1 | 0% | 1,645 | 3,249 | +98% | 0 | 0 | — |
case-16 | pass→pass | 9,329 | 6,040 | -35% | 1 | 1 | 0% | 1,800 | 3,566 | +98% | 0 | 0 | — |
case-17 | fail→pass | 8,677 | 3,553 | -59% | 1 | 1 | 0% | 1,754 | 3,092 | +76% | 0 | 0 | — |
case-18 | fail→pass | 8,271 | 1,835 | -78% | 1 | 1 | 0% | 1,713 | 2,633 | +54% | 0 | 0 | — |
case-19 | pass→pass | 4,408 | 2,209 | -50% | 1 | 1 | 0% | 865 | 2,805 | +224% | 0 | 0 | — |
case-22 | fail→fail | 6,169 | 7,437 | +21% | 1 | 1 | 0% | 736 | 3,304 | +349% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +41 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.