Skip to content

Conventions de rédaction - pas de caractères "IA"

Règle transverse, valable pour tout texte produit dans ce dépôt : documentation .md, commentaires de code, messages de commit, libellés backoffice (<Name>, <Description> des document types et propriétés), clés de dictionnaire, texte visible dans les vues Razor, contenu SCSS (content:), chaînes JavaScript.

Le principe

Certains caractères typographiques sont devenus la signature visuelle d'un texte généré par une IA. Ils ne sont pas fautifs en français, mais dans un dépôt Spektrum ils trahissent l'origine du texte et cassent l'homogénéité entre ce qu'écrit un humain au clavier et ce qu'écrit un agent.

On ne les utilise pas. On utilise l'équivalent ASCII.

Les accents restent obligatoires : ce ne sont pas des caractères "IA", c'est de l'orthographe. On écrit "Paramètres", pas "Parametres". Un éditeur suisse romand lit du français correct.

Formulé autrement, et c'est la forme qui sert à la vérification :

Un fichier ne doit contenir que des caractères ASCII imprimables et des lettres accentuées françaises. Tout le reste est suspect.

Table de substitution

Les caractères interdits sont désignés par leur code point, pour que ce fichier reste lui-même lisible sans les contenir.

Code pointNomÀ écrire à la place
U+2014tiret cadratin (em dash)- (tiret ASCII entouré d'espaces)
U+2013tiret demi-cadratin (en dash)-
U+2019apostrophe courbe'
U+201C / U+201Dguillemets anglais courbes"
U+00AB / U+00BBguillemets français"
U+2026points de suspension...
U+2192 / U+21D2 / U+2190flèches->, =>, <-
U+2022puce-
U+2713 / U+2717 / U+26A0 / U+2705coches, croix, panneau d'alerteun mot : OK, NON, ATTENTION
U+1F300 a U+1FAFFemojisun mot
U+00A0espace insécableespace normale
U+2032 / U+2033primes' et "

Restent autorisés, en plus de l'ASCII imprimable :

  • Les lettres accentuées françaises, majuscules comprises : à â ä ç é è ê ë î ï ô ö ù û ü ÿ œ æ et À Â Ä Ç É È Ê Ë Î Ï Ô Ö Ù Û Ü Ÿ Œ Æ.
  • Les caractères de dessin de boîte (U+2500 a U+257F), uniquement pour les arborescences de fichiers en bloc de code. La carte du dépôt dans CLAUDE.md s'en sert. Ce ne sont pas des marqueurs d'IA : c'est la convention tree habituelle, et elle reste lisible en terminal.
  • Le BOM UTF-8 (U+FEFF) en tête de fichier. uSync en écrit un dans chaque .config qu'il sérialise, et les .csproj en portent un. C'est un artefact d'outil, pas un choix de rédaction : le retirer serait réécrit au prochain export.
  • Les symboles éditoriaux © ® ™ ° € £ µ. Ils portent du sens et n'ont pas d'équivalent ASCII acceptable. La mention de copyright du dictionnaire (footer.copyrights) s'en sert. À ne pas confondre avec les symboles décoratifs (coches, croix, emojis), eux interdits.

Exemples

Dans les blocs ci-dessous, les caractères interdits sont écrits sous forme de marqueur (<em dash>, <fleche>, ...) pour ne pas les introduire dans ce fichier.

Documentation

markdown
NON
## Modele de contenu <em dash> les blocs
Le rendu est partagé <fleche> ne jamais forker un element type.
<panneau alerte> Piège : l<apostrophe courbe>icône doit exister.

OUI
## Modèle de contenu - les blocs
Le rendu est partagé -> ne jamais forker un element type.
ATTENTION : l'icône doit exister.

Libellé backoffice (uSync)

xml
NON
<Name>Paramètres de la page <em dash> SEO</Name>
<Description>Titre affiché dans l<apostrophe courbe>onglet<points de suspension></Description>

OUI
<Name>Paramètres de la page - SEO</Name>
<Description>Titre affiché dans l'onglet du navigateur...</Description>

Commentaire de code

csharp
// NON
// Résout le thème <fleche> slug de feuille de style (défaut : <guillemet courbe>gilliard<guillemet courbe>).

// OUI
// Résout le thème -> slug de feuille de style (défaut : "gilliard").

Message de commit

NON
feat(blocks): ajoute le bloc childListing <em dash> remplace les 4 templates de liste

OUI
feat(blocks): ajoute le bloc childListing - remplace les 4 templates de liste

Vérification

Un seul contrôle : signaler tout caractère qui n'est ni ASCII imprimable, ni l'un des caractères tolérés ci-dessus. Prise par la négative, la vérification attrape aussi les caractères exotiques absents de la table (espaces fines, tirets rares, symboles décoratifs). Retour vide = conforme.

bash
# Depuis la racine du depot.
LC_ALL=C.UTF-8 grep -rnI \
  --exclude-dir={node_modules,bin,obj,.git,wwwroot,logs} \
  --exclude=conventions-redaction.md \
  -P '[^\x00-\x7FàâäçéèêëîïñôöùûüÿœæÀÂÄÇÉÈÊËÎÏÑÔÖÙÛÜŸŒÆ©®™°€£µ\x{2500}-\x{257F}\x{FEFF}]' \
  .

En PowerShell :

powershell
Get-ChildItem -Recurse -File -Include *.md,*.cs,*.cshtml,*.scss,*.js,*.config |
  Where-Object {
    $_.FullName -notmatch '\\(node_modules|bin|obj|\.git|wwwroot|logs)\\' -and
    $_.Name -ne 'conventions-redaction.md'
  } |
  Select-String -Pattern '[^\x00-\x7FàâäçéèêëîïñôöùûüÿœæÀÂÄÇÉÈÊËÎÏÑÔÖÙÛÜŸŒÆ©®™°€£µ─-╿]'

Le ñ est inclus parce qu'il apparaît dans des noms propres courants en Suisse romande. Ajouter au besoin les lettres d'autres langues effectivement utilisées par le projet, plutôt que de désactiver la vérification.

Cas particuliers

  • Ce fichier est la seule exception et il est exclu de la vérification : il doit nommer les caractères qu'il interdit.
  • Contenu saisi par un client ou repris d'un site existant : on ne le normalise pas. Un contenu importé qui contient des guillemets courbes reste tel quel. La règle porte sur ce que nous écrivons.
  • Dépendances et sorties de build (node_modules, bin, obj, wwwroot) : hors périmètre.
  • Fichiers générés (umbraco/Models/*.generated.cs, sortie Vite) : hors périmètre, on ne les édite pas de toute façon.
  • Typographie de rendu : si un design impose un vrai tiret cadratin à l'écran, il se fait en CSS (content: "\2014") ou dans le contenu éditorial, pas dans le code source rédigé.

Pourquoi ça compte ici

La documentation .claude/docs/**/*.md de ce dépôt est publiée automatiquement sur la documentation interne Spektrum par le composant CI sync-claude-docs (voir le skill spektrum-doc-interne). Ce qui est écrit ici est lu par toute l'agence, pas seulement par l'équipe du projet.

Contributors

No contributors

Changelog

No recent changes