# Delta 0.1.4-alpha.1 — intake et cadrage du réexamen Tauri ## Objet Ouvrir `0.1.4` conformément à `prompts/010-V0_1_4_START_PROMPT.md`, conserver une preuve locale de l'audit des baselines réellement fournies et matérialiser le plan avant toute modification normative ou création d'un skeleton Tauri. La tranche ne crée pas `docs/skeletons/004-TAURI.md`, ne modifie pas `710-TAURI.md` et ne commence aucune adoption Games/KSP. ## Sources vérifiées avant préparation ```text pgr-v0.1.3(1).zip SHA-256 f3a7dffd5fe0fd3542e6b5207fda0b94bca2bd05bd5a54542d0a08d635a5d6ee CRC PASS pgr-0.1.3-publish.001-report.md SHA-256 5405a1d6c216a5882c4638c07d573d50d440ce9e4e892d97f425e99054245544 status PASS games-v0.3.6(3).zip SHA-256 ad6e44a1332eb7d6069cf1189d9433f0fbb8fac19c5aac9f4641ac45c1c556e8 CRC PASS khadhroony-solana-project-v0.3.19(1).zip SHA-256 64a3813620925fa4f8914cdf74113399cfdd78ad51d60bbeff9bafbddcf4b253 CRC PASS ``` La baseline PGR correspond exactement au SHA canonique publié. La baseline Games correspond exactement à la référence `0.3.6` du prompt. KSP `0.3.19` est le corpus courant explicitement fourni et remplace, pour cette étude, la référence historique `0.3.17` sans prétendre posséder une preuve post-tag non fournie. ## Résultats d'intake La stable PGR rejoue `48/48` tests Python et ses trois audits Markdown propres. Games `0.3.6` rejoue ses audits Rust/workspace, Markdown tables et distribution layout propres. KSP `0.3.19` rejoue ses audits Rust/workspace et Markdown tables propres. L'inventaire Tauri courant comporte `7` hosts : un sous Games et six sous KSP. Les sept convergent sur un host Cargo direct, `build.rs`, `tauri.conf.json`, `capabilities/`, `src/tauri.rs`, `frontend/`, TypeScript et Vite, sans `src-tauri/`. Les choix Bootstrap/Sass/TS-RS, plugins, windows, ACL, ports, identifiers, bundle/resources et WASM ne convergent pas suffisamment pour devenir des obligations générales. La relecture des owners Web confirme les cinq conditions historiques de sortie du `DEFER`. La vérification Tauri 2 officielle confirme que le layout standard et les commandes de commodité restent des possibilités supportées, tandis que capabilities/permissions doivent être traitées comme une surface de sécurité explicite. ## Modifications de la tranche - `VERSION` passe à `0.1.4-alpha.1` ; - `README.md` annonce l'ouverture du réexamen Tauri et référence son plan actif ; - `docs/000-README.md` ajoute les points d'entrée actifs de `0.1.4` ; - `docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md` consigne audits, inventaire, classification et trajectoire ; - le présent delta conserve le contrat de gate opérateur. `ROADMAP.md` et `CHANGELOG.md` restent inchangés pendant cette tranche d'ouverture. Leur mise à jour est volontairement réservée aux phases de fermeture lorsque l'état réellement atteint est connu. ## Décision de tranche ```text conditions Web historiques SATISFIED ancien motif Web du DEFER LIFT skeleton Tauri organisationnel ADOPT FOR MATERIALIZATION création pendant alpha.1 NO prochaine tranche alpha.2 — réconciliation normative 710 + étude 002 ``` Cette décision autorise la matérialisation future du candidat ; elle ne présume pas que sa forme historique est correcte en bloc. ## Gate opérateur Appliquer le delta puis exécuter depuis la racine du dépôt : ```bash cat VERSION test -f docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md test -f deltas/0.1.4/alpha.1.md test ! -e history/0.1.4/alpha.1.md test ! -e docs/skeletons/004-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 assert Path('VERSION').read_text(encoding='utf-8').strip() == '0.1.4-alpha.1' expected = { '0.0.1': 12, '0.0.2': 12, '0.0.3': 10, '0.0.4': 9, '0.0.5': 19, '0.1.0': 10, '0.1.1': 11, '0.1.2': 7, '0.1.3': 6, } for release, count in expected.items(): deltas = {path.name for path in Path('deltas', release).glob('*.md')} histories = {path.name for path in Path('history', release).glob('*.md')} assert len(deltas) == count, (release, len(deltas)) assert deltas == histories, (release, sorted(deltas ^ histories)) statuses = {} for path in Path('history/0.1.3').glob('*.md'): text = path.read_text(encoding='utf-8') match = re.search(r'## Statut\s+(?:`?)(PASS|FAIL|PARTIAL|BLOCKED)', text) assert match is not None, path statuses[path.name] = match.group(1) assert len(statuses) == 6, statuses assert set(statuses.values()) == {'PASS'}, statuses assert statuses['rel.1.md'] == 'PASS' roadmap = Path('ROADMAP.md').read_text(encoding='utf-8') assert '- `(x) 0.1.3`' in roadmap for release in range(4, 8): assert f'- `( ) 0.1.{release}`' in roadmap, release assert '0.1.8' not in roadmap prompt = Path('prompts/010-V0_1_4_START_PROMPT.md').read_text(encoding='utf-8') for phrase in ( 'Version cible : `0.1.4`', 'Première tranche attendue : `0.1.4-alpha.1`', 'ADOPT / KEEP-LOCAL / OVERRIDE / DEFER', 'conditions de sortie du report historique', 'skeleton Tauri', 'adoption Games `0.1.5`', 'adoption KSP `0.1.6`', ): assert phrase in prompt, phrase plan = Path('docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md').read_text(encoding='utf-8') for phrase in ( '7` hosts', 'conditions historiques de sortie SATISFIED', 'Classification initiale `alpha.1`', '### `ADOPT`', '### `KEEP-LOCAL`', '### `OVERRIDE`', '### `DEFER`', 'ADOPT FOR MATERIALIZATION', '`alpha.2` — réconciliation normative Tauri', '`alpha.3` — skeleton Tauri contrôlé', '`beta.1` — réconciliation et décision d\'artefacts', '`rc.1` — freeze et handoff', '`rel.1` — stable', '0.1.5', '0.1.6', ): assert phrase in plan, phrase assert Path('docs/rules/710-TAURI.md').read_text(encoding='utf-8').startswith( '\n' ) assert Path('docs/studies/002-TAURI_SKELETON_DECISION.md').read_text(encoding='utf-8').startswith( '\n' ) assert Path('docs/skeletons/003-WEB_FRONTEND.md').exists() assert not Path('docs/skeletons/004-TAURI.md').exists() assert not Path('history/0.1.4/alpha.1.md').exists() print('0.1.4 alpha.1 structural audit: clean (96 prior pairs, 7 current Tauri hosts classified, no premature skeleton/adoption)') PY git diff --check git add VERSION README.md docs/000-README.md \ docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md \ deltas/0.1.4/alpha.1.md git diff --cached --check git status --short ``` Le scope indexé attendu avant ajout du history est : ```text M README.md M VERSION A deltas/0.1.4/alpha.1.md M docs/000-README.md A docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md ``` ## Revue opérateur attendue La revue doit confirmer que `alpha.1` ne modifie ni `710-TAURI.md` ni l'étude historique avant validation du cadrage ; que les sept hosts réellement fournis sont utilisés comme preuves et non comme modèles à recopier ; que Bootstrap/Sass/TS-RS/WASM/plugins/windows/ports/identifiers restent correctement classifiés ; et que ni Games ni KSP ne sont adoptés pendant `0.1.4`. Elle doit aussi confirmer que le candidat de skeleton est **autorisé à être matérialisé plus tard**, et non déjà créé par cette tranche. ## Transition ### PASS Produire `history/0.1.4/alpha.1.md` à partir des résultats réellement observés. Dans la même réponse, préparer séparément le delta `0.1.4-alpha.2` consacré à la réconciliation normative de `710-TAURI.md` et de `002-TAURI_SKELETON_DECISION.md`, sans créer encore `004-TAURI.md`. Après remise du history, fournir automatiquement le bloc opérateur exact pour appliquer le history, committer/pusher `0.1.4-alpha.1`, puis seulement appliquer le delta suivant conformément à `docs/templates/006-OPERATOR_COMMAND_HANDOFF.md`. ### FAIL Consigner le résultat réel dans le history, puis ouvrir `0.1.4-alpha.1.fix.1` ou un REPLAN selon la cause. Aucun changement prévu pour `alpha.2` ne doit être absorbé silencieusement dans le fix.