Files
pgr/deltas/0.1.5/rc.1.md
2026-10-01 10:47:14 +02:00

208 lines
9.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- 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`.