Une preuve datée se détruit de quatre façons, et aucune ne se voit sur le moment. Voici les quatre contraintes que nous écrivons dans le code pour qu'elles ne puissent pas se produire — avec ce que chacune coûte. Trois sont nées d'un incident chez nous.
Il y a quatre façons de détruire une preuve datée sans que personne le voie : une date que son bénéficiaire pouvait écrire, une copie qui diverge de son original, une mesure qu'on ne peut plus rejouer, et un contrôle qui rend « zéro » sans distinguer je n'ai rien trouvé de je n'ai pas pu regarder. Nous les avons décrites ailleurs, et nous ne redémontrons pas le problème ici.
Ce billet traite de l'autre moitié : ce qu'on écrit dans le code pour que ces quatre défauts ne puissent pas se produire. Pas des principes — des contraintes, avec ce qu'elles coûtent.
Nous les tenons sur nos propres dispositifs. Trois des quatre sont nées d'un incident chez nous, et nous le disons à chaque fois : une exigence qui n'a jamais coûté n'a jamais été mise à l'épreuve.
C'est la contrainte structurante, et elle exclut d'emblée la plupart des solutions confortables.
Une date que le système produit lui-même, sur commande, pour son propre compte, n'établit rien — quelle que soit la rigueur de celui qui l'exploite. La question n'est pas la bonne foi, elle est la capacité matérielle : si le producteur de la preuve peut choisir la date, alors un tiers ne peut plus distinguer celui qui n'a pas triché de celui qui aurait pu.
Ce qu'on en fait concrètement : la date de référence ne vient jamais du fichier ni du rapport. Elle vient d'un mécanisme dont l'auteur du constat ne tient pas l'horloge — un système de versionnement dont l'historique est partagé, un dépôt distant, un service d'horodatage. Le rapport, lui, porte une date déclarée qui n'a qu'une valeur de confort.
Ce que ça coûte : il faut accepter qu'un constat produit hors de ce circuit ne compte pas. C'est frustrant sur le moment — un rapport reste un rapport, il a l'air valable. Il ne l'est pas.
Le partage d'un document est inévitable et souhaitable. Ce qui est évitable, c'est de ne pas avoir décidé, avant le premier partage, lequel des exemplaires fera foi.
Notre règle est courte : l'emplacement est l'état. Un document n'est pas « validé » parce qu'une case est cochée ; il l'est parce qu'il se trouve à l'endroit qui signifie validé. Une copie déposée ailleurs pour relecture est une projection — elle porte cette mention, et elle ne remonte jamais seule.
Le contrôle qui va avec est trivial et c'est ce qui le rend fiable : avant de supprimer ou de remplacer une copie, on compare octet pour octet avec l'original. S'ils diffèrent, on regarde pourquoi avant d'agir.
Ce que ça coûte : deux secondes à chaque geste, et l'acceptation d'être interrompu. Cette comparaison nous a arrêtés le jour même où nous écrivions ce billet : une copie et sa source avaient divergé sans que personne l'ait voulu, et c'est la source qui portait le défaut.
Un constat n'a de valeur que si on peut le refaire. Or la plupart des constats reposent sur un état extérieur qui disparaît : une page modifiée, une version désinstallée, une interface tierce qui change.
La contrainte : conserver l'entrée, pas seulement la sortie. Quand nous relevons un texte officiel, nous en gardons la version telle qu'elle a été récupérée, avec sa date de récupération, et les contrôles rejouent sur cette copie. Le contrôle ne demande pas « ce texte dit-il encore cela ? » — il demande « ce que nous avons cité était-il dans ce que nous avons lu ? ». Ce sont deux questions différentes, et seule la seconde se rejoue à l'identique dans trois ans.
Ce que ça coûte : du stockage, et la discipline de dater les entrées autant que les sorties. C'est peu.
Celle-ci nous a coûté le plus cher, parce qu'elle ne se voit pas.
Un contrôle qui ne connaît que deux réponses — conforme, non conforme — rendra « conforme » le jour où il ne pourra pas mesurer. Droits insuffisants, fichier illisible, service injoignable : autant de situations où l'absence de résultat se lit comme une absence de problème.
Nos contrôles rendent donc trois états : mesuré · en défaut · indécidable. Et l'indécidable alerte au moins autant que le défaut, parce qu'il est plus dangereux : un défaut se voit et se corrige, un indécidable pris pour un vert dort pendant des mois.
Nous avons appris cette règle deux fois dans la même journée, sur deux outils différents, dont l'un venait d'être écrit pour corriger l'autre. D'où sa formulation actuelle, qui ne parle plus d'un cas mais d'une classe : un compteur à zéro sur un ensemble non vide est un symptôme à instruire, jamais un état à enregistrer.
Ce que ça coûte : chaque contrôle devient plus long à écrire, et il faut se demander, pour chaque mesure, ce qui se passe quand elle échoue. C'est exactement le travail qu'on saute quand on est pressé.
Elle ne dit à personne s'il est en règle. Elle ne qualifie aucune obligation, elle n'apprécie pas ce qui serait jugé suffisant dans un dossier donné : ces questions relèvent d'un juriste, et notre travail s'arrête avant.
Elle ne remplace pas non plus le jugement. Un dispositif qui respecte ces quatre exigences peut mesurer la mauvaise chose — et il la mesurera très proprement. Choisir ce qu'on démontre reste une décision humaine, et c'est la plus importante des quatre.
Ce qu'elle fait, c'est plus modeste et vérifiable : elle produit un constat qu'un tiers peut refaire, à une date qu'on n'a pas choisie, sur une matière qu'on a conservée, avec un outil qui sait dire quand il n'a pas su.
C'est peu. C'est ce qui manque le plus souvent.