ASKLERA PDF — Feuille de route

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.md n'a pas de réponse. L'état des travaux interrompus est consigné dans 05-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 :

  1. 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.toml reste le registre.
  2. 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.
  3. 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épendance path. Même numéro de version ⇒ mêmes octets : diffe le .crate, ne republie jamais un numéro.
  • Une fonctionnalité n'est implemented qu'après que cargo xtask prove <id> exécute chaque test cité face à un oracle externe avec un contrôle négatif ; SKIPPED est fatal.
  • Les références vivent hors du dépôt (~/Projects/ref/<id>/, registre docs/REFERENCES.toml avec 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 ~/ (/tmp est 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 de git stash, jamais de git add -A/-u, jamais de cargo test --workspace concurrent, jamais de pkill large.
  • 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.

Source: docs/roadmap-fr/00-README.md · big-1 · 2026-09-14 19:03 UTC