170 lines
8.3 KiB
Markdown
170 lines
8.3 KiB
Markdown
<!-- file: deltas/0.1.5/beta.1.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# 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 :
|
|
|
|
```text
|
|
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 :
|
|
|
|
```text
|
|
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.
|
|
|
|
```text
|
|
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 :
|
|
|
|
```bash
|
|
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
|
|
|
|
```text
|
|
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.
|