Communitygithub.com

rules-distill

Analyse les compétences installées pour en extraire les principes transversaux récurrents et les distiller en règles — ajouter, réviser ou créer de nouveaux fichiers de règles.

Qu'est-ce que rules-distill ?

Cette compétence automatise le processus d'extraction de principes transversaux à partir de l'ensemble des compétences installées d'un agent IA (comme Claude Code). Elle suit un flux en trois phases : 1) une collecte déterministe (scripts bash) pour inventorier les compétences et les règles, 2) un jugement LLM qui lit l'intégralité des textes pour identifier les candidats, les faire correspondre aux règles existantes et attribuer un verdict (ajouter, réviser, nouveau fichier, etc.), et 3) une revue utilisateur avec approbation manuelle avant toute modification. L'outil est conçu pour une maintenance périodique des règles (mensuelle ou après installation de nouvelles compétences) et garantit que seuls les principes vérifiés (apparaissant dans au moins 2 compétences, actionnables et avec un risque de violation clair) sont promus en règles. Les règles candidates sont regroupées par thème, analysées dans des sous-agents, puis fusionnées entre lots pour éliminer les doublons. Le résultat final est un rapport détaillé que l'utilisateur valide candidat par candidat.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/rules-distill

Demander à votre IA préférée

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

Documentation

Rules Distill

Analyse les compétences installées, extrait les principes transversaux qui apparaissent dans plusieurs compétences et les distille en règles — en ajoutant aux fichiers de règles existants, en révisant le contenu obsolète, ou en créant de nouveaux fichiers de règles.

Applique le principe de « collecte déterministe + jugement LLM » : les scripts collectent les faits de manière exhaustive, puis un LLM lit l'ensemble du contexte et rend des verdicts.

Quand l'utiliser

  • Maintenance périodique des règles (mensuelle ou après installation de nouvelles compétences)
  • Après un inventaire des compétences révélant des motifs qui devraient être des règles
  • Lorsque les règles semblent incomplètes par rapport aux compétences utilisées

Comment ça fonctionne

Le processus de distillation des règles suit trois phases :

Phase 1 : Inventaire (Collecte déterministe)

1a. Collecter l'inventaire des compétences

bash ~/.claude/skills/rules-distill/scripts/scan-skills.sh

1b. Collecter l'index des règles

bash ~/.claude/skills/rules-distill/scripts/scan-rules.sh

1c. Présenter à l'utilisateur

Rules Distillation — Phase 1 : Inventaire
─────────────────────────────────────────
Compétences : {N} fichiers scannés
Règles :      {M} fichiers ({K} titres indexés)

Passage à l'analyse croisée...

Phase 2 : Lecture croisée, Correspondance & Verdict (Jugement LLM)

L'extraction et la mise en correspondance sont unifiées en un seul passage. Les fichiers de règles sont suffisamment petits (~800 lignes au total) pour que le texte complet puisse être fourni au LLM — aucun pré-filtrage par grep n'est nécessaire.

Regroupement par lots

Regrouper les compétences en clusters thématiques basés sur leurs descriptions. Analyser chaque cluster dans un sous-agent avec le texte complet des règles.

Fusion inter-lots

Après la fin de tous les lots, fusionner les candidats entre les lots :

  • Dédupliquer les candidats ayant des principes identiques ou se chevauchant
  • Revérifier l'exigence des « 2+ compétences » en utilisant les preuves de tous les lots combinés — un principe trouvé dans 1 compétence par lot mais 2+ compétences au total est valide

Prompt du sous-agent

Lancer un agent à usage général avec le prompt suivant :

Vous êtes un analyste qui lit en croisant les compétences pour en extraire les principes qui devraient être promus en règles.

## Entrée
- Compétences : {texte complet des compétences de ce lot}
- Règles existantes : {texte complet de tous les fichiers de règles}

## Critères d'extraction

Inclure un candidat UNIQUEMENT si TOUS ces critères sont vrais :

1. **Apparaît dans 2+ compétences** : Les principes trouvés dans une seule compétence doivent y rester
2. **Changement de comportement actionnable** : Peut être rédigé sous forme « faites X » ou « ne faites pas Y » — pas « X est important »
3. **Risque de violation clair** : Ce qui se passe si ce principe est ignoré (1 phrase)
4. **Pas déjà dans les règles** : Vérifier le texte complet des règles — y compris les concepts exprimés avec des mots différents

