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>
27 lines
1.4 KiB
Markdown
27 lines
1.4 KiB
Markdown
# 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 instancier` → `make 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`.
|