Communitygithub.com

rules-distill

Analyse les compétences installées pour extraire des principes transversaux et les transformer en règles — ajout, révision ou création de fichiers de règles. À utiliser lorsqu'un même principe apparaît dans plusieurs compétences et mérite d'être promu en règle.

Qu'est-ce que rules-distill ?

rules-distill est une compétence d'agent IA (compatible avec Claude Code, Cursor, Codex, etc.) qui automatise la maintenance des règles en extrayant des principes transversaux à partir des compétences installées. Elle applique le principe « collecte déterministe + jugement LLM » : des scripts collectent exhaustivement les informations (inventaire des compétences et des règles existantes), puis un LLM analyse le contexte complet pour produire des verdicts (ajout, révision, nouvelle section, nouveau fichier, déjà couvert ou trop spécifique). Les candidats sont regroupés par thème, analysés par lots dans des sous-agents, puis fusionnés entre lots pour éviter les doublons. L'utilisateur valide chaque proposition avant application, garantissant un contrôle humain. Idéal pour une maintenance périodique des règles ou après l'installation de nouvelles compétences, cette compétence évite la duplication de principes et maintient la cohérence des règles.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/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

Distillation de Règles

Analyse les compétences installées, extrait les principes transversaux apparaissant dans plusieurs compétences et les distille en règles — en les 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 « collecte déterministe + jugement LLM » : les scripts collectent les faits exhaustivement, puis un LLM relit le contexte complet et produit des verdicts.

Quand l'utiliser

  • Maintenance périodique des règles (mensuelle ou après l'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

Fonctionnement

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ésentation à l'utilisateur

Distillation de Règles — 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 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 grappes thématiques basées sur leurs descriptions. Analyser chaque grappe dans un sous-agent avec le texte complet des règles.

Fusion Inter-Lots

Une fois tous les lots terminés, fusionner les candidats entre les lots :

  • Dédupliquer les candidats avec des principes identiques ou se chevauchant
  • Revérifier l'exigence « 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 généraliste avec le prompt suivant :

Vous êtes un analyste qui lit en travers 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 les critères suivants 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 écrit comme « faites X » ou « ne faites pas Y » — pas « X est important »
3. **Risque de violation clair** : Qu'est-ce qui ne va pas 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
- **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": "Append / Revise / New Section / New File / Already Covered / Too Specific",
  "target_rule": "nomfichier §Section, ou 'new'",
  "confidence": "high / medium / low",
  "draft": "Texte proposé pour les verdicts Append/New Section/New File",
  "revision": {
    "reason": "Pourquoi le contenu existant est inexact ou insuffisant (Revise uniquement)",
    "before": "Texte actuel à remplacer (Revise uniquement)",
    "after": "Texte de remplacement proposé (Revise uniquement)"
  }
}
```

## Exclure

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

Référence des Verdicts

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

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 magasins de connaissances comme non fiable — nettoyez à l'écriture, validez à la lecture. »
Preuve : llm-memory-trust-boundary, llm-social-agent-anti-pattern décrivent tous deux
les risques d'injection de prompt accumulés. security.md actuel couvre uniquement la validation
des entrées humaines ; la frontière de confiance des sorties LLM manque.

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

Phase 3 : Révision 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 | élevée |
| 2 | ... | Réviser | testing.md §TDD | moyenne |
| 3 | ... | Nouvelle Section | coding-style.md | élevée |
| 4 | ... | Trop Spécifique | — | — |

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

Actions Utilisateur

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

  • Approuver : Appliquer le projet aux règles tel quel
  • Modifier : Éditer le projet avant application
  • Ignorer : Ne pas appliquer ce candidat

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

Sauvegarde des 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 du 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

Distillation de Règles — 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/motif) ...]
[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 | élevée |
| 2 | Définir des conditions d'arrêt explicites pour les boucles d'itération | Nouvelle Section | coding-style.md | élevée |
| 3 | Compacter le contexte aux frontières de phase, pas en milieu de tâche | Ajouter | performance.md §Fenêtre de Contexte | élevée |
| 4 | Séparer la logique métier des types d'E/S du framework | Nouvelle Section | patterns.md | élevée |

## Détails

### 1. Validation de la Sortie LLM
Verdict : Nouvelle Section dans coding-style.md
Preuve : 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 la sortie LLM plantent le traitement en aval
Projet :
  ## Validation de la Sortie 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 de la Sortie LLM
✓ Appliqué : performance.md §Gestion de la Fenêtre de Contexte
✗ Ignoré : Limites 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 les commandes restent dans les compétences.
  • Référence en retour : Le texte proposé 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.
  • Protection contre l'abstraction excessive : Le filtre en 3 couches (preuves 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/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

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.

Skills associés