97 lines
2.3 KiB
Markdown
97 lines
2.3 KiB
Markdown
# Criterios de Analise - Skill Sentinel
|
|
|
|
## Scoring por Dimensao
|
|
|
|
Cada dimensao inicia com score 100 e sofre deducoes por violacoes encontradas.
|
|
Score final: max(0, min(100, score)).
|
|
|
|
### Qualidade de Codigo
|
|
|
|
| Criterio | Penalidade | Limiar |
|
|
|----------|-----------|---------|
|
|
| Complexidade ciclomatica > 10 | -5 por funcao | CC > 10 |
|
|
| Funcao > 50 linhas | -3 por funcao | > 50 linhas |
|
|
| Arquivo > 500 linhas | -5 por arquivo | > 500 linhas |
|
|
| Funcao publica sem docstring | -1 por funcao | Publicas (sem _) |
|
|
| Bare except | -8 por ocorrencia | `except:` |
|
|
| except Exception sem log | -3 por ocorrencia | Sem logging |
|
|
| Erro de sintaxe | -15 por arquivo | SyntaxError |
|
|
|
|
### Seguranca
|
|
|
|
| Criterio | Penalidade |
|
|
|----------|-----------|
|
|
| Secret hardcoded (critical) | -20 |
|
|
| SQL injection (high) | -15 |
|
|
| Token em log (high) | -10 |
|
|
| URL HTTP insegura (medium) | -5 |
|
|
| Input validation fraca (low) | -2 |
|
|
| Bonus: modulo auth | +5 |
|
|
| Bonus: usa env vars | +5 |
|
|
|
|
### Performance
|
|
|
|
| Criterio | Penalidade |
|
|
|----------|-----------|
|
|
| Sem retry/backoff | -10 |
|
|
| Sem timeout | -5 |
|
|
| Sem connection reuse | -3 |
|
|
| N+1 query | -8 |
|
|
| Conexao em loop | -5 |
|
|
| Bonus: retry | +5 |
|
|
| Bonus: async/concurrency | +5 |
|
|
| Bonus: caching | +3 |
|
|
|
|
### Governanca
|
|
|
|
Score direto baseado no nivel de maturidade:
|
|
- Nivel 0 (nenhuma): 0 pts
|
|
- Nivel 1 (action log): 25 pts
|
|
- Nivel 2 (+ rate limit): 50 pts
|
|
- Nivel 3 (+ confirmacoes): 75 pts
|
|
- Nivel 4 (+ alertas): 100 pts
|
|
|
|
### Documentacao
|
|
|
|
| Criterio | Penalidade |
|
|
|----------|-----------|
|
|
| Sem campo name no frontmatter | -20 |
|
|
| Sem campo description | -20 |
|
|
| Sem campo version | -3 |
|
|
| Triggers fracas (< 10 palavras) | -10 |
|
|
| Secao recomendada faltando | -3 cada |
|
|
| References vazio | -5 |
|
|
| SKILL.md < 20 linhas | -10 |
|
|
|
|
### Dependencias
|
|
|
|
| Criterio | Penalidade |
|
|
|----------|-----------|
|
|
| Sem requirements.txt | -15 |
|
|
| Versao nao pinada | -2 por dep |
|
|
| Dep importada nao listada | -2 por dep |
|
|
|
|
## Score Composto
|
|
|
|
```
|
|
overall = sum(score_dimensao * peso_dimensao) / sum(pesos)
|
|
```
|
|
|
|
Pesos padrao:
|
|
- code_quality: 0.20
|
|
- security: 0.20
|
|
- performance: 0.15
|
|
- governance: 0.15
|
|
- documentation: 0.15
|
|
- dependencies: 0.15
|
|
|
|
## Labels
|
|
|
|
| Range | Label |
|
|
|-------|-------|
|
|
| 90-100 | Excelente |
|
|
| 75-89 | Bom |
|
|
| 50-74 | Adequado |
|
|
| 25-49 | Precisa melhorar |
|
|
| 0-24 | Critico |
|