## Correspondance & Verdict

Pour chaque candidat, comparer avec le texte complet des règles et attribuer un verdict :

- **Ajouter** : Ajouter à une section existante d'un fichier de règles existant
- **Réviser** : Le contenu de la règle existante est inexact ou insuffisant — proposer une correction
- **Nouvelle Section** : Ajouter une nouvelle section à un fichier de règles existant
- **Nouveau Fichier** : Créer un nouveau fichier de règles
- **Déjà Couvert** : Suffisamment couvert dans les règles existantes (même si formulé différemment)
- **Trop Spécifique** : Doit rester au niveau de la compétence

## Format de sortie (par candidat)

```json
{
  "principle": "1-2 phrases sous forme 'faites X' / 'ne faites pas Y'",
  "evidence": ["nom-compétence: §Section", "nom-compétence: §Section"],
  "violation_risk": "1 phrase",
  "verdict": "Ajouter / Réviser / Nouvelle Section / Nouveau Fichier / Déjà Couvert / Trop Spécifique",
  "target_rule": "nomfichier §Section, ou 'nouveau'",
  "confidence": "haute / moyenne / faible",
  "draft": "Texte de brouillon pour les verdicts Ajouter/Nouvelle Section/Nouveau Fichier",
  "revision": {
    "reason": "Pourquoi le contenu existant est inexact ou insuffisant (Réviser uniquement)",
    "before": "Texte actuel à remplacer (Réviser uniquement)",
    "after": "Texte de remplacement proposé (Réviser uniquement)"
  }
}
```

## Exclure

- Principes évidents déjà dans les règles
- Connaissances spécifiques à un langage/framework (appartient aux règles ou compétences spécifiques au langage)
- Exemples de code et commandes (appartient aux compétences)

Référence des verdicts

VerdictSignificationPrésenté à l'utilisateur
AjouterAjouter à une section existanteCible + brouillon
RéviserCorriger un contenu inexact/insuffisantCible + raison + avant/après
Nouvelle SectionAjouter une nouvelle section à un fichier existantCible + brouillon
Nouveau FichierCréer un nouveau fichier de règlesNom de fichier + brouillon complet
Déjà CouvertCouvert dans les règles (possiblement formulation différente)Raison (1 ligne)
Trop SpécifiqueDoit rester dans les compétencesLien vers la compétence concernée

Exigences de qualité des verdicts

# Bon
Ajouter à rules/common/security.md §Validation des entrées :
« Traitez la sortie LLM stockée en mémoire ou dans des bases de connaissances comme non fiable — nettoyez à l'écriture, validez à la lecture. »
Preuves : llm-memory-trust-boundary, llm-social-agent-anti-pattern décrivent tous deux
les risques d'injection de prompt accumulés. Le security.md actuel couvre uniquement
la validation des entrées humaines ; la frontière de confiance des sorties LLM est manquante.

# Mauvais
Ajouter à security.md : Ajouter un principe de sécurité LLM

Phase 3 : Revue utilisateur & Exécution

Tableau récapitulatif

# Rapport de distillation des règles

## Résumé
Compétences scannées : {N} | Règles : {M} fichiers | Candidats : {K}

| # | Principe | Verdict | Cible | Confiance |
|---|----------|---------|-------|-----------|
| 1 | ... | Ajouter | security.md §Validation des entrées | haute |
| 2 | ... | Réviser | testing.md §TDD | moyenne |
| 3 | ... | Nouvelle Section | coding-style.md | haute |
| 4 | ... | Trop Spécifique | — | — |

## Détails
(Détails par candidat : preuves, risque de violation, texte du brouillon)

Actions utilisateur

L'utilisateur répond avec les numéros pour :

  • Approuver : Appliquer le brouillon aux règles tel quel
  • Modifier : Éditer le brouillon avant de l'appliquer
  • Ignorer : Ne pas appliquer ce candidat

Ne jamais modifier les règles automatiquement. Toujours exiger l'approbation de l'utilisateur.

