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,90 @@
|
||||
# ADR 0001 — Licences du code, du contenu et des médias
|
||||
|
||||
- **Statut :** accepté
|
||||
- **Date :** 2026-07-27
|
||||
- **Session :** 0 — cadre et données
|
||||
- **Décideur :** le porteur (ORGANISATION KA INTERNATIONALE)
|
||||
|
||||
## Contexte
|
||||
|
||||
Le pack d'origine parlait de « ressources libres de droit ». L'expression n'a pas
|
||||
d'existence juridique et masque quatre régimes très différents :
|
||||
|
||||
- **Wikimedia Commons** n'héberge que du libre, mais majoritairement du **CC BY-SA**,
|
||||
qui impose l'attribution nominative **et** le partage à l'identique. Le partage à
|
||||
l'identique contamine les œuvres dérivées.
|
||||
- **iNaturalist** publie beaucoup de **CC BY-NC**, incompatible avec toute distribution
|
||||
commerciale.
|
||||
- **TRAMIL** (tramil.net) n'accorde aucune licence dans ses mentions légales. Par défaut :
|
||||
tous droits réservés.
|
||||
- **CIRAD / INRAE** appliquent des régimes mixtes, majoritairement propriétaires, avec des
|
||||
usages pédagogiques négociables au cas par cas.
|
||||
|
||||
Le projet vise des enfants de 7 à 12 ans dans un cadre scolaire. Une erreur de licence sur
|
||||
un support diffusé en classe n'est pas rattrapable par un correctif.
|
||||
|
||||
## Décision
|
||||
|
||||
### Code — AGPL-3.0-or-later
|
||||
|
||||
`LICENSE` contient le texte canonique récupéré depuis gnu.org. L'AGPL plutôt que la GPL
|
||||
parce qu'une version future pourrait exposer une face serveur (export de progression pour
|
||||
un enseignant, tableau de classe) : l'AGPL couvre l'usage en réseau, la GPL non.
|
||||
|
||||
### Contenu rédigé par OKI — CC BY-SA 4.0
|
||||
|
||||
Textes, fiches, indices botaniques, module « Pa touché », données structurées. Cohérent
|
||||
avec Commons, donc réutilisable par le projet lui-même et par les enseignants.
|
||||
|
||||
### Médias tiers — licence d'origine conservée, œuvre collective
|
||||
|
||||
Chaque média garde sa licence. Le jeu est une **œuvre collective**, pas une œuvre dérivée.
|
||||
C'est cette qualification qui permet à des médias CC BY-SA et CC BY-NC de coexister dans
|
||||
un même produit.
|
||||
|
||||
### Clause non commerciale — acceptée, et irréversible
|
||||
|
||||
Le porteur a tranché en session 0 : le CC BY-NC est accepté pour élargir le fonds
|
||||
photographique, en échange d'un **engagement non commercial définitif** sur le jeu.
|
||||
|
||||
Le code reste réutilisable commercialement sous AGPL une fois séparé des médias.
|
||||
|
||||
## Conséquences
|
||||
|
||||
### Ce que cette décision interdit, techniquement
|
||||
|
||||
1. **Aucun compositing.** Un média sous partage à l'identique ou sous clause non
|
||||
commerciale ne peut être ni fusionné, ni détouré puis recombiné, ni fondu dans un atlas
|
||||
de textures partagé avec d'autres médias. C'est ce qui préserve la qualification
|
||||
d'œuvre collective.
|
||||
2. **Aucune vente**, aucune version payante, aucune licence à un éditeur tant qu'un seul
|
||||
média NC est embarqué.
|
||||
3. **Aucun fichier TRAMIL.** TRAMIL se cite comme source de vérification factuelle, dans
|
||||
`sources_factuelles`, jamais comme source d'images.
|
||||
|
||||
### Ce qui applique la décision
|
||||
|
||||
- `npm run validate:data` refuse tout média `composite: true` portant une clause SA ou NC,
|
||||
et tout média à attribution dont l'auteur est absent.
|
||||
- `npm run test:porte` prouve que ces refus se produisent réellement.
|
||||
- `npm run build:credits` régénère `CREDITS.md` depuis les données, avec une section
|
||||
distincte pour les médias NC. Un fichier de crédits tenu à la main se désynchronise, et
|
||||
une attribution fausse est une violation.
|
||||
- Le schéma impose `licence`, `auteur`, `url_fichier` et `url_description` sur chaque média.
|
||||
|
||||
### Condition de réexamen
|
||||
|
||||
Si le projet devait un jour être distribué commercialement, il faudrait retirer tous les
|
||||
médias NC et régénérer les crédits. `CREDITS.md` liste ces médias dans une section dédiée
|
||||
précisément pour rendre cette opération possible. À ce jour, aucun média NC n'est embarqué :
|
||||
les 39 médias candidats proviennent tous de Commons, sous CC0, domaine public, CC BY ou
|
||||
CC BY-SA. **L'engagement non commercial n'est donc pas encore consommé** — il ne le sera
|
||||
qu'au premier média iNaturalist retenu.
|
||||
|
||||
## Alternatives écartées
|
||||
|
||||
- **Refuser le NC.** Aurait gardé une porte de sortie commerciale, au prix d'un fonds
|
||||
photographique plus pauvre sur les espèces mal couvertes (zikak, pòm-sitè).
|
||||
- **Isoler le NC dans un pack séparé retirable par flag.** Meilleur des deux mondes sur le
|
||||
papier, mais complexifie le pipeline d'assets et le service worker pour une option dont
|
||||
le porteur a jugé qu'il ne l'exercerait pas.
|
||||
Reference in New Issue
Block a user