# Delta 0.1.5-beta.1 — réconciliation transversale ## Objet Fermer la phase alpha de `0.1.5` en réconciliant transversalement les trois contrats acquis : sémantique `MUST / SHOULD / MAY`, autonomie de la baseline locale et frontière PGR / SaseDev Knowledge. Le rescan préparatoire ne démontre aucun nouveau défaut normatif nécessitant une correction. `beta.1` est donc une tranche d'intégration et de preuve : elle documente les décisions de `KEEP`, rejoue les validations complètes et conserve les scopes futurs hors de la release courante. ## Préconditions Le history `history/0.1.5/alpha.4.md` doit être présent avec statut `PASS` avant application de ce delta. La séquence acquise doit rester : ```text alpha.1 PARTIAL alpha.1.fix.1 PASS alpha.2 PASS alpha.3 PASS alpha.4 PASS ``` Les histories antérieurs ne sont pas réécrits. ## Réconciliation `SHOULD / SHOULD NOT` Le rescan relit les owners vivants où une recommandation cohabite avec un `MUST`, une justification ou une contrainte conditionnelle. Les clauses conservées ne renforcent pas le simple écart à `SHOULD / SHOULD NOT` : elles portent une propriété distincte de sécurité, identité, hygiène d'output ou maintenabilité. Les corrections ciblées d'`alpha.2` restent donc suffisantes et aucun owner normatif supplémentaire n'est modifié en `beta.1`. Les contrats centraux restent : ```text SHOULD / SHOULD NOT forte recommandation non obligatoire écart seul != non-conformité écart seul != FAIL de gate écart seul != OVERRIDE obligatoire justification MAY être documentée si elle apporte une valeur durable ``` ## Autonomie et snapshots La réconciliation confirme que : - la baseline locale et ses owners sont l'autorité des sessions/releases suivantes après instanciation/adoption ; - PGR n'est pas un upstream documentaire implicite ; - aucun mécanisme ne recherche automatiquement « la dernière version de PGR » ; - un réalignement futur est une opération explicite et bornée, fondée sur un snapshot PGR choisi ; - `210-WORKFLOW.md` et `003-NEW_SESSION_PROMPT.md` restent `KEEP`. ## Frontière PGR / Knowledge PGR reste auto-suffisant pour déterminer la force, le scope et les exigences de ses règles. SaseDev Knowledge MAY accueillir des contenus pratiques complémentaires, mais ne devient ni owner normatif, ni source requise, ni dépendance de PGR. Aucune migration physique n'est réalisée en `beta.1`. ## Trajectoire réconciliée La référence vivante Games dans `540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md` reste corrigée vers `0.1.6`. Les références historiques qui décrivent un ancien horizon restent inchangées lorsqu'elles sont exactes dans leur contexte. ```text 0.1.6 adoption sasedev-games RESERVED 0.1.7 adoption KSP RESERVED 0.1.8 audits Rust/Clippy RESERVED 0.1.9 NOT RESERVED ``` `beta.1` ne commence aucun de ces scopes. ## Modifications - `VERSION` passe à `0.1.5-beta.1` ; - `README.md` passe en révision `32` et présente la réconciliation bêta ; - `docs/000-README.md` passe en révision `51` et indexe `beta.1` ; - `docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md` passe en révision `5`, enregistre `alpha.4 PASS` et les résultats du rescan préparatoire ; - aucun owner normatif, skeleton, template, validation, study ou history antérieur n'est modifié. ## Gate opérateur Après commit/push de `alpha.4` avec son history `PASS`, appliquer ce delta puis exécuter : ```bash cat VERSION test -f history/0.1.5/alpha.4.md test -f deltas/0.1.5/beta.1.md test ! -e history/0.1.5/beta.1.md grep -Fx '0.1.5-beta.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 -Fx '' RULES.md grep -F 'forte recommandation non obligatoire' RULES.md grep -F "n'exige pas automatiquement un \`OVERRIDE\`" RULES.md grep -Fx '' docs/rules/230-ADOPTION.md grep -F 'MUST NOT rechercher automatiquement « la dernière version de PGR »' docs/rules/230-ADOPTION.md grep -F 'identifier le snapshot PGR choisi' docs/rules/230-ADOPTION.md grep -Fx '' docs/rules/400-VALIDATION.md grep -F 'MUST NOT faire passer une tranche en `FAIL`' docs/rules/400-VALIDATION.md grep -Fx '' docs/rules/300-DOCUMENTATION.md grep -F 'PGR MUST rester auto-suffisant' docs/rules/300-DOCUMENTATION.md grep -F 'SaseDev Knowledge MAY jouer ce rôle, sans devenir un owner normatif de PGR' docs/rules/300-DOCUMENTATION.md grep -Fx '' docs/rules/210-WORKFLOW.md grep -Fx '' docs/templates/003-NEW_SESSION_PROMPT.md grep -F "Lors de l'adoption \`0.1.6\`" docs/rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md ! grep -F "Lors de l'adoption \`0.1.5\`" docs/rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md grep -Fx '' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md grep -F 'La gate opérateur de `alpha.4` du `2026-10-01` est `PASS`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md grep -F 'Réconciliation transversale préparée en `beta.1`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md grep -F 'KEEP des owners normatifs acquis' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md grep -F -- '- `( ) 0.1.6`' ROADMAP.md grep -F -- '- `( ) 0.1.7`' ROADMAP.md grep -F -- '- `( ) 0.1.8`' ROADMAP.md ! grep -F -- '- `( ) 0.1.9`' ROADMAP.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'}; 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'}; print('0.1.5 beta.1 history boundary: clean (108 closed prior pairs, current beta.1 pending)')" git diff --exit-code -- history/0.1.4 git diff --exit-code -- RULES.md ROADMAP.md CHANGELOG.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 docs/000-README.md docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md deltas/0.1.5/beta.1.md git diff --cached --check git status --short ``` ## Scope Git attendu ```text M README.md M VERSION A deltas/0.1.5/beta.1.md M docs/000-README.md M docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md ``` ## Suite Si la gate est `PASS`, produire `history/0.1.5/beta.1.md`, committer/pousser la tranche puis préparer `rc.1` : freeze des contrats stabilisés, présentation candidate, revue d'horizon bornée et préparation du handoff `0.1.6` uniquement si la trajectoire reste valide.