Carte des règles de Corals 2Comment Claude et Codex travaillent sur le jeu : où sont les règles, qui fait quoi, comment on publie.

Générée le 21 octobre 2026 à 16:31
depuis les fichiers du dossier partagé

Vue d'ensemble

9applications *.playcorals.online
8règles permanentes d'Antoine
23règles du jeu et de développement
99fonctions décrites dans la carte du code
61publications par tools/publish.sh (+ 137 avant)
91 Kode règles chargées d'office (≈ 27400 tokens)
Codecommit adddba2 = branche prod (adddba2)
Ce qui a changéSac : chaque objet a sa fiche comme dans Tales of Pirates (attaque ou défense, durabilité, résistance/précision/esquive, niveau, corps et classe requis en rouge s'ils manquent, bonus en bleu) et sa comparaison avec ce qui est porté (tableau Celui-ci / Porté / écart, et ce qui change sur la fiche du héros). L'onglet Équipement ne montre plus les tenues d'apparence pâles : seulement ce qui est vraiment porté, avec un + vert sur une place vide qu'un objet du sac peut remplir.
Serveurinstantané /var/lib/corals-2/server-releases/20261021T142612Z-adddba2-fiche-objet (server/, src/, blender/ d'un même commit, drop-in 90)
Pages en ligne sans source dans prodaucune

Sources des règles

Du plus général au plus précis. En cas de conflit, le plus précis gagne : le CLAUDE.md de Corals 2 passe avant le socle Archonse, qui passe avant les règles globales.

Global
Règles de tout le serveur (MCP par CMCP, hub, DNS, modèles OpenAI, /tmp…) et le vocabulaire Corals : /root/.claude/CLAUDE.md (Claude), /root/.codex/AGENTS.md (Codex).
Socle Archonse
Commun à tous les projets : où tourne l'agent, livrer un site, navigateur, archonse-ctx, publication générale.
Corals 2
CLAUDE.md du dossier partagé (avec docs/ETAT.md importé), AGENTS.md pour Codex, LEXIQUE.md, docs/CHANTIERS.md. Dans prod et les copies, ce ne sont qu'un renvoi.
Détail sur demande
docs/carte/ (le code, domaine par domaine), docs/RELEASES.md (historique), docs/publication.md (pièges).

Fichiers

FichierRôleLu parChargementTaille
/root/.claude/CLAUDE.mdRègles globales Claudetous les chats Claude du serveurd'office37 Ko
/root/.codex/AGENTS.mdRègles globales Codextous les chats Codexd'office18 Ko
/root/archonse/ProjectList/CLAUDE.mdSocle Archonsetous les chats projet Clauded'office20 Ko
CLAUDE.mdRègles de Corals 2Claude (auto) ; Codex (lu sur consigne)d'office32 Ko
docs/ETAT.mdCe qui est en ligneimporté par CLAUDE.md ; Codex le litd'office1,3 Ko
AGENTS.mdRésumé pour CodexCodexd'office2,6 Ko
LEXIQUE.mdLexique (le vocabulaire d’Antoine)lu avant chaque tâcheà lire48 Ko
docs/CHANTIERS.mdQui travaille sur quoi, restes à fairelu avant de commencerà lire2,2 Ko
docs/carteCarte du code, par domainelue avant de toucher un domainesur demande256 Ko
docs/RELEASES.mdHistorique des publicationsécrit par tools/publish.shsur demande220 Ko
docs/publication.mdPublier à la main, piègesen cas de besoinsur demande3,1 Ko

Mémoire des comptes Claude (Codex ne la lit pas : rien d'important ne doit vivre seulement ici)

MémoireCe qu'elle ditComptes
adminsCorals 2 — seuls les admins changent le monde (21/10/2026) ; page admin.playcorals.online, droits dans admin/rights.ts, garde serveuraccount-2
app-androidL'app Android Play Corals (com.antoinecarle.corals) est une coque WebView dans le projet corals (Corals 1), pointée sur Corals 2 depuis la 1.0.6, langue du téléphone depuis la 1.0.7account-2
betaCorals 2 est présenté comme une bêta / démo avant lancement (21/10/2026) : fenêtre au 1er lancement + badge, src/standalone/beta.tsaccount-2
comptes-connexionComptes Corals 2 (21/10/2026) : connect.playcorals.online, e-mails Resend, admin par compte ; antoine83680@gmail.com propriétaireaccount-2
couts-iaCoûts IA du jeu (20/10/2026) : compteur serveur ai-costs.mjs, page couts.playcorals.online par joueur/jour/fonctionaccount-2
dialogues-en-bullesCorals — dans les scènes, Antoine préfère les bulles au-dessus des personnages à une fenêtre de conversationaccount-2, account-3
joueurs-en-ligneMultijoueur de Corals 2 — WebSocket world-api/live, salon par île, avatars, groupe avec créatures partagées par l'hôte (party.ts) ; détail dans docs/carte/socle.mdaccount-2
lab-stuffLab Stuff (atelier des vêtements) : stuff.playcorals.online depuis le 21/10/2026, habillage pièce par pièce ; API = service à part corals-2-stuff, publiée à la mainaccount-2
langue-du-jeuCorals 2 traduit à l'écran (21/10/2026) ; anglais par défaut, globe en haut à droite pour changer ; i18n/live.ts, server/i18n.mjs, tools/i18n/account-2
proprietesPropriétés (21/10) : le héros achète un bâtiment génératif (une maison d'abord) qui lui rapporte de l'or ou du stuff ; stratégie en discussion, décision du modèle de propriété en attenteaccount-2
qui-est-quiCorals 2 — les sept sortes de personnages (héros, joueur en ligne, Player, habitant, ennemi, créature, PNJ du vrai jeu) : une seule source beings.ts, section illustrée du lexique, camps de Players posables dans Corals World (21/10)account-2
regles-coralsCorals 2 — où sont les règles (CLAUDE.md léger, docs/, tools/publish.sh, branche prod) et pourquoi ne pas les regonfleraccount-2, account-3
sauvegarde-githubCorals 2 sauvegardé sur GitHub privé (21/10/2026) : remote github + clé de déploiement, minuteries, branche data, kit tools/portableaccount-2
signalementsCorals 2 — bouton Signaler (F8) → diagnostic IA → Archonse (Phases bug) ; lire avec tools/reports.mjs avant de corrigeraccount-2
sol-texturesSol des îles : une vraie texture peinte par matière, dans le style de l'herbe du jeu, jamais l'herbe recolorée (21/10/2026)account-2
synchro-builder-worldBuilder du jeu ↔ World Lab synchronisés dans les deux sens, y compris sur les îles du monde (Port-Brise) account-2
world-lab-unifierWorld Lab : Antoine veut un seul endroit par fonction (pas de doublons), le meilleur de chaque version fusionné, et l'habillage du labo partoutaccount-2, account-3

Branches et copies

Trois endroits, trois rôles. 80 branches et 31 copies de travail aujourd'hui.

📜 main · le dossier partagé

/root/archonse/ProjectList/corals-2

Les règles, docs/, LEXIQUE.md, les outils de publication. On n'y change jamais de branche ; on n'y commite que ses propres fichiers (git commit -- <fichiers>).

🚀 prod · le code en ligne

Commit adddba2

Toujours égale à ce qui tourne. Avancée seulement par tools/publish.sh, reculée par --rollback. Ses CLAUDE.md / AGENTS.md renvoient vers main.

🛠️ une copie par tâche

git worktree add /var/tmp/corals2-<nom> -b <nom> prod

On y code, on y commite, on publie depuis elle, puis on la retire. Le sujet est réservé dans docs/CHANTIERS.md.

Publier : tools/publish.sh

Une seule commande pour Claude et Codex, sans demander (règle 3), à la fin de chaque tâche ; un bug bloquant part aussitôt.

🔒Verrouune publication à la fois
🔀Fusionrelease en ligne + prod ; conflit = arrêt
🛡️Garde-fousrègles et docs jamais modifiées dans la copie
🧪Contrôlestypecheck, tous les tests, échecs connus listés
🏗️Release légèrepages construites, ressources changées copiées, le reste lié
🖥️Serveurinstantané essayé sur un port libre, puis drop-in 90
🔁Basculecurrent → nouvelle release
🌐Vérificationcorals2, world, lexique servent la nouvelle version
📝Notesprod avancée, RELEASES, ETAT, LEXIQUE, cette carte
✨Joueursmise à jour en direct au premier moment calme

tools/publish.sh --dir <copie> --name <nom> --what "…" · --rollback (site et serveur) · --status · --no-switch (tout préparer sans mettre en ligne). Ce qu'il ne fait pas : DNS, nginx, certificats, données du monde, clés.

Applications 9

Chaque outil qui se donne a son domaine, servi à la racine ; même service et même release pour tous ; les données sont sur le serveur, communes à toutes les adresses.

Antoine ditC'estAdresse
« le jeu », « Corals », « Corals 2 »le jeu (combat-sandbox.html)https://corals2.playcorals.online/?lang=en (&intro=1 rejoue l'arrivée)
« le world », « le World Lab », « le labo du monde », « le laboratoire du monde »Corals World, l'éditeur des îles (world-design-lab.html)https://world.playcorals.online/
« le lexique », « le glossaire », « le vocabulaire »le lexique du jeu (lexique.html)https://lexique.playcorals.online/
« signaler », « les signalements »ce qui ne va pas, signalé en jouant (signalements.html)https://signalements.playcorals.online/
« admin », « la page admin »les admins (seuls à changer le monde) et ce que les joueurs peuvent changer (admin.html)https://admin.playcorals.online/
« se connecter », « la page de connexion », « connect », « l'inscription »les comptes : inscription, connexion, mot de passe oublié (connect.html)https://connect.playcorals.online/
« les coûts », « les coûts IA », « combien ça coûte »ce que coûtent les modèles d'IA, par joueur, par jour et par fonction (couts.html, admins seulement)https://couts.playcorals.online/
« les règles », « la carte des règles », « la cartographie »la carte des règles et de l'organisation (Claude, Codex, branches, publication, chantiers), générée depuis ce dossier par tools/rules-map.mjs (page statique /var/www/corals-2-regles/, minuterie corals2-regles.timer)https://regles.playcorals.online/
« le Lab Stuff », « le stuff lab », « l'atelier des vêtements »l'atelier des vêtements et armures (stuff-lab.html, API à part : service corals-2-stuff)https://stuff.playcorals.online/

Règles permanentes d'Antoine 8

1. Vocabulaire (20/10).

Lire la règle

Avant de travailler, lire LEXIQUE.md : une expression d'Antoine mène à un seul terme ; en cas de doute, le lexique tranche. Un mot fixé ou précisé par Antoine s'ajoute dans src/standalone/lexicon/terms.ts (une expression = un terme, vérifié par tests/lexicon.test.ts), puis node tools/lexicon-md.ts refait LEXIQUE.md, puis on publie.

2. Pas de navigateur (14/10, règle absolue).

Lire la règle

Ni Playwright, ni Chromium, ni Puppeteer, ni capture : la scène tourne en WebGL logiciel et cinq navigateurs ont saturé le serveur (charge 41 sur 8 cœurs). Valider par tsc, tests, build, curl et journaux ; Antoine vérifie le rendu sur l'adresse publique : dire à la fin quoi regarder et où. Le panneau Navigateur ouvert dans Archonse ne suffit pas. Exception : demande explicite d'Antoine dans son message, alors un seul navigateur sur tout le serveur (flock -w 300 /var/tmp/corals-browser.lock timeout 120 node script.mjs, browser.close() dans un finally).

3. Publier directement (20/10 : « me demande plus jamais pour pousser les modifs »).

Lire la règle

Toute modification terminée et vérifiée part en production aussitôt par tools/publish.sh, sans demander ni mise en garde. Cette règle prime sur la règle générale « on ne publie que sur demande ». Une publication = une ligne dans docs/RELEASES.md, écrite par le script.

4. Une application par outil, données connectées (20/10 : « il faut toujours faire ça »).

Lire la règle

Chaque outil qui se donne a son domaine <nom>.playcorals.online servi à la racine : DNS Hostinger (A <nom> → 72.62.237.177, MCP hostinger-api, ne toucher que cet enregistrement), vhost sur le modèle de /etc/nginx/sites-available/world.playcorals.online (racine → sa page, ancienne adresse en 301, Service-Worker-Allowed: /, navigation vers la page d'un autre outil renvoyée sur le domaine de cet outil), certbot, origine ajoutée au drop-in 70-origins.conf, entrée dans APPS de src/standalone/app-root.ts, manifeste et icônes propres. Tout ce qui est partagé vit sur le serveur, commun à toutes les adresses ; les liens d'un outil à l'autre passent par appUrl (jamais la page d'un autre outil sur le domaine courant : stockage séparé) ; ce qu'un outil passe à un autre voyage par l'adresse ou le serveur (« Tester l'île » : LabOnline.settled, puis launch/sx/sz) ; une clé d'une autre application se lit par le pont en lecture seule public/app-bridge.html (bridgeGet, clés de ALLOWED). Garde-fous : tests/app-root.test.ts. Limite connue : la partie jouée sur le hub (autre site) n'est pas celle des applications.

5. Mise à jour en direct (20/10 ; « le système de refresh doit fonctionner, que toutes les conversations le sachent »).

Lire la règle

Une publication arrive seule chez les joueurs : live-update.ts lit publication.json toutes les 20 s, précharge, attend un moment calme, garde l'image de l'écran et repart sur la nouvelle version (partie, sac, Village et position conservés) ; ne jamais dire aux joueurs de recharger. Vraies retenues : combat, cinématique (body.dataset.c2Cinema), saisie de texte, héros à terre, bateau, expédition ; retenues douces (conversation, outil, panneau, fenêtre) : 6 min au plus ; pastille « ✨ Nouvelle version · Mettre à jour » au bout de 15 s. Toute nouvelle fenêtre qui ne doit pas être coupée pose data-c2-modal. Corals World pareil, jamais avant que tout soit en ligne. Après une publication, la suivre : journalctl -u corals-2-web | grep maj-direct. Conséquences : chaque release a un publication.json neuf (le script s'en charge) ; toute release recharge les joueurs, donc on ne publie pas pour rien. Garde-fous : tests/live-update.test.ts.

6. Signalements (20/10 : « on clique Signaler… pour systématiquement fixer les bugs »).

Lire la règle

Le bouton « Signaler » (F8) du jeu, des labos et de Corals World envoie l'écran, l'état de la partie et la phrase du joueur ; l'IA en fait un diagnostic, rangé dans Archonse (Phases › 🐞 Signalements du jeu, Knowledge). Dans une conversation : node tools/reports.mjs list (ce qui reste), show <n> (fiche, puis regarder l'image indiquée), et une fois corrigé et publié done <n> --commit <c> --note "…". Détail : docs/carte/socle.md.

7. Option ou permanent.

Lire la règle

Avant d'importer une fonctionnalité (DS2, DS3, Corals…), demander à Antoine si elle doit être une option (interrupteur dans Réglages, mémorisé, et en OFF plus aucun traitement) ou permanente.

8. Qui est qui (21/10 : « vraiment différencier ça… systématiquement dans les règles Claude et Codex, qu'on sache bien ça »).

Lire la règle

Sept sortes de personnages au même corps (un vrai personnage du jeu : classe, niveau, tenue) mais au fonctionnement différent : héros (vous), joueur en ligne (un autre humain), joueur automatique ou Player (IA des clans de DS2 : clans Tideborn, Ironwake, Emberfang, escouade, pillards ; ni mémoire ni conversation), habitant (le Village : il parle, se souvient, donne des quêtes), ennemi (personnage hostile : le combat seul), créature (bestiaire ; faune si elle n'est pas hostile), PNJ du vrai jeu (sa boutique d'origine). Toujours nommer la bonne sorte et savoir qui fait agir un personnage avant d'y toucher ; « escouade » = les Tideborn des Players, « groupe » = les habitants qui suivent le héros, « groupe de joueurs » = de vrais joueurs. Une seule source : src/standalone/beings.ts (section « Qui est qui » du lexique avec ses illustrations, étiquettes et anneaux des repères de Corals World, camps de Players posés dans le world) ; une nouvelle sorte, un nouveau repère ou une nouvelle étiquette s'y ajoute, jamais en copie. Garde-fous : tests/beings.test.ts. Détail : https://lexique.playcorals.online/#qui-est-qui

Méthode : travailler sans se marcher dessus 9

Plusieurs sessions Claude et Codex travaillent et publient en même temps. **Le code de…

Plusieurs sessions Claude et Codex travaillent et publient en même temps. Le code de production est la branche prod (= le commit en ligne, avancée par tools/publish.sh). Partir d'elle : git worktree add /var/tmp/corals2-<nom> -b <nom> prod, travailler et commiter dans cette copie, publier depuis elle.

Le dossier partagé

(/root/archonse/ProjectList/corals-2, branche main) ne porte que les règles, docs/ et les outils de publication ; il a souvent des fichiers modifiés par d'autres sessions : ne jamais y changer de branche, ni commiter autre chose que ses propres fichiers (git commit -- <fichiers>).

Copies

Copies : dans /var/tmp, jamais /tmp ; node_modules est un lien déjà présent dans l'arbre (pas de npm install) ; git avec -c safe.directory='*' ; retirer sa copie (git worktree remove) quand le travail est publié.

Les règles s'écrivent dans le dossier partagé seulement

(CLAUDE.md, AGENTS.md, docs/ sur main, commit -- <fichiers>), jamais dans une copie : dans prod et les copies, CLAUDE.md et AGENTS.md ne sont qu'un renvoi ici, et tools/publish.sh refuse une branche qui les modifie. Le lexique est du code (src/standalone/lexicon/terms.ts, dans la copie) ; LEXIQUE.md du dossier partagé est remis à jour par le script.

Réserver son chantier

avant de commencer, regarder docs/CHANTIERS.md et y inscrire son sujet (conversation, branche) ; si un autre l'a déjà, travailler avec lui (fusionner sa branche) au lieu de refaire. Retirer la ligne une fois publié. Les restes à faire y vont aussi.

Une preuve avant de dire « ça marche »

Annoncer une fonction faite seulement après l'avoir vue s'exécuter (test qui la joue, journal du serveur, relevé envoyé par la page, instance d'essai, route appelée) ; dire clairement ce qui n'a pas été vu (le rendu, que seul Antoine voit). Diagnostiquer sans navigateur : relevé d'état de la page, __client-error du journal nginx, glslangValidator pour les shaders, vraies connexions pour le temps réel.

Publier par tâche terminée

une publication à la fin de ce qu'Antoine a demandé (un signalement, une fonction, un audit), jamais au milieu ; un bug qui bloque les joueurs part aussitôt. Toujours sans demander (règle 3).

Toujours répondre en français

, même quand le code ou un outil parle anglais.

Tests lourds

Tests lourds : archonse-compute run --dir <copie> -- npm test peut les envoyer sur le PC d'Antoine (voir /root/.archonse/compute/agent-instructions.md).

Règles du jeu et de développement 23

📖 Histoire, scènes et personnages (7)

Scènes, quêtes et personnages scénarisés (règles systématiques, 20/10/2026, Antoine)

11 points

— toute arrivée, cinématique, chapitre d'histoire, événement ou quête qui met en scène des habitants :

  1. Le personnage appartient à la scène. Dès qu'il entre en scène : corals2Village.hold(clé, 'nom-de-la-scène') (ou ctx.hold dans builder/story.ts). Tant qu'il est tenu (owned / mode scene de village.ts), release() le ramène à la scène : ni la fin d'une question (askChoice), ni la fermeture d'une conversation, ni la fin d'une étape, ni une réplique du modèle (leave, lead, follow), ni une approche du serveur ne le rendent à sa journée ; il reste à deux pas du héros, tourné vers lui. Il est rendu seulement quand la trame le libère (unhold : la quête qui le mène commence, ou la scène se termine). Jamais de stay à durée courte ni de setTimeout qui le relâche.
  2. Pas de scène sans ses acteurs. Avant de montrer une scène, attendre sous le rideau que chaque personnage qui y joue existe et soit chargé (member(clé) + entité non preparing de actors.diagnostics) ; sur une île du monde, le Village démarre après la scène (monde envoyé au serveur, puis personnages chargés). Jamais un plan vide, jamais un personnage qui apparaît au milieu.
  3. Le joueur a une voix. Dans une conversation écrite, chaque réplique du héros est un choix (boutons + touches 1 à 3, heroSays de barrel-arrival.ts, options des répliques hero de story.arrival.talk), jamais une phrase jouée à sa place.
  4. Les enchaînements suivent la trame. Ce qui doit s'enchaîner sans pause (nom donné → « Viens, suis-moi » → on le suit) est un chapitre auto (sans carte de quête : le donneur dit sa demande, part, la quête le mène) ; {hero} dans une réplique = le nom du héros.
  5. Les trames vivent dans l'île (Island.story, World Lab), pas dans le code : une retouche de l'histoire se fait à partir de la version publiée et ne change que les champs concernés (tools/start-island/patch-story.ts puis publish.mjs), car l'auteur retouche l'île en direct dans le World Lab.
  6. Chaque règle a son garde-fou dans tests/arrival.test.ts (« règle des scènes ») : le garder vert, et en ajouter un pour toute nouvelle scène.
  7. En cinématique, seulement ce que la scène propose (20/10, Antoine). Toute cinématique pose body.dataset.c2Cinema='<nom>' au début et le retire à la fin (l'arrivée pose aussi data-c2-arrival). Pendant ce temps (cinema() de village.ts) : aucune invite « Parler / Répondre », ni cercle des interactions (clic droit, E), ni nom, jauge, message, cadre du groupe ; les habitants qui ne jouent pas (non tenus) n'ont rien à l'écran ; dans une conversation de la scène, seules ses réponses en boutons (champ libre, réponses prêtes, « Interactions », jauges masqués). Les répliques et choix viennent de la scène, jamais du Village.
  8. La caméra montre ce qui se dit. Un plan de dialogue cadre les personnages qui parlent et leurs bulles avec de l'air autour : meetShot (jamais à moins de 11 m) puis fitShot (zone de confort de 7 % sur chaque bord, place des bulles bubble / bubbleW, bandes, répliques à choisir et conversation déduites de l'écran). Jamais de gros plan sur un personnage qui parle.
  9. Lisibilité des bulles (partout) : nom et jauges d'un habitant retirés au-delà de 22 m, sa bulle au-delà de 32 m (sauf cri), le plus proche passe devant les autres (z-index selon la distance), le héros devant tous.
  10. Un choix du joueur se confirme à l'écran : ce qu'il a choisi est montré clairement juste après (ex. « Vous êtes Phyllis · Herboriste » à la sortie du tonneau).
  11. Un trajet scénarisé ne coupe jamais sa logique. Pendant « Suis-moi », le guide compare sa progression vers la destination à celle du héros : si le héros le dépasse dans la bonne direction, il accélère (course puis sprint) et ne s'arrête pas pour lui faire face ; il attend ou revient seulement si le héros est réellement derrière. À l'arrivée, le guide reste tenu, s'arrête face au héros et joue l'échange écrit du lieu (réplique, choix du héros, réponse, consigne suivante) avant que le suivi passe au prochain objectif. Moteur commun : followGuide et Step.arrival.

Architecture narrative canonique des îles et des arcs (20/10/2026, Antoine)

Lire la règle

histoire globale du monde → arcs narratifs → îles et leur lore → mini-trame insulaire obligatoire → quêtes annexes. Un arc narratif, au sens des arcs de manga, réunit une ou plusieurs îles autour d'un enjeu majeur, de personnages ou factions récurrents et d'une progression commune (mise en place, montée des enjeux, point culminant, conséquences ou résolution). Chaque île possède systématiquement une quête principale obligatoire, qui forme sa mini-trame locale (éventuellement découpée en chapitres) avec une situation, un enjeu, une progression et une résolution propres. Cette mini-trame doit faire avancer, révéler ou faire résonner l'arc auquel l'île appartient, sans devoir résoudre l'arc à elle seule. Les quêtes annexes se rangent sous cette mini-trame et approfondissent ses habitants, lieux, factions, secrets ou conséquences. Aucune quête générique ou déconnectée : toute quête obligatoire ou annexe naît du lore de son île ; le lore de l'île sert son arc narratif, et chaque arc constitue une partie cohérente de l'histoire globale du monde. Les futurs outils, générateurs et ateliers d'histoire doivent conserver et rendre visible cette filiation ainsi que l'arc courant.

Conversations de quête et conversations libres (règle du 20/10/2026, Antoine)

6 points

une conversation est de quête quand le personnage est lié à ce qui fait avancer le jeu — il porte une décision en attente de l'histoire, l'étape en cours est de lui parler (message, rapport), il confie le chapitre suivant, l'étape est de faire équipe et il peut venir, ou il a donné la quête en cours ; sinon elle est libre. La quête prime toujours :

  1. Une seule règle pour tout le jeu, bonds/quest-talk.ts (questTalk, ordre decision > deliver > chapter > party > giver), lue telle quelle par le serveur (questLinkOf). Toute nouvelle quête, étape ou scène qui fait parler quelqu'un passe par elle, jamais par un texte en dur.
  2. On le voit dans la conversation : bandeau doré (quête, étape), réponses prêtes de la quête d'abord, dorées et marquées ❗, puis au moins une réponse libre ; une décision ou une proposition de quête porte son étiquette (« ❗ Décision », « ❗ Quête »).
  3. On le voit avant de parler : ❗ au-dessus de la tête de celui qu'il faut aller voir, invite « ❗ Quête · Parler », centre du cercle « ❗ Parler » ; à portée égale, l'invite et les appels vont au personnage de quête ; une approche libre attend la fin d'une conversation ou d'un appel de quête.
  4. Le personnage répond d'abord sur la quête (le serveur l'écrit avant les mots du héros) et propose des suites sur la quête (quest_suggestions) ; il ne change jamais la quête et ne dit pas qu'elle est faite : c'est le jeu qui la vérifie.
  5. Une conversation de quête fait avancer la quête : la décision s'ouvre dès qu'on lui parle, « Je t'écoute » lance le chapitre, le message est remis quand le héros le dit ; quand cette remise termine la quête, la réplique de fin écrite répond, sans réplique du modèle avant elle.
  6. Garde-fous : tests/quest-talk.test.ts (règle, rendu, serveur, route talk) ; en ajouter un pour tout nouveau lien de quête.

Deux systèmes d'interaction : « système d'interaction par quête » et « système basique » (règle du 20/10/2026, Antoine)

4 points

Ce vocabulaire est à employer tel quel.

  1. Système d'interaction par quête : dès qu'un personnage est lié à une quête ou à une mission (quête principale, chapitre de l'histoire, quête obligatoire de l'île ou quête annexe qu'il porte : la règle questTalk / questOf, rôles decision, deliver, chapter, party, giver), le clic droit, la touche E, l'invite et l'appel depuis le bateau n'ouvrent pas le cercle des interactions : le héros va jusqu'à lui et la conversation s'ouvre directement, réduite à la quête, sur le modèle de l'arrivée avec l'hôte (Maëlle sur Port-Brise) : les échanges, le bandeau doré, les réponses de la quête et ses décisions en boutons ; ni champ libre, ni jauges, ni avis. Un bouton discret « Autre chose » mène au système basique.
  2. Système basique : tout personnage sans interaction importante liée à une quête garde le cercle des interactions (gestes, cadeaux, romance, équipage, histoire, méchant) et la conversation complète.
  3. Toute quête, mission ou chapitre conçu dans le World Lab ou ailleurs passe automatiquement par le système d'interaction par quête : il suffit que le personnage soit relié à la quête par la règle commune. Jamais d'interface de quête à part.
  4. Code : openPieFor(v, at, full) de village.ts (sans full, un personnage de quête ouvre openTalk), data-quest-mode de la conversation (renderTalk, styles dans bonds/dialog.ts) ; garde-fou dans tests/quest-talk.test.ts.

La scène se lit sur les personnages (15 et 20/10 : « ça brise un peu le mur… bulles sur les perso plutôt »)

Lire la règle

Répliques, questions et choix en bulles au-dessus de ceux qui parlent ; une fenêtre seulement pour une vraie saisie (nom). Pas de narrateur ni de texte d'histoire plaqué à l'écran ; les bandeaux de suivi (« Chapitre accompli », pastille de l'acte) sont de l'interface, à garder discrets.

Une réplique appartient à son locuteur

Lire la règle

Chaque réplique est rangée et rechargée sous la clé de celui qui la dit, jamais sous celle du donneur de quête ; closer dit la réplique finale, et si cet acteur manque, la ligne attend. {hero} est résolu côté serveur. Une correction de provenance migre aussi les journaux déjà enregistrés.

Un objet remis par une histoire est un vrai objet

Lire la règle

L'icône va du donneur vers le Sac, une fiche montre le vrai objet (nom, niveau, classe), il entre dans l'inventaire et s'équipe si la trame le prévoit ; don idempotent, sac plein refusé proprement, testé avec les vraies règles du sac. Un choix d'arme ne propose que les armes du corps et décide de la classe.

🏗️ Architecture du jeu (7)

Données sur le serveur, jamais dans le navigateur (20/10 : « partagée en base de données et jamais dans le navigateur… systématiquement en ligne » ; 21/10 : « bien penser à la partie serveur MMO »)

Lire la règle

Tout ce qui compte pour la partie ou le monde (île, constructions, Village, histoire, progression, or, objets, propriétés) vit sur le serveur ; le navigateur ne garde qu'une boîte d'envoi, un cache ou des réglages d'affichage. Une économie (or, échanges, maisons, boutiques) se conçoit d'abord pour plusieurs joueurs en même temps. Reste à migrer : or et sac (corals-2:bag:v1), voir docs/CHANTIERS.md.

Tout ce qui s'édite circule dans les deux sens, en direct (20/10 : « tout synchronisé en temps réel… des deux côtés »)

Lire la règle

Une retouche faite dans le jeu (Builder, outils admin) revient dans l'île de Corals World en ligne et dans sa version publiée, et inversement, sans rechargement. Ce qui dépend d'un objet le suit quand il bouge (« si je déplace, il faut que ça déplace la quête ») : quêtes, scènes, lieux, repaires. Chemin commun : live-builder.ts, island-api/lab/patch, world-live.ts.

Un seul moteur (19/10 : « vraiment le même moteur que le jeu »)

Lire la règle

« Tester l'île » et les labos lancent le jeu lui-même (game-entry.ts, mémoire isolée par playtest-session.ts) ; jamais un moteur de test construit à part. Familles de créatures et boss communes (mobs/families.ts).

Labos (19/10)

Lire la règle

Une fonctionnalité de gameplay se travaille dans le labo de son domaine mais s'écrit dans le module du jeu qui la gardera, déclarée dans FEATURES et branchée par feature(id) ; le jeu ne l'allume qu'une fois promue. Les outils de travail (téléporter, invincible…) restent au labo. Données qui changent de forme : une migration dans labs/migrations.ts. Procédure : knowledge/labos/README.md.

Une mécanique de combat née au Labo de combat va dans le jeu par le registre

Lire la règle

(labs/registry.ts, étape jeu), jamais en copie (19/10, « tout doit être unifié »).

Un seul endroit par fonction

Lire la règle

une fonction du jeu utilisée par un outil (World Lab, labos) est la même, importée, jamais une seconde version (fiche des personnages, conversation, cercle des interactions, Atelier des îles…).

Le jeu est reconnu par isGamePage() d'app-root.ts

Lire la règle

Le jeu est reconnu par isGamePage() d'app-root.ts (combat-sandbox.html sur le hub, « / » sur corals2.playcorals.online) : preview.ts en déduit le HUD minimal et la barre Desktop/Mobile/HUD. Ne pas renommer la page.

⚔️ Combat et niveaux (3)

Combat (20 et 21/10 : « donne leur leur intelligence de combat comme dans DS2 », « en zone de fight… mode attaque »)

Lire la règle

Un seul cerveau de combat pour tous les combattants (héros assisté, compagnons, habitants en rixe, Players, pillards, boss : combat/crew-brain.ts, IA DS2, boss-brain.ts), jamais une IA à part. En phase de combat : armes sorties puis rengainées après, frappe et compétence dès que la cible est à portée, même en courant ; aucune interaction (cercle, conversation, appel) tant que dure le combat. Les mécaniques viennent de Tales of Pirates (fiches et formules d'origine), pas d'une invention.

Chaque boss est original (19/10)

Lire la règle

Son kit est tiré de sa graine parmi les vraies compétences de monstres (buildBossKit) : au moins une grosse zone annoncée, un contrôle, une attaque à distance, un rapprochement, des phases. Un nouveau boss passe par ce cerveau (mob.boss) et un nouveau rôle se teste dans tests/boss-brain.test.ts.

Niveaux d'une ville et équipement (21/10)

Lire la règle

Chaque ville de Corals World porte un averageLevel : habitants, ennemis humains et Players naissent dans une petite tranche autour. Aucun personnage humain n'apparaît, ne garde ni ne donne une pièce au-dessus de son niveau (tenue calculée avant le premier affichage, atelier filtré, fouille contrôlée). Les créatures gardent leur fiche d'origine ; on choisit une espèce proche du niveau, on ne falsifie jamais sa fiche. Une exception se règle dans la trame.

📱 Écrans et rendu (3)

Tout nouveau paramètre réglable va dans le panneau Réglages

Lire la règle

Tout nouveau paramètre réglable va dans le panneau Réglages (src/standalone/settings/), dans la section de son domaine, avec les contrôles de ui.ts (curseur avec valeur, interrupteur, couleur, choix) et une remise à zéro de la section.

Le mobile se joue comme l'ordinateur (20/10)

Lire la règle

Toute interaction existe au doigt ; une interface nouvelle est vérifiée en quatre formats, 320 × 480, 360 × 320, 480 × 320 et 667 × 375 (tests de responsive.ts), sans rien de coupé ni de masqué.

Le sol (21/10 : « je veux pas que tu fasses ça »)

Lire la règle

Une texture peinte par matière, dans le style de l'herbe du jeu, liée aux biomes ; jamais l'herbe recolorée. Rien n'est posé par défaut qu'Antoine n'a pas choisi (« enlève les pierres que tu mets par défaut »).

✅ Ce que tout ajout doit respecter (2)

Ce que tout ajout doit respecter

Lire la règle

une route qui écrit dans le monde passe par les droits d'admin (src/standalone/admin/rights.ts, tests/admin.test.ts) ; un texte affiché passe par la traduction (translate="no" pour ce qui ne se traduit pas, puis tools/i18n/extract.mjs et warm.mjs) ; un appel à un modèle est compté (featureOf, règle Coûts IA) ; un nouveau type de donnée du monde entre dans la sauvegarde GitHub (SOURCES de tools/github-backup-data.mjs, dossier partagé) ; un nouveau mot d'Antoine entre dans le lexique.

Coûts IA (20/10, « traquer tous les coûts IA du jeu »)

Lire la règle

Un modèle (OpenAI, JEV) s'appelle depuis le serveur, jamais depuis le navigateur : le fetch du serveur est compté (server/ai-costs.mjs), chaque appel est chiffré et rattaché au joueur (save de l'adresse ou tag du corps), au jour et à la fonction. Une nouvelle fonction qui appelle l'IA ajoute sa clé dans src/standalone/costs/features.ts (featureOf), ou within({feature}) si elle tourne en arrière-plan ; un nouveau modèle ajoute son tarif dans PRICES. Garde-fous : tests/ai-costs.test.ts.

• Divers (1)

Retour en arrière

Lire la règle

Retour en arrière : un commit par étape, tools/publish.sh --rollback pour la production.

Carte du code

Le détail de chaque domaine est dans docs/carte/ : à lire avant d'y toucher.

DomainePoints d'entréeDétail
Socle : page, moteur, écrans, HUD, Réglages, application, sauvegarde, serveurcombat-sandbox.html → src/standalone/main.ts → src/director/preview.ts ; app-root.ts, responsive.ts, settings/, live-update.ts, server/server.mjsdocs/carte/socle.md
Construire : Builder, bâtiment génératif, terrain, routes, ports, lieuxsrc/standalone/builder/ (world.ts, panel.ts, generative.ts, archi/, terrain.ts, roads.ts, harbor.ts, places.ts)docs/carte/construire.md
Biomes : outil, studio, herbe, sol peint, Sketchfabbuilder/biomes/, studio/, server/biomes.mjsdocs/carte/biomes.md
Combat : monstres, joueurs, Labo de combat, au doigtmobs/, combat/, builder/players.ts, lab/, labs/registry.tsdocs/carte/combat.md
Personnages : Village, liens, équipage, fiche, quêtes, histoire, lorebuilder/village.ts, builder/bonds/, builder/crew.ts, builder/quests.ts, builder/story.ts ; server/village.mjs, bonds.mjs, story.mjs, crew.mjsdocs/carte/personnages.md
Monde : World Lab, îles partagées, carte du monde, île de départ, arrivéesrc/standalone/world-lab/, islands/ ; server/islands.mjs, island-world.mjsdocs/carte/monde.md
Bateauxbuilder/boats/docs/carte/bateaux.md
Lab Stuff : vêtements, panoplies, patrons 3D, essayages (API à part, publiée à la main)stuff-lab.html → src/standalone/stuff/ ; server/stuff.mjs, stuff-service.mjs, tools/stuff-textures.pydocs/carte/stuff.md

Bateaux

docs/carte/bateaux.md · 1 entrées · 4,6 Ko

Voir les entrées
  1. Bateaux (option)

Biomes : outil, studio, herbe, sol peint

docs/carte/biomes.md · 5 entrées · 15 Ko

Voir les entrées
  1. Biomes (outil)
  2. Studio des biomes (page)
  3. Studio des biomes dans Corals World (21/10)
  4. Biomes · placement, sol, herbe, assistant (18/10)
  5. Bibliothèque Sketchfab (18/10)

Combat : monstres, joueurs, Labo de combat, au doigt

docs/carte/combat.md · 19 entrées · 56 Ko

Voir les entrées
  1. Mobs
  2. Monstres d'origine (option)
  3. Players (option)
  4. Mobile · combat au doigt, phase de combat (20/10)
  5. Labo de combat (page)
  6. Mécaniques du Labo de combat passées dans le jeu
  7. Adversaires de quête · IA commune (21/10)
  8. Mêlée pendant les poursuites (21/10)
  9. Compétences en mouvement (21/10)
  10. Rivaux · relance, états natifs, XP et fouille (21/10)
  11. Players recrutés · cerveau commun (21/10)
  12. Visée des compétences au doigt (21/10)
  13. Combat de Corals online (options)
  14. Boss intelligents (19/10)
  15. Personnage (fenêtre)
  16. Compétences au doigt et PM (19/10)
  17. Tenue selon le niveau (19/10)
  18. Garde-robe complète (19/10)
  19. Notes de conception reprises de la branche prod (21/10/2026)

Construire : Builder, bâtiment génératif, terrain, routes, ports, lieux

docs/carte/construire.md · 9 entrées · 17 Ko

Voir les entrées
  1. Builder
  2. Bâtiment génératif
  3. Terrain
  4. Routes & ports
  5. Port d'Argent (procédural)
  6. Sol Pelouse V8 (option)
  7. Lieux (outil)
  8. Lumières et effets des modèles (18/10)
  9. Importés dans le Builder (branche islands-props)

Effets de sol et Tornado — 21/10/2026

docs/carte/effets-sol.md · 0 entrées · 2,4 Ko

Voir les entrées

    Monde : World Lab, îles partagées, carte du monde, île de départ, arrivée

    docs/carte/monde.md · 13 entrées · 59 Ko

    Voir les entrées
    1. Composition de Port-Brise (20/10, Codex)
    2. Relief et matières de Port-Brise (21/10, Codex)
    3. Sol des îles · une texture par matière (21/10)
    4. Sol des îles · haute définition et lien aux biomes (21/10)
    5. Carte du monde · îles voisines (20/10)
    6. Repères Players et étiquettes de type (21/10)
    7. Atelier du personnage (World Lab)
    8. World Lab · côtes, relief, construction (20/10)
    9. Monde partagé · île de départ (20/10)
    10. Story V2 · prologue de l'île de départ (20/10)
    11. Arrivée dans le tonneau (20/10)
    12. Îles partagées (Atelier des îles)
    13. Notes de conception reprises de la branche prod (21/10/2026)

    Personnages : Village, liens, équipage, fiche, quêtes, histoire, lore

    docs/carte/personnages.md · 12 entrées · 36 Ko

    Voir les entrées
    1. Qui est qui · les sortes de personnages (21/10)
    2. Village · Histoire (option)
    3. Clans et rixes du Village
    4. Équipage (page)
    5. Équipage · Mugiwara (cartes, postes)
    6. Liens entre les personnages (20/10)
    7. Cris de combat de l'équipage (20/10)
    8. Fiche des personnages (20/10)
    9. Conversations de quête (20/10)
    10. Lore (outil)
    11. Fiabilité de l’équipage (15/10/2026)
    12. Notes de conception reprises de la branche prod (21/10/2026)

    Socle : page, moteur, écrans, HUD, Réglages, application, serveur

    docs/carte/socle.md · 35 entrées · 51 Ko

    Voir les entrées
    1. Page
    2. Code Corals
    3. Cale sous-chemin
    4. Releases figées
    5. Ressources
    6. Réglages
    7. Écrans (responsive)
    8. HUD · Gameplay, médaillons, fenêtres (18/10)
    9. Outils du HUD
    10. Application (installer)
    11. Remise à zéro
    12. Sauvegarde
    13. Gomme d'origine
    14. Île agrandie
    15. Côte DS3
    16. Mer stylisée et ciel d'été
    17. Mise à l'échelle (option)
    18. Ciel et shaders DS2
    19. Banc de mesure (recherche)
    20. Serveur
    21. Service
    22. Accroches et écarts avec Corals
    23. Applications et domaines
    24. Signalements (20/10)
    25. Admins (21/10)
    26. Coûts IA (20/10)
    27. Langue du jeu (21/10)
    28. Bêta (21/10)
    29. Tout traduire, chargé intelligemment (21/10)
    30. Comptes et connexion (21/10)
    31. Le compte du joueur dans le jeu (21/10)
    32. Sons DS2
    33. Grandes îles (secteur de 512 m)
    34. Labos (mécanisme, 19/10)
    35. Notes de conception reprises de la branche prod (21/10/2026)

    Lab Stuff

    docs/carte/stuff.md · 5 entrées · 6,4 Ko

    Voir les entrées
    1. Application
    2. Habillage : changer une pièce portée (21/10/2026)
    3. Code
    4. API : un service à part
    5. Tests

    Les boucles qui font avancer le jeu

    🐞 Signalements

    Antoine ou un joueur clique « Signaler » (F8)➜écran + état de la partie + sa phrase➜diagnostic par l'IA, rangé dans Archonse➜node tools/reports.mjs list / show➜correction dans une copie➜publication➜done <n> --commit

    ✨ Mise à jour en direct

    tools/publish.sh➜publication.json neuf➜le jeu le voit en 20 s➜moment calme (pas de combat, cinématique, saisie…)➜image gardée, nouvelle version, partie conservée➜journalctl … | grep maj-direct

    🗺️ Jeu ↔ Corals World

    retouche dans le world ou au Builder du jeu➜île en ligne sur le serveur➜version publiée➜chez tous les joueurs, sans recharger➜quêtes et scènes suivent ce qui a bougé

    📚 Vocabulaire

    Antoine fixe un mot➜lexicon/terms.ts (un mot = un terme, testé)➜node tools/lexicon-md.ts➜publication➜LEXIQUE.md partagé remis à jour➜lu par toutes les sessions

    🧭 Chantiers

    lire docs/CHANTIERS.md➜sujet libre ? l'inscrire➜pris ? fusionner sa branche➜publier➜retirer la ligne ; noter les restes à faire

    Chantiers

    En cours (2)

    SujetConversationBrancheDepuis
    Or, cristaux et doublons sur le serveur (portefeuille commun, journal des écritures) ; création du doublonClaude, conversation PEOPLE OWN WORLD 33485bd8or-serveur21/10
    Unifier et classer ce qui s'affiche à gauche et au-dessus des personnages (quêtes, groupes, étiquettes)Claude, conversation « interaction par quête / signalements »hud-unify21/10

    À faire (7)

    QuoiSourceNote
    Champion et Croisé inversés dans cinq fichiersconversation STUFF LAB 3e501c3e, 21/10 13 h 53relevé, non corrigé
    Or et sac encore rangés sur l'appareil (corals-2:bag:v1) : à passer sur le serveurrègle « Données sur le serveur » ; conversation PEOPLE OWN WORLD 33485bd8à faire avec les propriétés
    Propriétés : le héros achète une maison qui rapporte (où vivent les maisons, modèle de propriété)conversation PEOPLE OWN WORLD 33485bd8, 21/10 15 h 17décision d'Antoine en attente
    Test du World Lab « le pont réel instancie les apparences Lore… » en échec, toléré par tools/publish-known-failures.txt depuis le 20/10tools/publish.shà réparer, puis retirer de la liste
    Tests instables sous la charge : équipage à bord, deck-life, délai du test des routes en lacets relâché de 1,5 à 4 sconversations PLAYERS a639aecc, APP ANDROID & ADMIN 6fba48dd, WORLD COMPOSER 6b2ebeaerendre déterministes
    API du Lab Stuff (corals-2-stuff) publiée à la main, appels IA non comptés dans les coûtsconversation STUFF LAB 3e501c3e, 21/10 13 h 30l'intégrer à tools/publish.sh et à ai-costs.mjs
    Mot de passe de la base Railway d'Archonse à changer (il a été chargé dans tous les chats jusqu'au 20/10)conversation ORGANISATION f71660f6pour Antoine : demande un redémarrage d'Archonse

    Dernières publications 61

    QuandNomCe qui change
    21/10/2026 16 h 29fiche-objet
    adddba2 · item-card
    Sac : chaque objet a sa fiche comme dans Tales of Pirates (attaque ou défense, durabilité, résistance/précision/esquive, niveau, corps et classe requis en rouge s'ils manquent, bonus en bleu) et sa comparaison avec ce qui est porté (tableau Celui-ci / Porté / écart, et ce qui change sur la fiche du héros). L'onglet …
    21/10/2026 16 h 17stuff-images
    ba012c9 · stuff-images
    Lab Stuff : la planche de collection, les icônes créées par l'IA et les planches de la collection s'affichent de nouveau sur https://stuff.playcorals.online/ (leur adresse relative partait vers la racine du domaine depuis le passage à l'application dédiée).
    21/10/2026 16 h 00ground-skills
    542177f · ground-skills
    Magma Bullet crée sa zone persistante même au sol vide ; particules natives de chute et nappes projetées sur le terrain prises en charge ; Tornado soulève sa victime pendant son contrôle puis la repose.
    21/10/2026 15 h 51regles-renvoi
    56eeb56 · rules-stub
    Aucun changement de jeu. Dans le code de production, CLAUDE.md et AGENTS.md ne sont plus qu'un renvoi vers les règles du dossier partagé : les sessions qui travaillent dans une copie lisent et écrivent les mêmes règles. Les règles qui n'étaient que dans prod ont été rapatriées.
    21/10/2026 15 h 29city-level
    dc5725b · city-level
    Chaque ville possède un niveau moyen configurable ; habitants, ennemis humains et Players s’y adaptent, tandis que les créatures générées restent natives mais sont choisies dans une tranche cohérente. Les tenues et le butin des personnages ne peuvent plus dépasser leur propre niveau.
    21/10/2026 15 h 26retour-position
    8959501 · hero-place-sure
    Au rechargement, le héros réapparaît là où il s'était arrêté, même quand l'île arrive par morceaux (on attend qu'elle soit praticable au lieu de le laisser au départ, ce qui écrasait l'endroit gardé), même si une fenêtre ou une scène est ouverte au chargement (le retour attend au lieu d'être abandonné), et il est re…
    21/10/2026 15 h 17mobile-skills
    d6924f6 · mobile-skills
    Visée mobile : cible verrouillée pendant l’appui, la file et le lancement ; bouton de compétence sans rotation parasite de caméra ; approche terminée à portée en laissant le joystick libre ; portée horizontale et longueur réelle des sorts directionnels, détours et placement au sol conservés.
    21/10/2026 15 h 02combat-pathfinding-walls
    4298683 · combat-pathfinding-walls
    fait sortir les combattants par les portes et contourner les bâtiments avant d'attaquer une cible masquée
    21/10/2026 14 h 56biome-sol-hd
    7111e81 · biome-sol
    Sol des îles : textures en haute définition (chaque matière redessinée par l'IA d'après sa version d'avant, l'herbe et le trèfle du jeu refaits à l'identique), 1024 px ou 512 px selon Réglages › Terrain › Textures du sol ; le sol est lié aux biomes : litière d'humus sous les vrais arbres et gravier au pied des vrais…
    21/10/2026 14 h 47stuff-outfit
    0860b37 · stuff-outfit
    Lab Stuff : « Coupe du vêtement » devient la barre « Tenue portée » (tête, tenue, gants, bottes, avec icônes) ; un clic ouvre tout le stuff du jeu à la place de la planche, avec les onglets Tête · Tenue · Gants · Bottes, pendant que le personnage reste visible. Même liste que l'onglet Tenue de l'atelier d'apparence …
    21/10/2026 14 h 43squad-combat
    7111d6f · squad-combat
    Players recrutés : cerveau commun de combat, assistance sur la cible du héros, compétences et effets natifs avec PM et recharges, soins et provocation, stats propres, ripostes des monstres. Les recrues sortent des routines et restent dans le groupe loin du village ; compatibilité camps, obstacles et groupes en ligne.
    21/10/2026 14 h 35signalement-25-walls
    8cd4753 · signalement-25-walls
    empêche les flèches, coups et compétences de traverser les murs et bâtiments
    21/10/2026 14 h 31qui-est-qui
    bac73f5 · qui-est-qui
    Lexique : nouvelle section « Qui est qui » illustrée (héros, joueur en ligne, joueurs automatiques Players, habitant, ennemi, créature, PNJ du vrai jeu ; escouade, groupe et groupe de joueurs séparés ; LEXIQUE.md refait). Corals World : camps de Players posables sur les îles (outil Players, touche S, Combat › Player…
    21/10/2026 14 h 26stuff-habillage
    a7bc94c · stuff-mix
    Lab Stuff, habillage : dans l'essayage, « Changer » sur chaque pièce portée (tête, tenue, gants, bottes) ouvre toutes les pièces du jeu que le personnage peut porter (environ 640 pour Lance au lieu de 154) : équipement de classe rangé par lignée, apparences de la boutique (skins) rangées par pack, coiffures pour la …
    21/10/2026 14 h 17github-portable
    723fd4b · github-kit
    Sauvegarde et relance ailleurs : le dépôt GitHub privé https://github.com/Antoinecarle/corals-2 (toutes les branches ; contenu du monde et ressources du miroir dans la branche data) explique comment relancer Corals 2 sur une autre machine, avec Docker ou Node (README.md, tools/portable/ : installation, build, lancem…
    21/10/2026 14 h 07signalements-22-24
    385966e · signalements-22-24
    corrige le HUD encombré, restaure les bulles de dialogue et garde les corps visibles tant qu'ils contiennent du butin
    21/10/2026 14 h 02ground-textures
    b6b55dc · ground-textures
    Sol des îles (world et jeu) : chaque matière a sa propre texture peinte par l'IA dans le style de l'herbe du jeu (terre, sable, roche, neige, gravier, mousse, humus, herbe sèche, vase, terre sèche), au lieu de l'herbe recolorée ; sols des biomes et milieux du composeur posés en matières, fondus par leur grain (le sa…
    21/10/2026 13 h 55player-menu
    3470f74 · player-menu
    Le menu des Players reste ouvert après le clic droit ; nouveau clic droit, flèche Fermer ou Échap pour quitter, invitation par simple clic.
    21/10/2026 13 h 50stuff-app
    be6e3b2 · stuff-app
    Lab Stuff sur son domaine : https://stuff.playcorals.online/ — vraie application installable comme les autres outils (manifeste, icône Corals 2 à pastille dorée au manteau du Lab), liens vers le jeu et Corals World, index des labos et lexique à jour ; la source du Lab Stuff entre dans prod (branche Codex du 19/10 fu…
    21/10/2026 13 h 37loot-appearance
    eab8f99 · loot-appearance
    Les pièces récupérées sur les adversaires vaincus disparaissent de leur corps ; la pose de mort est conservée.
    21/10/2026 13 h 29compte-joueur
    2358057 · link
    Compte du joueur dans le jeu, jamais bloquant : au bout de 10 minutes de jeu une carte « Save your adventure » propose de donner son e-mail (« Later » espace les propositions : 1, 3 puis 7 jours) ; le lien reçu valide l'adresse dans n'importe quel navigateur et le jeu le voit tout seul ; tant que ce n'est pas validé…
    21/10/2026 13 h 25rival-rewards
    c45f4a7 · rival-rewards
    Combat : les rivaux relancent leurs compétences disponibles, avec effets TOP actifs et icônes sous les jauges. XP des adversaires et fouille de leur équipement/inventaire près du corps, glisser-déposer vers le sac, transferts persistants sans doublon.
    21/10/2026 13 h 16biome-studio-wide
    83f365e · biome-studio-wide
    Studio des biomes en grand écran dans Corals World : trois colonnes (bibliothèque et import · l'île vivante au centre ou le terrain d'essai · le biome), grand écran par défaut dès 1101 px et retenu, « ⤡ Panneau » pour revenir à côté de l'île ; glisser au centre déplace la vue ; « 🖌 Pinceau sur l'île » peint le biom…
    21/10/2026 13 h 10connect
    7228680 · connect
    Comptes : https://connect.playcorals.online/ — inscription (nom, e-mail, mot de passe), lien de confirmation par e-mail, connexion, mot de passe oublié (lien d'une heure, usage unique), changement de mot de passe ; e-mails du jeu (verre bleu) envoyés par Resend depuis noreply@playcorals.online, dans la langue du jou…
    21/10/2026 12 h 37biome-studio-world
    c897ede · biome-studio-world
    Studio des biomes complet dans Corals World : outil Biomes (W) › onglet « Studio des biomes » (même studio que la page : bibliothèque, Sketchfab et fichiers, couches et règles, sol et herbe, assistant, aperçu d'essai), retouches en direct sur l'île, végétation/herbe/rochers/carte des biomes activables depuis le stud…

    Historique complet, avec les 137 publications faites à la main avant le script : docs/RELEASES.md.

    Où changer quoi

    Je veux…Où
    Ajouter ou changer une règleCLAUDE.md (et AGENTS.md si Codex doit la voir tout de suite) du dossier partagé, commit -- CLAUDE.md ; jamais dans une copie
    Fixer un mot d'Antoinesrc/standalone/lexicon/terms.ts dans la copie, puis node tools/lexicon-md.ts et publier
    Décrire une fonction du jeudocs/carte/<domaine>.md du dossier partagé
    Dire sur quoi je travailledocs/CHANTIERS.md, ligne « En cours »
    Publiertools/publish.sh --dir <copie> --name <nom> --what "…"
    Revenir en arrièretools/publish.sh --rollback
    Savoir ce qui est en lignedocs/ETAT.md ou tools/publish.sh --status
    Ajouter un outil donné à quelqu'unrègle 4 : domaine <nom>.playcorals.online, vhost, certificat, APPS d'app-root.ts
    Corriger un signalementnode tools/reports.mjs show <n>, puis done <n> --commit après publication