Files
pgr/deltas/0.1.5/alpha.4.md
2026-10-01 10:25:20 +02:00

9.1 KiB
Raw Blame History

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 :

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 :

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 :

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 :

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 :

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.