| name | french-language |
| description | Ensures all project content is written in proper French with correct accents, grammar, and typography. Use when user mentions french, français, langue française, accents, orthographe, typographie, or when working on a project that requires French language content. Also use when generating any text-based file (SVG, Mermaid, PlantUML, Draw.io, HTML, CSV, JSON, YAML, etc.) in a French-language project. Helps enforce French writing conventions across all file types. |
Enforce French Language Conventions
You are helping the user ensure that all project content is written in proper French,
with correct accents, grammar, and typographic conventions.
This skill applies to all generated or edited files that contain human-readable French text,
not just documentation.
When to Use
- The project's CLAUDE.md or documentation specifies French as the primary language
- The user asks to write, review, or fix French content
- The user mentions accents, orthographe, typographie, or langue française
- Files contain French text with missing or incorrect accents
- Generating any file (SVG, Mermaid, PlantUML, Draw.io, HTML, CSV, JSON, YAML, etc.)
in a project configured for French
Pre-flight Checks
Before making changes, always:
- Check the project's language configuration — look for CLAUDE.md, README, or other
configuration files that specify the project language
- Identify which files contain French text — scan all file types, not just markdown
- Ask the user before making bulk changes — especially when fixing accents across many files
French Writing Rules
Accents and Special Characters
French accents are mandatory, not optional. Missing accents change word meaning
and are considered spelling errors.
| Character | Name | Examples |
|---|
| é | accent aigu | réalisateur, qualité, équipe, périmètre |
| è | accent grave | stratège, modèle, problème, critère |
| ê | accent circonflexe | être, forêt, fête, tête |
| à | a accent grave | à, déjà, voilà |
| ù | u accent grave | où |
| ô | o accent circonflexe | contrôle, rôle, clôture, binôme |
| î | i accent circonflexe | maître, connaître |
| ç | cédille | ça, français, leçon, reçu |
| ë, ï, ü | tréma | Noël, naïf, ambiguïté |
Common Missing Accent Patterns
When reviewing or generating French text, watch for these frequently missed accents:
| Wrong | Correct | Context |
|---|
| qualite | qualité | noun ending in -ité |
| securite | sécurité | noun ending in -ité |
| perimetre | périmètre | noun ending in -ètre |
| deploiement | déploiement | noun with dé- prefix |
| developpeur | développeur | noun with dé- prefix |
| stratege | stratège | noun ending in -ège |
| modele | modèle | noun ending in -èle |
| cloture | clôture | noun with ô |
| equipe | équipe | noun with é |
| role | rôle | noun with ô |
| etre | être | verb with ê |
| batisseur | bâtisseur | noun with â |
| retrospective | rétrospective | noun with é |
| responsabilites | responsabilités | plural noun with é |
Technical Terms
Technical English terms commonly used in French tech contexts should be kept in English:
- Sprint, Backlog, Product Owner, Scope, Deadline
- CI/CD, DevOps, LLMOps, API, SDK
- RACI, SOW, ROI, NPS, KPI
- Pull Request, Code Review, Merge Request
- Framework, Pipeline, Prompt Engineering
Rule: if the term is universally used in English in French tech culture, keep it.
If a standard French equivalent exists and is commonly used, prefer the French version.
French Typography
French typography differs from English in several ways:
| Rule | Example |
|---|
Space before : ; ! ? | Attention : ceci est important |
No space before , . | Bonjour, comment allez-vous. |
| Guillemets for quotes | « texte » (with non-breaking spaces) |
| Ordinals | 1er, 2e, 3e (not 1ème, 2ème) |
| Capitalization | Less capitalization than English — Modèle opératoire not Modèle Opératoire |
Em dash (—) | Not standard French punctuation — replace with :, (…), or . depending on context |
Em dash vs English: The em dash is valid and common in English.
Do not remove em dashes from English content. Only apply this rule to French text.
Note on generated files: Typography rules (spaces before punctuation, guillemets)
may not be practical in all file formats. Prioritize correct accents in all cases;
apply typography rules when the format supports them without breaking rendering.
Process
Step 1: Discover Content to Review
Scan the project for all files containing French text:
- Documentation:
*.md files
- Diagrams and visuals:
*.svg, *.drawio, *.puml, *.mmd (Mermaid)
- Web content:
*.html, *.htm, *.vue, *.jsx, *.tsx
- Data files:
*.csv, *.json, *.yaml, *.yml, *.toml
- Presentations:
*.tex, *.adoc, *.rst
- Configuration:
CLAUDE.md, README.md, *.properties, *.ini
- Code: comments and string literals in source files
Step 2: Analyze and Report
For each file, identify:
- Missing or incorrect accents
- Grammar issues
- Typography issues (spaces before colons, etc.)
- Inconsistent language (mixing French and English in non-technical contexts)
Present findings as a table:
| File | Issue | Wrong | Correct |
|------|-------|-------|---------|
| docs/roles.md | Missing accent | qualite | qualité |
| diagram.svg | Missing accent | deploiement | déploiement |
| data.csv | Missing accent | responsabilite | responsabilité |
Step 3: Apply Fixes
After user approval:
- Use
Edit with replace_all=true for each correction pattern across each file
- For each file format, respect the format-specific guidelines below
- Verify no regressions after applying fixes
Step 4: Validate
After applying fixes:
- Search for remaining common missing accent patterns
- Confirm all files are consistent
- Report any terms you're unsure about (ask the user for guidance)
Format-Specific Guidelines
SVG Files
- Only modify text content inside
<text> elements — never touch coordinates,
styles, or structure
- Check text fits — accented characters may be slightly wider; verify text
still fits within its container
- Use UTF-8 characters — not XML entities (
é not é)
- Linters may reformat — SVG optimizers (SVGO) may reformat the file after
edits. This is expected and should not be reverted
Mermaid Diagrams (.mmd, embedded in markdown)
- Accents work natively in node labels:
A[Qualité] --> B[Sécurité]
- For labels with special characters, use quotes:
A["Clôture du projet"]
- Test rendering after adding accents — some Mermaid renderers may
have issues with certain characters in edge labels
PlantUML Files (.puml)
- Accents work in labels and notes:
:Vérification du périmètre;
- Use UTF-8 encoding — add
@startuml without BOM
- Accents in participant names may require quoting:
participant "Développeur GenAI" as Dev
Draw.io / diagrams.net Files (.drawio)
- These are XML files — accents work natively in
value attributes
- Edit the XML directly or use the visual editor
- Watch for HTML-encoded entities that should be UTF-8 characters
CSV Files
- Ensure UTF-8 encoding (not Latin-1/ISO-8859-1)
- Accents in field values:
"Qualité","Sécurité","Périmètre"
- Some spreadsheet tools may re-encode — verify encoding after export
JSON / YAML Files
- Accents work natively in string values:
"rôle": "Développeur"
- JSON requires UTF-8 by specification
- YAML supports UTF-8 natively — no quoting needed for accented values
HTML Files
- Use UTF-8 encoding:
<meta charset="UTF-8">
- Use actual UTF-8 characters, not HTML entities (
é not é)
- Check
<title>, <meta>, alt attributes, aria-label, and visible text
Generating New Files
When generating any new file that will contain French text:
- Write with accents from the start — do not generate without accents
and fix later
- Use UTF-8 encoding for all file types
- Apply the correct accents as you write — refer to the common patterns
table above
- Keep technical terms in English — do not translate universally used
English terms
- Validate before presenting — re-read your generated content for
missing accents before showing it to the user
Important Guidelines
- Never remove accents — if unsure whether a word needs an accent, keep it
- Preserve technical terms in English — do not translate Sprint, Backlog, etc.
- Ask before bulk changes — present the list of fixes before applying them
- One pattern at a time — when using
replace_all, fix one word pattern per edit
to avoid unintended replacements
- Context matters — some words change meaning with/without accents
(e.g., "ou" = or, "où" = where). Always consider context
- UTF-8 everywhere — always use UTF-8 encoding, never Latin-1 or other legacy encodings
- Generate correctly from the start — it's cheaper to write accents correctly
the first time than to fix them after the fact