0.1.1-alpha.3.fix.2
This commit is contained in:
199
deltas/0.1.1/alpha.3.fix.2.md
Normal file
199
deltas/0.1.1/alpha.3.fix.2.md
Normal file
@@ -0,0 +1,199 @@
|
|||||||
|
<!-- file: deltas/0.1.1/alpha.3.fix.2.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Delta 0.1.1-alpha.3.fix.2 — correction de la gate des déclarations de types
|
||||||
|
|
||||||
|
## Baseline et version
|
||||||
|
|
||||||
|
Baseline attendue : commit opérateur de `0.1.1-alpha.3.fix.1`, réalisé après application de `history/0.1.1/alpha.3.fix.1.md` avec statut `FAIL`.
|
||||||
|
|
||||||
|
Le hash de ce commit n'est pas anticipé.
|
||||||
|
|
||||||
|
Version avant application :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.1.1-alpha.3.fix.1
|
||||||
|
```
|
||||||
|
|
||||||
|
Version après application :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.1.1-alpha.3.fix.2
|
||||||
|
```
|
||||||
|
|
||||||
|
## Objet
|
||||||
|
|
||||||
|
Corriger uniquement la syntaxe défectueuse de la gate opérateur de `alpha.3.fix.1`.
|
||||||
|
|
||||||
|
Les règles et guides livrés par `alpha.3.fix.1` restent inchangés. Le delta historique `deltas/0.1.1/alpha.3.fix.1.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 `l'expérience` :
|
||||||
|
|
||||||
|
```python
|
||||||
|
'qualité TypeScript et à l'expérience IDE'
|
||||||
|
```
|
||||||
|
|
||||||
|
Le fix utilise des littéraux syntaxiquement sûrs dans la nouvelle gate et généralise cette précaution aux assertions contenant des apostrophes, sans modifier leur sens.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
REPLACE :
|
||||||
|
|
||||||
|
```text
|
||||||
|
VERSION
|
||||||
|
docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
|
||||||
|
```
|
||||||
|
|
||||||
|
ADD :
|
||||||
|
|
||||||
|
```text
|
||||||
|
deltas/0.1.1/alpha.3.fix.2.md
|
||||||
|
```
|
||||||
|
|
||||||
|
DELETE : aucun.
|
||||||
|
|
||||||
|
Aucune règle normative, aucun 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.3.fix.1`, puis application du présent delta :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
test "$(cat VERSION)" = '0.1.1-alpha.3.fix.2'
|
||||||
|
git cat-file -e HEAD:history/0.1.1/alpha.3.fix.1.md
|
||||||
|
test -f history/0.1.1/alpha.3.fix.1.md
|
||||||
|
test -f deltas/0.1.1/alpha.3.fix.1.md
|
||||||
|
test -f deltas/0.1.1/alpha.3.fix.2.md
|
||||||
|
test ! -e history/0.1.1/alpha.3.fix.2.md
|
||||||
|
|
||||||
|
grep -A2 '^## Statut$' history/0.1.1/alpha.3.fix.1.md | grep -Fx 'FAIL'
|
||||||
|
grep -Fx '<!-- version: 6 -->' docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
|
||||||
|
grep -Fx '<!-- version: 3 -->' docs/rules/530-TYPESCRIPT.md
|
||||||
|
grep -Fx '<!-- version: 3 -->' docs/rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md
|
||||||
|
grep -Fx '<!-- version: 2 -->' docs/templates/008-WEB_TYPESCRIPT_PACKAGE.md
|
||||||
|
|
||||||
|
python3 -B - <<'PYGATE'
|
||||||
|
from pathlib import Path
|
||||||
|
import json
|
||||||
|
import re
|
||||||
|
|
||||||
|
history = Path('history/0.1.1/alpha.3.fix.1.md').read_text(encoding='utf-8')
|
||||||
|
assert re.search(r'## Statut\s+FAIL\s', history)
|
||||||
|
|
||||||
|
typescript = Path('docs/rules/530-TYPESCRIPT.md').read_text(encoding='utf-8')
|
||||||
|
for phrase in (
|
||||||
|
'Déclarations de types externes et intégration IDE',
|
||||||
|
'fournit déjà ses propres fichiers de déclaration TypeScript',
|
||||||
|
'@types/<nom>',
|
||||||
|
'`devDependencies`',
|
||||||
|
'`@types/node`',
|
||||||
|
'`@types/bootstrap`',
|
||||||
|
'Un projet qui ne consomme que le CSS/Sass de Bootstrap',
|
||||||
|
'`compilerOptions.types`',
|
||||||
|
'bibliothèque publiée',
|
||||||
|
):
|
||||||
|
assert phrase in typescript, phrase
|
||||||
|
|
||||||
|
packages = Path('docs/rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md').read_text(encoding='utf-8')
|
||||||
|
for phrase in (
|
||||||
|
'Dépendances de développement et packages de déclarations',
|
||||||
|
'la dépendance runtime fournit déjà ses propres types',
|
||||||
|
'@types/<nom>',
|
||||||
|
'`@types/node` est pertinent',
|
||||||
|
'`@types/bootstrap` est pertinent',
|
||||||
|
'Le template PGR générique conserve volontairement un `package.json` sans `devDependencies` préremplies',
|
||||||
|
'Pour une bibliothèque publiée',
|
||||||
|
):
|
||||||
|
assert phrase in packages, phrase
|
||||||
|
|
||||||
|
guide = Path('docs/templates/008-WEB_TYPESCRIPT_PACKAGE.md').read_text(encoding='utf-8')
|
||||||
|
for phrase in (
|
||||||
|
'`devDependencies` et déclarations de types',
|
||||||
|
'fournit-il déjà ses propres types ?',
|
||||||
|
'ne pas ajouter un @types redondant',
|
||||||
|
'"@types/node": "<si Node est réellement utilisé>"',
|
||||||
|
'"@types/bootstrap": "<si les API JavaScript Bootstrap sont réellement utilisées et nécessitent des types externes>"',
|
||||||
|
"qualité TypeScript et à l'expérience IDE",
|
||||||
|
):
|
||||||
|
assert phrase in guide, phrase
|
||||||
|
|
||||||
|
package = json.loads(Path('templates/web-typescript/package.json').read_text(encoding='utf-8'))
|
||||||
|
assert package == {
|
||||||
|
'name': 'project-web',
|
||||||
|
'private': True,
|
||||||
|
'scripts': {'typecheck': 'tsc --noEmit'},
|
||||||
|
}
|
||||||
|
|
||||||
|
tsconfig = json.loads(Path('templates/web-typescript/tsconfig.json').read_text(encoding='utf-8'))
|
||||||
|
assert tsconfig == {
|
||||||
|
'compilerOptions': {
|
||||||
|
'strict': True,
|
||||||
|
'noEmit': True,
|
||||||
|
'noUnusedLocals': True,
|
||||||
|
'noUnusedParameters': True,
|
||||||
|
'noFallthroughCasesInSwitch': True,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plan = Path('docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md').read_text(encoding='utf-8')
|
||||||
|
for phrase in (
|
||||||
|
'Statut opérateur : **FAIL**.',
|
||||||
|
"### alpha.3.fix.2 — correction de la gate des déclarations de types",
|
||||||
|
'types embarqués → @types si nécessaire',
|
||||||
|
'Aucun défaut normatif du correctif',
|
||||||
|
'assertions contenant des apostrophes',
|
||||||
|
):
|
||||||
|
assert phrase in plan, phrase
|
||||||
|
|
||||||
|
assert Path('docs/rules/550-VITE.md').read_text(encoding='utf-8').splitlines()[1] == '<!-- version: 1 -->'
|
||||||
|
assert Path('docs/rules/560-CSS_SASS.md').read_text(encoding='utf-8').splitlines()[1] == '<!-- version: 1 -->'
|
||||||
|
assert Path('docs/rules/710-TAURI.md').read_text(encoding='utf-8').splitlines()[1] == '<!-- version: 6 -->'
|
||||||
|
|
||||||
|
print('0.1.1 alpha.3.fix.2 type declarations gate: clean (alpha.3.fix.1 FAIL preserved, type declarations 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.3.fix.2.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.3.fix.2.md
|
||||||
|
M docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## Revue opérateur complémentaire
|
||||||
|
|
||||||
|
Confirmer que :
|
||||||
|
|
||||||
|
- le `FAIL` de `alpha.3.fix.1` est conservé historiquement ;
|
||||||
|
- `deltas/0.1.1/alpha.3.fix.1.md` n'est pas réécrit ;
|
||||||
|
- `docs/rules/530-TYPESCRIPT.md`, `docs/rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md` et `docs/templates/008-WEB_TYPESCRIPT_PACKAGE.md` ne sont pas modifiés par le fix ;
|
||||||
|
- `templates/web-typescript/package.json` et `templates/web-typescript/tsconfig.json` ne sont pas modifiés par le fix ;
|
||||||
|
- aucun contenu Vite, CSS/Sass, WASM ou Tauri n'est absorbé dans le correctif.
|
||||||
|
|
||||||
|
## Transition
|
||||||
|
|
||||||
|
### PASS
|
||||||
|
|
||||||
|
Produire `history/0.1.1/alpha.3.fix.2.md`, l'appliquer puis committer/pousser le fix. Reprendre ensuite la trajectoire normale avec `0.1.1-alpha.4`, consacré à Vite, au dev server, aux caches et aux outputs de production.
|
||||||
|
|
||||||
|
### FAIL
|
||||||
|
|
||||||
|
Consigner le diagnostic réel dans `history/0.1.1/alpha.3.fix.2.md` et rester dans `alpha.3.fix.M`. Le scope MUST rester limité à la correction de la gate tant qu'aucun défaut plus large ne justifie un REPLAN.
|
||||||
@@ -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: 5 -->
|
<!-- version: 6 -->
|
||||||
|
|
||||||
# Plan 0.1.1 — fondation frontend Web contrôlée
|
# Plan 0.1.1 — fondation frontend Web contrôlée
|
||||||
|
|
||||||
@@ -377,9 +377,17 @@ La revue opérateur après PASS relève toutefois une précision appartenant exa
|
|||||||
|
|
||||||
### alpha.3.fix.1 — déclarations de types externes
|
### alpha.3.fix.1 — déclarations de types externes
|
||||||
|
|
||||||
Préciser la découverte et la classification des packages de déclarations TypeScript sans modifier le template générique avec des dépendances fictives.
|
Statut opérateur : **FAIL**.
|
||||||
|
|
||||||
Le correctif doit imposer l'ordre de décision `types embarqués → @types si nécessaire`, recommander `devDependencies` pour les déclarations purement de développement d'une application privée, distinguer `@types/node` et `@types/bootstrap` selon leur applicabilité réelle, conserver la nuance des bibliothèques publiées et maintenir Vite/CSS/Sass hors scope.
|
Le correctif a livré la règle `types embarqués → @types si nécessaire`, la classification conditionnelle de `@types/node` / `@types/bootstrap`, la distinction application privée / bibliothèque publiée et l'intégration IDE attendue. Les `48/48` tests et les trois audits Markdown sont propres, et le scope Git correspond au delta.
|
||||||
|
|
||||||
|
La gate spécifique n'a toutefois pas atteint son message final : le littéral Python `'qualité TypeScript et à l'expérience IDE'` utilise des quotes simples autour d'un texte contenant l'apostrophe de `l'expérience`, provoquant un `SyntaxError`. Aucun défaut normatif du correctif n'est établi.
|
||||||
|
|
||||||
|
### alpha.3.fix.2 — correction de la gate des déclarations de types
|
||||||
|
|
||||||
|
Corriger uniquement la syntaxe de validation de `alpha.3.fix.1`, sans modifier les règles TypeScript/package, le guide `008-WEB_TYPESCRIPT_PACKAGE.md` ni les templates JSON.
|
||||||
|
|
||||||
|
La gate corrigée doit reconfirmer le `FAIL` historique de `alpha.3.fix.1`, les règles de découverte des types externes et la séparation application/bibliothèque, puis rejouer les tests et audits documentaires. Toutes les assertions contenant des apostrophes doivent utiliser des littéraux Python syntaxiquement sûrs.
|
||||||
|
|
||||||
### alpha.4 — Vite, dev server et outputs
|
### alpha.4 — Vite, dev server et outputs
|
||||||
|
|
||||||
|
|||||||
106
history/0.1.1/alpha.3.fix.2.md
Normal file
106
history/0.1.1/alpha.3.fix.2.md
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
<!-- file: history/0.1.1/alpha.3.fix.2.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# History 0.1.1-alpha.3.fix.2 — correction de la gate des déclarations de types
|
||||||
|
|
||||||
|
## Statut
|
||||||
|
|
||||||
|
PASS
|
||||||
|
|
||||||
|
La gate opérateur de `0.1.1-alpha.3.fix.2` exécutée le `2026-09-27` est propre.
|
||||||
|
|
||||||
|
Le correctif ne modifie aucune règle TypeScript/package ni aucun template : il corrige uniquement la syntaxe de validation qui avait fait échouer `alpha.3.fix.1`, puis reconfirme le contenu déjà livré sur les déclarations de types externes.
|
||||||
|
|
||||||
|
## Baseline opérateur
|
||||||
|
|
||||||
|
`0.1.1-alpha.3.fix.1` a été clôturée avec son history `FAIL`, puis committée et poussée avant application de `alpha.3.fix.2` :
|
||||||
|
|
||||||
|
```text
|
||||||
|
commit 889d9cb
|
||||||
|
message 0.1.1-alpha.3.fix.1
|
||||||
|
push origin/master PASS
|
||||||
|
```
|
||||||
|
|
||||||
|
Le history `FAIL` de `alpha.3.fix.1` est présent dans `HEAD` avant la gate du fix.
|
||||||
|
|
||||||
|
## Contrôles d'identité
|
||||||
|
|
||||||
|
Les contrôles opérateur ont confirmé :
|
||||||
|
|
||||||
|
```text
|
||||||
|
VERSION 0.1.1-alpha.3.fix.2
|
||||||
|
history/0.1.1/alpha.3.fix.1.md présent dans HEAD
|
||||||
|
deltas/0.1.1/alpha.3.fix.1.md présent
|
||||||
|
deltas/0.1.1/alpha.3.fix.2.md présent
|
||||||
|
history/0.1.1/alpha.3.fix.2.md absent pendant la gate
|
||||||
|
history alpha.3.fix.1 FAIL
|
||||||
|
docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md version 6
|
||||||
|
docs/rules/530-TYPESCRIPT.md version 3
|
||||||
|
docs/rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md version 3
|
||||||
|
docs/templates/008-WEB_TYPESCRIPT_PACKAGE.md version 2
|
||||||
|
```
|
||||||
|
|
||||||
|
## Gate spécifique
|
||||||
|
|
||||||
|
La gate corrigée atteint son message final :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.1.1 alpha.3.fix.2 type declarations gate: clean (alpha.3.fix.1 FAIL preserved, type declarations reconfirmed, Python literals safe)
|
||||||
|
```
|
||||||
|
|
||||||
|
Elle reconfirme notamment :
|
||||||
|
|
||||||
|
- le `FAIL` historique de `alpha.3.fix.1` ;
|
||||||
|
- la priorité donnée aux types embarqués par une dépendance avant tout `@types/*` externe ;
|
||||||
|
- le caractère conditionnel de `@types/node` et `@types/bootstrap` ;
|
||||||
|
- la distinction entre `devDependencies` d'une application privée et types requis par les consommateurs d'une bibliothèque publiée ;
|
||||||
|
- l'absence de modification des profils Vite, CSS/Sass et Tauri ;
|
||||||
|
- l'utilisation de littéraux Python syntaxiquement sûrs pour les assertions contenant des apostrophes.
|
||||||
|
|
||||||
|
## Tests Python
|
||||||
|
|
||||||
|
La suite complète a affiché :
|
||||||
|
|
||||||
|
```text
|
||||||
|
Ran 48 tests in 0.716s
|
||||||
|
|
||||||
|
OK
|
||||||
|
```
|
||||||
|
|
||||||
|
Soit `48/48` tests `PASS`.
|
||||||
|
|
||||||
|
## Audits Markdown
|
||||||
|
|
||||||
|
Les audits ont affiché :
|
||||||
|
|
||||||
|
```text
|
||||||
|
Markdown header audit: clean (215 file(s))
|
||||||
|
Markdown table audit: clean (9 table(s), 215 file(s))
|
||||||
|
Markdown link audit: clean (228 local link(s), 215 file(s))
|
||||||
|
```
|
||||||
|
|
||||||
|
## Hygiène Git et scope
|
||||||
|
|
||||||
|
`git diff --check` et `git diff --cached --check` n'ont produit aucune erreur.
|
||||||
|
|
||||||
|
Le scope indexé observé avant ajout du présent history est exactement :
|
||||||
|
|
||||||
|
```text
|
||||||
|
M VERSION
|
||||||
|
A deltas/0.1.1/alpha.3.fix.2.md
|
||||||
|
M docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Aucune règle normative, aucun template et aucun contenu Vite/CSS/Sass/Tauri n'a été modifié par le fix.
|
||||||
|
|
||||||
|
## Résultat
|
||||||
|
|
||||||
|
`0.1.1-alpha.3.fix.2` est validée `PASS`.
|
||||||
|
|
||||||
|
La trajectoire normale reprend avec :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.1.1-alpha.4
|
||||||
|
```
|
||||||
|
|
||||||
|
Cette tranche est consacrée à Vite, au dev server, aux caches, aux outputs de production et au statut des assets, sans rouvrir TypeScript/package ni anticiper CSS/Sass.
|
||||||
Reference in New Issue
Block a user