0.0.1-alpha.1

This commit is contained in:
2026-09-23 07:36:11 +02:00
commit 429a8123c6
16 changed files with 869 additions and 0 deletions

18
docs/000-README.md Normal file
View File

@@ -0,0 +1,18 @@
<!-- file: docs/000-README.md -->
<!-- version: 1 -->
# Documentation PGR
Ce fichier est l'index d'entrée de la documentation structurée de Project Governance Rules.
## Collections actives
- [`objectives/`](objectives/) — mission, objectifs durables, non-objectifs et contraintes globales ;
- [`architecture/`](architecture/) — état architectural courant de PGR et profils applicables ;
- [`plans/`](plans/) — plans vivants des releases en cours, puis références historiques après fermeture ;
- [`rules/`](rules/) — règles normatives détaillées, organisées progressivement par scope ;
- [`validation/`](validation/) — matrices de validation et contrats de preuve.
D'autres collections telles que `ideas/`, `studies/`, `reference/`, `formats/` ou `templates/` ne sont créées que lorsqu'un premier artefact réel les justifie.
Les répertoires workflow de racine (`deltas/`, `history/`, `handoffs/`, `manifests/`, `prompts/`, `scripts/`) restent séparés de `docs/` parce qu'ils portent le processus de développement et de livraison lui-même.

View File

@@ -0,0 +1,47 @@
<!-- file: docs/architecture/001-PROJECT_PROFILE.md -->
<!-- version: 1 -->
# Profil du projet PGR
## Rôle
Le dépôt `pgr` est un référentiel de gouvernance et de documentation technique. Il n'est actuellement ni une application, ni une bibliothèque runtime, ni un projet Python applicatif.
## Profils applicables
```text
GENERAL GOVERNANCE
DOCUMENTATION
VALIDATION GOVERNANCE
GIT / RELEASE WORKFLOW
MARKDOWN
PYTHON 3 UTILITY SCRIPTS (uniquement lorsque des audits/outils apparaissent)
```
La présence future de scripts `audit_*.py` ne transforme pas PGR en package ou application Python.
## Profils actuellement non applicables
La première release de fondation n'applique pas encore les profils suivants au dépôt lui-même :
```text
RUST / CARGO
JAVA / MAVEN / GRADLE
ANDROID
TAURI
WEB APPLICATION
WASM
PHP / COMPOSER
PYTHON APPLICATION/PACKAGE
C / C++ / CMAKE
```
Ces technologies peuvent être documentées ultérieurement comme règles/templates/skeletons sans devenir des dépendances techniques du dépôt PGR.
## Nomenclature et langue
Les chemins, noms de fichiers, identifiants et éléments techniques sont en anglais. La documentation normative et explicative du dépôt principal est en français.
## Baseline de gouvernance
PGR se gouverne lui-même à partir de `0.0.1-alpha.1`. Le bootstrap initial part d'un dépôt vide ; il n'existe aucun faux tag, aucune fausse release `0.0.0` et aucune archive stable antérieure à simuler.

View File

@@ -0,0 +1,82 @@
<!-- file: docs/architecture/002-GOVERNANCE_ARCHITECTURE.md -->
<!-- version: 1 -->
# Architecture de gouvernance PGR
## Principe général
PGR sépare quatre familles d'artefacts qui ne doivent pas être confondues.
### Rule
Une règle définit un contrat normatif. Elle explique ce qui est obligatoire, interdit, attendu ou autorisé dans un scope donné.
La règle est la source normative ; un template ou un audit ne crée pas une règle par sa seule existence.
### Template
Un template fournit une baseline technique réutilisable, par exemple une configuration de formatter, linter, compilateur ou build tool.
Un template implémente des règles déjà documentées. Il peut être copié tel quel ou adapté selon les instructions du skeleton applicable.
Après instanciation, le projet possède sa copie et ne dépend plus de PGR.
### Skeleton specification
Un skeleton est une recette Markdown décrivant comment initialiser un type de projet ou composer plusieurs profils.
Il décrit notamment les profils applicables, la structure requise ou optionnelle, les templates à utiliser, les points de décision, la politique de version et la validation de base.
Un skeleton n'est pas un générateur et ne doit pas figer l'évolution future du projet.
### Audit
Un audit contrôle une propriété structurelle réellement automatisable.
Les scripts `audit_*.py` sont read-only : ils ne modifient, ne formatent, ne génèrent, n'installent, ne téléchargent et ne lancent pas les toolchains du projet inspecté.
Les audits PGR sont ajoutés progressivement à partir de besoins réels et de contrôles éprouvés. PGR ne cherche pas à anticiper un catalogue exhaustif d'audits.
## Instanciation d'un projet
Le flux conceptuel est :
```text
PGR rules + templates + skeleton specifications
↓
sélection humaine / IA
↓
nouveau projet
↓
copies et règles locales
↓
projet autonome et gouverné
```
Une évolution ultérieure de PGR ne modifie jamais automatiquement les projets déjà créés.
## Hiérarchie
Les règles générales sont raffinées par les scopes plus spécifiques. Un choix spécialisé, par exemple une contrainte Tauri Android, ne devient pas automatiquement une règle Android ou Java générale.
Les règles project-specific restent dans le dépôt qui les possède.
## Structure de croissance
PGR crée ses collections et familles de règles lorsque leur premier contenu réel apparaît. Les répertoires vides et les documents placeholders sont évités.
Les futures familles pourront notamment couvrir :
```text
general
governance
documentation
validation
languages
platforms
frameworks
architecture
project-specific rules
```
sans exiger leur matérialisation complète pendant `0.0.1-alpha.1`.

