**Motivations:** - Make docs/specs implementation-ready without empty sections or placeholders. **Root causes:** - Multiple specs still contained non-actionable placeholders (N/A, “see above”, "..."), and inconsistent “no cache” wording. **Correctifs:** - Replace placeholders with explicit tables, structures, and typed examples. - Align “no cache / no memorization” statements where relevant. **Evolutions:** - Add a features doc entry to track the documentation enrichment effort. **Pages affectées:** - docs/specs/* - docs/features/docs-specs-enrichment.md - docs/leo.md - docs/plan-enrich-docs-specs.md
9.6 KiB
Plan Cursor (Cas A) — Exécution “build-ready” : enrichir docs/specs/ sans suppression
Référence direction artistique : docs/specs/IMG_20260303_170253.jpg.
Objectif exécutable
Enrichir tous les fichiers docs/specs/*.md pour qu’ils soient “prêts à coder” (règles, données, cas limites, UX/UI), en garantissant :
- Aucune suppression de rubriques existantes (même vides).
- Aucune renommage / réordonnancement de la structure.
Règles immuables (garde-fous)
- Ne supprimer aucun titre / sous-titre / tableau / section, même si vide.
- Ne pas renommer les rubriques.
- Si une section existe déjà mais est faible : enrichir dans la même section.
- Si une section existe en doublon : conserver les deux, enrichir, ajouter une ligne de clarification (“complément / fait foi”).
- Intégrer partout où pertinent la contrainte isométrique 2.5D (grille losange, sprites 4 directions, occlusion,
z_index, hitbox base sprite). - Ne pas déclencher de build/checks sans validation explicite “OK build”.
- Ne pas committer sans validation explicite du message de commit.
Definition of Done (DoD) — par fichier
Un fichier est “Done” si :
- Structure intacte (rubriques identiques à avant).
- Tous les placeholders évidents (
N/A,..., “voir ci-dessus” non actionnable) ont été remplacés par des détails implémentables. - Les tableaux ont unités, plages, règles de cumul, caps/planchers si la rubrique existe.
- Si un modèle de données existe : il contient
id,created_at,updated_at, types/enums, et les champs isométriques si entité visuelle (grid,iso_x,iso_y,z_index,hitbox). - Si UX/UI existe : interactions (clic base sprite), feedback hover/selection, assets, événements, messages i18n (clés FR/EN).
Protocole exécutable (à dérouler mécaniquement)
Étape 0 — Pré-scan global
- Rechercher
N/Adansdocs/specs/et obtenir la liste des fichiers impactés. - Rechercher
.../ placeholders de structure (“[ ... ]”, “voir ci-dessus”) dansdocs/specs/. - Classer les fichiers en 5 lots (A→E) ci-dessous.
Critère de sortie Étape 0 : liste des fichiers à corriger par placeholder, et ordre de traitement.
Étape 1 — Traitement par lots (ordre strict)
Lot A — Fondations carte / iso / rendu
Objectif : tout ce qui touche à grille, cases, enclos, chemins, ponts, profondeur.
- Traiter chaque fichier du lot A en suivant “Procédure par fichier”.
Critère de sortie Lot A : champs transverses iso (grid, iso_x, iso_y, z_index, hitbox) cohérents entre ces fichiers.
Lot B — Entités vivantes
Objectif : visiteurs, animaux, bébés, reproduction, mort, besoins.
- Traiter chaque fichier du lot B en suivant “Procédure par fichier”.
Critère de sortie Lot B : cycles de vie, seuils, impacts et événements cohérents entre fichiers (ex. reproduction ↔ saisons ↔ température).
Lot C — Bâtiments & services
Objectif : boutique, billeterie, nurserie, accueil, camion, centre recherche, labo.
- Traiter chaque fichier du lot C en suivant “Procédure par fichier”.
Critère de sortie Lot C : capacités, files d’attente, dépenses/recettes, préconditions, erreurs, interactions UI codables.
Lot D — Économie & méta
Objectif : scores, attractivité, enchères, ventes, upgrades, skins/themes/passes/VIP, inventaires, menu achats.
- Traiter chaque fichier du lot D en suivant “Procédure par fichier”.
Critère de sortie Lot D : toutes les mécaniques ont unités, formules, règles de cumul, caps/planchers et messages UX.
Lot E — Inventaires & tables de référence
Objectif : saisons, météo, températures, milieux, quêtes, problèmes visiteurs, heures.
- Traiter chaque fichier du lot E en suivant “Procédure par fichier”.
Critère de sortie Lot E : tables de ref complètes (enums/ranges/priorités) et réutilisées par les autres specs.
Procédure par fichier (checklist atomique)
Pour chaque fichier .md ciblé :
- Lire le fichier en entier.
- Vérifier la liste des rubriques existantes (ne rien supprimer).
- Remplacer chaque occurrence de
N/Apar un contenu implémentable (valeurs, conditions, règles, assets). - Remplacer chaque placeholder de structure (
...,[ ... ]) par un exemple complet cohérent. - Compléter les tableaux : unités, plages, cumul, caps/planchers, préconditions, postconditions.
- Compléter les interactions : erreurs (fonds insuffisants, inventaire plein, placement invalide), cas limites (pathfinding bloqué, occlusion, click ambiguity).
- Si la rubrique JSON existe : ajouter/normaliser
id, timestamps, enums, et champs iso si entité visuelle. - Si UX/UI existe : préciser hitbox base sprite, feedback hover/selection, Z-order, assets, events, messages i18n FR/EN.
- Vérifier qu’aucun titre/sous-titre n’a disparu.
Critère de sortie du fichier : DoD “par fichier” satisfait.
Étape 2 — Contrôle final global
- Vérifier cohérence des champs transverses (
id,created_at,updated_at,owner_id,grid,iso_x,iso_y,z_index,status_flags). - Vérifier cohérence des événements/messages (noms, niveaux, conditions).
- Vérifier conformité aux règles projet (ex. interdiction de cache dans les specs).
Commit et checks (gated)
- Préparer le message de commit au format imposé (
**Motivations:**,**Root causes:**,**Correctifs:**,**Evolutions:**,**Pages affectées:**) et demander validation. - Ne pas committer sans validation explicite.
- Ne pas exécuter de build/checks sans “OK build”.
Mapping des lots (ordre recommandé)
- Lot A :
carte_zoo.md,case_generique.md,case_zoo.md,enclos.md,chemin.md,pont.md,affiche_enclos.md,objet_enclos.md,tech_architecture.md - Lot B :
animal_generique.md,bebe_animal.md,visiteur.md,reproduction.md,mort_bebe.md,temperature.md,milieu.md,etat.md - Lot C :
boutique.md,billeterie.md,nurserie.md,accueil_animaux.md,camion.md,centre_recherche.md,laboratoire.md - Lot D :
score_reputation.md,score_survie.md,attractivite_interne_zoo.md,attractivite_zoo_sur_ville.md,enchere_generique.md,vente_animal.md,vente_enchere_animal.md,vente_enchere_bebe.md,achat_upgrade_*.md,inventaire_animaux.md,inventaire_bebe_animaux.md,menu_achats.md,skin.md,theme.md,passe_saisonnier.md,vip.md,inventaire_skins.md,joueur.md,personnage_generique.md,bot.md,zoo.md - Lot E :
inventaire_saisons.md,inventaire_meteos.md,inventaire_temperatures.md,inventaire_milieux.md,inventaire_quetes.md,inventaire_problemes_visiteurs.md,inventaire_heures.md,carte_monde.md,carte_generique.md,case_monde.md,site_generique.md,agrandissement_carte.md
Checklist exhaustive — fichiers docs/specs/ à enrichir (sans suppression)
docs/specs/accueil_animaux.mddocs/specs/achat_upgrade_boutique.mddocs/specs/achat_upgrade_camion.mddocs/specs/achat_upgrade_case.mddocs/specs/achat_upgrade_case_zoo.mddocs/specs/achat_upgrade_centre_recherche.mddocs/specs/achat_upgrade_generique.mddocs/specs/achat_upgrade_nurserie.mddocs/specs/affiche_enclos.mddocs/specs/agent_securite.mddocs/specs/agrandissement_carte.mddocs/specs/animal_generique.mddocs/specs/artiste.mddocs/specs/attractivite_interne_zoo.mddocs/specs/attractivite_zoo_sur_ville.mddocs/specs/avatar_joueur.mddocs/specs/banderole_accueil.mddocs/specs/bebe_animal.mddocs/specs/billeterie.mddocs/specs/bot.mddocs/specs/boutique.mddocs/specs/camion.mddocs/specs/carte_generique.mddocs/specs/carte_monde.mddocs/specs/carte_zoo.mddocs/specs/case_generique.mddocs/specs/case_monde.mddocs/specs/case_zoo.mddocs/specs/centre_recherche.mddocs/specs/chemin.mddocs/specs/chercheur.mddocs/specs/enchere_generique.mddocs/specs/enclos.mddocs/specs/etat.mddocs/specs/impacts_generique.mddocs/specs/inventaire_animaux.mddocs/specs/inventaire_bebe_animaux.mddocs/specs/inventaire_heures.mddocs/specs/inventaire_meteos.mddocs/specs/inventaire_milieux.mddocs/specs/inventaire_problemes_visiteurs.mddocs/specs/inventaire_quetes.mddocs/specs/inventaire_saisons.mddocs/specs/inventaire_skins.mddocs/specs/inventaire_temperatures.mddocs/specs/joueur.mddocs/specs/laboratoire.mddocs/specs/menu_achats.mddocs/specs/milieu.mddocs/specs/mort_bebe.mddocs/specs/nourisseur.mddocs/specs/nourriture_speciale.mddocs/specs/nurserie.mddocs/specs/objet_enclos.mddocs/specs/passe_saisonnier.mddocs/specs/personnage_generique.mddocs/specs/pont.mddocs/specs/reproduction.mddocs/specs/score_reputation.mddocs/specs/score_survie.mddocs/specs/site_generique.mddocs/specs/skin.mddocs/specs/soigneur.mddocs/specs/tech_architecture.mddocs/specs/temperature.mddocs/specs/theme.mddocs/specs/vente_animal.mddocs/specs/vente_enchere_animal.mddocs/specs/vente_enchere_bebe.mddocs/specs/ville.mddocs/specs/vip.mddocs/specs/visiteur.mddocs/specs/zoo.md