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

6.9 KiB

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 :

0.0.5-alpha.6

Version après application :

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 :

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 :

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 :

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 :

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.