0.1.1-alpha.2.fix.1

This commit is contained in:
2026-09-27 10:42:38 +02:00
parent dc63b543ac
commit e351f57be4
4 changed files with 324 additions and 4 deletions

View File

@@ -1 +1 @@
0.1.1-alpha.2 0.1.1-alpha.2.fix.1

View File

@@ -0,0 +1,204 @@
<!-- file: deltas/0.1.1/alpha.2.fix.1.md -->
<!-- version: 1 -->
# Delta 0.1.1-alpha.2.fix.1 — correction de la gate d'ownership Web
## Baseline et version
Baseline attendue : commit opérateur de `0.1.1-alpha.2`, réalisé après application de `history/0.1.1/alpha.2.md` avec statut `FAIL`.
Le hash de ce commit n'est pas anticipé.
Version avant application :
```text
0.1.1-alpha.2
```
Version après application :
```text
0.1.1-alpha.2.fix.1
```
## Objet
Corriger uniquement la syntaxe défectueuse de la gate opérateur de `alpha.2`.
Les nouveaux owners Web et tous les documents normatifs livrés par `alpha.2` restent inchangés. Le delta historique `deltas/0.1.1/alpha.2.md` reste également inchangé.
Le défaut observé était un littéral Python entouré de quotes simples alors que son texte contenait l'apostrophe de `s'applique` :
```python
'Le profil s'applique uniquement lorsqu'un projet utilise réellement Vite.'
```
Le fix utilise des littéraux syntaxiquement sûrs dans la nouvelle gate sans modifier les assertions sémantiques.
## Scope
REPLACE :
```text
VERSION
docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
```
ADD :
```text
deltas/0.1.1/alpha.2.fix.1.md
```
DELETE : aucun.
Aucun profil, règle normative, template, skeleton, script d'audit ou test n'est modifié par ce correctif.
## Validation opérateur
Après application du history `FAIL`, commit/push de `alpha.2`, puis application du présent delta :
```bash
test "$(cat VERSION)" = '0.1.1-alpha.2.fix.1'
git cat-file -e HEAD:history/0.1.1/alpha.2.md
test -f history/0.1.1/alpha.2.md
test -f deltas/0.1.1/alpha.2.md
test -f deltas/0.1.1/alpha.2.fix.1.md
test ! -e history/0.1.1/alpha.2.fix.1.md
grep -A2 '^## Statut$' history/0.1.1/alpha.2.md | grep -Fx 'FAIL'
grep -Fx '<!-- version: 13 -->' RULES.md
grep -Fx '<!-- version: 25 -->' docs/000-README.md
grep -Fx '<!-- version: 6 -->' docs/architecture/003-RULE_PROFILE_MODEL.md
grep -Fx '<!-- version: 3 -->' docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
grep -Fx '<!-- version: 15 -->' docs/rules/000-README.md
grep -Fx '<!-- version: 6 -->' docs/rules/710-TAURI.md
python3 -B - <<'PYGATE'
from pathlib import Path
import re
history = Path('history/0.1.1/alpha.2.md').read_text(encoding='utf-8')
assert re.search(r'## Statut\s+FAIL\s', history)
expected = {
'530-TYPESCRIPT.md': (
'TypeScript **SHOULD** être préféré',
'TS-RS',
'ni Vite',
),
'540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md': (
'MUST NOT imposer npm',
'Lockfile',
'alpha.3',
),
'550-VITE.md': (
'Vite **SHOULD** être le build tool/dev server privilégié',
"Le profil s'applique uniquement lorsqu'un projet utilise réellement Vite.",
'alpha.4',
),
'560-CSS_SASS.md': (
'Sass **SHOULD** être préféré',
'Bootstrap constitue un exemple concret',
'`@use` / `@forward`',
'`@import` Sass est déprécié',
'alpha.5',
),
}
for name, phrases in expected.items():
profile = Path('docs/rules', name).read_text(encoding='utf-8')
for phrase in phrases:
assert phrase in profile, (name, phrase)
rules = Path('RULES.md').read_text(encoding='utf-8')
rules_index = Path('docs/rules/000-README.md').read_text(encoding='utf-8')
architecture = Path('docs/architecture/003-RULE_PROFILE_MODEL.md').read_text(encoding='utf-8')
tauri = Path('docs/rules/710-TAURI.md').read_text(encoding='utf-8')
plan = Path('docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md').read_text(encoding='utf-8')
roadmap = Path('ROADMAP.md').read_text(encoding='utf-8')
for owner in ('530-TYPESCRIPT.md', '540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md', '550-VITE.md', '560-CSS_SASS.md'):
assert owner in rules
assert owner in rules_index
for phrase in (
'530 — TypeScript',
'540 — JavaScript package ecosystem',
'550 — Vite',
'560 — CSS / Sass',
"Un frontend minimal peut n'en sélectionner qu'une partie.",
):
assert phrase in architecture, phrase
for phrase in (
'TypeScript et Vite sont fortement recommandés mais restent des `SHOULD`',
'Sass est également fortement recommandé',
'profils `530`, `550` et `560`',
):
assert phrase in tauri, phrase
for phrase in (
'Décisions de revue après `alpha.1`',
'**TypeScript** : fortement recommandé',
'**Vite** : fortement recommandé',
'**Sass** : fortement recommandé',
'`@use` / `@forward`',
'| TypeScript pour les frontends durables | `ADOPT`',
'| npm comme package manager concret | `KEEP-LOCAL`',
'| commandes/génération WASM dans les scripts | `DEFER`',
'Statut opérateur : **FAIL**.',
"### alpha.2.fix.1 — correction de la gate d'ownership Web",
):
assert phrase in plan, phrase
assert '0.1.8' not in roadmap
assert 'skeleton Tauri avant owners Web suffisants' in roadmap
print('0.1.1 alpha.2.fix.1 ownership gate: clean (alpha.2 FAIL preserved, 530/540/550/560 reconfirmed, Python literals safe)')
PYGATE
python3 -B -m unittest discover -s tests -v
python3 -B scripts/audit_markdown_headers.py \
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
python3 -B scripts/audit_markdown_tables.py \
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
python3 -B scripts/audit_markdown_links.py \
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
git diff --check
git add VERSION docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md \
deltas/0.1.1/alpha.2.fix.1.md
git diff --cached --check
git status --short
```
Le scope indexé attendu avant ajout du history du fix est exactement :
```text
M VERSION
A deltas/0.1.1/alpha.2.fix.1.md
M docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
```
## Revue opérateur complémentaire
Confirmer que :
- le `FAIL` de `alpha.2` est conservé historiquement ;
- `deltas/0.1.1/alpha.2.md` n'est pas réécrit ;
- `RULES.md`, `docs/000-README.md`, `docs/architecture/003-RULE_PROFILE_MODEL.md`, `docs/rules/000-README.md` et `docs/rules/710-TAURI.md` ne sont pas modifiés par le fix ;
- les profils `530-TYPESCRIPT.md`, `540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md`, `550-VITE.md` et `560-CSS_SASS.md` ne sont pas modifiés par le fix ;
- aucun contenu prévu pour `alpha.3` n'est absorbé dans le correctif.
## Transition
### PASS
Produire `history/0.1.1/alpha.2.fix.1.md`, l'appliquer puis committer/pousser le fix. Reprendre ensuite la trajectoire normale avec `0.1.1-alpha.3`, consacré à TypeScript et à l'écosystème de package.
### FAIL
Consigner le diagnostic réel dans `history/0.1.1/alpha.2.fix.1.md` et rester dans `alpha.2.fix.M`. Le scope MUST rester limité à la correction de la gate d'ownership Web tant qu'aucun défaut plus large ne justifie un REPLAN.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md --> <!-- file: docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md -->
<!-- version: 2 --> <!-- version: 3 -->
# Plan 0.1.1 — fondation frontend Web contrôlée # Plan 0.1.1 — fondation frontend Web contrôlée
@@ -336,9 +336,17 @@ Auditer `v0.1.0`, `publish.001`, Games `0.3.6`, les décisions Tauri/horizon, pu
### alpha.2 — frontières d'ownership Web ### alpha.2 — frontières d'ownership Web
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`. Statut opérateur : **FAIL**.
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. La tranche a matérialisé les quatre owners `530 / 540 / 550 / 560`, leurs frontières indépendantes et les recommandations `SHOULD` TypeScript/Vite/Sass. Les `48` tests et les trois audits Markdown sont restés propres et le scope Git observé correspond au delta.
La gate spécifique n'a toutefois pas pu atteindre son message final : le littéral Python `'Le profil s'applique uniquement lorsqu'un projet utilise réellement Vite.'` utilise des quotes simples autour d'un texte contenant l'apostrophe de `s'applique`, provoquant un `SyntaxError`. Aucun défaut normatif des profils livrés n'est établi.
### alpha.2.fix.1 — correction de la gate d'ownership Web
Corriger uniquement la syntaxe de validation de `alpha.2`, sans modifier les profils `530/540/550/560`, `710-TAURI.md`, les index ou l'architecture déjà livrés.
La gate corrigée doit reconfirmer le `FAIL` historique de `alpha.2`, les quatre owners indépendants, les recommandations `SHOULD`, la classification Games, le maintien du `DEFER` Tauri, puis rejouer les tests et audits documentaires.
### alpha.3 — TypeScript et écosystème de package ### alpha.3 — TypeScript et écosystème de package

View File

@@ -0,0 +1,108 @@
<!-- file: history/0.1.1/alpha.2.fix.1.md -->
<!-- version: 1 -->
# History 0.1.1-alpha.2.fix.1 — correction de la gate d'ownership Web
## Statut
PASS
La gate opérateur de `0.1.1-alpha.2.fix.1` exécutée le `2026-09-27` est propre.
Le correctif reste strictement limité au défaut de syntaxe de la gate de `alpha.2`. Aucun profil Web, index normatif, document d'architecture ou profil Tauri n'a été réécrit par le fix.
## Baseline opérateur
La tranche `0.1.1-alpha.2` et son history `FAIL` ont été commités puis poussés avant application du fix :
```text
commit dc63b54
message 0.1.1-alpha.2
push origin/master PASS
```
Le history `FAIL` reste présent dans `HEAD` et le delta historique `alpha.2.md` est conservé.
## Contrôles d'identité
Les contrôles opérateur ont confirmé :
```text
VERSION 0.1.1-alpha.2.fix.1
history/0.1.1/alpha.2.md présent dans HEAD
deltas/0.1.1/alpha.2.md présent
deltas/0.1.1/alpha.2.fix.1.md présent
history/0.1.1/alpha.2.fix.1.md absent pendant la gate
history alpha.2 FAIL
RULES.md version 13
docs/000-README.md version 25
docs/architecture/003-RULE_PROFILE_MODEL.md version 6
docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md version 3
docs/rules/000-README.md version 15
docs/rules/710-TAURI.md version 6
```
## Gate spécifique
La gate Python corrigée atteint son message final :
```text
0.1.1 alpha.2.fix.1 ownership gate: clean (alpha.2 FAIL preserved, 530/540/550/560 reconfirmed, Python literals safe)
```
Elle reconfirme notamment :
- le statut `FAIL` historique de `alpha.2` ;
- les owners indépendants `530 TypeScript`, `540 JavaScript package ecosystem`, `550 Vite` et `560 CSS / Sass` ;
- les recommandations `SHOULD` TypeScript, Vite et Sass ;
- la classification Games préparatoire ;
- le maintien de `0.1.8` hors roadmap ;
- le maintien du `DEFER` du skeleton Tauri.
## Tests Python
La suite complète a affiché :
```text
Ran 48 tests in 0.711s
OK
```
Soit `48/48` tests `PASS`.
## Audits Markdown
Les audits ont affiché :
```text
Markdown header audit: clean (208 file(s))
Markdown table audit: clean (9 table(s), 208 file(s))
Markdown link audit: clean (219 local link(s), 208 file(s))
```
## Hygiène Git et scope
`git diff --check` et `git diff --cached --check` n'ont produit aucune erreur.
Le scope indexé observé est exactement :
```text
M VERSION
A deltas/0.1.1/alpha.2.fix.1.md
M docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
```
Aucun contenu prévu pour `alpha.3` n'a été absorbé dans le fix.
## Décision
`0.1.1-alpha.2.fix.1` est validée `PASS`.
La trajectoire normale reprend avec :
```text
0.1.1-alpha.3
```
Cette tranche est consacrée à TypeScript et à l'écosystème de package : `tsconfig`, `package.json`, scripts, sélection explicite du package manager et politique de lockfile. Vite reste réservé à `alpha.4` et CSS/Sass à `alpha.5`.