Set-OPS-Public/docs/audit/preuve-2026-07-23.md
Daniel Allaire 36a882b125 Adressage derive du seul seed index (rupture, mode compact retire)
Principe : les valeurs de configuration se derivent des intrants, elles ne se
reecrivent pas a la main. La nomenclature dupliquait ce qu'index determine deja
(supernet, sous-reseaux, passerelles, VLAN). Corrige en rupture nette.

- inventory_rules : source unique de derivation — supernet_de, base3_de,
  sous_reseau_de, passerelle_de, vlan_de. Modele 6 zones encode une fois
  (2e octet = 10+index, 3e octet zone = 15+categorie, VLAN = 1000+index*10+zone).
  deriver_nomenclature ne lit plus aucun adressage stocke ; mode compact supprime.
- devis_reseau : importe ces helpers (fin de la duplication) ; decouvre les
  tenants sur `index` present (filtre vmid_schema retire).
- GUI : `index` devient un INTRANT (section Reseau). Il vit dans la nomenclature
  (plan reseau uniforme, contrairement aux intrants des modeles heterogenes) et
  le GUI l'ecrit chirurgicalement (une ligne, sans reformater). Le miroir JS
  derive le VLAN du seed (fin de la lecture de c.vlan stocke).
- socle public : nomenclature au format maigre.

Preuve P20 (preuve_nomenclature_derivee) : aucune nomenclature ne stocke
d'adressage — garde-fou permanent, teste en negatif.

Valide : DIFF VIDE sur les 3 instances (la derivation reproduit exactement
l'adressage stocke), 7 modeles valident, devis_reseau genere les memes VLAN
(1011-1016 derives), make verifier rc=0 CONFORME 20/20, node --check du GUI OK.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 02:58:15 -04:00

4 KiB

Preuve de conformite — Set-OPS — 2026-07-23

Genere par make prouver (scripts/prouver.py). Rejouable : relancer reproduit ce rapport. Chaque preuve rejoue l'outillage existant du depot ; aucune validation n'est reimplementee ici. Voir le mode d'emploi : docs/audit/README.md, et le registre trace : docs/audit/affirmations.md.

  • Instance : instance — inventaire instance/inventories/principal/hosts.yml
  • Verdict : CONFORME (20 OK · 0 echec · 0 saute)

Preuves

# Preuve Affirmations Statut Detail
P01 Lint (ansible-lint) AFF-006 OK
P02 Tests unitaires (inventory_host) OK 4 tests passes.
P03 Diff-vide du plan (inventaire genere) AFF-001, AFF-004, AFF-030, AFF-031, AFF-032 OK DIFF VIDE : le plan reproduit exactement l'inventaire actuel. Bascule possible.
P04 Groupes <-> playbooks homonymes AFF-008 OK
P05 Dependances causales de groupes AFF-009, AFF-084 OK
P06 Validateurs de registres (serveurs/apps/bases/domaines) AFF-003 OK Registre des domaines valide.
P07 GUI (node --check) AFF-033 OK JS du GUI : syntaxe valide (node --check).
P08 Orchestration (couches + graphe) AFF-070 OK Orchestration coherente : 30 groupes classes, aucun cycle, aucune arete en arriere.
P09 Flux reseau (schema + matrice) AFF-071 OK Flux coherents : 29 rôles, 63 flux, schéma + matrice OK.
P10 Handlers <-> notify AFF-034, AFF-035 OK Tout notify pointe vers un handler du meme role (49 roles).
P11 Syntaxe des playbooks (--syntax-check) AFF-083 OK playbook: playbooks/proxmox/cloner_vm_debian.yml
P12 Existence des runbooks cites AFF-010, AFF-011, AFF-012, AFF-083 OK 17/17 runbooks/registres cites presents.
P13 Invariants structurels/doctrinaux AFF-015, AFF-022, AFF-037, AFF-038, AFF-062 OK LICENSE, socle dossier, pas de couches paralleles, SSH clef-only, nftables off : OK.
P14 Pas de chemin lab/ code en dur AFF-097 OK Aucun chemin instance/inventories/lab/group_vars code en dur.
P15 Modele public socle valide AFF-022, AFF-099 OK Modele public socle : domaines/serveurs/applications/bases valides.
P16 Inventaire Ansible complet (--list) AFF-030 OK 14 hotes, 31 groupes (inventaire dechiffre et parse).
P17 Tous les modeles d'instance valident AFF-022, AFF-099 OK Les 7 modele(s) decouvert(s) valident.
P18 Gabarit de voute complet AFF-026 OK Gabarit de voute complet : 23 secret(s) exige(s), tous presents.
P19 Le GUI couvre le schema du plan AFF-002, AFF-095 OK GUI : les 27 champ(s) des plans reels sont editables (8 plan(s) inspecte(s)), registres toleres : nomenclature.
P20 Adressage 100% derive du seed (aucun stocke) AFF-001, AFF-003 OK 8 nomenclature(s) : adressage 100% derive du seed index.

Couverture des affirmations du registre

Chaque affirmation automatisable est couverte par la preuve indiquee ci-dessus. Les structurelles/doctrinales non rejouables par une commande (ex. AFF-005 make=aide, AFF-014 ciblage groupe, AFF-024 instancier-appliquer, AFF-051 autorite d'AGENTS.md, AFF-073/075 gardes make, AFF-090 wiki) ont ete verifiees a l'audit ; elles restent hors du harnais recurrent (rien d'executable a rejouer).

Declarations d'intention ( invérifiables localement — assumees)

Ces affirmations ne sont pas rejouables hors production ; elles sont assumees comme declarations d'intention, non comme preuves :

  • AFF-036 — « testables avec --check autant que possible » : verifiable seulement contre une flotte vivante.
  • AFF-091 — contenu pedagogique du wiki : affirmations conceptuelles.
  • AFF-096 — « GUI 100 % francais » : revue exhaustive des libelles rendus, non automatisee.
  • AFF-007 — hote d'exemple web-frontal-01 : placeholder assume.

Rapport genere le 2026-07-23.