# 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`.