Files
builazoo/docs/plan-enrich-docs-specs.md
Nicolas Cantu 5143a79890 docs: enrich docs/specs and remove placeholders
**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
2026-03-05 03:08:15 +01:00

9.6 KiB
Raw Permalink Blame History

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 quils 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/A dans docs/specs/ et obtenir la liste des fichiers impactés.
  • Rechercher ... / placeholders de structure (“[ ... ]”, “voir ci-dessus”) dans docs/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 dattente, 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/A par 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 quaucun titre/sous-titre na 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.md
  • docs/specs/achat_upgrade_boutique.md
  • docs/specs/achat_upgrade_camion.md
  • docs/specs/achat_upgrade_case.md
  • docs/specs/achat_upgrade_case_zoo.md
  • docs/specs/achat_upgrade_centre_recherche.md
  • docs/specs/achat_upgrade_generique.md
  • docs/specs/achat_upgrade_nurserie.md
  • docs/specs/affiche_enclos.md
  • docs/specs/agent_securite.md
  • docs/specs/agrandissement_carte.md
  • docs/specs/animal_generique.md
  • docs/specs/artiste.md
  • docs/specs/attractivite_interne_zoo.md
  • docs/specs/attractivite_zoo_sur_ville.md
  • docs/specs/avatar_joueur.md
  • docs/specs/banderole_accueil.md
  • docs/specs/bebe_animal.md
  • docs/specs/billeterie.md
  • docs/specs/bot.md
  • docs/specs/boutique.md
  • docs/specs/camion.md
  • docs/specs/carte_generique.md
  • docs/specs/carte_monde.md
  • docs/specs/carte_zoo.md
  • docs/specs/case_generique.md
  • docs/specs/case_monde.md
  • docs/specs/case_zoo.md
  • docs/specs/centre_recherche.md
  • docs/specs/chemin.md
  • docs/specs/chercheur.md
  • docs/specs/enchere_generique.md
  • docs/specs/enclos.md
  • docs/specs/etat.md
  • docs/specs/impacts_generique.md
  • docs/specs/inventaire_animaux.md
  • docs/specs/inventaire_bebe_animaux.md
  • docs/specs/inventaire_heures.md
  • docs/specs/inventaire_meteos.md
  • docs/specs/inventaire_milieux.md
  • docs/specs/inventaire_problemes_visiteurs.md
  • docs/specs/inventaire_quetes.md
  • docs/specs/inventaire_saisons.md
  • docs/specs/inventaire_skins.md
  • docs/specs/inventaire_temperatures.md
  • docs/specs/joueur.md
  • docs/specs/laboratoire.md
  • docs/specs/menu_achats.md
  • docs/specs/milieu.md
  • docs/specs/mort_bebe.md
  • docs/specs/nourisseur.md
  • docs/specs/nourriture_speciale.md
  • docs/specs/nurserie.md
  • docs/specs/objet_enclos.md
  • docs/specs/passe_saisonnier.md
  • docs/specs/personnage_generique.md
  • docs/specs/pont.md
  • docs/specs/reproduction.md
  • docs/specs/score_reputation.md
  • docs/specs/score_survie.md
  • docs/specs/site_generique.md
  • docs/specs/skin.md
  • docs/specs/soigneur.md
  • docs/specs/tech_architecture.md
  • docs/specs/temperature.md
  • docs/specs/theme.md
  • docs/specs/vente_animal.md
  • docs/specs/vente_enchere_animal.md
  • docs/specs/vente_enchere_bebe.md
  • docs/specs/ville.md
  • docs/specs/vip.md
  • docs/specs/visiteur.md
  • docs/specs/zoo.md