Files
pgr/deltas/0.0.4/alpha.3.md
2026-09-24 14:39:29 +02:00

7.2 KiB

Delta 0.0.4-alpha.3 — fondation de projet gouverné

Baseline et version

Baseline attendue : commit opérateur de 0.0.4-alpha.2, réalisé après application de history/0.0.4/alpha.2.md avec statut PASS.

Le hash de ce commit n'est volontairement pas anticipé : le history alpha.2 et le présent delta peuvent être livrés dans le même échange, mais restent deux archives séparées et le delta alpha.3 MUST NOT être appliqué avant le commit de alpha.2.

Version avant application :

0.0.4-alpha.2

Version après application :

0.0.4-alpha.3

Objet

Matérialiser la première skeleton specification concrète prévue par le plan 0.0.4 : une fondation composable de gouvernance locale pour un projet qui adopte PGR, sans sélectionner de langage, plateforme, framework ou architecture applicative.

La specification doit rendre actionnables les responsabilités générales déjà possédées par 200, 210, 300 et 400 : version courante, point d'entrée normatif, documentation minimale, workflow réellement retenu, décisions destinataire, overrides et validation initiale proportionnée.

Elle ne crée aucun template générique, ne copie pas la structure complète du dépôt PGR et ne précrée aucun répertoire documentaire ou workflow sans contenu réel.

Scope

REPLACE :

VERSION
README.md
docs/000-README.md
docs/skeletons/000-README.md

ADD :

docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md
deltas/0.0.4/alpha.3.md

DELETE : aucun.

L'archive delta contient uniquement ces six fichiers complets avec leurs chemins relatifs. Elle ne contient ni history/0.0.4/alpha.2.md, livré séparément pour clôturer la tranche précédente, ni history/0.0.4/alpha.3.md, qui sera produit après la gate opérateur.

Le plan docs/plans/004-V0_0_4_SKELETONS_PLAN.md et la règle docs/rules/220-SKELETONS.md ne sont pas modifiés : cette tranche exécute leur trajectoire et leur contrat sans REPLAN.

Contenu matérialisé

docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md :

  • déclare son objectif, son applicabilité et son hors-scope ;
  • sélectionne les owners généraux 200, 210, 300 et 400 sans sélectionner de profil technologique ;
  • distingue le rôle de 220 comme contrat d'instanciation de celui des règles à reprendre localement ;
  • impose de résoudre les décisions destinataire avant de présenter l'instanciation comme terminée ;
  • rend le point d'entrée normatif local et la version courante explicites ;
  • rend docs/, ROADMAP.md, CHANGELOG.md et les collections spécialisées conditionnels à un contenu réel ;
  • conserve deltas/, history/, prompts/, handoffs/ et manifests/ comme répertoires créés à la demande ;
  • fournit une validation initiale proportionnée sans imposer de copier les scripts PGR ;
  • définit l'ordre de composition attendu pour les futures spécialisations ;
  • exclut explicitement architecture applicative, toolchain, CI/CD universel, branching universel et migration rétroactive.

Aucun template générique n'est nécessaire pour rendre cette specification actionnable : elle décrit les owners, décisions, fichiers conditionnels et preuves à matérialiser sans prétendre générer leur contenu automatiquement. Le point de REPLAN du plan n'est donc pas déclenché par cette tranche.

Validation opérateur

Après avoir appliqué history/0.0.4/alpha.2.md, committé 0.0.4-alpha.2, puis appliqué le présent delta, depuis la racine du dépôt :

test "$(cat VERSION)" = '0.0.4-alpha.3'
test -f history/0.0.4/alpha.2.md
test -f deltas/0.0.4/alpha.3.md
test -f docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md
test ! -e history/0.0.4/alpha.3.md
test ! -e docs/skeletons/002-RUST_CARGO_WORKSPACE.md

grep -Fx '<!-- version: 9 -->' README.md
grep -Fx '<!-- version: 7 -->' docs/000-README.md
grep -Fx '<!-- version: 2 -->' docs/skeletons/000-README.md
grep -Fx '<!-- version: 1 -->' docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md

grep -F '001-PROJECT_GOVERNANCE_FOUNDATION.md' README.md
grep -F '001-PROJECT_GOVERNANCE_FOUNDATION.md' docs/000-README.md
grep -F '001-PROJECT_GOVERNANCE_FOUNDATION.md' docs/skeletons/000-README.md

python3 -B -m unittest discover -s tests -v

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

python3 -B - <<'PY'
from pathlib import Path
import re

histories = {path.name for path in Path('history/0.0.4').glob('*.md')}
assert histories == {'alpha.1.md', 'alpha.2.md'}, histories
for name in sorted(histories):
    text = Path('history/0.0.4', name).read_text(encoding='utf-8')
    assert re.search(r'## Statut\s+PASS\s', text), name

skeletons = sorted(path.name for path in Path('docs/skeletons').glob('*.md'))
assert skeletons == ['000-README.md', '001-PROJECT_GOVERNANCE_FOUNDATION.md'], skeletons

text = Path('docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md').read_text(encoding='utf-8')
for phrase in (
    '## Applicabilité',
    '## Owners sélectionnés',
    '## Décisions destinataire avant matérialisation',
    '## Baseline locale à matérialiser',
    '### Version',
    '### Documentation minimale',
    '### Workflow retenu',
    '### Validation initiale',
    '## Ordre de composition',
    '## Overrides et exceptions',
    '## Hors scope',
):
    assert phrase in text, phrase

for owner in ('200-GOVERNANCE.md', '210-WORKFLOW.md', '300-DOCUMENTATION.md', '400-VALIDATION.md'):
    assert owner in text, owner

for forbidden in (
    'templates/generic',
    'docs/skeletons/002-RUST_CARGO_WORKSPACE.md',
):
    assert forbidden not in text, forbidden

print('Governance foundation audit: clean (alpha.1/alpha.2 PASS baseline, one concrete non-technological skeleton)')
PY

git diff --check
git add VERSION README.md docs/000-README.md \
    docs/skeletons/000-README.md \
    docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md \
    deltas/0.0.4/alpha.3.md
git diff --cached --check
git status --short

Revue opérateur

En complément des commandes, vérifier que :

  • la fondation reste une procedure composable et non un template ou générateur implicite ;
  • aucun document ou répertoire n'est rendu obligatoire uniquement pour reproduire le layout PGR ;
  • aucune règle technologique 500+ ou 600+ n'est sélectionnée par défaut ;
  • les décisions destinataire restent explicites et aucune valeur d'exemple n'est universalisée ;
  • l'ordre de composition permet au futur skeleton Rust/Cargo d'ajouter ses responsabilités sans dupliquer les owners généraux.

Transition

PASS : produire history/0.0.4/alpha.3.md, l'appliquer puis committer 0.0.4-alpha.3. La tranche suivante prévue par le plan est 0.0.4-alpha.4, consacrée au skeleton Rust/Cargo workspace et à sa validation d'instanciation.

FAIL : rester dans le scope de alpha.3 via alpha.3.fix.1 sauf si l'échec démontre qu'un template générique ou une nouvelle décision normative est indispensable, auquel cas déclencher le REPLAN prévu par le plan.