# Delta 0.0.5-alpha.1 — réconciliation des baselines et cadrage ## Baseline et sources Baseline PGR : archive source fournie `pgr-v0.0.4.zip`, déclarée téléchargée depuis le tag Gitea `v0.0.4`, accompagnée du rapport externe `pgr-0.0.4-publish.001-report.md` avec statut `PASS`. SHA-256 vérifié : ```text pgr-v0.0.4.zip 7137bb084f017362323a2043d13ba71490be15b8786adc8d645981bf455b80ae khadhroony-solana-project-v0.3.16.zip db3cc1b3fc3fb07ee864b02e2a7346c673d4cf63b33e8e872aca6c6458856ca0 games-v0.3.5.zip 5f5fdee1a271386766d059657d6eaa831acdc263b3e722fed738808335c0a105 ``` Les deux archives externes sont des corpus autoritaires de réconciliation pour cette session, pas des projets déjà gouvernés par PGR. Elles ne sont ni modifiées ni incorporées à l'archive delta. Version avant application : ```text 0.0.4 ``` Version après application : ```text 0.0.5-alpha.1 ``` ## Objet Exécuter la gate de cadrage imposée par `prompts/005-V0_0_5_START_PROMPT.md` : vérifier indépendamment la stable PGR et sa preuve post-tag, contrôler les deux snapshots externes fournis, inventorier leurs responsabilités et audits, puis classer les écarts avant toute modification normative importante. L'analyse détaillée vit dans `docs/studies/001-KSP_GAMES_RECONCILIATION.md`. Elle confirme que KSP `v0.3.16` et Games `v0.3.5` n'ont pas encore adopté PGR et ne doivent donc pas être jugés comme des projets non conformes. La plupart des mécanismes de gouvernance, documentation, validation et Rust/Cargo observés sont déjà correctement possédés par PGR. Quatre axes communs restent suffisamment étayés pour le plan `0.0.5` : contrat générique des prompts versionnés, pattern facultatif de contrats de fichiers/familles, audit Rust de façade/export completeness, et Tauri comme premier candidat réel à la famille framework `700`. Aucun de ces axes n'est matérialisé normativement dans `alpha.1`. Web/Vite/WASM, JNI, les audits composites et les règles métier ou de distribution spécifiques restent différés ou locaux. ## Vérifications d'intake déjà exécutées Le ZIP PGR est lisible, possède une racine unique `pgr/`, `139` fichiers et `28` répertoires, sans doublon, collision de casse, chemin dangereux, lien symbolique ni `.git`. Son hash concorde avec le rapport post-tag. Les deux corpus externes passent les contrôles ZIP équivalents. Leurs audits statiques fournis ont également été exécutés avec succès : audits Rust généraux/export/workspace et tableaux Markdown pour KSP ; audits Rust généraux/export/workspace, tableaux Markdown et distribution layout pour Games. Sur la stable PGR extraite, les `15` tests Python passent, les trois audits Markdown sont propres et les cinq TOML Rust/Cargo se parsèrent. La toolchain `cargo` n'est pas disponible dans l'environnement de préparation ; aucune commande Cargo externe n'est donc présentée comme exécutée. ## Scope REPLACE : ```text VERSION README.md docs/000-README.md ``` ADD : ```text docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md docs/studies/000-README.md docs/studies/001-KSP_GAMES_RECONCILIATION.md deltas/0.0.5/alpha.1.md ``` DELETE : aucun. L'archive delta contient uniquement ces sept fichiers complets avec leurs chemins relatifs. Aucun history, règle normative, script, template technique, profil framework, skeleton ou modification KSP/Games n'appartient à cette tranche. `ROADMAP.md` annonce déjà `0.0.5` comme planifiée et `CHANGELOG.md` reste limité aux releases publiées ; aucun changement cérémoniel de ces deux fichiers n'est requis ici. ## Validation opérateur Après application sur le commit stable `0.0.4`, depuis la racine du dépôt : ```bash test "$(cat VERSION)" = '0.0.5-alpha.1' test -f docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md test -f docs/studies/000-README.md test -f docs/studies/001-KSP_GAMES_RECONCILIATION.md test -f deltas/0.0.5/alpha.1.md test ! -e history/0.0.5/alpha.1.md grep -Fx '' README.md grep -Fx '' docs/000-README.md grep -F '005-V0_0_5_RECONCILIATION_PLAN.md' README.md docs/000-README.md grep -F '001-KSP_GAMES_RECONCILIATION.md' README.md docs/000-README.md docs/studies/000-README.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 import tomllib expected_hashes = { 'pgr-v0.0.4.zip': '7137bb084f017362323a2043d13ba71490be15b8786adc8d645981bf455b80ae', 'khadhroony-solana-project-v0.3.16.zip': 'db3cc1b3fc3fb07ee864b02e2a7346c673d4cf63b33e8e872aca6c6458856ca0', 'games-v0.3.5.zip': '5f5fdee1a271386766d059657d6eaa831acdc263b3e722fed738808335c0a105', } study = Path('docs/studies/001-KSP_GAMES_RECONCILIATION.md').read_text(encoding='utf-8') plan = Path('docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md').read_text(encoding='utf-8') for name, digest in expected_hashes.items(): assert name in study or name in plan, name assert digest in study or digest in plan, digest for path in ( Path('templates/rust-cargo/rustfmt.toml'), Path('templates/rust-cargo/clippy.toml'), Path('templates/rust-cargo/.cargo/config.toml'), Path('templates/rust-cargo/Cargo.toml'), Path('templates/rust-cargo/crates/project-core-lib/Cargo.toml'), ): with path.open('rb') as stream: tomllib.load(stream) expected_counts = {'0.0.1': 12, '0.0.2': 12, '0.0.3': 10, '0.0.4': 9} for release, expected in expected_counts.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) == expected, (release, len(deltas)) assert deltas == histories, (release, sorted(deltas ^ histories)) statuses_004 = {} for path in Path('history/0.0.4').glob('*.md'): text = path.read_text(encoding='utf-8') match = re.search(r'## Statut\s+(PASS|FAIL|PARTIAL|BLOCKED)\s', text) assert match is not None, path statuses_004[path.name] = match.group(1) assert statuses_004['alpha.4.md'] == 'FAIL' assert statuses_004['alpha.4.fix.1.md'] == 'PASS' assert statuses_004['beta.1.md'] == 'FAIL' assert statuses_004['beta.1.fix.1.md'] == 'PASS' assert statuses_004['rc.1.md'] == 'PASS' assert statuses_004['rel.001.md'] == 'PASS' assert 'ne sont pas encore gouvernés par PGR' in plan assert 'aucune migration de KSP ou Games' in plan assert 'Tauri' in plan assert 'audit_rust_export_completeness.py' in study print('0.0.5 alpha.1 structural audit: clean (43 prior pairs, 5 TOML parsed, reconciliation sources recorded)') PY git diff --check git add VERSION README.md docs/000-README.md \ docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md \ docs/studies/000-README.md docs/studies/001-KSP_GAMES_RECONCILIATION.md \ deltas/0.0.5/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.0.5/alpha.1.md M docs/000-README.md A docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md A docs/studies/000-README.md A docs/studies/001-KSP_GAMES_RECONCILIATION.md ``` La revue opérateur doit en outre confirmer que : - les trois archives/hashes consignés correspondent bien aux sources autoritaires fournies pour cette reprise ; - l'étude traite KSP et Games comme corpus non encore migrés vers PGR ; - le plan n'atteste aucun profil Tauri, audit de façade ou template avant sa tranche dédiée ; - les conventions métier et plateforme locales ne sont pas promues en règles PGR par simple similarité ; - aucune modification des deux projets externes n'est cachée dans le delta. ## Transition ### PASS Rédiger et livrer séparément `history/0.0.5/alpha.1.md` avec les résultats réellement observés ; l'appliquer et committer la tranche. Préparer seulement ensuite `0.0.5-alpha.2` pour le contrat générique des prompts versionnés. ### FAIL Consigner le résultat réel dans le history de `alpha.1`, puis corriger le cadrage dans `0.0.5-alpha.1.fix.1` ou produire un REPLAN motivé. Aucun contenu de `alpha.2` ne doit être absorbé silencieusement dans un fix.