0.1.5-rc.1.fix.1

This commit is contained in:
2026-10-01 10:55:57 +02:00
parent 4d7021b101
commit f49fd117ac
6 changed files with 318 additions and 7 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: CHANGELOG.md --> <!-- file: CHANGELOG.md -->
<!-- version: 20 --> <!-- version: 21 -->
# Changelog Project Governance Rules # Changelog Project Governance Rules
@@ -9,7 +9,7 @@ Les tranches `alpha`, `beta`, `rc`, fixes, validations, audits et détails de d
## 0.1.5 (candidate) ## 0.1.5 (candidate)
- clarifie la sémantique normative de PGR : `MUST / MUST NOT` restent obligatoires, `SHOULD / SHOULD NOT` deviennent explicitement des recommandations fortes non obligatoires et `MAY` reste une possibilité neutre ; - clarifie la sémantique normative de PGR : `MUST / MUST NOT` restent obligatoires, `SHOULD / SHOULD NOT` expriment explicitement une forte recommandation non obligatoire et `MAY` reste une possibilité neutre ;
- aligne l’adoption et la validation afin qu’un simple écart à un `SHOULD / SHOULD NOT` ne crée à lui seul ni non-conformité, ni `FAIL` de gate, ni `OVERRIDE` ou justification obligatoire ; - aligne l’adoption et la validation afin qu’un simple écart à un `SHOULD / SHOULD NOT` ne crée à lui seul ni non-conformité, ni `FAIL` de gate, ni `OVERRIDE` ou justification obligatoire ;
- formalise l’autonomie après instanciation/adoption : la baseline locale et ses owners deviennent l’autorité des sessions/releases suivantes, tandis qu’un réalignement PGR futur reste une opération explicite et bornée fondée sur un snapshot choisi ; - formalise l’autonomie après instanciation/adoption : la baseline locale et ses owners deviennent l’autorité des sessions/releases suivantes, tandis qu’un réalignement PGR futur reste une opération explicite et bornée fondée sur un snapshot choisi ;
- fixe la frontière PGR / SaseDev Knowledge : PGR reste auto-suffisant pour ses contrats normatifs, tandis que howtos, recettes, snippets, exemples, dépannage et variantes pratiques peuvent vivre dans une base de connaissances séparée sans devenir une dépendance de PGR ; - fixe la frontière PGR / SaseDev Knowledge : PGR reste auto-suffisant pour ses contrats normatifs, tandis que howtos, recettes, snippets, exemples, dépannage et variantes pratiques peuvent vivre dans une base de connaissances séparée sans devenir une dépendance de PGR ;

View File

@@ -1 +1 @@
0.1.5-rc.1 0.1.5-rc.1.fix.1

165
deltas/0.1.5/rc.1.fix.1.md Normal file
View File