View File

@@ -0,0 +1,65 @@
<!-- file: docs/objectives/001-PROJECT_OBJECTIVES.md -->
<!-- version: 1 -->
# Objectifs de Project Governance Rules
## Mission
PGR fournit une gouvernance réutilisable permettant de démarrer, développer, valider, reprendre et publier des projets logiciels plus rapidement, avec des responsabilités explicites et une qualité proportionnée aux risques réels.
## Objectifs
PGR doit permettre de :
- normaliser les pratiques récurrentes qui bénéficient réellement d'une convention commune ;
- réduire le temps de bootstrap d'un nouveau projet ;
- rendre explicites les responsabilités des fichiers, composants, couches et outils ;
- standardiser SemVer, lifecycle de release, deltas, validations, historiques et handoffs ;
- favoriser des validations ciblées pendant le développement et des gates plus larges aux jalons appropriés ;
- automatiser les contrôles déterministes et fiables sans automatiser artificiellement les décisions nécessitant du jugement ;
- fournir des templates techniques éprouvés sans créer de dépendance vers PGR après instanciation ;
- décrire des skeletons de projets sous forme de recettes Markdown composables plutôt que de générateurs rigides ;
- supporter plusieurs langages, plateformes et frameworks sans chercher une uniformité artificielle ;
- conserver une traçabilité historique utile tout en gardant les documents vivants lisibles ;
- permettre des règles project-specific et des exceptions explicites sans contaminer les règles générales ;
- privilégier la sécurité, l'explicité, la maintenabilité et la proportionnalité.
## Principe de proportionnalité
PGR doit servir les objectifs du projet et réduire son coût total de développement, compréhension, validation, diagnostic et maintenance.
Une pratique qui ajoute principalement de la bureaucratie, de la duplication, des tests sans gain de preuve, des validations répétitives ou une complexité artificielle doit être simplifiée, rendue optionnelle ou supprimée.
La rigueur porte sur ce qui est important ; elle ne consiste pas à rendre chaque opération lourde.
## Non-objectifs
PGR n'a pas pour objectif de :
- devenir un build system ou remplacer Cargo, Gradle, Maven, CMake, npm, Composer ou les outils natifs des écosystèmes ;
- fournir un générateur universel de projets ;
- imposer toutes les technologies à tous les dépôts ;
- figer une architecture une fois un projet démarré ;
- maximiser le nombre de règles, documents, tests ou audits ;
- imposer un pourcentage arbitraire de code coverage ;
- créer des audits regex pour remplacer le jugement architectural ;
- réimplémenter les fonctionnalités des toolchains officielles sans bénéfice réel ;
- maintenir automatiquement les projets créés à partir de PGR ;
- imposer une stratégie Git complexe ou une topologie universelle de branches.
## Critères de succès à terme
PGR est utile si un nouveau projet peut rapidement identifier :
```text
quoi créer
pourquoi
où le placer
quelles règles s'appliquent
quelles décisions restent ouvertes
comment valider les changements
comment reprendre le travail plus tard
comment publier proprement
```
sans importer des règles ou technologies sans rapport avec son besoin.

View File

