Files
ki-fwi/package.json
T
OKIandClaude Opus 5 3c660c776b feat(session-4): module Pa touché et scène arcade Ranmasé en Phaser 4
Pa touché est une consultation, pas un mode de jeu : cinq plantes triées
par gravité, dépliables, sans chrono, sans score, sans épreuve. Le module
affiche lui-même qu'il n'a pas encore été relu par une personne compétente
et dit que cette relecture est la contribution la plus utile au projet.

Ranmasé : import dynamique, game.destroy(true) au démontage, communication
par événements — la scène ne touche aucun état Svelte et n'émet que sur
changement, jamais par frame. Miroir DOM sémantique, canvas aria-hidden,
jouable au clavier. Écran de chargement designé.

Game design guidé par la pédagogie : laisser passer une plante dangereuse
ne coûte rien (c'est le bon geste), ramasser le mauvais fruit coûte 2
points et pas une vie (il n'y a pas d'erreur à cueillir), une plante
dangereuse sur cinq.

Budgets mesurés et consignés dans l'ADR 0002
- shell hors Phaser : 78 Ko gzip (budget 170)
- Phaser seul : 348 Ko gzip, sous le seuil de réexamen de 450
- absent du chemin critique de l'accueil, vérifié sur le HTML prérendu
- build total 1,4 Mo

Une prescription de l'ADR 0002 était fausse : l'option `resolution`
n'existe pas dans Phaser 4 (pixelRatio y est en lecture seule). Le
plafonnement passe par un tampon de rendu fixe 480×640 étiré en CSS —
plafond dur plutôt que relatif. L'ADR est corrigé, pas contourné.

Reste non mesuré : les 30 fps sur Mali-G52, qui demandent un appareil réel.

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

44 lines
1.5 KiB
JSON

{
"name": "ki-fwi",
"version": "0.0.0",
"private": true,
"description": "KI FWI SA YÉ ? — jeu éducatif libre : reconnaître les fruits, les arbres et les plantes des Antilles.",
"license": "AGPL-3.0-or-later",
"type": "module",
"engines": {
"node": ">=22"
},
"scripts": {
"verify:taxa": "node tools/data/verify-taxa.mjs",
"ingest:commons": "node tools/data/ingest-commons.mjs",
"build:dataset": "node tools/data/build-dataset.mjs",
"check:audio": "node tools/data/check-audio.mjs",
"validate:data": "node tools/data/validate.mjs",
"build:credits": "node tools/data/build-credits.mjs",
"test:porte": "node tools/data/test-porte.mjs",
"rapport:manques": "node tools/data/rapport-manques.mjs",
"dev": "vite dev",
"build": "vite build && node tools/build/sitemap.mjs",
"preview": "vite preview",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:i18n": "node tools/data/check-i18n.mjs",
"fetch:medias": "node tools/data/fetch-medias.mjs",
"verify:seeds": "python3 tools/assets/comfyui_client.py --verifier"
},
"devDependencies": {
"@fontsource/archivo": "^5.3.0",
"@fontsource/inter": "^5.3.0",
"@sveltejs/adapter-static": "^3.0.10",
"@sveltejs/kit": "^2.70.1",
"@sveltejs/vite-plugin-svelte": "^7.2.0",
"ajv": "^8.17.1",
"ajv-formats": "^3.0.1",
"phaser": "^4.2.1",
"svelte": "^5.56.8",
"svelte-check": "^4.7.4",
"typescript": "^5.9.3",
"vite": "^8.1.5",
"vite-plugin-pwa": "^1.3.0"
}
}