asklera-PDF — Feuille de route pour devenir la référence mondiale du PDF
EN PAUSE (fondateur, soir du 2026-09-14) : aucune implémentation tant que le brainstorm et cette feuille de route ne sont pas complets et que chaque question de
06-decisions.mdn'a pas de réponse. L'état des travaux interrompus est consigné dans05-battle-order.md(« State at the pause »). Les lanes ne reprendront qu'à partir des réponses du fondateur.
Rédigée le 2026-09-14 à HEAD 782f231 sur décision du fondateur. Remplace le
ROADMAP.md français du 2026-09-14 (archivé sous docs/archive/), dont le périmètre
était trop étroit : il centrait le programme sur le marché de la santé français. La
cible est désormais la couverture universelle — chaque norme ISO/ETSI/ITU/IETF/W3C
touchant au PDF, chaque extension de la PDF Association et des éditeurs, chaque profil
national (facturation électronique, droit de la signature électronique, archivage,
accessibilité, identité) et chaque convention de facto d'une industrie (eCTD
pharmaceutique, marquages de défense, SMART Docs hypothécaires, chiffrement MIP
d'entreprise, cachets électroniques chinois, signatures GOST russes…), sur toutes les
verticales — santé, éducation, juridique, commercial, gouvernemental, industriel,
défense, personnel, PME, grande entreprise, Fortune 500 — et sur toutes les plateformes
et tous les langages.
Thèse
Une bibliothèque devient la référence quand trois conditions sont simultanément vraies :
- Elle a raison, preuve à l'appui, là où les autres sont simplement utilisables.
Chaque affirmation de cette feuille de route est rattachée à un oracle qui ne
partage aucun code avec nous (une implémentation de référence, un validateur
officiel, une suite de conformité, un jeu de fichiers de test national) et à un
contrôle négatif qui prouve que l'oracle peut voir le défaut.
cargo xtask prove <id>reste la porte ;docs/COUVERTURE-ISO32000.tomlreste le registre. - Elle couvre ce que personne d'autre ne prend la peine de couvrir — les profils nationaux et sectoriels « ésotériques » qui forcent les entreprises à garder trois éditeurs sous contrat. Chacun est petit ; ensemble, ils forment la douve.
- Elle est accessible depuis n'importe où — une ABI C stable, du Node/Bun/WASM de
premier rang, Python, JVM, .NET, Swift, Go et le reste, avec des adaptateurs
compatibles pour les API et CLI déjà utilisées (pdfium
FPDF_*, poppler-utils, qpdf, pdftk, cpdf).
Organisation de ce répertoire
| Fichier | Contenu |
|---|---|
00-README.md |
ce fichier : thèse, doctrine, légende, règles de maintenance |
01-baseline.md |
ce qui existe et est prouvé à la date de rédaction ; ce qui manque |
02-market-survey.md |
chaque famille d'outils (libre, propriétaire, SaaS, niveau OS) et ce qu'on en retient : égaler, dépasser, ou adopter comme oracle |
03a-standards-atlas-core.md |
atlas mondial des normes, partie 1 : format cœur, extensions, codecs, polices/i18n, couleur, sécurité, régimes de signature et de confiance par juridiction, cartes à puce/jetons/HSM/signature à distance |
03b-standards-atlas-verticals.md |
partie 2 : facturation électronique mondiale, archivage/records, droit de l'accessibilité, impression/prépresse, santé, juridique/notarial/apostille, éducation/diplômes, gouvernement/identité/cachets visibles et codes-barres, industriel/défense/ingénierie, finance/assurance/hypothèque, IT d'entreprise, formats de documents voisins, intégration web/OS |
04-feature-tiers.md |
fonctionnalités F-001…, classées par palier pour une bibliothèque multiplateforme, multilangage, compatible web |
05-battle-order.md |
phases → lanes ; Phase 0 = les lanes interrompues par le quota hebdomadaire, avec l'emplacement exact de leur travail non commité |
06-decisions.md |
décisions que seul le fondateur peut prendre (modèle de licence, achats, ADR, adhésions) |
07-brainstorm.md |
pistes d'extension au-delà des fonctionnalités : écosystème, normalisation, vecteurs d'adoption |
Doctrine (règles du programme inchangées, redites pour les nouveaux lecteurs)
- Ne jamais implémenter de cryptographie ici. Chaque primitive, mode, KDF, schéma
de signature et routine de chemin de certification vient de RUSSL (
russl-*sur Kellnr). Une capacité manquante de RUSSL est nommée dans le rapport et devient une lane amont ; elle n'est jamais substituée localement, jamais contournée par une crate tierce. - Toute crate externe exige un ADR validé par le fondateur. Les générateurs de liaisons (cbindgen, napi-rs, wasm-bindgen, PyO3, UniFFI…) sont des outils de construction, regroupés sous un seul ADR ; les dépendances d'exécution sont justifiées individuellement.
- Les bibliothèques de socle vivent hors de
ASKLERA/, sont publiées sur Kellnr, et portent zéro dépendancepath. Même numéro de version ⇒ mêmes octets : diffe le.crate, ne republie jamais un numéro. - Une fonctionnalité n'est
implementedqu'après quecargo xtask prove <id>exécute chaque test cité face à un oracle externe avec un contrôle négatif ;SKIPPEDest fatal. - Les références vivent hors du dépôt (
~/Projects/ref/<id>/, registredocs/REFERENCES.tomlavec SHA-256/commit et licence). Les textes ISO sponsorisés sont à usage interne : jamais copiés, jamais cités au-delà d'une phrase. Les corpus de test tiers sont du matériel de test interne seulement : récupérés par script à un commit épinglé, jamais copiés dans le dépôt, jamais livrés dans un artefact. - Discipline de machine partagée (big-1) : worktree isolé par lane sous
~/(/tmpest saturé), commits par index temporaire avec des blobs construits depuis HEAD pour les fichiers partagés, HEAD vérifié compilable depuis un worktree propre, jamais degit stash, jamais degit add -A/-u, jamais decargo test --workspaceconcurrent, jamais depkilllarge. - Texte utilisateur en français (messages CLI, erreurs, rapports pour le fondateur) ; code, commentaires, identifiants et cette feuille de route en anglais.
- La performance est mesurée à petite échelle à chaque étage (criterion + ~50 fichiers représentatifs) puisque nous contrôlons chaque étage du codec au rastériseur ; le balayage complet du corpus ne vient qu'une fois le harnais à petite échelle stabilisé.
Légende des statuts
✅ fait · 🔧 en cours (lane X) · ⏸ interrompu, à reprendre · 📋 planifié ·
🧭 décision fondateur requise · 🚫 hors périmètre, raison donnée · 🔬 oracle.
Maintenance
Chaque lane prend son identifiant dans 05-battle-order.md, y lit son objectif, son
oracle et son critère de sortie, et en rendant son rapport met à jour : sa ligne de
statut dans 05, les chiffres mesurés dans 04 pour les fonctionnalités qu'elle a
touchées, et toute décision qu'elle a dû laisser au fondateur dans 06. L'état des
lieux du 01 est régénéré après chaque cargo xtask prove all vert. Rien dans ces
fichiers ne dit « fait » sans une preuve citée depuis docs/COUVERTURE-ISO32000.toml.