Some checks failed
verifier / verifier (push) Has been cancelled
La revision a commence par un balayage par motifs — chemins morts, cibles make absentes, comptes derives. Il a trouve une trentaine d ecarts et rate presque tout le reste : un motif ne voit que ce qui s exprime en motif. make hote-planifier en est l exemple. La cible EXISTE, donc le controle passait au vert. C est une cible depreciee qui refuse et sort en 2, recommandee par AGENTS.md, et qui contredit la REGLE D OR du meme fichier trois ecrans plus haut. Il fallait lire pour la voir. 74 documents lus un par un. 66 corriges, 8 exacts. CE QUI ETAIT FRANCHEMENT FAUX AGENTS.md, la source d autorite, annoncait la flotte pas encore executee contre des VM reelles. Elle a ete rasee et remontee depuis zero trois fois. ecosysteme-chezlepro.md, le document montre a un client, portait la meme phrase : il se sous-vendait gravement. courriel-conception.md s ouvrait sur aucun role n est encore ecrit, au-dessus de son propre paragraphe 1 qui les nomme. autorisation.md se terminait sur rien n est construit alors qu il rapporte des mesures datees du role en fonctionnement. hebergeur-exploitation.md disait rien n est fait d un depot qui existe. filiation-emancipation.md se contredisait a deux ecrans de distance. DES MODELES DECRITS D APRES UN MONDE ANTERIEUR Le resolveur : cinq documents decrivaient un Unbound par VM en opt-in, trois le donnaient en exemple d integration FACULTATIVE — il est universel depuis le 2026-08-24. L adressage de nomenclature-vm.md : reseau unique, VLAN 11-15, VMID a cinq chiffres. Le nommage SDN de sdn-evpn.md contre le code : c est le wiki qui avait raison. CE QUI CASSE AU PREMIER ESSAI Le nom du gabarit dore etait faux a quatre endroits, dont la procedure qui le FABRIQUE et le critere R2 de l epreuve d operateur independant. preparer-un-site-hebergeur.md avertissait qu une VM faite a la main serait detruite : raser derive du plan, il ne la detruira jamais — le risque est l inverse. Un mot de passe d essai en clair dans un depot public. DEUX PREUVES ETENDUES, ET UNE QUI SE TROMPAIT ELLE-MEME P57 couvre les groupes : elle a signale aussitot 29 groupes annonces au-dessus d un tableau qui en cite 40. P29 confronte le tableau de authentification.md aux declarations reelles : 12 annonces, 21 reels. Et P57 imposait un chiffre faux — 56 preuves alors que le depot en porte 57, la conditionnelle vivant hors de tout comptage. Un garde-fou qui fait respecter une erreur ajoute l assurance a l erreur. CE QUI RESTE, ET QU AUCUNE PREUVE NE TIENT Deux comptes trouves a la main. Et une lacune reelle : rien ne garde les meta/acces.yml — ni qu un service web-sso en porte un, ni que le groupe qu il nomme existe. P29 tient les positions d authentification, personne ne tient les habilitations. make prouver : CONFORME, 56 OK, 0 echec, 1 saute. 0 lien mort. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
200 lines
8.8 KiB
Markdown
200 lines
8.8 KiB
Markdown
# Protocole — épreuve de l'opérateur indépendant
|
|
|
|
> **Pour qui :** qui **fait passer l'épreuve** — et l'opérateur indépendant qui s'y prête.
|
|
> Le mainteneur n'y intervient pas : c'est tout l'objet du protocole.
|
|
|
|
Épreuve empirique de l'affirmation **AFF-002** : *« Set-OPS s'exploite entièrement à la
|
|
main — la doc, `make` et le GUI suffisent, sans aucune IA »* (README:9 ; `AGENTS.md`
|
|
principe 10).
|
|
|
|
> **Pourquoi cette épreuve existe.** En phase 5, AFF-002 est passée 🟡 → ✅ **par
|
|
> inspection** : ses écarts bloquants ont été soldés et le parcours relu de bout en bout.
|
|
> Aucun opérateur indépendant ne l'a jamais exécuté. Tant que ce test n'a pas eu lieu,
|
|
> ✅ signifie « plus aucun défaut connu », pas « démontré ». C'est la seule affirmation
|
|
> du registre qu'aucune commande locale ne peut prouver : elle exige un humain qui n'est
|
|
> pas l'auteur.
|
|
|
|
## Ce que l'épreuve mesure
|
|
|
|
**Mesuré** : ce que le dépôt public transmet, seul, à un sysadmin compétent qui ne
|
|
connaît pas Set-OPS — depuis `QUICKSTART.md`, sur sa propre grappe Proxmox, du dépôt nu
|
|
jusqu'à un socle déployé.
|
|
|
|
**Non mesuré** : les modèles assemblés (dépôt privé `Set-OPS-modeles`), les services
|
|
hors socle, l'ergonomie du GUI au-delà de son ouverture, la tenue en exploitation dans
|
|
la durée.
|
|
|
|
## Rôles
|
|
|
|
| Rôle | Qui | Mandat |
|
|
|---|---|---|
|
|
| **Opérateur** | un sysadmin qui n'est pas l'auteur | Seul acteur. Exécute, décide, se débloque. |
|
|
| **Observateur** | l'auteur / mainteneur du dépôt | Journalise. **N'aide pas.** Ne touche à rien. |
|
|
|
|
Le protocole est **réutilisable** : il ne nomme personne. L'identité de l'opérateur d'une
|
|
session donnée est portée par son rapport, sous la réserve de consentement ci-dessous.
|
|
|
|
## La règle du silence
|
|
|
|
C'est le cœur du protocole, et la partie difficile.
|
|
|
|
> **Chaque fois que l'observateur a envie d'intervenir, c'est un défaut de
|
|
> documentation. Il le note, il se tait.**
|
|
|
|
Un opérateur débloqué par l'auteur ne prouve rien — sinon que l'auteur sait. Ce qu'on
|
|
mesure est exactement ce qui reste quand l'auteur est absent.
|
|
|
|
Trois niveaux d'intervention, décidés d'avance :
|
|
|
|
| Niveau | Déclencheur | Effet |
|
|
|---|---|---|
|
|
| **N0 — silence** | Défaut. C'est l'état par défaut. | Rien n'est dit. Le chrono du blocage tourne. |
|
|
| **N1 — déblocage minimal** | L'opérateur est bloqué **> 30 min** sur une même étape et le demande. | Réponse la plus courte possible, sans contexte ni leçon. **Consigné comme défaut**, gravité proportionnelle au temps perdu. |
|
|
| **N2 — arrêt sécurité** | Risque de détruire quelque chose de réel (VM, données, réseau hors périmètre). | Interruption immédiate. **N'est pas un défaut.** |
|
|
|
|
L'observateur journalise aussi ses **démangeaisons** : chaque fois qu'il a voulu parler
|
|
mais que l'opérateur s'est débloqué seul. Même sans N1, c'est un signal de faiblesse
|
|
documentaire.
|
|
|
|
## Interdits pour l'opérateur
|
|
|
|
- **Aucune IA** — pas de Claude, ChatGPT, Copilot ou équivalent, à aucune étape.
|
|
- **Aucune question à l'auteur**, hors N1 formalisé et N2.
|
|
- **Aucun accès** aux dépôts privés (`Set-OPS-modeles`, `OPS-*`).
|
|
- **Aucune lecture de `docs/audit/`** — le registre décrit les pièges connus. Le lire,
|
|
c'est connaître les réponses de l'examen.
|
|
|
|
**Autorisé** : toute la documentation publique du dépôt, `man`, et le web pour ce qui
|
|
n'est pas Set-OPS (Debian, Ansible, Proxmox, nginx…). C'est le comportement réel d'un
|
|
sysadmin.
|
|
|
|
## Ce que l'auteur fournit
|
|
|
|
**Uniquement l'URL du dépôt public**, et ce protocole.
|
|
|
|
Rien d'autre. En particulier, l'auteur ne prépare **ni** le jeton API Proxmox, **ni** les
|
|
clés SSH, **ni** le mot de passe Vault, **ni** le moindre fichier d'instance : ce sont
|
|
les prérequis de `QUICKSTART.md` §0, et savoir les produire fait partie de l'épreuve.
|
|
|
|
## Périmètre matériel et sécurité
|
|
|
|
L'opérateur part sur **sa propre grappe Proxmox**.
|
|
|
|
- [ ] Confirmer **avant de commencer** que le périmètre n'est pas de la production
|
|
Technolibre : nœud dédié, ou à défaut plage VMID + stockage réservés à l'épreuve.
|
|
- [ ] Noter la plage VMID retenue : `____________`
|
|
- [ ] `make nettoyer-modele CONFIRMER=true` est **destructif** — il s'applique à la VM
|
|
modèle, jamais à autre chose. Vérifier la cible avant.
|
|
- [ ] Prévoir la remise en état : suppression des VM créées en fin d'épreuve.
|
|
|
|
## Critères de réussite — fixés d'avance
|
|
|
|
Binaires, vérifiables, définis **avant** le début. On ne les renégocie pas en cours.
|
|
|
|
| # | Critère | Vérification |
|
|
|---|---|---|
|
|
| **R1** | Instance créée depuis `socle`, plan renseigné à ses valeurs | `make inventaire-verifier` → rc=0 |
|
|
| **R2** | Golden template Debian 13 construit et converti en template Proxmox | `make verifier-modele` OK ; template visible dans Proxmox **sous le nom que `make config` a enregistré** (`proxmox_clone_source_nom`, `modeleSetOPS` par défaut) |
|
|
| **R3** | Au moins une VM créée depuis le plan | `make creer-vm HOTE=…` OK ; VM jointe par Ansible (`ansible -m ping`) |
|
|
| **R4** | Cet hôte déployé selon ses groupes | `make deployer HOTE=…` → rc=0 |
|
|
| **R5** | Validation globale du dépôt passée par l'opérateur | `make verifier` → rc=0 |
|
|
| **R6** | Socle complet déployé (tous les hôtes du modèle `socle` actifs et déployés) | `make deployer` sur chaque hôte → rc=0 |
|
|
|
|
**Verdict :**
|
|
|
|
- **Réussite démontrée** — R1→R6 atteints, **zéro N1**.
|
|
- **Réussite avec défauts** — R1→R5 atteints, avec N1 consignés. ← *résultat attendu*
|
|
- **Échec** — blocage qu'aucune documentation ni l'opérateur seul ne résout.
|
|
|
|
> Un test où l'opérateur ne bloque jamais est un test mal conçu ou mal observé. Les
|
|
> défauts sont le produit livrable, pas l'accident.
|
|
|
|
## Cadence
|
|
|
|
Deux séances d'environ 4 h, ou une journée. **Plafond horaire fixé d'avance** pour que
|
|
l'épreuve ne s'étire pas : au-delà, on arrête et on consigne l'état atteint — un
|
|
plafond dépassé est lui-même un résultat.
|
|
|
|
## Conséquence sur le registre
|
|
|
|
Le registre doit pouvoir **perdre**. C'est la condition pour qu'il vaille quelque chose.
|
|
|
|
| Verdict | Effet sur AFF-002 |
|
|
|---|---|
|
|
| Réussite démontrée | ✅ **confirmée empiriquement** — la mention « par inspection » tombe |
|
|
| Réussite avec défauts | **✅ → 🟡** jusqu'à correction des défauts consignés, puis re-test des étapes touchées |
|
|
| Échec | **✅ → ❌**, avec le blocage nommé comme écart |
|
|
|
|
Le rapport rejoint `docs/audit/` et devient la preuve rejouable d'AFF-002 : *rejouer*
|
|
signifie ici refaire passer l'épreuve à un nouvel opérateur indépendant.
|
|
|
|
## Nommage et consentement
|
|
|
|
« Volontaire pour participer » ne vaut pas « d'accord pour être nommé ». **Avant toute
|
|
publication** du rapport, valider avec l'opérateur **et** avec Technolibre ce qui peut
|
|
être cité : nom, organisation, ou anonymat (« un sysadmin indépendant »). Par défaut, et
|
|
tant que la réponse n'est pas obtenue : anonyme.
|
|
|
|
---
|
|
|
|
# Annexe — gabarit de rapport
|
|
|
|
À copier vers `docs/audit/operateur-independant-AAAA-MM-JJ.md` et remplir pendant
|
|
l'épreuve, pas après.
|
|
|
|
```markdown
|
|
# Épreuve de l'opérateur indépendant — AAAA-MM-JJ
|
|
|
|
- **Opérateur** : (nom ou « sysadmin indépendant » — cf. consentement)
|
|
- **Observateur** : Daniel Allaire
|
|
- **Dépôt testé** : Set-OPS-public @ <sha>
|
|
- **Matériel** : grappe Proxmox de l'opérateur, <n> nœud(s), plage VMID <…>
|
|
- **Début / fin** : <hh:mm> → <hh:mm> (<durée>)
|
|
- **Consentement de nommage** : obtenu / en attente / anonymat demandé
|
|
|
|
## Verdict
|
|
|
|
<Réussite démontrée | Réussite avec défauts | Échec>
|
|
|
|
| Critère | Atteint | Note |
|
|
|---|---|---|
|
|
| R1 inventaire-verifier | ☐ | |
|
|
| R2 golden template | ☐ | |
|
|
| R3 VM créée | ☐ | |
|
|
| R4 hôte déployé | ☐ | |
|
|
| R5 make verifier | ☐ | |
|
|
| R6 socle complet | ☐ | |
|
|
|
|
**Interventions N1** : <n> · **Démangeaisons N0** : <n> · **N2** : <n>
|
|
|
|
## Grille d'observation
|
|
|
|
| # | Heure | Étape QUICKSTART | Attendu par l'opérateur | Survenu | Débloqué seul ? | Blocage | Fichier à corriger |
|
|
|---|---|---|---|---|---|---|---|
|
|
| 1 | | §_ | | | O / N / **N1** | __ min | |
|
|
| 2 | | | | | | | |
|
|
|
|
## Défauts consignés
|
|
|
|
| ID | Gravité | Étape | Description | Correctif proposé | Fichier |
|
|
|---|---|---|---|---|---|
|
|
| D1 | bloquant / majeur / mineur | | | | |
|
|
|
|
Gravité : **bloquant** = N1 nécessaire ou critère non atteint · **majeur** = > 15 min
|
|
perdues, débloqué seul · **mineur** = friction, hésitation, formulation trompeuse.
|
|
|
|
## Verbatim de l'opérateur
|
|
|
|
> (citations brutes — les hésitations à voix haute valent de l'or ; ne pas les lisser)
|
|
|
|
## Ce que l'épreuve n'a pas couvert
|
|
|
|
<modèles assemblés, services hors socle, GUI, tenue dans la durée…>
|
|
|
|
## Suites
|
|
|
|
- [ ] Corriger D<n> …
|
|
- [ ] Mettre à jour AFF-002 dans `affirmations.md` (→ ✅ confirmée / 🟡 / ❌)
|
|
- [ ] Entrée `CHANGELOG.md`
|
|
- [ ] Re-test des étapes touchées par les correctifs
|
|
```
|