CommunityRédaction et éditiongithub.com

Vincent056/cel-rule-skill

Compétence Claude + CLI celctl autonome pour rédiger, valider, tester unitairement et exécuter des règles de conformité Kubernetes CEL (y compris ComplianceAsCode/content cel/shared.yml) — sans serveur MCP nécessaire.

Qu'est-ce que cel-rule-skill ?

Cette compétence Claude intègre l'outil CLI `celctl` pour permettre la création, la validation, les tests unitaires et l'exécution de règles de conformité Kubernetes basées sur CEL (Common Expression Language). Elle est particulièrement utile pour les développeurs, les ingénieurs de confiance et les équipes DevOps qui doivent auditer ou appliquer des politiques de conformité, comme celles de la bibliothèque ComplianceAsCode/content. La compétence fonctionne de manière autonome, sans nécessiter de serveur MCP externe, et prend en charge à la fois les règles définies localement et les règles partagées (par exemple, `cel/shared.yml`). Elle permet également de visualiser les résultats des tests unitaires et des validations directement dans l'interface Claude, ce qui facilite l'itération rapide et la correction des règles de conformité avant leur déploiement en production.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add Vincent056/cel-rule-skill

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait cel-rule-skill ?

Compétence Claude + CLI celctl autonome pour rédiger, valider, tester unitairement et exécuter des règles de conformité Kubernetes CEL (y compris ComplianceAsCode/content cel/shared.yml) — sans serveur MCP nécessaire.

Fonctionnalités

  • Création de règles : Générer des règles de conformité CEL à partir d'exigences ou de spécifications.
  • Validation : Valider la syntaxe et la sémantique des règles CEL.
  • Tests unitaires : Exécuter des cas de test pour vérifier le comportement attendu des règles.
  • Exécution : Appliquer les règles sur des ressources Kubernetes réelles ou simulées.
  • Prise en charge des règles partagées : Utiliser des règles définies dans ComplianceAsCode/content cel/shared.yml ou d'autres dépôts.

Prérequis

  • celctl installé localement (brew install celctl ou via les versions binaires).
  • Claude Desktop ou un client compatible.

Utilisation

1. Créer une règle

celctl new rule --name "exemple-regle" --output ./repertoire-regles

2. Valider une règle

celctl validate --rule ./repertoire-regles/exemple-regle.yaml

3. Exécuter des tests unitaires

celctl test --rule ./repertoire-regles/exemple-regle.yaml --cases ./cas-test/*.yaml

4. Exécuter une règle sur un cluster

celctl run --rule ./repertoire-regles/exemple-regle.yaml --namespace mon-espace-noms

5. Utiliser des règles partagées

Pour inclure ComplianceAsCode/content cel/shared.yml :

celctl run --rule ./ma-regle.yaml --shared ./path/to/cel/shared.yml

Exemples

Exemple de règle (fichier YAML)

titre: Exiger que les conteneurs aient une politique de sécurité
id: DEX-SEC-001
cel-rule: |
  resource.spec.containers.all(c, has(c.securityContext) && c.securityContext.runAsNonRoot == true)

Cas de test

- nom: Conteneur non root
  input:
    apiVersion: v1
    kind: Pod
    spec:
      containers:
        - name: app
          image: nginx
          securityContext:
            runAsNonRoot: true
  expected: true

- nom: Conteneur root (doit échouer)
  input:
    apiVersion: v1
    kind: Pod
    spec:
      containers:
        - name: app
          image: nginx
  expected: false

Installation

  1. Téléchargez le binaire celctl depuis GitHub Releases.
  2. Rendez-le exécutable : chmod +x celctl et placez-le dans votre $PATH.
  3. Ajoutez cette compétence à votre configuration Claude (instructions ci-dessous).

Configuration de Claude

Ajoutez à votre claude.json ou fichier de configuration équivalent :

{
  "skills": [
    {
      "name": "cel-rule-skill",
      "description": "Compétence pour les règles de conformité Kubernetes CEL",
      "commands": [
        {
          "name": "celctl",
          "path": "/chemin/vers/celctl"
        }
      ]
    }
  ]
}

Contribution

Les contributions sont les bienvenues ! Consultez CONTRIBUTING.md pour plus de détails.

Licence

Ce projet est sous licence Apache 2.0 – voir le fichier LICENSE pour plus d'informations.

Support

Pour des problèmes ou des demandes de fonctionnalités, ouvrez un ticket sur GitHub Issues.

Skills associés