Validador
O Validador AIMO garante que Evidence Packs e artefatos relacionados conformam aos schemas e requisitos do AIMO Standard.
Veja também: Protocolo de Supervisão Humana — limite de responsabilidade para revisão máquina vs. humano.
Validador na prática
Para um quickstart de 30 segundos (instalar, executar, interpretar saída), veja Hub do Validador.
Requisitos MVP do Validador
O validador mínimo viável DEVE realizar as seguintes verificações:
1. Validação de Campos Obrigatórios
Verificar que todos os campos obrigatórios estão presentes:
| Artefato | Campos Obrigatórios |
|---|---|
| Manifesto Evidence Pack | pack_id, pack_version, taxonomy_version, created_date, last_updated, codes, evidence_files |
| Objeto Codes | FS, UC, DT, CH, IM, RS, EV (OB opcional) |
| Entrada de Arquivo de Evidência | file_id (EP-01..EP-07), filename, title (ev_type / ev_codes opcional) |
2. Validação de Código de Dimensão
Verificar que cada dimensão obrigatória tem pelo menos um código:
| Dimensão | Requisito |
|---|---|
| FS (Escopo Funcional) | Exatamente 1 código |
| UC (Classe de Caso de Uso) | Pelo menos 1 código |
| DT (Tipo de Dados) | Pelo menos 1 código |
| CH (Canal) | Pelo menos 1 código |
| IM (Modo de Integração) | Exatamente 1 código |
| RS (Superfície de Risco) | Pelo menos 1 código |
| OB (Resultado / Benefício) | Opcional (0 ou mais) |
| LG (Tipo de Log/Registro) | Pelo menos 1 código |
3. Verificação de Existência no Dicionário
Validar que todos os códigos existem no dicionário de taxonomia:
- Carregar o dicionário de taxonomia para o
taxonomy_versionespecificado - Verificar que cada código no manifesto existe no dicionário
- Reportar códigos inválidos com sua dimensão e valor
4. Validação de Formato de Código
Verificar que todos os códigos correspondem ao formato esperado:
^(FS|UC|DT|CH|IM|RS|OB|LG)-\d{3}$
5. Validação de Schema
Validar contra JSON Schemas:
| Schema | Propósito |
|---|---|
evidence_pack_manifest.schema.json |
Manifestos de Evidence Pack |
taxonomy_pack.schema.json |
Definições de pacote de taxonomia |
changelog.schema.json |
Entradas de changelog |
Regras de Validação
Regra: Dimensões Obrigatórias
rule_id: required_dimensions
description: Todas as dimensões obrigatórias devem ter pelo menos um código
severity: error
check: |
- FS: exatamente 1
- UC: pelo menos 1
- DT: pelo menos 1
- CH: pelo menos 1
- IM: exatamente 1
- RS: pelo menos 1
- LG: pelo menos 1
Regra: Códigos Válidos
rule_id: valid_codes
description: Todos os códigos devem existir no dicionário de taxonomia
severity: error
check: |
Para cada código em manifest.codes:
- Código existe no dicionário para taxonomy_version especificado
- Status do código é 'active' (avisar se 'deprecated')
Regra: Formato de Código
rule_id: code_format
description: Todos os códigos devem corresponder ao formato padrão
severity: error
pattern: "^(FS|UC|DT|CH|IM|RS|OB|LG)-\\d{3}$"
Regra: Formato de Versão
rule_id: version_format
description: Versões devem ser SemVer válido
severity: error
pattern: "^\\d+\\.\\d+\\.\\d+$"
fields:
- pack_version
- taxonomy_version
Formato de Saída de Erro
Erros de validação são reportados no seguinte formato:
<caminho>: <severidade>: <mensagem>
Exemplos:
codes.FS: error: Dimensão obrigatória 'FS' não tem códigos
codes.UC[0]: error: Código 'UC-999' não existe no dicionário v0.1.0
pack_version: error: Formato de versão inválido 'v1.0' (esperado SemVer)
codes.RS[1]: warning: Código 'RS-002' está deprecated em v0.2.0
O que o Validador NÃO Verifica
O validador foca em conformidade estrutural, não qualidade de conteúdo:
| Aspecto | Razão |
|---|---|
| Precisão de conteúdo | Validador verifica estrutura, não significado |
| Completude de evidências | Templates são guias, não formatos aplicados |
| Resolução de referências cruzadas | Existência de arquivo não verificada |
| Validade de timestamp | ISO-8601 não estritamente validado |
| Unicidade de ID | Não aplicado atualmente |
| Hashes de integridade | Responsabilidade do adotante |
Implementação de Referência
Uma implementação de referência é fornecida em Python:
validator/src/validate.py
Uso
python validator/src/validate.py <manifest.json>
Saída de Exemplo
Validating: evidence_pack_manifest.json
Taxonomy version: 0.1.0
Checking required dimensions...
FS: OK (1 código)
UC: OK (3 códigos)
DT: OK (1 código)
CH: OK (1 código)
IM: OK (1 código)
RS: OK (3 códigos)
OB: OK (2 códigos)
LG: OK (7 códigos)
Checking code validity...
Todos os códigos válidos.
Validation: PASSED
Política de Versionamento
Regras do validador seguem SemVer:
- MAJOR: Breaking changes de regras (novas verificações obrigatórias que falham packs válidos existentes)
- MINOR: Novas verificações opcionais, avisos ou mensagens informativas
- PATCH: Correções de bug que não mudam resultados de validação
Referências de Schema
| Schema | Localização |
|---|---|
| Evidence Pack Manifest | source_pack/04_evidence_pack/schemas/evidence_pack_manifest.schema.json |
| Taxonomy Pack | source_pack/03_taxonomy/schemas/taxonomy_pack.schema.json |
| Changelog | source_pack/03_taxonomy/schemas/changelog.schema.json |
Referências
- Taxonomia - Definições de dimensão
- Códigos - Formato de código
- Dicionário - Dicionário de códigos
- Regras do Validador - Documentação completa de regras