Set-OPS-Public/scripts
Daniel Allaire ac85278366 preuve : P34 — chaque document declare son lecteur (D-74)
La refonte de ce matin posait une convention. Une convention qu'on n'outille
pas tient tant que quelqu'un y pense : c'est le raisonnement de D-70, applique
au corpus documentaire.

Etat de depart mesure : 2 documents sur 34 declaraient leur lecteur. Les 32
autres disaient leur SUJET — ce qui avait enfoui le runbook de reprise le plus
utile du depot au §6 de autorisation.md.

Les 38 le declarent desormais, lecteur determine document par document et non
colle au gabarit : l'exploitant (devis, migration de tenant, cycle de vie,
gabarit d'or), le mainteneur (conceptions, registres, carte), le lecteur
externe (ecosysteme-chezlepro), l'agent IA (MISE-A-JOUR-CODEX-CLAUDE).

Deux exemptions DERIVEES, pas listees — un chemin en dur aurait vieilli a la
premiere page ajoutee : un document qui s'annonce genere, et un fragment sans
titre. Les 13 exemptes verifies un par un ; aucun document ecrit a la main
n'est exempte par accident. La preuve ne lit que l'EN-TETE, ce qui empeche
frontiere-opnsense.md et plan-et-generation.md — qui parlent de generation
dans leur corps — d'etre exemptes a tort.

Eprouvee dans les deux sens. Elle a echoue seule des sa premiere execution en
nommant deux documents que mon inventaire avait manques (docs/audit/). Puis
test negatif delibere : declaration retiree de meta-classe.md -> ECHEC la
nommant ; restauree -> OK.

Ce qu'elle ne teste pas : que le lecteur declare soit le BON. Ca se juge en
revue ; elle garantit qu'on a du y penser.

P01–P34. Comptes perimes corriges au passage (AGENTS.md et devis-services.md
annoncaient encore 30 preuves).

Verifie : prouver.py 0 (34 OK), plan-recette inchange.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 07:53:04 -04:00
..
tests test : epingler SETOPS_DOMAINE dans le contrat de parametres-proxmox 2026-08-09 10:26:44 -04:00
applications.py Trois preuves qui regardent au-dela d'une seule instance + champ liens/websocket au GUI 2026-07-22 21:32:42 -04:00
appliquer_opnsense.py frontiere : « vers Internet » n'est plus « vers n'importe ou » 2026-08-09 17:00:08 -04:00
appliquer_proxmox_fw.py premiere VM tenant : quatre defauts leves sur le chemin 2026-08-06 20:33:12 -04:00
appliquer_sdn.py proxmox-fw : un applicateur, et un refus assume 2026-08-06 19:39:33 -04:00
bases_donnees.py Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
config_proxmox.py intégrations : le rôle déclare sa politique ; le cluster passe à l'hébergeur 2026-08-03 14:09:22 -04:00
couverture_gui.py Trois preuves qui regardent au-dela d'une seule instance + champ liens/websocket au GUI 2026-07-22 21:32:42 -04:00
devis_certificats.py devis des certificats : disque contre memoire, et l'AC etait expiree 2026-08-08 07:20:56 -04:00
devis_courriel.py courriel : routage local par identifiant, et la livraison interne remise en marche 2026-08-08 09:42:45 -04:00
devis_expositions.py devis des expositions : une vraie requete, depuis deux points de vue 2026-08-08 07:33:49 -04:00
devis_frontiere.py frontiere : etanche — CONFORME sur 56 lignes, dans les deux sens 2026-08-09 21:33:04 -04:00
devis_identite.py devis d'identite : comparer le deploye au declare 2026-08-08 06:55:06 -04:00
devis_opnsense.py frontiere : etanche — CONFORME sur 56 lignes, dans les deux sens 2026-08-09 21:33:04 -04:00
devis_postgresql.py devis PostgreSQL et courriel : la serie des devis de service est complete 2026-08-08 08:53:49 -04:00
devis_proxmox_fw.py flux : admin devient un pair, et make ca-racine livre la racine 2026-08-07 17:26:35 -04:00
devis_proxmox_pools.py proxmox : pools créés, jeton normalisé, reliquat de voûte supprimé 2026-08-03 15:52:44 -04:00
devis_reseau.py nommage : bifrost-N, où N est le dernier octet (D-60 ; D-12 renversée) 2026-08-04 20:01:10 -04:00
devis_sdn.py SDN : un puits sur le supernet du tenant dans son propre VRF 2026-08-09 16:01:24 -04:00
domaines.py Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
instance_creer.py Créer une instance depuis un modèle (CLI + GUI) 2026-07-23 14:13:36 -04:00
instances.py Multi-instances : make instances (vue + collision) + preuve P21 2026-07-23 11:26:01 -04:00
instancier.py instancier : emet setops_supernet, derive du seed 2026-08-07 10:33:25 -04:00
inventory_gui.py docs : tisser les devis dans les points d'entree, et corriger trois faits perimes 2026-08-08 12:33:35 -04:00
inventory_host.py gabarit : deriver le domaine de recherche, et vider resolv.conf a la capture 2026-08-09 10:25:03 -04:00
inventory_rules.py empreintes muettes, courses de premier demarrage, collision de noms 2026-08-07 16:22:38 -04:00
model_creer.py Créer un modèle (make model-creer) — base + promotion d'instance 2026-07-23 14:43:06 -04:00
modeles.py modèles : l'underlay devient modélisable, et P17 le valide 2026-08-02 17:11:18 -04:00
orchestrer.py Mise en conformité prouvable : registre d'affirmations + make prouver 2026-07-20 19:53:18 -04:00
plan_recette.py Plan de recette (P22) : le pendant manuel de make prouver 2026-07-23 15:49:16 -04:00
prouver.py preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
proxmox_api.py proxmox-fw : un applicateur, et un refus assume 2026-08-06 19:39:33 -04:00
raser.py bascule du plan sur le gabarit recapture, prouvee par une VM reelle 2026-08-09 11:50:34 -04:00
resoudre_flux.py flux : admin devient un pair, et make ca-racine livre la racine 2026-08-07 17:26:35 -04:00
serveurs.py intégrations : le rôle déclare sa politique ; le cluster passe à l'hébergeur 2026-08-03 14:09:22 -04:00
socle_amorcage.py D-71 : PKI et DNS debout avant tout, et la zone inverse manquait 2026-08-08 15:29:57 -04:00
sonde_tcp.py frontiere : etanche — CONFORME sur 56 lignes, dans les deux sens 2026-08-09 21:33:04 -04:00
underlay.py underlay : l'invariant du dernier octet retrouve sa portée (D-04, D-52 à D-54) 2026-08-04 14:46:06 -04:00
verifier_gui.py Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
verifier_intrants.py P32 / D-72 : tout intrant exige par un role est fourni par l'instance 2026-08-09 09:40:25 -04:00
verifier_ports.py P33 / D-73 : aucune collision de port entre roles co-localises 2026-08-09 09:46:17 -04:00
voute.py amorcage_acces : le role qui cree UN acces puis se retire 2026-08-07 13:42:27 -04:00