Files
pgr/deltas/0.1.4/alpha.3.md
2026-09-29 14:00:25 +02:00

6.5 KiB

Delta 0.1.4-alpha.3 — skeleton Tauri contrôlé

Précondition

0.1.4-alpha.2.fix.1 doit être committée avec son history PASS avant application de ce delta.

Version après application :

0.1.4-alpha.3

Objet

Matérialiser le skeleton Tauri 2 autorisé par les gates précédentes, sans créer de template technique universel ni absorber les owners Rust/Web/plateforme.

La tranche corrige également le contrat de packaging des archives delta/history après l'observation opérateur d'un répertoire englobant pgr/ dans deux ZIP remis : les entrées doivent désormais être directement relatives à la racine du dépôt.

Scope

ADD :

deltas/0.1.4/alpha.3.md
docs/skeletons/004-TAURI.md

REPLACE :

VERSION
docs/000-README.md
docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md
docs/rules/210-WORKFLOW.md
docs/skeletons/000-README.md

Aucun template Tauri, contrat de validation Tauri séparé, changement de roadmap ou adoption Games/KSP n'appartient à cette tranche.

Skeleton 004-TAURI

La nouvelle specification :

  • compose 001-PROJECT_GOVERNANCE_FOUNDATION, 002-RUST_CARGO_WORKSPACE, 003-WEB_FRONTEND et 710-TAURI ;
  • conserve src-tauri/ comme layout valide pour un projet existant tout en recommandant une crate Cargo directement lisible pour une nouvelle baseline contrôlée ;
  • rend obligatoires les décisions de version, frontend, package manager, hooks, devUrl, frontendDist, capabilities, permissions, plugins, fenêtres, bundles et plateformes ;
  • distingue recommandations de baseline et options locales ;
  • garde WASM séparé par défaut ;
  • définit un ordre d'initialisation ;
  • définit une gate initiale séparant preuves Rust, frontend, intégration Tauri, packaging et plateforme ;
  • conclut qu'aucun template Tauri technique supplémentaire n'est actuellement justifié.

Packaging delta/history

docs/rules/210-WORKFLOW.md passe en révision 9 et rend explicite que :

archive.delta/history.zip
├── VERSION          # si présent dans le delta
├── docs/...
├── deltas/...
└── history/...

est valide, tandis que :

archive.zip
└── pgr/
    ├── docs/...
    └── history/...

est invalide pour le handoff canonique unzip -o <archive> -d ..

Le générateur doit vérifier la liste des entrées du ZIP avant remise.

Gate opérateur

Après commit/push du history PASS de alpha.2.fix.1, appliquer ce delta puis exécuter :

cat VERSION

test -f history/0.1.4/alpha.2.fix.1.md
grep -A2 '^## Statut$' history/0.1.4/alpha.2.fix.1.md | grep -Fx 'PASS'
test -f deltas/0.1.4/alpha.3.md
test -f docs/skeletons/004-TAURI.md
test ! -e history/0.1.4/alpha.3.md

python3 -B -m unittest discover -s tests -v

python3 -B scripts/audit_text_hygiene.py \
    VERSION README.md RULES.md ROADMAP.md CHANGELOG.md \
    docs deltas history prompts scripts tests templates .gitignore .settings

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

assert Path('VERSION').read_text(encoding='utf-8').strip() == '0.1.4-alpha.3'

history = Path('history/0.1.4/alpha.2.fix.1.md').read_text(encoding='utf-8')
assert re.search(r'## Statut\s+PASS', history)

skeleton = Path('docs/skeletons/004-TAURI.md').read_text(encoding='utf-8')
assert skeleton.startswith(
    '<!-- file: docs/skeletons/004-TAURI.md -->\n'
    '<!-- version: 1 -->'
)
for phrase in (
    '## Décisions obligatoires avant matérialisation',
    '## Baseline organisationnelle recommandée',
    '## Capabilities, permissions et commandes',
    '## Ordre d\'initialisation',
    '## Validation initiale',
    '## Templates techniques',
    'Aucun template Tauri technique supplémentaire n\'est requis',
    'ADOPT / KEEP-LOCAL / OVERRIDE / DEFER',
):
    assert phrase in skeleton, phrase

for path, version in (
    ('docs/rules/210-WORKFLOW.md', '9'),
    ('docs/skeletons/000-README.md', '7'),
    ('docs/000-README.md', '43'),
    ('docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md', '3'),
    ('docs/rules/710-TAURI.md', '7'),
    ('docs/studies/002-TAURI_SKELETON_DECISION.md', '3'),
):
    lines = Path(path).read_text(encoding='utf-8').splitlines()
    assert lines[1] == f'<!-- version: {version} -->', (path, lines[1])

workflow = Path('docs/rules/210-WORKFLOW.md').read_text(encoding='utf-8')
for phrase in (
    'Les entrées des archives delta/history MUST utiliser directement les chemins relatifs à la racine du dépôt',
    'MUST NOT ajouter un répertoire englobant portant le nom du projet',
    'vérifier la liste des entrées du ZIP avant remise',
):
    assert phrase in workflow, phrase

index = Path('docs/skeletons/000-README.md').read_text(encoding='utf-8')
assert '[`004-TAURI.md`](004-TAURI.md)' in index

doc_index = Path('docs/000-README.md').read_text(encoding='utf-8')
assert '[`skeletons/004-TAURI.md`](skeletons/004-TAURI.md)' in doc_index

assert not Path('history/0.1.4/alpha.3.md').exists()
assert not Path('docs/templates/011-TAURI.md').exists()
assert not Path('docs/validation/006-TAURI_VALIDATION.md').exists()

print(
    '0.1.4 alpha.3 skeleton audit: clean '
    '(004 materialized, owners composed, no premature template/validation artifact, ZIP root contract explicit)'
)
PY

git diff --check

git add VERSION \
    deltas/0.1.4/alpha.3.md \
    docs/000-README.md \
    docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md \
    docs/rules/210-WORKFLOW.md \
    docs/skeletons/000-README.md \
    docs/skeletons/004-TAURI.md

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

Le scope attendu est :

M  VERSION
A  deltas/0.1.4/alpha.3.md
M  docs/000-README.md
M  docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md
M  docs/rules/210-WORKFLOW.md
M  docs/skeletons/000-README.md
A  docs/skeletons/004-TAURI.md

Transition

PASS

Produire history/0.1.4/alpha.3.md, commit/push sous l'identité 0.1.4-alpha.3, puis ouvrir beta.1 pour la réconciliation globale et la décision explicite sur les artefacts Tauri supplémentaires.

FAIL

Enregistrer le résultat réel dans history/0.1.4/alpha.3.md et poursuivre sous alpha.3.fix.N. Ne pas ouvrir beta.1 tant que la composition du skeleton et le scope ne sont pas propres.