Files
erp/correspondance/README.md
T
arcodangeandClaude Opus 5 6abc437c81 feat(correspondance): le format de lettre commerciale devient un gabarit réutilisable
Fixé avec le dossier KissMetrics du 24/08 et validé par l'opérateur : « on peut
se souvenir de ce format pour les communications avec KM et futurs
prospects/clients ». Il ne servira à rien s'il faut le reconstituer à chaque
fois — d'où un gabarit, un script, et les raisons écrites.

LE TEST DU GABARIT : la lettre du 24/08 s'en régénère à l'identique, au mot
près, vérifié par diff du texte extrait. Un gabarit qui ne reproduit pas son
propre exemple n'est pas un gabarit.

LES CHOIX, ET POURQUOI. Charter pour le texte — dessinée par Matthew Carter
pour tenir le petit corps là où d'autres se délitent — et Optima pour les
titres. Les deux incorporées au PDF : le rendu est le même chez le
destinataire. Chiffres elzéviriens, pour que les montants s'alignent au lieu de
faire des bâtons. Deux encadrés, deux usages : le gris porte une question, le
rouge sourd ce qui doit être lu en diagonale — UN SEUL par lettre, deux et plus
rien ne ressort. Les tableaux portent un <thead>, sans quoi ils perdent leur
en-tête en se coupant entre deux pages.

LE PIÈGE, consigné parce qu'il coûte une heure à qui le redécouvre : weasyprint
NE SAIT PAS rendre Apple Color Emoji. C'est un format bitmap sbix qu'il ignore,
et les trois emblèmes 🏹💻🪽 sortent en carrés vides — sans erreur, sans
avertissement. D'où correspondance/emblemes/*.png, rendus une fois pour toutes
par test/emoji2png.ts, qui passe par Chromium : lui lit la police système.

Les PNG sont incorporés en base64 À LA GÉNÉRATION, pas dans le gabarit : un
gabarit de 400 Ko dont 97 % de charabia ne se relit pas. Le PDF produit reste
autonome.

Les trois emblèmes viennent du site — « Gabriel 🪽 Radureau, pour 🏹 réussir vos
projets 💻 ». L'arc et l'ange sont dans le nom lui-même.

lettre.py proteste au-delà de deux pages : une lettre d'affaires qui déborde ne
se lit pas, et la tentation est alors de rétrécir la typographie plutôt que le
propos. C'est le propos qu'il faut resserrer.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
2026-08-24 18:17:55 +02:00

80 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Correspondance commerciale — le format maison
Le gabarit des lettres qu'Arcodange adresse à ses clients et prospects. Fixé le
24 août 2026 avec le dossier KissMetrics, et validé par l'opérateur : « on peut
se souvenir de ce format pour les communications avec KM et futurs
prospects/clients ».
## Produire une lettre
```bash
python3 correspondance/lettre.py corps.html sortie.pdf \
--titre "Contracts and invoices — cycles M1 to M4" \
--date "24 August 2026" --prenom Evan \
--destinataire "Evan Sforzo" --fonction "Chief Executive Officer" \
--societe "Kissmetrics Inc." \
--adresse "2850 34th Street North, 307 — St. Petersburg, Florida 33713 — United States" \
--copie "Hendrik Rootering" \
--pied "Arcodange × Kissmetrics Inc. — 24 August 2026"
```
`corps.html` ne porte que le corps — les `<h2>`, `<p>`, `<table>`, encadrés.
L'en-tête, le bloc destinataire, la signature et le pied viennent du gabarit.
Sans `--copie`, la ligne « cc » disparaît entièrement.
Le script vérifie le nombre de pages et proteste au-delà de deux : une lettre
d'affaires qui déborde ne se lit pas. Resserrer le CORPS, jamais la typographie.
## Les choix, et pourquoi
**Charter pour le texte, Optima pour les titres.** Charter a été dessinée par
Matthew Carter pour tenir le petit corps là où d'autres se délitent — elle reste
lisible à l'écran comme sur papier bon marché. Optima lui donne un contrepoint
humaniste sans raideur. Les deux sont incorporées au PDF : le rendu est le même
chez le destinataire, quelle que soit sa machine. Chiffres elzéviriens activés,
pour que les montants dans le texte s'alignent au lieu de faire des bâtons.
**Deux encadrés, deux usages.** Le gris (`.calme`) porte une question ou une
demande — elle ne doit pas se noyer dans un paragraphe. Le rouge sourd
(`.encart`) porte ce qui doit être lu même en diagonale. **Un seul par lettre** ;
deux, et plus rien ne ressort.
**Les tableaux portent un `<thead>`.** Sans lui, un tableau qui se coupe entre
deux pages perd son en-tête et devient illisible. Avec, il se répète.
**Les trois emblèmes 🏹💻🪽** viennent du site — *« Gabriel 🪽 Radureau, pour 🏹
réussir vos projets 💻 »*. L'arc et l'ange sont dans le nom lui-même. Ils
figurent en marque sous le mot-marque, et l'aile seule entre prénom et nom dans
la signature.
## Le piège des emblèmes
> [!IMPORTANT]
> **`weasyprint` ne sait pas rendre Apple Color Emoji.** C'est un format bitmap
> `sbix` qu'il ignore : les trois emblèmes sortent en carrés vides, sans erreur
> ni avertissement. Vérifié le 24/08/2026.
D'où `emblemes/*.png`, rendus une fois pour toutes par `test/emoji2png.ts`, qui
passe par Chromium — lui lit la police système. Pour les régénérer ou en ajouter :
```bash
cd test && deno run -A emoji2png.ts ../correspondance/emblemes 🏹 💻 🪽
```
Les PNG sont incorporés en base64 **à la génération**, pas dans le gabarit : un
gabarit de 400 Ko dont 97 % de charabia ne se relit pas. Le PDF produit, lui,
reste autonome.
## Ce que le format ne fait pas
Il ne remplace pas le message d'accompagnement. La lettre est le document qu'on
joint ; le mot sur Slack ou par courriel reste séparé, plus court, et dit
pourquoi on écrit. Les deux doivent rester d'accord — vérifier que la lettre ne
mentionne aucune pièce absente de l'envoi.
## Exemple de référence
`1_DOCUMENTS/prospects/KissMetrics/relances/2026-08-24_lettre_KM.html` — la
lettre du 24/08/2026, dont ce gabarit est extrait. Elle se régénère à
l'identique, au mot près, ce qui est le test du gabarit.