Validateur
Le validateur AIMO assure que les packs de preuves et artefacts associés sont conformes aux schémas et exigences du standard AIMO.
Voir aussi : Protocole de surveillance humaine — limite de responsabilité pour la revue machine vs humaine.
Le validateur en pratique
Pour un démarrage rapide en 30 secondes (installer, exécuter, interpréter la sortie), voir Hub validateur.
Exigences MVP du validateur
Le validateur minimum viable DOIT effectuer les vérifications suivantes :
1. Validation des champs requis
Vérifier que tous les champs obligatoires sont présents :
| Artefact | Champs requis |
|---|---|
| Manifeste du pack de preuves | pack_id, pack_version, taxonomy_version, created_date, last_updated, codes, evidence_files |
| Objet codes | FS, UC, DT, CH, IM, RS, EV (OB optionnel) |
| Entrée de fichier de preuve | file_id (EP-01..EP-07), filename, title (ev_type / ev_codes optionnel) |
2. Validation des codes de dimension
Vérifier que chaque dimension requise a au moins un code :
| Dimension | Exigence |
|---|---|
| FS (Périmètre fonctionnel) | Exactement 1 code |
| UC (Classe de cas d'usage) | Au moins 1 code |
| DT (Type de données) | Au moins 1 code |
| CH (Canal) | Au moins 1 code |
| IM (Mode d'intégration) | Exactement 1 code |
| RS (Surface de risque) | Au moins 1 code |
| OB (Résultat / Bénéfice) | Optionnel (0 ou plus) |
| LG (Type de log/événement) | Au moins 1 code |
3. Vérification d'existence dans le dictionnaire
Valider que tous les codes existent dans le dictionnaire de taxonomie :
- Charger le dictionnaire de taxonomie pour la
taxonomy_versionspécifiée - Vérifier que chaque code dans le manifeste existe dans le dictionnaire
- Signaler les codes invalides avec leur dimension et valeur
4. Validation du format de code
Vérifier que tous les codes correspondent au format attendu :
^(FS|UC|DT|CH|IM|RS|OB|LG)-\d{3}$
5. Validation de schéma
Valider par rapport aux schémas JSON :
| Schéma | Objectif |
|---|---|
evidence_pack_manifest.schema.json |
Manifestes de pack de preuves |
taxonomy_pack.schema.json |
Définitions de pack de taxonomie |
changelog.schema.json |
Entrées de changelog |
Règles de validation
Règle : Dimensions requises
rule_id: required_dimensions
description: Toutes les dimensions requises doivent avoir au moins un code
severity: error
check: |
- FS: exactement 1
- UC: au moins 1
- DT: au moins 1
- CH: au moins 1
- IM: exactement 1
- RS: au moins 1
- LG: au moins 1
Règle : Codes valides
rule_id: valid_codes
description: Tous les codes doivent exister dans le dictionnaire de taxonomie
severity: error
check: |
Pour chaque code dans manifest.codes:
- Le code existe dans le dictionnaire pour la taxonomy_version spécifiée
- Le statut du code est 'active' (avertir si 'deprecated')
Règle : Format de code
rule_id: code_format
description: Tous les codes doivent correspondre au format standard
severity: error
pattern: "^(FS|UC|DT|CH|IM|RS|OB|LG)-\\d{3}$"
Règle : Format de version
rule_id: version_format
description: Les versions doivent être du SemVer valide
severity: error
pattern: "^\\d+\\.\\d+\\.\\d+$"
fields:
- pack_version
- taxonomy_version
Format de sortie des erreurs
Les erreurs de validation sont signalées dans le format suivant :
<chemin>: <sévérité>: <message>
Exemples :
codes.FS: error: La dimension requise 'FS' n'a pas de codes
codes.UC[0]: error: Le code 'UC-999' n'existe pas dans le dictionnaire v0.1.0
pack_version: error: Format de version invalide 'v1.0' (SemVer attendu)
codes.RS[1]: warning: Le code 'RS-002' est déprécié en v0.2.0
Ce que le validateur ne vérifie PAS
Le validateur se concentre sur la conformité structurelle, pas la qualité du contenu :
| Aspect | Raison |
|---|---|
| Exactitude du contenu | Le validateur vérifie la structure, pas la signification |
| Complétude des preuves | Les modèles sont des guides, pas des formats imposés |
| Résolution des références croisées | L'existence des fichiers n'est pas vérifiée |
| Validité des horodatages | ISO-8601 n'est pas strictement validé |
| Unicité des ID | Pas actuellement imposé |
| Hachages d'intégrité | Responsabilité de l'adopteur |
Implémentation de référence
Une implémentation de référence est fournie en Python :
validator/src/validate.py
Utilisation
python validator/src/validate.py <manifest.json>
Exemple de sortie
Validating: evidence_pack_manifest.json
Taxonomy version: 0.1.0
Checking required dimensions...
FS: OK (1 code)
UC: OK (3 codes)
DT: OK (1 code)
CH: OK (1 code)
IM: OK (1 code)
RS: OK (3 codes)
OB: OK (2 codes)
LG: OK (7 codes)
Checking code validity...
All codes valid.
Validation: PASSED
Politique de versionnement
Les règles du validateur suivent SemVer :
- MAJEUR : Changements de règles cassants (nouvelles vérifications requises qui échouent sur des packs existants valides)
- MINEUR : Nouvelles vérifications optionnelles, avertissements ou messages informatifs
- PATCH : Corrections de bugs qui ne changent pas les résultats de validation
Références de schémas
| Schéma | Emplacement |
|---|---|
| Manifeste de pack de preuves | source_pack/04_evidence_pack/schemas/evidence_pack_manifest.schema.json |
| Pack de taxonomie | source_pack/03_taxonomy/schemas/taxonomy_pack.schema.json |
| Changelog | source_pack/03_taxonomy/schemas/changelog.schema.json |
Références
- Taxonomie - Définitions des dimensions
- Codes - Format des codes
- Dictionnaire - Dictionnaire des codes
- Règles du validateur - Documentation complète des règles