Files
ki-fwi/docs/adr/0005-kreyol-langue-principale.md
T
OKIandClaude Opus 5 945a524b44 feat(session-0): cadre juridique, porte de validation et dataset vérifié
Session 0 du plan — aucun code applicatif.

Cadre
- 5 ADR : licences, Phaser 4 hors budget initial, frontière Svelte/Phaser,
  filières A/B des assets, kréyòl langue principale (norme gwadloupéyenne).
- LICENSE (AGPL-3.0-or-later, texte canonique gnu.org), LICENSE-CONTENT
  (CC BY-SA 4.0). Le jeu est une œuvre collective : aucun compositing sur un
  média SA ou NC, contrainte vérifiée par script.
- Audit des 7 sources avec endpoints réellement appelés. TRAMIL vérifié en
  direct : « all rights reserved » et page de mentions légales en 404.
  iNaturalist mesuré à 93 % de CC BY-NC sur un échantillon de 305 photos.

Outillage (tools/data/, hors bundle, zéro appel réseau au runtime)
- verify:taxa, ingest:commons, build:dataset, validate:data, test:porte,
  build:credits, check:audio.
- validate.mjs est la porte exigée par le brief §2 : le build échoue si une
  épreuve s'appuie sur un média non validé, non photographique ou de filière B,
  sur une attribution sans auteur, sur un compositing SA/NC, ou sur une entrée
  publiée sans relecture kréyòl. test:porte prouve les 9 refus + 1 témoin.

Données
- 13 entrées (8 fruits + 5 plantes du module Pa touché) vérifiées contre
  Wikidata ET GBIF : 13/13 ACCEPTED, 0 divergence avec la graine.
- 130 candidats Commons sous licence libre, 39 pré-inscrits, 0 validé —
  aucun agent ne peut valider un média.

Écarts signalés, non corrigés en silence
- Le champ danger de la graine a deux formes (note vs resume) : normalisé.
- 3 identifiants divergent du nom kréyòl au-delà des accents : non tranchés.
- comestible:false sur akée et pomme-cajou : sous-estimation prudente assumée.
- Le mancenillier n'a aucune photographie moderne dans ses 3 premiers
  candidats — l'entrée la plus critique est la moins bien servie.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 23:47:27 -04:00

3.7 KiB

ADR 0005 — Le kréyòl est la langue principale, norme gwadloupéyenne

  • Statut : accepté ; orthographe en attente de relecture humaine
  • Date : 2026-07-27
  • Session : 0 — cadre et données

Contexte

Le jeu vise à restituer une connaissance qui se transmettait en kréyòl. Traiter le kréyòl comme une traduction du français inverserait le rapport que le projet cherche précisément à rétablir.

Par ailleurs, les orthographes gwadloupéyenne et matinitjée diffèrent sur plusieurs entrées du jeu de données. Les mélanger produirait un contenu que personne ne reconnaît tout à fait comme le sien.

Décision

Le nom kréyòl est le nom de l'entrée

Dans les données, noms.gcf est le nom principal. noms.fr, noms.en et noms.es en sont les traductions. Le schéma rend gcf obligatoire et les autres facultatives — pas l'inverse. C'est un choix politique, pas cosmétique, et il ne s'inverse pas au motif que le français serait « plus pratique » pour l'interface.

Routes

/ sert le kréyòl, /fr/ le français, /en/ l'anglais. Routeur par dossiers avec catalogues JSON, pas de middleware (playbook §5b.7) : les URLs et le prérendu restent sous contrôle total, ce qui est la condition du statique et du hors-ligne.

Attribut lang="gcf" correct partout, y compris sur les fragments kréyòl insérés dans une page française — un nom de fruit prononcé par un lecteur d'écran avec la phonétique française n'est pas le nom du fruit.

Norme orthographique : gwadloupéyenne

Une seule norme pour tout le projet, décidée par le porteur en session 0. Le champ orthographe.norme vaut "gwadloupeyen" sur chaque entrée, et le schéma n'accepte pas d'autre valeur : il est impossible de mélanger les deux normes sans modifier le schéma, donc sans que la décision soit revue.

L'orthographe elle-même n'est pas du ressort de l'agent

Aucune graphie n'est tranchée par un agent de code. Chaque entrée porte :

"orthographe": { "norme": "gwadloupeyen", "statut": "a_relire", "relu_par": null }

statut ne passe à "relu" que par décision d'un locuteur humain nommé. Le validateur refuse toute entrée déclarée publiable dont l'orthographe n'est pas relue, et toute entrée relu sans nom de relecteur.

Les incertitudes constatées sont consignées dans docs/kreyol-a-relire.md — signalées, pas corrigées.

Conséquences

  • Les 13 graphies issues de fruits.seed.json sont toutes non vérifiées à ce stade. La graine elle-même le déclare. Trois incohérences internes ont été relevées entre l'identifiant technique et le nom kréyòl (voir docs/kreyol-a-relire.md) : elles ne sont pas corrigées ici.
  • Les identifiants techniques (id) restent en ASCII sans diacritique — ils servent de nom de fichier et de segment d'URL. Ils ne sont pas une graphie et ne doivent jamais être affichés à l'utilisateur. kowosol est un identifiant ; kowosòl est un nom.
  • Un identifiant ne se renomme jamais après publication : il est dans les URLs, dans la progression stockée en local et dans les liens partagés. Une correction d'orthographe change noms.gcf, jamais id.
  • Chaque entrée doit recevoir un enregistrement audio du nom prononcé par une voix humaine locale. Pas de synthèse vocale : les enfants visés lisent mal le kréyòl écrit, dont l'orthographe leur est peu familière — un jeu qui enseigne les noms kréyòl sans les faire entendre rate sa cible. npm run check:audio tient la liste de ce qui manque.

Point ouvert

Le relecteur n'est pas encore désigné. Tant qu'il ne l'est pas, aucune entrée ne peut être publiée : c'est le validateur qui l'impose, pas une note de bas de page.