Files
pgr/deltas/0.0.5/alpha.6.md
2026-09-25 09:16:06 +02:00

7.1 KiB

Delta 0.0.5-alpha.6 — premier profil framework : Tauri 2

Baseline et version

Baseline attendue : commit opérateur complet de 0.0.5-alpha.5.fix.1, réalisé après application de history/0.0.5/alpha.5.fix.1.md avec statut PASS.

Version avant application :

0.0.5-alpha.5.fix.1

Version après application :

0.0.5-alpha.6

Scope

REPLACE :

VERSION
RULES.md
docs/000-README.md
docs/architecture/003-RULE_PROFILE_MODEL.md
docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
docs/rules/000-README.md
docs/studies/001-KSP_GAMES_RECONCILIATION.md

ADD :

docs/rules/700-FRAMEWORKS.md
docs/rules/710-TAURI.md
deltas/0.0.5/alpha.6.md

DELETE : aucun.

Le history alpha.5.fix.1 appartient au commit baseline et n'est pas inclus dans l'archive du présent delta.

Preuve de généralisation

Les baselines autoritaires étudiées en alpha.1 contiennent :

KSP 0.3.16    6 applications Tauri
Games 0.3.5   2 applications Tauri

Les huit applications utilisent Tauri 2 avec un host Rust/Cargo, tauri-build, tauri.conf.json, des capability files, des hooks frontend et un frontendDist. Elles divergent en revanche sur fenêtres, ports, CSP, bundling, plugins, ressources et contenu réel des hooks.

Le profil normalise donc les responsabilités et l'orchestration communes, pas ces valeurs locales.

Décisions matérialisées

Famille 700 — frameworks

700-FRAMEWORKS.md devient l'owner des règles communes aux frameworks : composition avec les owners langage/plateforme, ownership des commandes d'intégration, classification des artefacts générés, cohérence de version produit et validation proportionnée.

La famille interdit notamment de supposer qu'un framework absorbe automatiquement son frontend, sa plateforme ou son package manager.

Profil 710 — Tauri 2

Le profil Tauri :

  • se compose au-dessus de Rust/Cargo et des plateformes réellement ciblées ;
  • ne rend pas Vite, WASM, TypeScript ou npm obligatoires ;
  • ne rend pas src-tauri/ obligatoire lorsque la toolchain supporte clairement un autre layout ;
  • possède l'orchestration via le CLI Tauri lorsque les hooks/config/capabilities/bundles sont concernés ;
  • distingue un check Rust, un build frontend et une preuve d'intégration Tauri ;
  • préfère une chaîne de version unique VERSION → workspace Cargo → package host → Tauri lorsque l'application partage le release train et que la configuration Tauri peut omettre sa propre version ;
  • traite les capability files comme source de sécurité intentionnelle ;
  • ne généralise ni plugins, CSP, fenêtres, bundles, ports ni ressources des corpus ;
  • ne généralise pas l'ignorance de tout gen/, car un projet mobile généré peut recevoir des personnalisations intentionnelles ;
  • sélectionne tauri dev/build ou leur équivalent seulement lorsque la propriété à prouver le justifie.

Pas de skeleton dans cette tranche

alpha.6 ne crée aucun tauri.conf.json, package frontend, template Tauri ou skeleton. La décision de matérialiser une specialization Tauri appartient explicitement à alpha.7.

Validation opérateur

Après application du history PASS de alpha.5.fix.1, commit/push de cette tranche, puis application du présent delta :

test "$(cat VERSION)" = '0.0.5-alpha.6'
test -f history/0.0.5/alpha.5.fix.1.md
test -f deltas/0.0.5/alpha.6.md
test -f docs/rules/700-FRAMEWORKS.md
test -f docs/rules/710-TAURI.md
test ! -e history/0.0.5/alpha.6.md

grep -A2 '^## Statut$' history/0.0.5/alpha.5.fix.1.md | grep -Fx 'PASS'
grep -Fx '<!-- version: 11 -->' RULES.md
grep -Fx '<!-- version: 13 -->' docs/rules/000-README.md
grep -Fx '<!-- version: 4 -->' docs/architecture/003-RULE_PROFILE_MODEL.md
grep -Fx '<!-- version: 1 -->' docs/rules/700-FRAMEWORKS.md
grep -Fx '<!-- version: 1 -->' docs/rules/710-TAURI.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.5.fix.1.md').read_text(encoding='utf-8')
assert re.search(r'## Statut\s+PASS\s', history)

frameworks = Path('docs/rules/700-FRAMEWORKS.md').read_text(encoding='utf-8')
for phrase in (
    '# Règles de profils framework',
    "Ownership des commandes d'intégration",
    'PGR MUST NOT appliquer une règle globale « tout `gen/` est ignoré »',
    'Les profils spécifiques utilisent la plage `710` à `799`.',
):
    assert phrase in frameworks, phrase

tauri = Path('docs/rules/710-TAURI.md').read_text(encoding='utf-8')
for phrase in (
    '# Profil Tauri 2',
    'PGR MUST NOT imposer Vite, TypeScript, npm, pnpm, yarn, Bun, WASM',
    "le CLI Tauri est l'owner de l'orchestration",
    'VERSION
↓
workspace.package.version
↓
package Cargo du host
↓
version applicative Tauri',
    'PGR MUST NOT appliquer en revanche une exclusion universelle de tout répertoire `gen/`',
    '## Validation proportionnée',
    'de `tauri.conf.json` universel',
):
    assert phrase in tauri, phrase

study = Path('docs/studies/001-KSP_GAMES_RECONCILIATION.md').read_text(encoding='utf-8')
assert 'KSP contient `6` applications Desk Tauri et Games `2` hôtes Tauri' in study
assert 'Décision `alpha.6` : classer Tauri `COMMON`' in study

plan = Path('docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md').read_text(encoding='utf-8')
assert '`6` applications Tauri KSP et `2` applications Tauri Games' in plan
assert 'La tranche active `700-FRAMEWORKS.md` et `710-TAURI.md`.' in plan

print('0.0.5 alpha.6 Tauri profile audit: clean (700 activated, Tauri 2 responsibilities bounded, no frontend/layout overreach)')
PY

git diff --check

git add VERSION RULES.md docs/000-README.md     docs/architecture/003-RULE_PROFILE_MODEL.md     docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md     docs/rules/000-README.md docs/rules/700-FRAMEWORKS.md docs/rules/710-TAURI.md     docs/studies/001-KSP_GAMES_RECONCILIATION.md     deltas/0.0.5/alpha.6.md

git diff --cached --check
git status --short

La sortie Git attendue avant ajout du history alpha.6 est exactement :

M  RULES.md
M  VERSION
A  deltas/0.0.5/alpha.6.md
M  docs/000-README.md
M  docs/architecture/003-RULE_PROFILE_MODEL.md
M  docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
M  docs/rules/000-README.md
A  docs/rules/700-FRAMEWORKS.md
A  docs/rules/710-TAURI.md
M  docs/studies/001-KSP_GAMES_RECONCILIATION.md

Transition

PASS

Créer/appliquer history/0.0.5/alpha.6.md, committer/pousser 0.0.5-alpha.6, puis poursuivre à 0.0.5-alpha.7 pour décider si une skeleton specification Tauri apporte réellement une valeur de composition au-dessus des profils existants.

FAIL

Rester dans 0.0.5-alpha.6.fix.M ou REPLAN si le profil exige encore une valeur applicative arbitraire. Aucun skeleton Tauri ne doit être créé tant que le profil framework n'est pas correctement fermé.