Référence des règles
lucid-lint livre 25 règles en v0.2 (17 reprises de v0.1, 8 ajouts
v0.2). Chaque règle dispose d’une page dédiée avec sa catégorie, sa
sévérité, son poids par défaut, ses seuils par profil, des exemples,
et les consignes de neutralisation.
La référence compacte RULES.md
reste la vue d’ensemble en un seul fichier, conservée à la racine du
dépôt. Les sources académiques et normatives derrière chaque règle
sont consolidées sur la page Références.
Traduction FR — complète. Les 25 règles ont chacune leur page dédiée en français (jalon F25 sur la feuille de route).
Catégories
Chaque règle appartient à exactement une des cinq catégories fixes.
La taxonomie fait autorité — le modèle de score
compose les sous-scores par catégorie dans le score global X / max.
L’identifiant en kebab-case (par ex. structure.sentence-too-long)
est le contrat stable utilisé partout : option CLI, sortie JSON, clé
de configuration, citation dans les docs. Le libellé FR ci-dessous
est un repère humain ; il n’aliase jamais l’identifiant.
Structure
| Règle | Libellé |
|---|---|
structure.sentence-too-long | Phrase trop longue |
structure.paragraph-too-long | Paragraphe trop long |
structure.heading-jump | Saut de niveau de titre |
structure.deeply-nested-lists | Listes trop imbriquées |
structure.excessive-commas | Virgules en excès |
structure.long-enumeration | Énumération trop longue |
structure.deep-subordination | Subordination profonde |
structure.line-length-wide | Lignes trop larges |
structure.mixed-numeric-format | Formats numériques mixtes |
Rythme
| Règle | Libellé |
|---|---|
rhythm.consecutive-long-sentences | Phrases longues consécutives |
rhythm.repetitive-connectors | Répétition de connecteurs |
Lexique
| Règle | Libellé |
|---|---|
lexicon.low-lexical-diversity | Diversité lexicale faible |
lexicon.excessive-nominalization | Nominalisations en excès |
lexicon.unexplained-abbreviation | Abréviations non explicitées |
lexicon.weasel-words | Mots évasifs |
lexicon.jargon-undefined | Jargon non défini |
lexicon.all-caps-shouting | Majuscules criardes |
lexicon.redundant-intensifier | Intensificateurs redondants |
lexicon.consonant-cluster | Amas consonantiques |
Syntaxe
| Règle | Libellé |
|---|---|
syntax.passive-voice | Voix passive |
syntax.unclear-antecedent | Antécédent flou |
syntax.nested-negation | Négations imbriquées |
syntax.conditional-stacking | Empilement de conditions |
syntax.dense-punctuation-burst | Rafale de ponctuation |
Lisibilité
| Règle | Libellé |
|---|---|
readability.score | Score de lisibilité |
Source d’autorité. La catégorie de chaque règle est déterminée par
Category::for_ruledanssrc/types.rs. Les tableaux ci-dessus reflètent cette fonction. Un test de couverture (tests/rule_docs_coverage.rs) tient les pages par règle, le helper de catégorie et les poids du score synchronisés.
Niveaux de sévérité
| Niveau | Sens | Effet |
|---|---|---|
info | Signal à connaître, pas un défaut | Remonté ; ne fait pas échouer la CI |
warning | Problème de qualité à corriger | Remonté ; peut faire échouer la CI selon --min-score |
error | Réservé pour v0.3+ | Non émis en v0.2 |
Proposer une règle
Voir Contributing pour la checklist d’ajout de règle — toute nouvelle règle doit être livrée avec une page dans cette section.