# Delta 0.1.5-rc.1.fix.1 — alignement des assertions documentaires RC ## Diagnostic La gate opérateur de `0.1.5-rc.1` a validé le freeze fonctionnel, les `55/55` tests Python, les audits d'hygiène/Markdown et le scope Git, mais trois assertions exactes prévues par `rc.1` n'ont produit aucune correspondance : ```text grep -F 'forte recommandation non obligatoire' CHANGELOG.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 ``` `history/0.1.5/rc.1.md` enregistre donc `FAIL`. Le diagnostic est strictement documentaire : les contrats normatifs, la décision d'horizon, le prompt `012` et les validations techniques restent acquis. ## Objet Aligner les formulations de présentation avec les chaînes canoniques exigées par la gate RC sans rouvrir aucun owner normatif et sans commencer `rel.1` ou `0.1.6`. Version après application : ```text 0.1.5-rc.1.fix.1 ``` ## Scope REPLACE : ```text VERSION CHANGELOG.md docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md docs/studies/005-V0_1_5_HORIZON_REVIEW.md ``` ADD : ```text deltas/0.1.5/rc.1.fix.1.md ``` DELETE : aucun. `README.md`, `ROADMAP.md`, `docs/000-README.md`, le prompt `012`, tous les owners normatifs, skeletons, templates, validations et histories antérieurs MUST rester inchangés. ## Corrections `CHANGELOG.md` passe en révision `21` et emploie la formulation canonique `forte recommandation non obligatoire` pour `SHOULD / SHOULD NOT`. `docs/studies/005-V0_1_5_HORIZON_REVIEW.md` passe en révision `2` et : - contient explicitement la sous-chaîne `aucun numéro de version Games n’est figé` ; - expose explicitement la classification canonique `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A` avant son détail ligne par ligne. `docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md` passe en révision `7` et conserve la vérité opérateur `rc.1 FAIL` ainsi que le scope borné du présent fix. Aucune décision d'horizon n'est modifiée. ## Gate opérateur Après commit/push de `rc.1` avec son history `FAIL`, appliquer ce delta puis exécuter : ```bash cat VERSION test -f history/0.1.5/rc.1.md test -f deltas/0.1.5/rc.1.fix.1.md test ! -e history/0.1.5/rc.1.fix.1.md grep -Fx '0.1.5-rc.1.fix.1' VERSION grep -A2 '^## Statut$' history/0.1.5/rc.1.md | grep -Fx 'FAIL' grep -Fx '' CHANGELOG.md grep -F 'forte recommandation non obligatoire' CHANGELOG.md grep -Fx '' 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 'conserver `0.1.6` comme prochaine release' 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 '' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md grep -F 'Gate `rc.1` en échec documentaire et correctif `rc.1.fix.1`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md grep -F 'history/0.1.5/rc.1.md` enregistre donc le résultat réel `FAIL`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md grep -F '`rel.1` reste bloqué tant que `rc.1.fix.1` n’est pas validé `PASS`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md grep -Fx '' README.md grep -Fx '' ROADMAP.md grep -Fx '' docs/000-README.md grep -Fx '' prompts/012-V0_1_6_START_PROMPT.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','rc.1.fix.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','rc.1.md'}; print('0.1.5 rc.1.fix.1 history boundary: clean (110 closed prior pairs, current rc.1.fix.1 pending)')" git diff --exit-code -- history/0.1.4 git diff --exit-code -- README.md ROADMAP.md docs/000-README.md \ prompts/012-V0_1_6_START_PROMPT.md 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 CHANGELOG.md \ docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md \ docs/studies/005-V0_1_5_HORIZON_REVIEW.md \ deltas/0.1.5/rc.1.fix.1.md git diff --cached --check git status --short ``` ## Scope Git attendu ```text M CHANGELOG.md M VERSION A deltas/0.1.5/rc.1.fix.1.md M docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md M docs/studies/005-V0_1_5_HORIZON_REVIEW.md ``` ## Transition ### PASS Produire `history/0.1.5/rc.1.fix.1.md`, committer/pousser `0.1.5-rc.1.fix.1`, puis préparer `rel.1` comme promotion stable mécanique sans nouveau scope. ### FAIL Enregistrer le résultat réel dans `history/0.1.5/rc.1.fix.1.md` et poursuivre sous `rc.1.fix.N`. Ne pas commencer `rel.1` tant que le correctif RC n'est pas `PASS`.