52980837a9
docs/need-review.md (cycle complet : états, sursis, gatekeeper, cron, review, rollback). CHLOVA_PHASE dans .env.example + compose (défaut 1). risk-tiers + README : application par phase. Compose revalidé, 45 tests, 0 vuln. Palier de risque : n/a (doc + config). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.8 KiB
1.8 KiB
Paliers de risque
Règle non négociable. Conditionne le sursis du cycle "need review". Le LLM ne doit jamais pouvoir reclasser un asset privilégié en réversible.
Les deux paliers
reversible — réversible / lecture seule
- Effet nul ou trivialement annulable, pas d'accès aux secrets, pas de mutation d'infra.
- 7 jours de sursis PROVISOIRE autorisés (exécutable pendant la fenêtre).
- Exemples : lister workflows n8n, lire l'état d'un conteneur, lister stacks, inspecter (read-only), récupérer des logs.
privileged — privilégié / destructeur
- Aucun sursis : l'asset est BLOQUÉ jusqu'à review explicite.
- Exemples : déploiement Portainer (stack/conteneur), montage de volume hôte, accès à des secrets, suppression, exec dans un conteneur, modification réseau, écriture/activation de workflow n8n, toute écriture sur l'infra.
Classification
- Le palier est déterminé par la nature de l'opération, pas déclaré par le LLM.
- En cas de doute →
privileged(fail-safe). - La classification vit dans le code (table de correspondance outil/opération →
palier), versionnée et testée. Voir
orchestrator/src/gatekeeper/.
Invariant testé (anti-escalade)
- Un asset
privilegedne peut jamais être réécrit enreversiblepar l'agent. Tout changement de palier est une opération hors-agent (humain + commit). - Ceci fait l'objet d'un test dédié (
gatekeeper.test.ts) : tentative de reclassement → rejet.
Application par phase
- Phase 1 (
CHLOVA_PHASE=1, défaut) : seuls les outilsreversible(read-only) sont exposés ; lesprivilegedne sont pas branchés. - Phase 2 (
CHLOVA_PHASE=2) : tous les outils exposés, mais chaque opprivilegedpasse par le gatekeeper (BLOQUÉ jusqu'à review). Voirdocs/need-review.md.