engineering · 2026-09-10

Un moteur XLSX qui rouvre ce qu’il a écrit

Écrire un tableur ne coûte rien. Prouver que ce qu’on a écrit est un tableur demande une seconde bibliothèque.

Écrit et couvert par des tests, pas encore observé en exécution réelleDeskworth · publié · mis à jour · 2 sources · Deskworth OS 0.0.22

Un tableur est une archive zip de fragments XML sous une norme internationale publiée 2. Produire des octets qu’une bibliothèque accepte n’est pas produire un fichier qui s’ouvre.

#Deux bibliothèques, et c’est voulu

Une caisse écrit, une autre relit. Si une seule bibliothèque faisait les deux, un défaut qu’elle partage avec elle-même ne remonterait jamais : le fichier malformé qu’elle a produit se validerait sous les hypothèses qui l’ont produit. Le chemin d’écriture rend une empreinte, nombre d’octets, SHA-256, nombre de feuilles, de faits, de contrôles, et un fichier qui ne se rouvre pas est supprimé plutôt que livré.

#Des formules, pas des valeurs

Les feuilles Sortie et Contrôles portent de vraies formules : elles somment la plage du modèle, prennent l’écart avec le chiffre attendu, protègent la division et comparent à une tolérance. Un classeur de valeurs recopiées est une capture d’écran avec une extension de fichier.

#Aucun moteur d’exécution, aucune suite bureautique

Rien n’est délégué à un shell. Ni Node, ni Python, ni LibreOffice, ni Excel ne sont nécessaires pour créer ou valider un livrable. L’empreinte de dépendances tient en deux caisses, toutes deux sous licence permissive, et un audit n’en signale aucune inutilisée.

LimiteLa chaîne est complète et testée. Elle n’a jamais été déclenchée par un agent en session réelle, et tant que cela n’arrive pas le moteur n’est pas déclaré livré 1.

#Sources

  1. Deskworth OS, handover report 0.0.22Deskworthinternal handover report · Deskworth OS 0.0.22 · commit d59e30e · publié 2026-09-10 · lu 2026-09-10Document interne, non publié
  2. ISO/IEC 29500, Office Open XML File FormatsISO/IECofficial documentation · lu 2026-09-10https://www.iso.org/standard/71691.html

Read next