# 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 : ```text 0.0.4-alpha.2 ``` Version après application : ```text 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 : ```text VERSION README.md docs/000-README.md docs/skeletons/000-README.md ``` ADD : ```text 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 : ```bash 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 '' README.md grep -Fx '' docs/000-README.md grep -Fx '' docs/skeletons/000-README.md grep -Fx '' 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.