0.1.4-alpha.3
This commit is contained in:
202
deltas/0.1.4/alpha.3.md
Normal file
202
deltas/0.1.4/alpha.3.md
Normal file
@@ -0,0 +1,202 @@
|
||||
<!-- file: deltas/0.1.4/alpha.3.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# 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 :
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```text
|
||||
deltas/0.1.4/alpha.3.md
|
||||
docs/skeletons/004-TAURI.md
|
||||
```
|
||||
|
||||
REPLACE :
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```text
|
||||
archive.delta/history.zip
|
||||
├── VERSION # si présent dans le delta
|
||||
├── docs/...
|
||||
├── deltas/...
|
||||
└── history/...
|
||||
```
|
||||
|
||||
est valide, tandis que :
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```bash
|
||||
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 :
|
||||
|
||||
```text
|
||||
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.
|
||||
Reference in New Issue
Block a user