Apache-2.0
Le harnais, la spécification
La méthode est publiée. Les données restent à nous. Voici la ligne entre les deux, et pourquoi elle est là.
Ce qui est ouvert
Le paquet @rikaido/harness-spec publie, sous licence Apache-2.0 :
recipe.schema.json— la forme d’une recette que le harnais lit. JSON Schema 2020-12.verdict.schema.json— la forme de ce qu’il répond.issue-codes.json— les vingt codes, leur contrôle, leur sévérité, et une phrase en deux langues.- Les huit contrôles, dans l’ordre où ils tournent.
C’est assez pour implémenter le harnais soi-même, lire un verdict, ou nous tenir à ce qu’il promet. Un test dans le dépôt tient le paquet égal au noyau : un code ajouté au validateur qui n’a pas sa ligne dans la spec fait échouer la build.
Ce qui reste privé
- Le graphe alimentaire — ce dont un ingrédient est fait, ce qu’il contient, ce qui le remplace. C’est lui qui sait que « beurre d’arachide » brise « arachide », et que « lait de coco » ne brise pas « lait ».
- Le lexique des techniques — 72 techniques, chacune avec sa bande de température, ses repères et ses formes de détection.
- Les bandes de cuisson — sel, levée, hydratation, ratios de boulanger, fenêtre de four, par catégorie de plat.
- La base de recettes vérifiées.
Le harnais hébergé fait tourner les deux moitiés. La spec seule te donne la méthode ; l’API te donne la méthode et les données.
Les huit contrôles
Dans l’ordre du validateur, parce qu’un cuisinier n’apprend qu’un seul roster :
- Sécurité — allergies, diètes, exclusions, à travers le graphe. Une contrainte que le harnais ne sait pas vérifier est nommée, jamais tue.
- Plat — classé par le titre puis par le rôle des ingrédients. Sans classement, aucune bande ne tourne, et la réponse le dit.
- Structure — assez d’étapes, assez d’ingrédients principaux.
- Quantités — chiffrées ; « au goût » réservé au sel et au poivre ; zéro refusé.
- Sel — présent, et dans la bande du plat.
- Pâte — levée, levure, hydratation et ratios, sur les plats cuits au four seulement.
- Températures — plausibles pour une cuisine maison, dans la fenêtre du plat, et dans la bande de la technique que l’étape nomme.
- Techniques — un slug que le lexique ne tient pas est nommé, puis retiré avant de servir.
Le sceau et le refus
Chez Rikaido, serve() est la seule porte par laquelle une recette atteint un cuisinier. C’est une fonction pure : elle classe, vérifie, et soit scelle la recette — un type nominal qu’on ne peut pas fabriquer à la main — soit la refuse. safe: false n’est jamais scellé. ok: false l’est, avec ses notes.
Le sceau est un fait de compilation, pas un champ sur le fil : un nouvel écran ne peut pas afficher une recette qui a sauté le harnais, parce que le type ne lui permettra pas.
L’API te donne le verdict ; la porte, c’est à toi de la tenir. La règle qu’on te propose est la nôtre : ce qui ne se corrige pas n’est pas servi.