@@ -0,0 +1,92 @@
<!-- file: docs/plans/001-V0_0_1_FOUNDATION_PLAN.md -->
<!-- version: 1 -->
# Plan 0.0.1 — fondation de PGR
## Statut
Plan actif créé pendant `0.0.1-alpha.1` à partir du bootstrap initial du dépôt PGR.
Aucune stable PGR antérieure n'existe. Cette version doit rendre le dépôt capable de se gouverner lui-même avant d'introduire les profils technologiques et templates prévus dans les releases suivantes.
## Mission
`0.0.1` doit établir la fondation normative, documentaire et opératoire de Project Governance Rules.
La release doit notamment fixer :
- la finalité et les non-objectifs de PGR ;
- la hiérarchie `MUST` / `SHOULD` / `MAY` et les règles de scope/override/exception ;
- le modèle SemVer et le rôle de `VERSION` ;
- le lifecycle `alpha` → `beta` → `rc` → stable et les `.fix.N` ;
- le cadrage obligatoire de `alpha.1`, le replan et l'abandon/supersession ;
- les rôles de `README`, `RULES`, `ROADMAP`, `CHANGELOG` et des collections documentaires ;
- les contrats des plans, deltas, historiques, prompts, handoffs et manifests ;
- la séparation TEST / AUDIT / DIAGNOSTIC ;
- la validation proportionnée et l'autorité du gate opérateur ;
- les règles de reprise de session et de baseline ZIP taggée ;
- la préparation du prompt de démarrage de `0.0.2`.
## Hors périmètre
`0.0.1` ne doit pas encore :
- formaliser en détail tous les profils Rust, Java, Android, Tauri, Web, PHP, Python, C/C++ ;
- produire le catalogue final des templates techniques ;
- fournir des skeleton specifications complets par type de projet ;
- créer un générateur PGR ;
- anticiper des audits spécialisés sans besoin concret ;
- réappliquer PGR à KSP ou games, travail réservé à une release ultérieure.
## Principes de dimensionnement
Une tranche doit rester cohérente et validable indépendamment. La cible de 15 à 30 minutes de travail effectif reste une heuristique de dimensionnement, pas une deadline.
Si le plan devient manifestement faux, un `alpha.N` peut jouer le rôle de REPLAN. Une version n'est jamais forcée vers stable uniquement pour respecter une session de conversation.
## Prévision
### alpha.1 — Bootstrap and framing
Créer la baseline minimale : identité, `.gitignore`, `VERSION`, documents racine, objectifs, profil du dépôt, architecture de gouvernance, index des règles, matrice de validation, plan actif, delta et prompt initial.
Aucune implémentation massive des règles détaillées n'est réalisée dans cette tranche.
### alpha.2 — Core governance rules
Formaliser les règles communes de versioning et lifecycle : SemVer, `VERSION`, maturité, fixes, cadrage `alpha.1`, replan, abandon/supersession, stable promotion et publication.
### alpha.3 — Workflow artifacts
Formaliser plans, deltas, history, prompts, handoffs, manifests de suppression, workflow PASS/FAIL et reprise après interruption.
### alpha.4 — Documentation governance
Formaliser les rôles des documents, taxonomie documentaire, headers, révisions internes, déplacement/split/fusion, conservation historique, objectifs, ideas/studies/architecture/reference et politique de langue.
### alpha.5 — Validation governance
Formaliser la matrice de validation, sélection proportionnelle, TEST/AUDIT/DIAGNOSTIC, opérateur autoritaire, tests utiles/non redondants, mocks lorsque pertinents et transitions de gate.
### beta.1 — Foundation reconciliation
Réconcilier les documents de fondation, éliminer duplications et contradictions, vérifier navigation, rôles, scopes et complétude de `0.0.1`.
### rc.1 — Foundation release candidate
Geler le scope, préparer l'entrée candidate de changelog et le prompt `0.0.2`, puis exécuter la gate documentaire complète applicable.
### stable — 0.0.1
Promouvoir mécaniquement la RC validée, finaliser les métadonnées de release, enregistrer `rel.001`, commit/tag `v0.0.1`, puis utiliser l'archive ZIP taggée comme baseline autoritaire de `0.0.2`.
## Critères de fermeture
`0.0.1` est fermée lorsque :
- PGR peut expliquer et appliquer son propre cycle de version ;
- les responsabilités des principaux artefacts de gouvernance sont non ambiguës ;
- la validation d'une tranche peut être sélectionnée proportionnellement ;
- une interruption ou reprise de session est gouvernée ;
- le passage RC → stable → tag → archive suivante est défini ;
- aucune règle technologique détaillée hors fondation n'est nécessaire pour comprendre le workflow PGR.

