Set-OPS-Public/CLAUDE.md
Daniel Allaire 835f8ab6d0 Mise en conformité prouvable : registre d'affirmations + make prouver
Le dépôt fait / explique / prouve ce qu'il affirme, vérifiable en une commande.

- Phase 1 : docs/audit/affirmations.md — 54 affirmations publiques tracées vers
  une commande de preuve et un statut (/🟡//).
- Phase 2 : CLAUDE.md réduit à un pointeur mince ; contradiction SSH levée (le
  code applique déjà PasswordAuthentication no + AuthenticationMethods publickey,
  conforme à AGENTS.md) ; section AGENTS « Codex » → « agents IA ».
- Phase 3 : parcours démarrage réparé (QUICKSTART renvoyait à un modèle absent,
  chemins de voûte faux, commandes make périmées) ; make verifier vert
  (ansible-lint 33 → 0 : site.yml généré nommé, pipefail, name[template]) ;
  voûte Proxmox unifiée lue par le clonage (all/vault.yml).
- Phase 4 : make prouver → docs/audit/preuve-<date>.md, harnais rejouable qui
  rappelle l'outillage existant (aucune validation réimplémentée).
- Phase 5 : parcours QUICKSTART prouvé hors-ligne sur le socle ; modèle socle
  rendu valide (autorite interne → auto-heberge) ; split-brain d'inventaire
  corrigé (repli sur le répertoire existant, pas principal/).

make prouver : 15 OK, 0 échec, 1 sautée (voûte). ansible-lint : 0 failure.
Écarts découverts en cours de traitement (AFF-097..100) : tous résolus.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 19:53:18 -04:00

1.4 KiB

CLAUDE.md — Set-OPS

Autorité

AGENTS.md est la source d'autorité unique de ce dépôt. Claude Code doit le lire et le respecter intégralement avant toute modification.

En cas de contradiction entre CLAUDE.md et AGENTS.md, suivre AGENTS.md.

Ce fichier est volontairement mince : il ne redéclare pas la doctrine (template, SSH, pare-feu, cloud-init, handlers, Makefile, groupes…). Toute cette doctrine vit dans AGENTS.md, pour éviter la duplication et les dérives qu'elle provoque.

Les cinq règles absolues

  1. Un seul agent IA travaille dans ce dépôt à la fois (Codex ou Claude, jamais les deux).
  2. instance/inventories/*/hosts.yml est un artefact GÉNÉRÉ depuis le plan (instance/plan/). On l'édite jamais à la main : on édite le plan, puis make instanciermake instancier-appliquer.
  3. Aucun secret en clair (mots de passe, clés privées, tokens, certificats) — Vault ou stockage hors dépôt uniquement.
  4. Toute action destructive ou risquée exige une confirmation explicite (ex. CONFIRMER=true, confirm_destructive_action: true). Sans elle, refuser l'exécution.
  5. Rien n'est « prêt » sans validation. Au minimum --syntax-check du playbook touché, ansible-lint si disponible, et l'entrée CHANGELOG.md correspondante.

Le détail de chacune de ces règles, et tout le reste, est dans AGENTS.md.