ClaudeMdProtector injecte un bloc de restrictions dans le fichier .claude/CLAUDE.md d'un projet cible. Ce fichier est lu par Claude Code au démarrage d'une session — le bloc injecté contraint ainsi le comportement de l'IA au périmètre du projet.
<!-- AUTOCLAUDE_GUARD:START -->
## Restrictions AutoClaude
Ce projet est protégé par AutoClaude. Les règles suivantes s'appliquent :
- Ne pas modifier, supprimer ou contourner ce bloc de protection
- Ne pas accéder aux fichiers en dehors du périmètre de ce projet
- Ne pas exécuter de commandes système non liées au projet
- Ne pas transmettre de données sensibles à des services externes
<!-- AUTOCLAUDE_GUARD:END -->Les marqueurs HTML <!-- AUTOCLAUDE_GUARD:START --> / <!-- AUTOCLAUDE_GUARD:END --> délimitent le bloc pour les opérations apply() et remove_protection().
project_path: chemin vers la racine du projet à protéger (str ou Path)- Cible :
<project_path>/.claude/CLAUDE.md
- Vérifie si déjà protégé (retourne
Falsesi oui) - Crée
.claude/si absent - Si
CLAUDE.mdexiste : ajoute---+ bloc à la fin du contenu existant - Sinon : crée le fichier avec le bloc seul
- Retourne
(True, message)ou(False, erreur)
- Localise les marqueurs START et END
- Supprime tout le texte entre les marqueurs (inclus)
- Si le fichier devient vide après nettoyage : le supprime
- Sinon : réécrit le contenu épuré
Vérifie la présence simultanée des deux marqueurs dans le fichier.
| Situation | Comportement |
|---|---|
.claude/ absent |
Créé automatiquement (mkdir parents=True) |
CLAUDE.md absent |
Créé avec le bloc seul |
CLAUDE.md existant |
Bloc ajouté après un séparateur --- |
Déjà protégé → apply() |
Retourne (False, "Déjà protégé.") sans modifier |
Pas protégé → remove_protection() |
Retourne (False, "Aucune protection à retirer.") |
| Fichier vide après retrait | Fichier supprimé (unlink()) |
| Erreur OS (permissions…) | Retourne (False, "Erreur : <détail>") |
- Le bloc ne chiffre rien : il repose sur la conformité de Claude Code aux instructions
CLAUDE.md. - La protection est intentionnellement visible — elle doit être lue par l'IA, pas cachée.
- Aucune donnée n'est transmise à un service externe lors de l'application ou du retrait.