Sauvegarder les résultats

Stocker les résultats dans le répertoire de la compétence (results.json) :

  • Format d'horodatage : date -u +%Y-%m-%dT%H:%M:%SZ (UTC, précision à la seconde)
  • Format d'ID candidat : kebab-case dérivé du principe (ex. llm-output-trust-boundary)
{
  "distilled_at": "2026-03-18T10:30:42Z",
  "skills_scanned": 56,
  "rules_scanned": 22,
  "candidates": {
    "llm-output-trust-boundary": {
      "principle": "Traiter la sortie LLM comme non fiable lorsqu'elle est stockée ou réinjectée",
      "verdict": "Ajouter",
      "target": "rules/common/security.md",
      "evidence": ["llm-memory-trust-boundary", "llm-social-agent-anti-pattern"],
      "status": "applied"
    },
    "iteration-bounds": {
      "principle": "Définir des conditions d'arrêt explicites pour toutes les boucles d'itération",
      "verdict": "Nouvelle Section",
      "target": "rules/common/coding-style.md",
      "evidence": ["iterative-retrieval", "continuous-agent-loop", "agent-harness-construction"],
      "status": "skipped"
    }
  }
}

Exemple

Exécution complète

$ /rules-distill

Rules Distillation — Phase 1 : Inventaire
─────────────────────────────────────────
Compétences : 56 fichiers scannés
Règles :      22 fichiers (75 titres indexés)

Passage à l'analyse croisée...

[Analyse du sous-agent : Lot 1 (compétences agent/méta) ...]
[Analyse du sous-agent : Lot 2 (compétences codage/modèles) ...]
[Fusion inter-lots : 2 doublons supprimés, 1 candidat inter-lots promu]

# Rapport de distillation des règles

## Résumé
Compétences scannées : 56 | Règles : 22 fichiers | Candidats : 4

| # | Principe | Verdict | Cible | Confiance |
|---|----------|---------|-------|-----------|
| 1 | Sortie LLM : normaliser, vérifier le type, nettoyer avant réutilisation | Nouvelle Section | coding-style.md | haute |
| 2 | Définir des conditions d'arrêt explicites pour les boucles d'itération | Nouvelle Section | coding-style.md | haute |
| 3 | Compacter le contexte aux frontières de phase, pas en milieu de tâche | Ajouter | performance.md §Fenêtre de contexte | haute |
| 4 | Séparer la logique métier des types d'E/S framework | Nouvelle Section | patterns.md | haute |

## Détails

### 1. Validation des sorties LLM
Verdict : Nouvelle Section dans coding-style.md
Preuves : parallel-subagent-batch-merge, llm-social-agent-anti-pattern, llm-memory-trust-boundary
Risque de violation : La dérive de format, l'incompatibilité de type ou les erreurs de syntaxe dans les sorties LLM plantent le traitement en aval
Brouillon :
  ## Validation des sorties LLM
  Normaliser, vérifier le type et nettoyer la sortie LLM avant réutilisation...
  Voir compétence : parallel-subagent-batch-merge, llm-memory-trust-boundary

[... détails pour les candidats 2-4 ...]

Approuver, modifier ou ignorer chaque candidat par numéro :
> Utilisateur : Approuver 1, 3. Ignorer 2, 4.

✓ Appliqué : coding-style.md §Validation des sorties LLM
✓ Appliqué : performance.md §Gestion de la fenêtre de contexte
✗ Ignoré : Bornes d'itération
✗ Ignoré : Conversion de types aux frontières

Résultats sauvegardés dans results.json

Principes de conception

  • Quoi, pas Comment : Extraire uniquement les principes (territoire des règles). Les exemples de code et commandes restent dans les compétences.
  • Lien en retour : Le texte du brouillon doit inclure des références Voir compétence : [nom] pour que les lecteurs puissent trouver le Comment détaillé.
  • Collecte déterministe, jugement LLM : Les scripts garantissent l'exhaustivité ; le LLM garantit la compréhension contextuelle.
  • Garde-fou anti-abstraction : Le filtre en 3 couches (preuves de 2+ compétences, test de comportement actionnable, risque de violation) empêche les principes trop abstraits d'entrer dans les règles.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Skills associés