0.1.1-alpha.2

This commit is contained in:
2026-09-27 10:18:43 +02:00
parent 7b7565d5d4
commit dc63b543ac
13 changed files with 691 additions and 11 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Plan 0.1.1 — fondation frontend Web contrôlée
@@ -235,6 +235,46 @@ Cette répétition confirme que les owners TypeScript/Vite/Sass/CSS sont bien tr
Aucune autre règle KSP n'est importée dans `0.1.1-alpha.1`.
## Décisions de revue après `alpha.1`
La gate opérateur de `alpha.1` est `PASS` : `48/48` tests, audits Markdown propres et scope Git conforme. Aucun fix de cadrage n'est nécessaire.
La revue ajoute trois préférences explicites à traduire avec la force normative `SHOULD` :
- **TypeScript** : fortement recommandé pour les frontends contrôlés, mais non obligatoire. Sa valeur attendue est le type-check statique avant exécution/génération du JavaScript et la possibilité de partager des contrats typés avec d'autres écosystèmes ; lorsqu'une frontière Rust existe, des générateurs comme TS-RS peuvent éviter la duplication manuelle des DTO.
- **Vite** : fortement recommandé comme build tool/dev server des frontends contrôlés lorsque ses capacités correspondent au besoin, mais non obligatoire. Une alternative justifiée reste valide.
- **Sass** : fortement recommandé pour les chaînes de styles non triviales, en particulier lorsqu'une dépendance installée via l'écosystème de packages expose un entrypoint Sass/SCSS, des variables, maps, mixins ou autres points de configuration permettant d'adapter la bibliothèque sans modifier ses sources. Sass reste optionnel pour un frontend simple.
Bootstrap constitue un exemple réel de dépendance offrant une chaîne Sass personnalisable ; il ne devient pas pour autant une dépendance PGR universelle. Pour du nouveau code Sass, `@use` / `@forward` est préféré lorsque compatible ; `@import` reste toléré pour les bibliothèques existantes qui l'exigent encore.
`alpha.2` matérialise donc quatre owners séparés dans la famille `500` :
```text
530 TypeScript
540 JavaScript package ecosystem
550 Vite
560 CSS / Sass
```
Cette granularité conserve l'indépendance d'applicabilité : un projet peut utiliser TypeScript sans Vite, Vite avec JavaScript, CSS sans Sass, ou un package manager sans aucune des trois autres briques.
### Classification initiale des choix Games
| Choix Games | Classification pour l'adoption future | Motif |
|--------------------------------------------|-------------------------------------------------|----------------------------------------------------------------|
| TypeScript pour les frontends durables | `ADOPT` | déjà exercé et conforme à la préférence PGR `SHOULD` |
| Vite comme build tool/dev server | `ADOPT` | déjà exercé ; reste remplaçable par une alternative justifiée |
| `package.json` comme manifest frontend | `ADOPT` | owner générique nécessaire |
| npm comme package manager concret | `KEEP-LOCAL` | PGR ne rend pas npm universel |
| absence/versionnement des lockfiles Games | `KEEP-LOCAL` en attente de `alpha.3` | ne pas généraliser le corpus historique |
| Sass dans `game-snake-poc` | `ADOPT` lorsque la chaîne de styles le justifie | capacité recommandée, applicabilité conditionnelle |
| Bootstrap | `KEEP-LOCAL` | choix de présentation/skeleton, pas règle Web universelle |
| `frontend/` comme layout | `KEEP-LOCAL` / candidat skeleton | ne pas transformer un layout observé en règle de langage/build |
| ports, aliases et plugins Vite | `KEEP-LOCAL` | valeurs propres au host/projet |
| commandes/génération WASM dans les scripts | `DEFER` | futur owner WASM séparé |
Aucun `OVERRIDE` n'est nécessaire à ce stade : Games n'est pas encore gouverné par ces nouveaux profils et sera réellement mappé pendant `0.1.5`.
## Mission de `0.1.1`
`0.1.1` doit produire la première fondation frontend Web contrôlée de PGR à partir des responsabilités réellement exercées, sans créer un catalogue théorique de technologies Web.
@@ -296,9 +336,9 @@ Auditer `v0.1.0`, `publish.001`, Games `0.3.6`, les décisions Tauri/horizon, pu
### alpha.2 — frontières d'ownership Web
Décider la composition minimale des owners nécessaires à TypeScript, package manager/manifest, Vite et styles. Matérialiser uniquement les familles/profils dont l'ownership est suffisamment prouvé.
Décider et matérialiser la composition minimale des owners nécessaires à TypeScript, package manager/manifest, Vite et styles. La décision retenue est `530 / 540 / 550 / 560`, quatre profils indépendants de la famille `500`.
Cette tranche doit aussi classifier explicitement les choix Games selon `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER` sans migrer Games.
La tranche inscrit les recommandations `SHOULD` TypeScript/Vite/Sass sans les transformer en `MUST`, puis classifie explicitement les choix Games selon `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER` sans migrer Games. Les détails de configuration restent dans les tranches spécialisées suivantes.
### alpha.3 — TypeScript et écosystème de package