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_FRONTENDet710-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.