# 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 '' docs/rules/700-FRAMEWORKS.md grep -Fx '' docs/rules/710-TAURI.md grep -Fx '' docs/architecture/003-RULE_PROFILE_MODEL.md grep -Fx '' docs/studies/001-KSP_GAMES_RECONCILIATION.md grep -Fx '' 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.