46
docs/rules/000-README.md Normal file
View File

@@ -0,0 +1,46 @@
<!-- file: docs/rules/000-README.md -->
<!-- version: 1 -->
# Index des règles PGR
Les règles détaillées de Project Governance Rules sont organisées ici progressivement par scope.
`RULES.md` reste le point d'entrée normatif du dépôt et définit les principes fondamentaux, la force normative et la hiérarchie générale.
## Organisation prévue
Les familles seront créées uniquement lorsqu'elles disposent d'un contenu réel. La trajectoire actuelle prévoit conceptuellement :
```text
100 — general
200 — governance
300 — documentation
400 — validation
500 — languages
600 — platforms
700 — frameworks
800 — architecture
900 — project-specific
```
Les numéros réservent des familles de navigation ; ils ne constituent pas des identifiants de règles individuelles.
Les règles issues d'un langage, framework ou projet particulier ne doivent pas être élevées au niveau général sans justification réellement transversale.
## Enforcement
Une règle doit s'appuyer d'abord sur le mécanisme officiel le plus fiable disponible :
```text
compiler / language
↓
official linter or tool
↓
manifest / build system
↓
read-only structural audit
↓
test, uniquement pour une propriété comportementale
```
Les décisions architecturales qui ne peuvent pas être automatisées de manière fiable restent des points de revue.

View File

@@ -0,0 +1,54 @@
<!-- file: docs/validation/001-VALIDATION_MATRIX.md -->
<!-- version: 1 -->
# Matrice de validation PGR
## Rôle
Cette matrice décrit les validations canoniques du dépôt PGR. Elle évoluera avec le projet et ne doit pas inventer des scripts uniquement pour remplir une case.
`0.0.1-alpha.1` est une tranche documentaire de bootstrap sans toolchain applicative. Les premiers contrôles sont donc volontairement simples.
## Commandes initiales
| ID | Catégorie | Commande / contrôle | Trigger | Phase |
|-------------------------|-----------|------------------------------------------------------------------------------------------|--------------------------------------------|----------------------|
| `PGR-GIT-001` | CHECK | `git diff --check` | toute modification suivie par Git | alpha/beta/RC/stable |
| `PGR-GIT-BOOTSTRAP-001` | CHECK | `git add .` puis `git diff --cached --check` | bootstrap ou fichiers entièrement nouveaux | alpha.1/bootstrap |
| `PGR-VERSION-001` | CHECK | `test "$(cat VERSION)" = "0.0.1-alpha.1"` | tranche `0.0.1-alpha.1` | alpha.1 |
| `PGR-LAYOUT-001` | REVIEW | `find . -type f -not -path './.git/*' -print` puis comparaison au scope du delta | ajout/suppression/déplacement de fichiers | alpha/beta/RC/stable |
| `PGR-DOC-001` | REVIEW | vérifier headers `file/version`, chemins, liens et responsabilités des documents touchés | modification documentaire | alpha/beta/RC/stable |
| `PGR-STATUS-001` | CHECK | `git status --short` | avant fermeture d'une tranche | alpha/beta/RC/stable |
## Gate `0.0.1-alpha.1`
Après application du delta :
```bash
git status --short
test "$(cat VERSION)" = "0.0.1-alpha.1"
find . -type f -not -path './.git/*' -print
git add .
git diff --cached --check
git status --short
```
L'opérateur vérifie également que :
- `.project`, `.classpath` et `.settings/` Eclipse restent locaux/ignorés ;
- aucun répertoire vide n'a été ajouté uniquement pour anticiper le futur ;
- les fichiers listés par le delta sont les seuls fichiers PGR introduits par la tranche ;
- les headers `file/version` correspondent aux chemins réels ;
- `VERSION` contient exactement une ligne `0.0.1-alpha.1` ;
- les liens Markdown de navigation principaux sont cohérents ;
- aucun secret, chemin machine absolu ou artefact local n'est introduit.
## Autorité de validation
Une validation n'est `PASS` qu'après exécution réelle du gate opérateur. La génération du delta ou une prévalidation par l'IA ne constitue pas le résultat opérateur.
Après `PASS`, la tranche suivante doit enregistrer `history/0.0.1/alpha.1.md` séparément avant le commit de l'état validé et fournir le delta suivant conformément au workflow PGR retenu.