# Delta 0.1.5-rc.1 — freeze, revue d’horizon et handoff Games ## Objet Geler les trois contrats transversaux réconciliés par `beta.1`, préparer la présentation candidate de `0.1.5`, effectuer la revue d’horizon limitée prévue par le plan et préparer le handoff vers `0.1.6` uniquement puisque l’adoption Games reste la prochaine dépendance réelle. La RC n’ajoute aucun nouveau contrat normatif et ne commence aucune adoption. ## Préconditions Le history `history/0.1.5/beta.1.md` doit être présent avec statut `PASS` avant application de ce delta. La séquence réelle doit rester : ```text alpha.1 PARTIAL alpha.1.fix.1 PASS alpha.2 PASS alpha.3 PASS alpha.4 PASS beta.1 PASS ``` Les owners stabilisés pendant `alpha.2` à `alpha.4` sont gelés sauf défaut démontré. Aucun défaut nouveau n’est introduit par la préparation RC. ## Revue d’horizon `docs/studies/005-V0_1_5_HORIZON_REVIEW.md` confirme qu’aucun nouveau prérequis transversal ne doit précéder l’adoption réelle de `sasedev-games`. La trajectoire reste : ```text 0.1.6 adoption sasedev-games 0.1.7 adoption khadhroony-solana-project 0.1.8 audits Rust/Clippy read-only 0.1.9 NOT RESERVED ``` La revue impose pour `0.1.6` une stable PGR `v0.1.5` réellement publiée/vérifiée et une archive Games récente explicitement autoritaire. Elle ne fige volontairement aucun numéro Games. ## Handoff 0.1.6 `prompts/012-V0_1_6_START_PROMPT.md` prépare `0.1.6-alpha.1` comme tranche d’intake et de cartographie avant migration. Le prompt exige une classification `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A`, conserve la sémantique non obligatoire de `SHOULD / SHOULD NOT`, préserve les décisions locales Games et rappelle que la baseline Games devient l’autorité du projet après adoption. Il interdit de généraliser automatiquement un ancien POC ou artefact historique sans applicabilité démontrée par le corpus Games fourni. ## Modifications - `VERSION` passe à `0.1.5-rc.1` ; - `README.md` passe en révision `33` et présente la candidate/freeze ; - `CHANGELOG.md` passe en révision `20` et reçoit l’entrée `0.1.5 (candidate)` sans chronologie de tranches ; - `ROADMAP.md` passe en révision `18` et enregistre la confirmation de trajectoire issue de la revue `0.1.5-rc.1` ; - `docs/000-README.md` passe en révision `52` et indexe la revue d’horizon et le handoff `012` ; - `docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md` passe en révision `6`, enregistre `beta.1 PASS` et le freeze RC ; - `docs/studies/000-README.md` passe en révision `6` ; - `docs/studies/005-V0_1_5_HORIZON_REVIEW.md` est créé ; - `prompts/012-V0_1_6_START_PROMPT.md` est créé ; - aucun owner normatif, skeleton, template ou contrat de validation stabilisé par les alphas n’est modifié. ## Gate opérateur Après commit/push de `beta.1` avec son history `PASS`, appliquer ce delta puis exécuter : ```bash cat VERSION test -f history/0.1.5/beta.1.md test -f deltas/0.1.5/rc.1.md test -f docs/studies/005-V0_1_5_HORIZON_REVIEW.md test -f prompts/012-V0_1_6_START_PROMPT.md test ! -e history/0.1.5/rc.1.md grep -Fx '0.1.5-rc.1' VERSION grep -A2 '^## Statut$' history/0.1.5/alpha.1.md | grep -Fx 'PARTIAL' grep -A2 '^## Statut$' history/0.1.5/alpha.1.fix.1.md | grep -Fx 'PASS' grep -A2 '^## Statut$' history/0.1.5/alpha.2.md | grep -Fx 'PASS' grep -A2 '^## Statut$' history/0.1.5/alpha.3.md | grep -Fx 'PASS' grep -A2 '^## Statut$' history/0.1.5/alpha.4.md | grep -Fx 'PASS' grep -A2 '^## Statut$' history/0.1.5/beta.1.md | grep -Fx 'PASS' grep -Fx '' README.md grep -F 'candidate `0.1.5-rc.1`' README.md grep -F '`0.1.6` reste la prochaine release' README.md grep -Fx '' CHANGELOG.md grep -Fx '## 0.1.5 (candidate)' CHANGELOG.md grep -F 'forte recommandation non obligatoire' CHANGELOG.md grep -F 'baseline locale et ses owners deviennent l’autorité' CHANGELOG.md grep -F 'SaseDev Knowledge' CHANGELOG.md grep -F 'adoption réelle de `sasedev-games` reste la cible `0.1.6`' CHANGELOG.md python3 -B -c "from pathlib import Path; s=Path('CHANGELOG.md').read_text(encoding='utf-8').split('## 0.1.5 (candidate)',1)[1].split('## 0.1.4',1)[0]; assert all(x not in s for x in ('alpha.1','alpha.2','alpha.3','alpha.4','beta.1','rc.1','rel.1')); print('0.1.5 candidate changelog: clean')" grep -Fx '' ROADMAP.md grep -F -- '- `( ) 0.1.5`' ROADMAP.md grep -F -- '- `( ) 0.1.6`' ROADMAP.md grep -F -- '- `( ) 0.1.7`' ROADMAP.md grep -F -- '- `( ) 0.1.8`' ROADMAP.md grep -F 'La revue limitée `0.1.5-rc.1` confirme' ROADMAP.md ! grep -F -- '- `( ) 0.1.9`' ROADMAP.md grep -Fx '' docs/000-README.md grep -F 'studies/005-V0_1_5_HORIZON_REVIEW.md' docs/000-README.md grep -F 'prompts/012-V0_1_6_START_PROMPT.md' docs/000-README.md grep -Fx '' docs/studies/000-README.md grep -F '005-V0_1_5_HORIZON_REVIEW.md' docs/studies/000-README.md grep -Fx '' docs/studies/005-V0_1_5_HORIZON_REVIEW.md grep -F 'conserver `0.1.6` comme prochaine release' docs/studies/005-V0_1_5_HORIZON_REVIEW.md grep -F 'aucun numéro de version Games n’est figé' docs/studies/005-V0_1_5_HORIZON_REVIEW.md grep -F 'ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A' docs/studies/005-V0_1_5_HORIZON_REVIEW.md grep -F 'Aucun `0.1.9` n’est réservé' docs/studies/005-V0_1_5_HORIZON_REVIEW.md grep -Fx '' prompts/012-V0_1_6_START_PROMPT.md grep -F 'tag Gitea `v0.1.5`' prompts/012-V0_1_6_START_PROMPT.md grep -F 'pgr-0.1.5-publish.001-report.md' prompts/012-V0_1_6_START_PROMPT.md grep -F 'archive récente et explicitement autoritaire de `sasedev-games`' prompts/012-V0_1_6_START_PROMPT.md grep -F '0.1.6-alpha.1' prompts/012-V0_1_6_START_PROMPT.md grep -F 'ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A' prompts/012-V0_1_6_START_PROMPT.md grep -F 'ne doivent pas rechercher automatiquement « la dernière version de PGR »' prompts/012-V0_1_6_START_PROMPT.md grep -F 'réservée à `0.1.7`' prompts/012-V0_1_6_START_PROMPT.md grep -F 'réservés à `0.1.8`' prompts/012-V0_1_6_START_PROMPT.md grep -Fx '' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md grep -F 'La gate opérateur de `beta.1` du `2026-10-01` est `PASS`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md grep -F 'Freeze et revue d’horizon préparés en `rc.1`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md grep -F '0.1.9 NOT RESERVED' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md grep -F '012-V0_1_6_START_PROMPT.md' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md grep -Fx '' RULES.md grep -Fx '' docs/rules/210-WORKFLOW.md grep -Fx '' docs/rules/230-ADOPTION.md grep -Fx '' docs/rules/300-DOCUMENTATION.md grep -Fx '' docs/rules/400-VALIDATION.md python3 -B -c "from pathlib import Path; 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,'0.1.4':7}; assert all({p.name for p in Path('deltas',r).glob('*.md')} == {p.name for p in Path('history',r).glob('*.md')} and len(list(Path('deltas',r).glob('*.md'))) == n for r,n in expected.items()); assert {p.name for p in Path('deltas/0.1.5').glob('*.md')} == {'alpha.1.md','alpha.1.fix.1.md','alpha.2.md','alpha.3.md','alpha.4.md','beta.1.md','rc.1.md'}; assert {p.name for p in Path('history/0.1.5').glob('*.md')} == {'alpha.1.md','alpha.1.fix.1.md','alpha.2.md','alpha.3.md','alpha.4.md','beta.1.md'}; print('0.1.5 rc.1 history boundary: clean (109 closed prior pairs, current rc.1 pending)')" git diff --exit-code -- history/0.1.4 git diff --exit-code -- RULES.md \ docs/objectives/001-PROJECT_OBJECTIVES.md \ docs/architecture/002-GOVERNANCE_ARCHITECTURE.md \ docs/rules/210-WORKFLOW.md docs/rules/220-SKELETONS.md \ docs/rules/230-ADOPTION.md docs/rules/300-DOCUMENTATION.md \ docs/rules/400-VALIDATION.md docs/rules/500-LANGUAGES.md \ docs/rules/530-TYPESCRIPT.md docs/rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md \ docs/rules/700-FRAMEWORKS.md \ docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md \ docs/skeletons/003-WEB_FRONTEND.md \ docs/templates/003-NEW_SESSION_PROMPT.md \ docs/templates/007-EXISTING_PROJECT_ADOPTION.md \ docs/templates/008-WEB_TYPESCRIPT_PACKAGE.md python3 -B -m unittest discover -s tests -v python3 -B scripts/audit_text_hygiene.py \ README.md RULES.md ROADMAP.md CHANGELOG.md VERSION \ 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 git diff --check git status --short git add VERSION README.md CHANGELOG.md ROADMAP.md \ deltas/0.1.5/rc.1.md \ docs/000-README.md \ docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md \ docs/studies/000-README.md \ docs/studies/005-V0_1_5_HORIZON_REVIEW.md \ prompts/012-V0_1_6_START_PROMPT.md git diff --cached --check git status --short ``` ## Scope Git attendu ```text M CHANGELOG.md M README.md M ROADMAP.md M VERSION A deltas/0.1.5/rc.1.md M docs/000-README.md M docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md M docs/studies/000-README.md A docs/studies/005-V0_1_5_HORIZON_REVIEW.md A prompts/012-V0_1_6_START_PROMPT.md ``` ## Transition Si la gate est `PASS`, produire `history/0.1.5/rc.1.md`, committer/pousser `0.1.5-rc.1`, puis préparer `rel.1` comme promotion mécanique vers la stable `0.1.5`, sans rouvrir les contrats acquis ni commencer `0.1.6`.