0.1.5-rc.1

This commit is contained in:
2026-10-01 10:47:14 +02:00
parent ec1a2963f6
commit 4d7021b101
11 changed files with 575 additions and 10 deletions

207
deltas/0.1.5/rc.1.md Normal file
View File

@@ -0,0 +1,207 @@
<!-- file: deltas/0.1.5/rc.1.md -->
<!-- version: 1 -->
# 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 '<!-- version: 33 -->' 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 '<!-- version: 20 -->' 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 '<!-- version: 18 -->' 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 '<!-- version: 52 -->' 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 '<!-- version: 6 -->' docs/studies/000-README.md
grep -F '005-V0_1_5_HORIZON_REVIEW.md' docs/studies/000-README.md
grep -Fx '<!-- version: 1 -->' 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 '<!-- version: 1 -->' 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 '<!-- version: 6 -->' 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 '<!-- version: 16 -->' RULES.md
grep -Fx '<!-- version: 9 -->' docs/rules/210-WORKFLOW.md
grep -Fx '<!-- version: 3 -->' docs/rules/230-ADOPTION.md
grep -Fx '<!-- version: 5 -->' docs/rules/300-DOCUMENTATION.md
grep -Fx '<!-- version: 2 -->' 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`.