@@ -0,0 +1,165 @@
<!-- file: deltas/0.1.5/rc.1.fix.1.md -->
<!-- version: 1 -->
# Delta 0.1.5-rc.1.fix.1 — alignement des assertions documentaires RC
## Diagnostic
La gate opérateur de `0.1.5-rc.1` a validé le freeze fonctionnel, les `55/55` tests Python, les audits d'hygiène/Markdown et le scope Git, mais trois assertions exactes prévues par `rc.1` n'ont produit aucune correspondance :
```text
grep -F 'forte recommandation non obligatoire' CHANGELOG.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
```
`history/0.1.5/rc.1.md` enregistre donc `FAIL`.
Le diagnostic est strictement documentaire : les contrats normatifs, la décision d'horizon, le prompt `012` et les validations techniques restent acquis.
## Objet
Aligner les formulations de présentation avec les chaînes canoniques exigées par la gate RC sans rouvrir aucun owner normatif et sans commencer `rel.1` ou `0.1.6`.
Version après application :
```text
0.1.5-rc.1.fix.1
```
## Scope
REPLACE :
```text
VERSION
CHANGELOG.md
docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
docs/studies/005-V0_1_5_HORIZON_REVIEW.md
```
ADD :
```text
deltas/0.1.5/rc.1.fix.1.md
```
DELETE : aucun.
`README.md`, `ROADMAP.md`, `docs/000-README.md`, le prompt `012`, tous les owners normatifs, skeletons, templates, validations et histories antérieurs MUST rester inchangés.
## Corrections
`CHANGELOG.md` passe en révision `21` et emploie la formulation canonique `forte recommandation non obligatoire` pour `SHOULD / SHOULD NOT`.
`docs/studies/005-V0_1_5_HORIZON_REVIEW.md` passe en révision `2` et :
- contient explicitement la sous-chaîne `aucun numéro de version Games n’est figé` ;
- expose explicitement la classification canonique `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A` avant son détail ligne par ligne.
`docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md` passe en révision `7` et conserve la vérité opérateur `rc.1 FAIL` ainsi que le scope borné du présent fix.
Aucune décision d'horizon n'est modifiée.
## Gate opérateur
Après commit/push de `rc.1` avec son history `FAIL`, appliquer ce delta puis exécuter :
```bash
cat VERSION
test -f history/0.1.5/rc.1.md
test -f deltas/0.1.5/rc.1.fix.1.md
test ! -e history/0.1.5/rc.1.fix.1.md
grep -Fx '0.1.5-rc.1.fix.1' VERSION
grep -A2 '^## Statut$' history/0.1.5/rc.1.md | grep -Fx 'FAIL'
grep -Fx '<!-- version: 21 -->' CHANGELOG.md
grep -F 'forte recommandation non obligatoire' CHANGELOG.md
grep -Fx '<!-- version: 2 -->' 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 'conserver `0.1.6` comme prochaine release' 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: 7 -->' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F 'Gate `rc.1` en échec documentaire et correctif `rc.1.fix.1`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F 'history/0.1.5/rc.1.md` enregistre donc le résultat réel `FAIL`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F '`rel.1` reste bloqué tant que `rc.1.fix.1` n’est pas validé `PASS`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -Fx '<!-- version: 33 -->' README.md
grep -Fx '<!-- version: 18 -->' ROADMAP.md
grep -Fx '<!-- version: 52 -->' docs/000-README.md
grep -Fx '<!-- version: 1 -->' prompts/012-V0_1_6_START_PROMPT.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','rc.1.fix.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','rc.1.md'}; print('0.1.5 rc.1.fix.1 history boundary: clean (110 closed prior pairs, current rc.1.fix.1 pending)')"
git diff --exit-code -- history/0.1.4
git diff --exit-code -- README.md ROADMAP.md docs/000-README.md \
prompts/012-V0_1_6_START_PROMPT.md 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 CHANGELOG.md \
docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md \
docs/studies/005-V0_1_5_HORIZON_REVIEW.md \
deltas/0.1.5/rc.1.fix.1.md
git diff --cached --check
git status --short
```
## Scope Git attendu
```text
M CHANGELOG.md
M VERSION
A deltas/0.1.5/rc.1.fix.1.md
M docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
M docs/studies/005-V0_1_5_HORIZON_REVIEW.md
```
## Transition
### PASS
Produire `history/0.1.5/rc.1.fix.1.md`, committer/pousser `0.1.5-rc.1.fix.1`, puis préparer `rel.1` comme promotion stable mécanique sans nouveau scope.
### FAIL
Enregistrer le résultat réel dans `history/0.1.5/rc.1.fix.1.md` et poursuivre sous `rc.1.fix.N`. Ne pas commencer `rel.1` tant que le correctif RC n'est pas `PASS`.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md --> <!-- file: docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md -->
<!-- version: 6 --> <!-- version: 7 -->
# Plan 0.1.5 — sémantique normative, autonomie et frontière PGR / Knowledge # Plan 0.1.5 — sémantique normative, autonomie et frontière PGR / Knowledge
@@ -289,6 +289,19 @@ Le prompt `012-V0_1_6_START_PROMPT.md` prépare donc une reprise `0.1.6-alpha.1`
La RC ne commence ni l'adoption Games, ni KSP, ni les audits `0.1.8`. La RC ne commence ni l'adoption Games, ni KSP, ni les audits `0.1.8`.
## Gate `rc.1` en échec documentaire et correctif `rc.1.fix.1`
La gate opérateur de `rc.1` du `2026-10-01` conserve les `55/55` tests `PASS`, les audits documentaires propres, le freeze des owners et le scope Git attendu, mais trois assertions textuelles exactes du delta n'ont produit aucune correspondance. Le history `history/0.1.5/rc.1.md` enregistre donc le résultat réel `FAIL`.
Le correctif `rc.1.fix.1` est borné à la présentation documentaire :
- employer dans `CHANGELOG.md` la formule canonique `forte recommandation non obligatoire` attendue par la gate ;
- rendre explicite dans la revue d'horizon que `aucun numéro de version Games n’est figé` ;
- matérialiser la classification canonique `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A` dans cette même étude ;
- ne modifier aucun owner normatif, skeleton, template, contrat de validation, roadmap, handoff `012` ou history antérieur.
`rel.1` reste bloqué tant que `rc.1.fix.1` n’est pas validé `PASS`.
## Trajectoire de release ## Trajectoire de release
### `alpha.1` — intake, audit transversal et plan ### `alpha.1` — intake, audit transversal et plan

View File

@@ -1,5 +1,5 @@
<!-- file: docs/studies/005-V0_1_5_HORIZON_REVIEW.md --> <!-- file: docs/studies/005-V0_1_5_HORIZON_REVIEW.md -->
<!-- version: 1 --> <!-- version: 2 -->
# Revue d’horizon 0.1.5 — adoption Games après stabilisation des contrats transversaux # Revue d’horizon 0.1.5 — adoption Games après stabilisation des contrats transversaux
@@ -51,7 +51,7 @@ La future session `0.1.6` doit disposer de deux baselines autoritaires distincte
1. la stable PGR `v0.1.5` réellement publiée et vérifiée post-tag ; 1. la stable PGR `v0.1.5` réellement publiée et vérifiée post-tag ;
2. une archive récente et explicitement autoritaire de `sasedev-games`, fournie comme corpus d’adoption. 2. une archive récente et explicitement autoritaire de `sasedev-games`, fournie comme corpus d’adoption.
Aucun numéro de version Games n’est figé par cette étude. Le corpus Games doit être celui réellement fourni au démarrage de la session ; ne pas reconstruire ou supposer une baseline à partir d’un ancien historique PGR. Cette revue confirme qu’aucun numéro de version Games n’est figé par cette étude. Le corpus Games doit être celui réellement fourni au démarrage de la session ; ne pas reconstruire ou supposer une baseline à partir d’un ancien historique PGR.
L’absence d’un corpus Games autoritaire empêche de commencer l’adoption réelle, mais n’autorise pas à inventer ses décisions, son architecture ou son applicabilité technologique. L’absence d’un corpus Games autoritaire empêche de commencer l’adoption réelle, mais n’autorise pas à inventer ses décisions, son architecture ou son applicabilité technologique.
@@ -59,7 +59,7 @@ L’absence d’un corpus Games autoritaire empêche de commencer l’adoption r
`0.1.6` doit commencer par un audit, pas par une réécriture globale. `0.1.6` doit commencer par un audit, pas par une réécriture globale.
Pour chaque règle, profil, skeleton, template ou validation PGR potentiellement applicable, la session doit décider explicitement : Pour chaque règle, profil, skeleton, template ou validation PGR potentiellement applicable, la session doit décider explicitement. La classification canonique est `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A` :
```text ```text
ADOPT intégré dans la baseline locale Games ADOPT intégré dans la baseline locale Games

133
history/0.1.5/rc.1.fix.1.md Normal file
View File

@@ -0,0 +1,133 @@
<!-- file: history/0.1.5/rc.1.fix.1.md -->
<!-- version: 1 -->
# PGR 0.1.5 — history `rc.1.fix.1`
## Statut
PASS
## Objet
Clôture opérateur du correctif documentaire `0.1.5-rc.1.fix.1`.
Le correctif aligne exactement les trois formulations qui avaient fait échouer `rc.1`, sans rouvrir les contrats normatifs, le handoff `012`, la roadmap ou les owners gelés.
## Baseline opérateur
La tranche `0.1.5-rc.1` avec son history `FAIL` a été committée puis publiée avant application du correctif :
```text
commit rc.1 4d7021b
push ec1a296..4d7021b master -> master
```
Une première tentative de `git push origin master` a été interrompue au prompt d'identification puis immédiatement rejouée avec succès. Elle n'a modifié ni le commit ni le contenu de la tranche.
La version observée pendant la gate du correctif est :
```text
0.1.5-rc.1.fix.1
```
`history/0.1.5/rc.1.md` est présent et conserve le statut réel `FAIL`. Le history du présent correctif était absent pendant la gate.
## Assertions documentaires corrigées
PASS :
- `CHANGELOG.md` est en révision `21` et contient la formulation canonique `forte recommandation non obligatoire` ;
- `docs/studies/005-V0_1_5_HORIZON_REVIEW.md` est en révision `2` et contient explicitement `aucun numéro de version Games n’est figé` ;
- la même étude contient la classification canonique `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A` ;
- la décision de conserver `0.1.6` comme prochaine release est inchangée ;
- aucun `0.1.9` n'est réservé ;
- `docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md` est en révision `7`, conserve la vérité `rc.1 FAIL` et bloque `rel.1` jusqu'au présent `PASS`.
## Owners et surfaces gelés
PASS :
```text
README.md version 33
ROADMAP.md version 18
docs/000-README.md version 52
prompts/012-V0_1_6_START_PROMPT.md version 1
RULES.md version 16
docs/rules/210-WORKFLOW.md version 9
docs/rules/230-ADOPTION.md version 3
docs/rules/300-DOCUMENTATION.md version 5
docs/rules/400-VALIDATION.md version 2
```
Le contrôle `git diff --exit-code` confirme également l'absence de modification des owners, skeletons et templates explicitement hors scope du fix.
## Frontière delta/history
Résultat opérateur :
```text
0.1.5 rc.1.fix.1 history boundary: clean (110 closed prior pairs, current rc.1.fix.1 pending)
```
La gate observe donc :
- toutes les releases `0.0.1` à `0.1.4` avec leurs couples delta/history attendus ;
- pour `0.1.5`, les histories de `alpha.1`, `alpha.1.fix.1`, `alpha.2`, `alpha.3`, `alpha.4`, `beta.1` et `rc.1` ;
- `rc.1.fix.1` comme seule tranche courante encore sans history pendant sa validation.
## Tests Python
Commande :
```text
python3 -B -m unittest discover -s tests -v
```
Résultat :
```text
Ran 55 tests in 0.898s
OK
```
Soit `55/55` PASS.
## Hygiène texte
Résultat :
```text
Text hygiene audit: clean (327 file(s))
```
## Audits Markdown
Résultats :
```text
Markdown header audit: clean (300 file(s))
Markdown table audit: clean (11 table(s), 300 file(s))
Markdown link audit: clean (375 local link(s), 300 file(s))
```
## Git
`git diff --check` puis `git diff --cached --check` n'ont remonté aucune anomalie.
Scope final observé :
```text
M CHANGELOG.md
M VERSION
A deltas/0.1.5/rc.1.fix.1.md
M docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
M docs/studies/005-V0_1_5_HORIZON_REVIEW.md
```
Ce scope correspond exactement au delta prévu.
## Conclusion
`0.1.5-rc.1.fix.1` est `PASS`.
Les trois écarts documentaires de `rc.1` sont corrigés sans changement fonctionnel ou normatif. La candidate est donc éligible à `rel.1`, qui doit rester une promotion stable mécanique sans commencer `0.1.6`.