0.1.5-alpha.4

This commit is contained in:
2026-10-01 10:25:20 +02:00
parent 7079b150a8
commit 43ee26b856
9 changed files with 365 additions and 13 deletions

186
deltas/0.1.5/alpha.4.md Normal file
View File

@@ -0,0 +1,186 @@
<!-- file: deltas/0.1.5/alpha.4.md -->
<!-- version: 1 -->
# Delta 0.1.5-alpha.4 — frontière PGR / SaseDev Knowledge
## Objet
Stabiliser la frontière durable entre le référentiel normatif PGR et les contenus pratiques qui peuvent vivre dans une base de connaissances séparée.
PGR doit rester auto-suffisant pour comprendre et appliquer ses règles. SaseDev Knowledge MAY accueillir des howtos détaillés, recettes pratiques, snippets, exemples d'intégration, dépannage, comparatifs et variantes d'implémentation, mais ne devient ni owner normatif de PGR ni dépendance nécessaire à son interprétation.
La tranche ne déplace aucun contenu vers Knowledge et ne crée aucun lien de dépendance vers un dépôt externe.
## Précondition
Le history `history/0.1.5/alpha.3.md` doit être présent avec statut `PASS` avant application de ce delta.
La séquence acquise reste conservée :
```text
alpha.1 PARTIAL
alpha.1.fix.1 PASS
alpha.2 PASS
alpha.3 PASS
```
Les histories précédents ne sont pas réécrits.
## Taxonomie stabilisée
PGR conserve les informations nécessaires à son propre contrat :
```text
PGR
règles et contrats de gouvernance
objectifs et architecture
owners normatifs
skeleton specifications minimales
templates nécessaires à un contrat réutilisable
validations directement liées aux règles
```
Les contenus suivants sont pratiques et MAY vivre dans une base de connaissances séparée :
```text
contenus pratiques complémentaires
howtos détaillés
recettes pratiques
snippets
exemples d'intégration
dépannage
comparatifs
variantes d'implémentation
```
Cette classification est sémantique. Elle ne déclenche aucun déplacement automatique.
## Auto-suffisance
Une règle PGR doit rester interprétable depuis PGR lui-même. Un document pratique externe MAY aider à l'implémentation, mais MUST NOT être nécessaire pour déterminer la force, le scope ou les exigences d'une règle PGR.
SaseDev Knowledge est une destination possible pour les contenus pratiques, pas un upstream normatif. PGR MUST NOT dépendre de sa disponibilité.
Une extraction physique future exige une destination autoritaire explicitement fournie et vérifiée. `0.1.5-alpha.4` ne réalise aucune migration.
## Owners réconciliés
- `docs/objectives/001-PROJECT_OBJECTIVES.md` révision `2` : remplace « recette Markdown » par « spécification Markdown composable », ajoute l'auto-suffisance PGR et sépare les contenus pratiques externes ;
- `docs/architecture/002-GOVERNANCE_ARCHITECTURE.md` révision `5` : clarifie la nature du skeleton et formalise la frontière architecturale avec les contenus pratiques externes ;
- `docs/rules/300-DOCUMENTATION.md` révision `5` : devient l'owner documentaire de la taxonomie normative/pratique, de l'auto-suffisance et du caractère non automatique d'une extraction future.
Aucun owner Knowledge supplémentaire n'est créé.
## Cohérence documentaire
- `README.md` présente `0.1.5-alpha.4` comme tranche active ;
- `docs/000-README.md` présente les trois owners comme réconciliés en `alpha.4` ;
- `docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md` passe en révision `4`, enregistre `alpha.3 PASS` et les décisions de mise en œuvre `alpha.4`.
`RULES.md`, `ROADMAP.md` et `CHANGELOG.md` restent inchangés. Les adoptions Games `0.1.6`, KSP `0.1.7` et les audits Rust/Clippy `0.1.8` restent hors scope.
## Gate opérateur
Après commit/push de `alpha.3` avec son history `PASS`, appliquer ce delta puis exécuter :
```bash
cat VERSION
test -f history/0.1.5/alpha.3.md
test -f deltas/0.1.5/alpha.4.md
test ! -e history/0.1.5/alpha.4.md
grep -Fx '0.1.5-alpha.4' 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 -Fx '<!-- version: 2 -->' docs/objectives/001-PROJECT_OBJECTIVES.md
grep -F 'spécifications Markdown composables' docs/objectives/001-PROJECT_OBJECTIVES.md
grep -F 'rester auto-suffisant pour comprendre et appliquer les contrats normatifs PGR' docs/objectives/001-PROJECT_OBJECTIVES.md
grep -F 'howtos détaillés, recettes pratiques, snippets, exemples d’intégration, dépannage, comparatifs et variantes d’implémentation vivent dans une base de connaissances séparée' docs/objectives/001-PROJECT_OBJECTIVES.md
! grep -F 'recettes Markdown composables' docs/objectives/001-PROJECT_OBJECTIVES.md
grep -Fx '<!-- version: 5 -->' docs/architecture/002-GOVERNANCE_ARCHITECTURE.md
grep -F 'Un skeleton est une spécification Markdown composable' docs/architecture/002-GOVERNANCE_ARCHITECTURE.md
grep -F '## Frontière avec les contenus pratiques externes' docs/architecture/002-GOVERNANCE_ARCHITECTURE.md
grep -F 'PGR doit rester auto-suffisant pour comprendre et appliquer ses contrats normatifs' docs/architecture/002-GOVERNANCE_ARCHITECTURE.md
grep -F 'SaseDev Knowledge est une destination possible' docs/architecture/002-GOVERNANCE_ARCHITECTURE.md
grep -F "MUST NOT dépendre d'un dépôt Knowledge" docs/architecture/002-GOVERNANCE_ARCHITECTURE.md
! grep -F 'Un skeleton est une recette Markdown' docs/architecture/002-GOVERNANCE_ARCHITECTURE.md
grep -Fx '<!-- version: 5 -->' docs/rules/300-DOCUMENTATION.md
grep -F '## Frontière normative et pratique' 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 -F 'PGR MUST rester auto-suffisant' docs/rules/300-DOCUMENTATION.md
grep -F "MUST NOT être requis pour déterminer la force, le scope ou les exigences d'une règle PGR" docs/rules/300-DOCUMENTATION.md
grep -F 'Classifier un contenu comme pratique ne crée pas une obligation de déplacement' docs/rules/300-DOCUMENTATION.md
grep -F 'MUST NOT créer de dépendance de PGR vers SaseDev Knowledge' docs/rules/300-DOCUMENTATION.md
grep -Fx '<!-- version: 4 -->' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F 'La gate opérateur de `alpha.3` du `2026-10-01` est `PASS`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F 'Décisions de mise en œuvre `alpha.4`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F 'ne créer aucun nouvel owner Knowledge' 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 -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'}; 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'}; print('0.1.5 alpha.4 history boundary: clean (107 closed prior pairs, current alpha.4 pending)')"
git diff --exit-code -- history/0.1.4
git diff --exit-code -- RULES.md ROADMAP.md CHANGELOG.md docs/rules/210-WORKFLOW.md docs/rules/230-ADOPTION.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/objectives/001-PROJECT_OBJECTIVES.md \
docs/architecture/002-GOVERNANCE_ARCHITECTURE.md \
docs/rules/300-DOCUMENTATION.md \
docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md \
deltas/0.1.5/alpha.4.md
git diff --cached --check
git status --short
```
Le scope indexé attendu avant ajout du history est exactement :
```text
M README.md
M VERSION
A deltas/0.1.5/alpha.4.md
M docs/000-README.md
M docs/architecture/002-GOVERNANCE_ARCHITECTURE.md
M docs/objectives/001-PROJECT_OBJECTIVES.md
M docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
M docs/rules/300-DOCUMENTATION.md
```
## Revue opérateur attendue
La revue doit confirmer que la frontière est sémantique et non une dépendance entre dépôts : PGR reste utilisable seul, Knowledge reste une destination pratique possible, aucun contenu n'est déplacé et aucun owner externe n'est requis pour interpréter une règle.
Elle doit aussi confirmer que la tranche ne modifie pas les contrats d'autonomie acquis en `alpha.3` et ne commence pas les adoptions Games/KSP.