Modifier un site par chat, sans le casser
Demander un changement en mots simples est facile à démontrer, difficile à sécuriser. Comment une modification devient un patch sur une définition validée.
« Fonce l'en-tête et place les avis au-dessus des tarifs. »
Le montrer en démo est facile. Le rendre sûr, c'est le vrai travail, car le risque n'est pas une mauvaise couleur : c'est un modèle qui réécrit une page qu'on lui demandait seulement d'ajuster, et qui laisse tomber au passage les horaires d'ouverture.
Le site est une donnée, pas du code
Ici, un site est une définition validée : des pages, des sections, du contenu, un design. Le moteur de rendu la transforme en HTML, et rien d'autre ne le fait. Une modification ne touche donc jamais au balisage : elle change la définition, et cette définition est vérifiée avant d'être enregistrée.
Vérifiée, cela veut dire plus que « lisible ». Des règles entre champs attrapent ce qu'un schéma ne sait pas dire : deux bandeaux d'accueil sur une même page, un article sans date, une page imbriquée là où le routeur ne la servirait jamais, un tableau lié à une collection que le site ne déclare pas. Tout cela est refusé net, au lieu d'être publié puis découvert plus tard.
Une modification est un patch
On ne demande pas au modèle de renvoyer un nouveau site. On lui demande le plus petit patch qui produit le changement, appliqué au site tel qu'il est aujourd'hui.
Cette seule décision écarte l'essentiel du danger :
- Le contenu que la modification ne mentionne pas ne peut pas changer, puisqu'il n'est pas dans la réponse.
- Un petit changement coûte une petite réponse : les modifications sont rapides et peu coûteuses.
- Le patch est conservé, donc l'historique dit ce qui a changé, et pas seulement ce que le site est devenu.
Rien n'est publié tant que vous ne le dites pas
Chaque modification atterrit dans un brouillon. L'éditeur affiche le brouillon ; le site public continue de servir la dernière version publiée jusqu'à ce que vous publiiez. Toutes les versions sont conservées : revenir en arrière tient en un clic, sans avoir à s'excuser.
Une vérification de plus mérite d'être citée, parce qu'elle a attrapé un vrai bug. Si le brouillon a changé pendant qu'une longue modification était en cours (vous avez modifié quelque chose dans un autre onglet, par exemple), le résultat est refusé plutôt que fusionné :
"Une autre modification a été enregistrée sur ce site pendant l'exécution de cette édition. Vérifiez le brouillon actuel et réessayez.
Perdre une modification est agaçant. En écraser une en silence est bien pire.
Ce que nous ne ferons pas
Nous ne laissons pas une modification inventer des faits. Ajouter un témoignage que personne n'a écrit, ou une certification que personne ne détient, n'est pas une fonctionnalité ; et la règle qui encadre la génération encadre aussi la modification.
Nous ne prétendons pas non plus qu'un changement a eu lieu quand ce n'est pas le cas. Si une demande ne peut pas s'exprimer comme un changement de la définition, on le dit, plutôt que de produire quelque chose d'approchant en espérant que ça passe.