OKIandClaude Opus 5 eaaf7c34ad fix(assets): le test de reproductibilité ne vidait pas le cache ComfyUI
Correction d'une preuve qui n'en était pas une.

Ma vérification lançait le même plan deux fois et comparait les
empreintes. Le porteur ayant indiqué où ComfyUI écrit ses images, le
dossier a pu être inspecté : UN SEUL fichier y figurait alors que deux
exécutions avaient été lancées.

ComfyUI met en cache le résultat d'un graphe identique. La « deuxième
exécution » n'avait rien recalculé — elle avait relu la première.
Comparer deux empreintes dans ces conditions ne mesure que le cache.

Après POST /free, une exécution authentique produit decor_00002_.png,
bit-identique au premier. La conclusion était juste, la méthode ne
l'était pas.

Le test devient un mode de l'outil plutôt qu'une manipulation :
--reproductibilite génère, vide le cache, régénère et compare. Un test
de reproductibilité qui ne vide pas le cache se ment à lui-même.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 12:25:52 -04:00

KI FWI SA YÉ ?

Jeu éducatif libre qui apprend aux enfants des Antilles à reconnaître les fruits, les arbres et les plantes de leurs îles. Le kréyòl est la langue principale ; le français en est la traduction.

Porté par ORGANISATION KA INTERNATIONALEo-k-i.net.

État : session 0 terminée. Cadre juridique, outillage de données et dataset vérifié. Aucun code applicatif n'est encore écrit. Voir docs/plan.md.

Le principe

Le jeu enseigne la reconnaissance du réel. Deux filières d'assets, jamais mélangées :

  • Filière A — vérité. Photographies réelles. Seule filière autorisée pour tout ce qui sert à identifier : épreuves, indices, fiches.
  • Filière B — décor. Images générées. Fonds, sprites, badges. Jamais une épreuve.

Les modèles de diffusion connaissent mal le corossol, à peine la quenette, presque pas le zikak. Ils produisent des fruits plausibles et faux. Un jeu d'identification bâti sur des assets générés apprend l'erreur.

Cette règle n'est pas une consigne : c'est un script. npm run validate:data fait échouer le build si une épreuve s'appuie sur un média non validé, et npm run test:porte prouve que ce refus se produit.

Un projet participatif — le manque est publié, pas masqué

Les fonds libres documentent mal la flore antillaise, et le kréyòl en est presque absent : Wikidata enregistre 124 noms vernaculaires pour les 13 espèces du projet — en chinois, en anglais, en portugais, en slovène — et aucun en kréyòl.

Plutôt que de contourner ces trous, le projet les mesure et les publie. Une fiche sans photo d'écorce le dit et explique comment le combler. npm run rapport:manques régénère l'inventaire ; docs/contribuer.md explique les six gestes possibles, de l'ajout d'un nom sur Wikidata — cinq minutes, aucun matériel — jusqu'à l'enregistrement d'une voix kréyòl.

Contribuer se fait sur Wikimedia Commons, Wikidata, iNaturalist, Pl@ntNet ou Lingua Libre, jamais dans le jeu : les contributions doivent servir à tout le monde, pas seulement à ce projet. Le jeu se contente de liens ordinaires — il ne contacte aucun service pendant qu'on y joue.

La langue aussi se demande. Le projet écrit des noms en kréyòl sans avoir autorité pour le faire. Quatre questions sont donc posées publiquement dans les fiches — aki ou ake ? qu'appelez-vous pòm-dlo ? — et le validateur refuse qu'une entrée soit publiée sans qu'un locuteur nommé ait tranché. Les variantes proposées sont conservées avec leur source : une variante est un usage, pas une erreur. Voir docs/kreyol-participatif.md.

Commandes

npm install
npm run verify:taxa      # vérifie la taxonomie contre Wikidata et GBIF
npm run ingest:commons   # remonte les photos candidates sous licence libre
npm run build:dataset    # compose les entrées (--force pour écraser)
npm run validate:data    # la porte : schéma + règles métier
npm run test:porte       # prouve que la porte refuse ce qu'elle doit refuser
npm run build:credits    # régénère CREDITS.md depuis les données
npm run check:audio      # liste les enregistrements kréyòl manquants
npm run rapport:manques  # mesure ce qui manque, dans le projet et dans les fonds publics

Ces scripts vivent dans tools/data/, hors du bundle. Aucun appel réseau ne subsistera au runtime du jeu : tout est cuit au build.

Où regarder

Fichier Contenu
docs/contribuer.md comment enrichir la connaissance — six gestes, du plus rapide au plus engageant
docs/kreyol-participatif.md corriger notre kréyòl — les questions ouvertes, et comment y répondre
docs/manques.md ce qui manque, mesuré et daté — régénéré par script
docs/plan.md les 7 sessions et leurs portes de sortie mesurables
docs/adr/ les six décisions d'architecture et leurs motifs
docs/audit-sources.md ce qu'on prend à chaque source, sous quelle licence
docs/a-arbitrer.md ce qu'un humain doit trancher avant publication
docs/kreyol-a-relire.md les incertitudes orthographiques, signalées non corrigées
docs/planche-relecture-medias.md les 130 photos candidates à valider
fruits.schema.json le contrat des données
CREDITS.md attributions, généré — ne pas éditer

Licences

  • Code : AGPL-3.0-or-later
  • Contenu OKI : CC BY-SA 4.0
  • Médias tiers : licence d'origine conservée, listée média par média dans CREDITS.md. Le jeu est une œuvre collective, pas dérivée — d'où l'interdiction absolue de compositing, vérifiée par script.

Rien n'est « libre de droit ». Voir SOURCES.md et docs/adr/0001-licences.md.

Ce que le code ne fera jamais

Aucun compte, aucune publicité, aucun traceur, aucune requête vers un domaine tiers au runtime, aucune collecte de données sur les enfants. Le jeu est entièrement jouable hors ligne après une première visite.

S
Description
No description provided
Readme AGPL-3.0
487 KiB
Languages
JavaScript 39.6%
Svelte 34.8%
TypeScript 14.8%
Python 5.4%
CSS 4.2%
Other 1.2%