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>
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
# 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 :
|
||||
|
||||
```json
|
||||
"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.
|
||||
Reference in New Issue
Block a user