mcpbeat

Normalisation Juridique Fr Christophe Quezel Ambrunaz

lawve-ai/normalisation-juridique-fr-christophe-quezel-ambrunaz

>-

17k tokens
context cost
the whole folder, loaded on every use
11
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
616
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/lawve-ai/awesome-legal-skills --skill normalisation-juridique-fr-christophe-quezel-ambrunaz

What comes with it

56 225 bytes besides the instruction
README.md
references/anglicismes.md
references/citations-reflex.md
references/lexique-juridique.md
references/marqueurs-ia.md
references/orthographe-harmonisation.md
references/registre-schema.md
references/typographie.md
scripts/normaliser.py
scripts/registre.py

The instruction itself

16 sections, as written by the author

Normalisation du langage juridique français — v1.0

Compétence conçue avec Christophe Quézel-Ambrunaz. Elle corrige directement un document Word juridique, de façon autonome, puis rend dans la conversation un tableau récapitulatif compact et réversible.

Principe directeur

Deux régimes de modification, qu'il ne faut jamais confondre :

  • Normalisations déterministes — typographie, insécables, apostrophes, guillemets, impropriétés à correction univoque (*stipuler→disposer*), anglicismes non ambigus, forme des références. Sûres, appliquées d'office par scripts/normaliser.py.
  • Réécritures de jugement — virgule avant *et* (contextuelle), ternaire creux, emphase vide, anglicisme contextuel, tolérances de citation. Elles exigent une lecture intelligente : c'est toi qui les décides et les poses, guidé par les fichiers de references/.

Les normalisations déterministes sont appliquées directement, sans suivi des modifications — pour ne pas alourdir la relecture ; leur réversibilité est entièrement assurée par le registre (défais). Seules les réécritures de jugement sont posées en révisions Word (w:ins/w:del) : ce sont les seules à examiner, l'utilisateur les accepte ou les rejette dans Word, et le registre permet aussi de les défaire. Le suivi peut être étendu au lexique déterministe via l'option --track-lexical (désactivée par défaut).

Garde-fou cardinal sur les citations : la normalisation des références est purement formelle (abréviations, ordre, espaces). Ne jamais modifier le fond d'une référence (juridiction, date, numéro), ne jamais en inventer. En cas de doute sur l'exactitude, signaler, ne pas « corriger ».

Environnement et délégation

  • Requiert Cowork ou computer use : la pose de révisions suppose l'édition XML du .docx. En chat simple sans fichier, demander le document et l'environnement adéquat.
  • La mécanique OOXML est déléguée à la compétence docx (toujours disponible) : scripts/office/unpack.py → édition de word/document.xml (et footnotes.xml/endnotes.xml) → scripts/office/pack.py → validation ; scripts/comment.py pour les commentaires ; scripts/accept_changes.py pour produire la version propre. Consulter la SKILL.md de docx pour les patrons exacts de w:ins/w:del. Auteur des révisions : « Claude — normalisation » (sauf consigne contraire).

Workflow

1. Cadrage (une seule interruption, brève)

Identifier le fichier .docx cible et le périmètre : corps seul, ou corps + notes de bas de page + bibliographie (par défaut : tout, l'utilisateur l'a validé). Si le fichier est un .doc, le convertir d'abord (docx/scripts/office/soffice.py).

2. Lecture intégrale

Extraire le texte (extract-text de docx) et le lire en entier avant toute modification. La lecture sert au régime de jugement ; le déterministe, lui, est traité par script sans relecture humaine.

3. Passe déterministe (script)

python scripts/normaliser.py apply \
  --in "<document.docx>" \
  --out "<document — normalisé.docx>" \
  --registry "<.normjur/registre.json>" \
  --scope all          # all | body | body+notes

Le script applique les règles déterministes (typographie et lexique sûr) directement, sans suivi des modifications, écrit le .docx corrigé et le registre JSON. Option --track-lexical pour poser le lexique en révisions. Détail des règles : references/typographie.md, references/lexique-juridique.md, references/anglicismes.md (section « noyau sûr »).

4. Passe de jugement (toi, sur le document déjà corrigé)

En t'appuyant sur references/marqueurs-ia.md, references/anglicismes.md (section « contextuel ») et references/citations-reflex.md, pose en révisions Word les réécritures de jugement, via le patron docx. Pour chaque réécriture, enregistre une entrée de jugement dans le registre :

python scripts/registre.py add-jugement \
  --registry "<.normjur/registre.json>" \
  --cle emphase --libelle "Emphase creuse réécrite" --categorie stylistique \
  --avant "<texte d'origine>" --apres "<texte réécrit>" --wids "101,102"

