Files
games/docs/rules/FILE_CONTRACTS.md

52 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: docs/rules/FILE_CONTRACTS.md -->
<!-- version: 6 -->
# Contrats des fichiers principaux
- `README.md` présente le dépôt et ses entrées principales.
- `RULES.md` indexe les règles normatives.
- `ROADMAP.md` conserve le planning durable et son historique de scope via `( )`, `(x)`, `(d)` et `(c)`.
- `CHANGELOG.md` conserve une synthèse inversement chronologique à partir des jalons RC et stables.
- `docs/000-README.md` indexe la documentation détaillée.
- `docs/rules/` contient les règles durables.
- `docs/ideas/000-README.md` est le point d'entrée des idées et variantes non engagées.
- `docs/studies/000-README.md` est le point d'entrée des analyses comparatives non normatives préparant une décision.
- `docs/architecture/` contient les décisions et descriptions d'architecture retenues.
- `docs/objectives/` décrit les objectifs et la stratégie produit/technique.
- `docs/games/` classe les familles de jeux, leurs contrôles et leurs évolutions.
- `docs/engine/` décrit lévolution fonctionnelle des générations de moteur.
- `docs/monetization/` décrit les modèles de monétisation indépendamment des fournisseurs.
- `docs/services/` décrit leaderboards, backend, partage, anti-cheat et services communautaires.
- `docs/development/` décrit les workflows de développement non normatifs complémentaires aux règles.
- `docs/testing/` décrit larchitecture des tests, leur placement et les stratégies de sélection.
- `crates/common/` contient les bibliothèques transverses indépendantes dune génération spécifique du moteur, notamment le socle de logging.
- `deltas/` contient un document par livraison ou correctif versionné.
- `prompts/` peut contenir les prompts de reprise de session lorsqu'ils deviennent utiles.
- `scripts/` contient des audits en lecture seule et des outils du dépôt.
- `assets/` contient les ressources runtime communes et spécifiques aux jeux ; aucune ressource runtime n'est placée dans une crate Rust.
- `Android/` contient le projet Gradle multi-module et son code Java commun/spécifique.
- `crates/apps/` contient les exécutables de développement et launchers Rust, notamment les runners Desktop par jeu.
## Tauri
- `crates/apps/<game>-tauri/frontend/` contient le frontend Vite/TypeScript versionné.
- `crates/apps/<game>-tauri/src/lib.rs` est la façade Rust de l'app Tauri.
- `crates/apps/<game>-tauri/src/tauri.rs` assemble Tauri et porte le pont Web/Rust.
- `crates/apps/<game>-wasm/` contient l'adaptation WebAssembly distincte.
- Les bindings JavaScript et modules `.wasm` générés restent ignorés par Git.
## Points d'entrée documentaires
- Le `README.md` racine du dépôt conserve son nom.
- Un README propre à une crate, un package ou un répertoire technique peut conserver `README.md` lorsque cet usage est naturel à son écosystème.
- Un répertoire documentaire conçu pour accumuler plusieurs fichiers Markdown utilise `000-README.md` comme point d'entrée.
- `history/000-README.md` est le point d'entrée de l'historique validé.
## Immutabilité et suppressions dans les deltas
- Les fichiers `deltas/**/*.md` livrés sont immuables sur le fond.
- Une correction de forme sans changement de sens peut modifier un delta existant uniquement en incrémentant son en-tête `version`.
- Toute correction sémantique ou tout ajout produit un nouveau delta ou `.fix.N`.
- Les fichiers `deltas/**/*.delete.txt` sont des manifests de suppression contractuels.
- Chaque manifest contient un chemin relatif par ligne et est expliqué dans le fichier Markdown du delta qui l'introduit.