Files
pgr/deltas/0.0.5/alpha.6.fix.1.md

179 lines
6.9 KiB
Markdown

<!-- file: deltas/0.0.5/alpha.6.fix.1.md -->
<!-- version: 1 -->
# Delta 0.0.5-alpha.6.fix.1 — composition Tauri/Rust/frontend et gate corrigé
## Baseline et version
Baseline attendue : commit opérateur complet de `0.0.5-alpha.6`, réalisé après application de `history/0.0.5/alpha.6.md` avec statut `FAIL`.
Version avant application :
```text
0.0.5-alpha.6
```
Version après application :
```text
0.0.5-alpha.6.fix.1
```
## Cause du fix
Deux défauts appartiennent au scope exact de `alpha.6` :
1. le heredoc Python de la gate `alpha.6` contient une chaîne multilignes entre quotes simples et échoue avec `SyntaxError: unterminated string literal` ;
2. le profil livré ne distingue pas encore assez explicitement le contrat Tauri universel des conventions de structure/stack retenues pour les projets Tauri que l'organisation contrôle.
La clarification opérateur confirme aussi un écart plus large dans le profil Rust strict PGR. Ce troisième sujet ne doit pas être absorbé par le présent fix : il est replanifié en `alpha.7`, puis la décision de skeleton Tauri passe à `alpha.8`.
## Scope
REPLACE :
```text
VERSION
docs/architecture/003-RULE_PROFILE_MODEL.md
docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
docs/rules/700-FRAMEWORKS.md
docs/rules/710-TAURI.md
docs/studies/001-KSP_GAMES_RECONCILIATION.md
```
ADD :
```text
deltas/0.0.5/alpha.6.fix.1.md
```
DELETE : aucun.
## Décisions corrigées
Le fix précise que :
- un host Tauri est un projet Rust/Cargo et n'obtient aucune exception implicite aux règles Rust sélectionnées ;
- un projet externe/imposé peut conserver des règles différentes via le niveau project-specific ou des overrides explicites ;
- le profil Tauri universel ne possède pas le choix `frontend/`, Vite, TypeScript, Sass, Bootstrap ou du package manager ;
- ces choix forment un candidat de skeleton pour les futurs projets contrôlés ;
- WASM n'est pas une composante implicite de Tauri et reste normalement une unité séparée avec ses propres owners ;
- `cargo tauri add` est une commodité, pas une obligation : l'ajout explicite des dépendances et de l'initialisation à partir de la documentation officielle des plugins est valide et peut être préféré pour garder le contrôle des manifests ;
- un POC mobile non concluant pour Games ne permet pas de rejeter Tauri Android/iOS pour d'autres produits.
## REPLAN borné
La clarification révèle qu'une décision Rust déjà retenue historiquement n'est pas complètement matérialisée dans `510-RUST_CARGO.md`. `alpha.7` devient donc une tranche normale de complétude du profil Rust strict, puis l'ancienne décision de skeleton Tauri devient `alpha.8`.
Le présent fix ne modifie pas `510-RUST_CARGO.md` et n'ajoute aucun nouvel audit Rust : cela constituerait un nouveau scope fonctionnel.
## Validation opérateur
Après application du history `FAIL` de `alpha.6`, commit/push de cette tranche, puis application du présent fix :
```bash
test "$(cat VERSION)" = '0.0.5-alpha.6.fix.1'
test -f history/0.0.5/alpha.6.md
test -f deltas/0.0.5/alpha.6.fix.1.md
test ! -e history/0.0.5/alpha.6.fix.1.md
grep -A2 '^## Statut$' history/0.0.5/alpha.6.md | grep -Fx 'FAIL'
grep -Fx '<!-- version: 2 -->' docs/rules/700-FRAMEWORKS.md
grep -Fx '<!-- version: 2 -->' docs/rules/710-TAURI.md
grep -Fx '<!-- version: 5 -->' docs/architecture/003-RULE_PROFILE_MODEL.md
grep -Fx '<!-- version: 5 -->' docs/studies/001-KSP_GAMES_RECONCILIATION.md
grep -Fx '<!-- version: 6 -->' docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
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
python3 -B - <<'PY'
from pathlib import Path
import re
history = Path('history/0.0.5/alpha.6.md').read_text(encoding='utf-8')
assert re.search(r'## Statut\s+FAIL\s', history)
frameworks = Path('docs/rules/700-FRAMEWORKS.md').read_text(encoding='utf-8')
for phrase in (
"Il n'annule pas silencieusement les conventions des owners qu'il compose.",
'Un projet existant ou imposé de l'extérieur MAY conserver des contraintes différentes.',
'## Profil framework et convention d'instanciation',
):
assert phrase in frameworks, phrase
tauri = Path('docs/rules/710-TAURI.md').read_text(encoding='utf-8')
for phrase in (
'## Héritage Rust du host Tauri',
'Tauri ne crée aucune exception implicite aux règles Rust sélectionnées par le projet.',
'PGR MUST NOT imposer universellement Vite, TypeScript, Sass, Bootstrap, Tailwind CSS',
'WASM n'est pas une composante implicite d'un projet Tauri.',
'PGR ne définit aucun catalogue de plugins Tauri obligatoires et ne rend pas `cargo tauri add` obligatoire.',
'Un POC Tauri mobile non concluant pour un produit particulier ne constitue pas une preuve',
):
assert phrase in tauri, phrase
version_chain = '\n'.join((
'VERSION',
'↓',
'workspace.package.version',
'↓',
'package Cargo du host',
'↓',
'version applicative Tauri',
))
assert version_chain in tauri
study = Path('docs/studies/001-KSP_GAMES_RECONCILIATION.md').read_text(encoding='utf-8')
assert 'candidat de skeleton pour projets contrôlés' in study
assert 'WASM n'est pas une dépendance implicite de Tauri' in study
assert 'écart antérieur dans le profil Rust PGR' in study
plan = Path('docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md').read_text(encoding='utf-8')
assert '### alpha.7 — complétude du profil Rust strict' in plan
assert '### alpha.8 — décision de skeleton Tauri pour projets contrôlés' in plan
print('0.0.5 alpha.6.fix.1 Tauri composition audit: clean (Rust inherited, frontend/skeleton separated, WASM independent, gate valid)')
PY
git diff --check
git add VERSION \
docs/architecture/003-RULE_PROFILE_MODEL.md \
docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md \
docs/rules/700-FRAMEWORKS.md docs/rules/710-TAURI.md \
docs/studies/001-KSP_GAMES_RECONCILIATION.md \
deltas/0.0.5/alpha.6.fix.1.md
git diff --cached --check
git status --short
```
La sortie Git attendue avant ajout du history est exactement :
```text
M VERSION
A deltas/0.0.5/alpha.6.fix.1.md
M docs/architecture/003-RULE_PROFILE_MODEL.md
M docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
M docs/rules/700-FRAMEWORKS.md
M docs/rules/710-TAURI.md
M docs/studies/001-KSP_GAMES_RECONCILIATION.md
```
## Transition
### PASS
Créer/appliquer `history/0.0.5/alpha.6.fix.1.md`, committer/pousser le fix, puis poursuivre à `0.0.5-alpha.7` pour réconcilier les conventions Rust strictes déjà décidées avant toute matérialisation d'un skeleton Tauri.
### FAIL
Rester dans `0.0.5-alpha.6.fix.M`. Aucun changement du profil Rust ni skeleton Tauri ne doit être absorbé tant que la frontière Tauri/Rust/frontend n'est pas correctement fermée.