This repository has been archived on 2026-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
Set-OPS/CLAUDE.md

221 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CLAUDE.md — Set-OPS
## Instruction principale
Claude Code doit lire et respecter `AGENTS.md` avant toute modification dans ce dépôt.
`AGENTS.md` est la source dautorité principale pour :
- les principes Ansible ;
- la structure du dépôt ;
- les règles de sécurité ;
- les conventions de nommage ;
- la gestion du `CHANGELOG.md` ;
- les limites sur les actions destructives ;
- la règle : Codex ou Claude Code, jamais les deux en même temps.
En cas de contradiction entre `CLAUDE.md` et `AGENTS.md`, suivre `AGENTS.md`.
---
## Règle dor IA
Un seul agent IA travaille dans ce dépôt à la fois.
- Soit Codex.
- Soit Claude Code.
- Jamais les deux simultanément.
Avant de modifier quoi que ce soit, vérifier létat du dépôt :
```bash
git status --short
```
Ne pas continuer si des changements non compris sont présents.
---
## Comportement attendu de Claude Code
Avant de modifier :
1. Lire `AGENTS.md`.
2. Lire `README.md`, `CHANGELOG.md` et `ansible.cfg` sils existent.
3. Inspecter larborescence existante.
4. Identifier la portée exacte de la demande.
5. Proposer le plus petit changement utile.
6. Préserver les conventions existantes.
7. Ne pas réorganiser massivement le dépôt sans demande explicite.
Après modification :
1. Résumer les fichiers modifiés.
2. Indiquer les commandes de validation.
3. Signaler clairement ce qui na pas été testé.
4. Mettre à jour `CHANGELOG.md` si pertinent.
---
## Limites de sécurité
Ne jamais commiter ou générer :
- mots de passe ;
- clés privées SSH ;
- tokens API ;
- secrets non chiffrés ;
- fichiers `.env` sensibles ;
- certificats privés ;
- backups réels ;
- exports de production non anonymisés ;
- fichiers contenant des informations confidentielles de Chezlepro Inc.
Toute variable sensible doit être gérée hors dépôt ou avec un mécanisme explicitement prévu, par exemple :
- Ansible Vault ;
- fichier local non versionné ;
- secret injecté hors dépôt.
---
## Actions destructives
Toute action pouvant causer une perte daccès, de données ou de disponibilité doit être protégée.
Exemples :
- suppression de paquets critiques ;
- modification SSH bloquante ;
- modification firewall ;
- redémarrage massif ;
- formatage disque ;
- modification de partitions ;
- suppression dutilisateurs ;
- purge de données ;
- changement réseau pouvant couper laccès.
Pour ces actions, exiger une confirmation explicite ou une variable du type :
```yaml
confirm_destructive_action: true
```
Sans cette confirmation, refuser lexécution.
---
## SSH
État transitoire accepté pendant la construction :
```text
PasswordAuthentication yes
```
État cible recommandé :
```text
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
```
Ne jamais désactiver lauthentification par mot de passe avant davoir confirmé que laccès SSH par clé fonctionne.
---
## Sudo
Le compte technique `ansible` peut être configuré avec sudo sans mot de passe lorsque cest requis pour lautomatisation :
```text
ansible ALL=(ALL) NOPASSWD:ALL
```
Cette règle doit être placée dans :
```text
/etc/sudoers.d/90-ansible
```
Toujours valider avec :
```bash
visudo -cf /etc/sudoers.d/90-ansible
```
---
## Ansible
Les playbooks doivent rester :
- idempotents ;
- lisibles ;
- sobres ;
- compatibles Debian 13 sauf exception documentée ;
- testables avec `--check` autant que possible ;
- exempts de dépendances SaaS ou cloud inutiles.
Préférer les modules `ansible.builtin.*`.
Éviter `shell` et `command` sauf nécessité réelle. Si une commande shell est utilisée, elle doit être encadrée avec les paramètres appropriés :
- `changed_when`
- `failed_when`
- `creates`
- `removes`
---
## Validation minimale
Avant de considérer une modification comme terminée, tenter les validations pertinentes :
```bash
ansible-playbook --syntax-check playbooks/nom.yml
ansible-playbook -i inventories/lab/hosts.yml playbooks/nom.yml --check
ansible-lint
```
Si une commande de validation na pas été exécutée ou si un outil est absent, le signaler clairement.
---
## CHANGELOG
Chaque modification significative doit être inscrite dans `CHANGELOG.md`.
Format recommandé :
```markdown
## YYYY-MM-DD
### Ajouté
- ...
### Modifié
- ...
### Corrigé
- ...
```
---
## Résumé opérationnel
Set-OPS est un dépôt dexploitation réelle pour les serveurs de Chezlepro Inc.
Priorités :
- reproductibilité ;
- sobriété ;
- clarté ;
- sécurité ;
- maintenance ;
- autonomie ;
- résilience.
La complexité doit toujours être justifiée par un bénéfice opérationnel clair.