Files
pgr/deltas/0.1.5/beta.1.md
2026-10-01 10:35:41 +02:00

8.3 KiB

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 :

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 :

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.

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 :

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 '<!-- version: 16 -->' RULES.md
grep -F 'forte recommandation non obligatoire' RULES.md
grep -F "n'exige pas automatiquement un \`OVERRIDE\`" RULES.md

grep -Fx '<!-- version: 3 -->' 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 '<!-- version: 2 -->' docs/rules/400-VALIDATION.md
grep -F 'MUST NOT faire passer une tranche en `FAIL`' docs/rules/400-VALIDATION.md

grep -Fx '<!-- version: 5 -->' 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 '<!-- version: 9 -->' docs/rules/210-WORKFLOW.md
grep -Fx '<!-- version: 2 -->' 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 '<!-- version: 5 -->' 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

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.