0.1.1-alpha.2.fix.1
This commit is contained in:
204
deltas/0.1.1/alpha.2.fix.1.md
Normal file
204
deltas/0.1.1/alpha.2.fix.1.md
Normal 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.
|
||||
Reference in New Issue
Block a user