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,300et400sans sélectionner de profil technologique ; - distingue le rôle de
220comme 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.mdet les collections spécialisées conditionnels à un contenu réel ; - conserve
deltas/,history/,prompts/,handoffs/etmanifests/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+ou600+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.