0.1.5-rc.1
This commit is contained in:
207
deltas/0.1.5/rc.1.md
Normal file
207
deltas/0.1.5/rc.1.md
Normal 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`.
|
||||
Reference in New Issue
Block a user