Règles d'or du jugement :

  • Virgule avant *et* : ne jamais supprimer mécaniquement. Conserver dans les cas légitimes (propositions à sujets différents, fermeture d'incise, « …, et ce, … », polysyndète). Ne retirer que la virgule fautive entre deux termes coordonnés simples.
  • Ternaire : ne resserrer que le tricolon creux et formulaire, jamais l'énumération substantielle.
  • Tirets cadratins : on les conserve. Le script normalise seulement leur espacement (). Ne pas les remplacer.
  • Périphrases verbo-nominales et harmonisation orthographique (1990) : voir references/marqueurs-ia.md (§10) et references/orthographe-harmonisation.md.

5. Récapitulatif

python scripts/registre.py recap --registry "<.normjur/registre.json>"

Coller le tableau (compact, agrégé par règle) dans la conversation, suivi de la phrase d'invite à l'annulation (voir ci-dessous).

6. Vérification finale (obligatoire)

  • Valider l'intégrité : python scripts/registre.py verify --registry … --doc "<corrigé.docx>" (idempotence, comptes, validité OOXML via docx/scripts/office/validate.py).
  • Contrôler qu'aucune réécriture stylistique n'a altéré le sens et qu'aucune référence n'a été corrompue. Pour un document long ou sensible, déléguer ce contrôle à un sous-agent de relecture du diff.

Le registre

Fichier JSON écrit hors conversation (dans .normjur/ à côté du document) ; la conversation n'affiche que le tableau agrégé. Schéma : voir references/registre-schema.md. Chaque modification est rattachée à un groupe de règle numéroté n et porte un indice intra-groupe i. Les groupes déterministes sont numérotés en premier (ordre fixe), les groupes de jugement à la suite, dans l'ordre où tu les ajoutes.

Tableau récapitulatif (format imposé)

| N° | Règle                                | Type        | Occ. | Exemple (avant → après)        |
|----|--------------------------------------|-------------|------|--------------------------------|
| 1  | Apostrophes courbes                  | détermin.   |  42  | l'article → l’article          |
| 2  | Insécables (; : ! ? « »)             | détermin.   |  37  | art. 9 ; → art. 9 ;            |
| 5  | stipuler → disposer (loi/texte)      | détermin.   |   3  | la loi stipule → la loi dispose|
| 7  | Emphase creuse resserrée             | STYLISTIQUE |   5  | « il importe de souligner… » → …|

Mettre les lignes STYLISTIQUE en évidence (l'utilisateur doit pouvoir vérifier d'abord le registre subjectif). Terminer par :

> Pour revenir sur des changements, répondez par ex. : défais 3, 7-10, 12 (groupe entier) ou défais 7.2 (une occurrence). refais pour rétablir.

Grammaire d'annulation

L'utilisateur répond en langage naturel ; interpréter et exécuter :

python scripts/registre.py undo "3, 7-10, 12" \
  --registry "<.normjur/registre.json>" \
  --in "<document.docx — ORIGINAL>" \
  --out "<document — normalisé.docx>"
  • défais 3 → désactive tout le groupe 3 ; défais 7-10 → groupes 7 à 10 ; défais 7.2 → la 2ᵉ occurrence du groupe 7.
  • Mécanique : pour les groupes déterministes, le script reconstruit le document depuis l'original en réappliquant les seules règles/occurrences restées actives — réversibilité propre, sans dérive. Pour les groupes de jugement, le script rejette les révisions correspondantes (w:id enregistrés).
  • refais 7 réactive le groupe ; défais tout / refais tout pour la bascule globale.

Après chaque undo/redo, réafficher le tableau recap mis à jour (compact).

Économie de contexte

Ne jamais déverser le contenu du registre dans la conversation : seul le tableau agrégé y figure. Les exemples « avant → après » sont tronqués (≈ 40 caractères). Pour un document volumineux, traiter par sections lors de la passe de jugement, mais n'écrire dans la conversation que le récapitulatif consolidé.

Fichiers de référence

  • references/marqueurs-ia.md — marques d'écriture IA en français et leur traitement (apostrophes, virgule avant *et*, ternaires, emphase, tirets, formules creuses).
  • references/anglicismes.md — noyau sûr (script) / contextuel (jugement) / liste blanche des termes de la matière conservés.
  • references/lexique-juridique.md — impropriétés juridiques (*stipuler/disposer*, *juridiction/justice*, *arrêt/jugement*…).
  • references/typographie.md — apostrophes, insécables (schéma retenu), guillemets, tirets, majuscules accentuées.
  • references/citations-reflex.md — norme RefLex SNE 2022, tolérances, harmonisation par usage majoritaire.
  • references/orthographe-harmonisation.md — harmonisation des graphies 1990 selon l'usage majoritaire (jugement).
  • references/registre-schema.md — schéma JSON du registre.

Limites connues (v1.0, à dire honnêtement à l'utilisateur si pertinent)

  • L'insertion de révisions par script vise le cas d'une occurrence dans un seul *run*. Les occurrences à cheval sur plusieurs *runs* sont consignées comme « à poser manuellement » : les traiter via le patron docx.
  • Les majuscules accentuées et la grammaire ambiguë relèvent du jugement, pas du script.
  • Le rejet de révisions de jugement par w:id est au mieux fiable tant que l'utilisateur n'a pas déjà accepté/rejeté ces révisions dans Word ; dans ce cas, basculer sur un remplacement après → avant lu dans le registre.

How to use it

Copy the folder

Take lawve-ai/normalisation-juridique-fr-christophe-quezel-ambrunaz from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.