0.0.1-rc.1

This commit is contained in:
2026-09-23 09:07:10 +02:00
parent f3e3253c71
commit 8d3b19b01d
5 changed files with 313 additions and 3 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: CHANGELOG.md --> <!-- file: CHANGELOG.md -->
<!-- version: 1 --> <!-- version: 2 -->
# Changelog Project Governance Rules # Changelog Project Governance Rules
@@ -7,4 +7,10 @@ Ce fichier décrit les changements utiles aux utilisateurs ou intégrateurs des
Les tranches `alpha`, `beta`, `rc`, fixes, validations, audits et détails de développement appartiennent aux plans, deltas et historiques. Ils ne sont pas recopiés ici par défaut. Les tranches `alpha`, `beta`, `rc`, fixes, validations, audits et détails de développement appartiennent aux plans, deltas et historiques. Ils ne sont pas recopiés ici par défaut.
Aucune release stable PGR n'est encore publiée. ## 0.0.1
- établit la fondation normative de PGR : force `MUST` / `SHOULD` / `MAY`, hiérarchie des scopes et principe de proportionnalité ;
- définit le modèle SemVer PGR, le rôle limité du fichier racine `VERSION` et le lifecycle `alpha` → `beta` → `rc` → stable avec fixes, REPLAN, abandon et supersession ;
- formalise le workflow des plans, deltas, histories, prompts, handoffs, manifests, commits de tranche et baselines issues des tags stables ;
- fixe les responsabilités documentaires, les révisions internes de fichiers, la conservation des snapshots historiques et la politique linguistique du dépôt principal ;
- établit la validation proportionnée, la séparation TEST / AUDIT / DIAGNOSTIC, les tests utiles sans quota global de coverage et l'autorité du gate opérateur.

View File

@@ -1 +1 @@
0.0.1-beta.1 0.0.1-rc.1

139
deltas/0.0.1/rc.1.md Normal file
View File

@@ -0,0 +1,139 @@
<!-- file: deltas/0.0.1/rc.1.md -->
<!-- version: 1 -->
# Delta 0.0.1-rc.1 — foundation release candidate
## Baseline
Version attendue avant application :
```text
0.0.1-beta.1
```
Le history `history/0.0.1/beta.1.md` MUST avoir été appliqué et committé avant ce delta.
Version après application :
```text
0.0.1-rc.1
```
## Objet
Geler le scope fonctionnel de `0.0.1`, préparer les métadonnées de release et exécuter la gate documentaire complète applicable à la fondation avant toute promotion stable.
Cette tranche n'introduit aucune nouvelle famille normative.
## Scope
REPLACE :
```text
VERSION
CHANGELOG.md
```
ADD :
```text
prompts/002-V0_0_2_START_PROMPT.md
deltas/0.0.1/rc.1.md
```
DELETE : aucun.
## Changements
- `VERSION` passe à `0.0.1-rc.1` ;
- `CHANGELOG.md` prépare l'entrée utilisateur/intégrateur de `0.0.1` sans recopier le journal des prereleases ;
- `prompts/002-V0_0_2_START_PROMPT.md` prépare la mission de la version suivante à partir de la future baseline stable `v0.0.1` ;
- aucune règle générale, de workflow, de documentation ou de validation n'est étendue pendant la RC ;
- la gate ci-dessous rejoue les contrôles transversaux applicables à toute la fondation.
## Validation opérateur
```bash
test "$(cat VERSION)" = "0.0.1-rc.1"
test -f prompts/002-V0_0_2_START_PROMPT.md
grep -Fx '<!-- file: prompts/002-V0_0_2_START_PROMPT.md -->' prompts/002-V0_0_2_START_PROMPT.md
grep -F 'v0.0.1' prompts/002-V0_0_2_START_PROMPT.md
grep -F '0.0.2-alpha.1' prompts/002-V0_0_2_START_PROMPT.md
grep -Fx '## 0.0.1' CHANGELOG.md
grep -F 'fondation normative de PGR' CHANGELOG.md
grep -F 'validation proportionnée' CHANGELOG.md
for file in \
README.md \
RULES.md \
ROADMAP.md \
CHANGELOG.md \
docs/000-README.md \
docs/objectives/001-PROJECT_OBJECTIVES.md \
docs/architecture/001-PROJECT_PROFILE.md \
docs/architecture/002-GOVERNANCE_ARCHITECTURE.md \
docs/plans/001-V0_0_1_FOUNDATION_PLAN.md \
docs/rules/000-README.md \
docs/rules/200-GOVERNANCE.md \
docs/rules/210-WORKFLOW.md \
docs/rules/300-DOCUMENTATION.md \
docs/rules/400-VALIDATION.md \
docs/validation/001-VALIDATION_MATRIX.md \
prompts/001-V0_0_1_START_PROMPT.md \
prompts/002-V0_0_2_START_PROMPT.md; do
test -f "$file" || {
echo "Missing required file: $file" >&2
exit 1
}
done
while IFS= read -r file; do
relative="${file#./}"
grep -Fx "<!-- file: ${relative} -->" "$file" >/dev/null || {
echo "Missing or invalid file header: ${relative}" >&2
exit 1
}
grep -Eq '^<!-- version: [1-9][0-9]* -->$' "$file" || {
echo "Missing or invalid version header: ${relative}" >&2
exit 1
}
done < <(find . -type f -name '*.md' -not -path './.git/*' | sort)
if grep -F 'seront définis séparément' docs/rules/200-GOVERNANCE.md; then
echo '200-GOVERNANCE contient une promesse de cadrage obsolète.' >&2
exit 1
fi
if grep -F 'seront formalisées dans `alpha.5`' docs/rules/210-WORKFLOW.md; then
echo '210-WORKFLOW contient une référence de cadrage obsolète.' >&2
exit 1
fi
grep -F '`PGR-NAV-001`' docs/validation/001-VALIDATION_MATRIX.md
grep -F '`PGR-SCOPE-001`' docs/validation/001-VALIDATION_MATRIX.md
git diff --check
git add VERSION CHANGELOG.md prompts/002-V0_0_2_START_PROMPT.md deltas/0.0.1/rc.1.md
git diff --cached --check
git status --short
```
La sortie attendue avant ajout du history est :
```text
M CHANGELOG.md
M VERSION
A deltas/0.0.1/rc.1.md
A prompts/002-V0_0_2_START_PROMPT.md
```
## Transition
PASS : enregistrer `history/0.0.1/rc.1.md`, committer `rc.1`, puis préparer la promotion stable `0.0.1`.
FAIL : rester dans `rc.1` avec `rc.1.fix.1`, sauf REPLAN si la RC révèle un problème structurel incompatible avec une correction de stabilisation.

71
history/0.0.1/rc.1.md Normal file
View File

@@ -0,0 +1,71 @@
<!-- file: history/0.0.1/rc.1.md -->
<!-- version: 1 -->
# History 0.0.1-rc.1 — foundation release candidate
## Statut
FAIL
La release candidate `0.0.1-rc.1` n'est pas validée comme PASS car une commande de sa gate documentaire complète est incorrecte dans un shell Bash interactif.
## Baseline
Version observée par l'opérateur :
```text
0.0.1-rc.1
```
Le delta `0.0.1-rc.1` a été appliqué après commit de `0.0.1-beta.1` avec son history `PASS`.
## Validation opérateur observée
Les contrôles suivants ont réussi :
- `VERSION` vaut `0.0.1-rc.1` ;
- `prompts/002-V0_0_2_START_PROMPT.md` existe, possède le header attendu et référence `v0.0.1` ainsi que `0.0.2-alpha.1` ;
- `CHANGELOG.md` contient l'entrée candidate `0.0.1` et les éléments de fondation attendus ;
- tous les fichiers explicitement requis par la gate existent ;
- les références de cadrage obsolètes recherchées dans `200-GOVERNANCE.md` et `210-WORKFLOW.md` sont absentes ;
- `PGR-NAV-001` et `PGR-SCOPE-001` sont présents dans la matrice de validation ;
- `git diff --check` n'a produit aucun diagnostic ;
- `git diff --cached --check` n'a produit aucun diagnostic ;
- le `git status --short` final correspond exactement au scope du delta RC.
La vérification globale des headers Markdown a échoué avant d'être exécutée correctement. La commande :
```bash
grep -Fx "<!-- file: ${relative} -->" "$file"
```
est interprétée par Bash interactif avec l'expansion d'historique activée. Le caractère `!` de `<!--` provoque :
```text
bash: !-: event not found
```
La gate est donc défectueuse même si les documents ciblés peuvent être corrects.
## État Git observé
Avant ajout du présent history :
```text
M CHANGELOG.md
M VERSION
A deltas/0.0.1/rc.1.md
A prompts/002-V0_0_2_START_PROMPT.md
```
## Résultat
`rc.1` est `FAIL` à cause d'un défaut de validation, pas d'un défaut fonctionnel ou documentaire démontré dans la fondation.
La correction appartient à `0.0.1-rc.1.fix.1` et doit rester strictement limitée à :
- corriger la commande de vérification des headers ;
- rejouer la gate RC complète ;
- confirmer ou infirmer alors la validité réelle de la release candidate.
Aucun REPLAN n'est requis à ce stade.

View File

@@ -0,0 +1,94 @@
<!-- file: prompts/002-V0_0_2_START_PROMPT.md -->
<!-- version: 1 -->
# Prompt de démarrage 0.0.2 — profils de règles technologiques
## Base et cible
Dépôt canonique :
```text
https://git.sasedev.com/Sasedev/pgr
```
Baseline attendue au démarrage effectif de `0.0.2` : archive source issue du tag stable :
```text
v0.0.1
```
L'archive taggée peut légitimement ne pas contenir `.git`. Sa vérification porte alors sur sa cohérence interne et sur les artefacts versionnés, conformément aux règles PGR.
Version cible :
```text
0.0.2
```
Première tranche attendue :
```text
0.0.2-alpha.1
```
## Mission
Introduire les premiers profils de règles réutilisables par langage, écosystème, plateforme, framework et type de projet, sans dupliquer les règles générales déjà possédées par `RULES.md` et les familles `200`, `300` et `400`.
`alpha.1` MUST commencer par auditer la stable `0.0.1`, vérifier le plan prévisionnel de `0.0.2`, inventorier les profils réellement utiles et découper la version en tranches proportionnées avant toute consolidation massive.
## Principes acquis
- une règle générale ne doit pas absorber une contrainte propre à une technologie ou à un projet ;
- la règle la plus spécifique applicable peut raffiner ou remplacer localement une règle plus générale lorsque son scope est explicite ;
- les profils sont des ensembles cohérents de règles, pas des catalogues de dépendances ;
- un projet instancié depuis PGR ne copie que les règles qui lui sont applicables et possède ensuite sa baseline locale de façon autonome ;
- aucune technologie ne doit être ajoutée uniquement pour remplir une taxonomie ;
- les structures canoniques des écosystèmes doivent être respectées lorsqu'elles sont pertinentes ;
- les choix qui restent réellement ouverts doivent devenir des points de décision ou des studies, pas des règles arbitraires ;
- code, identifiants, chemins, noms de fichiers et nomenclature technique restent en anglais ; les explications normatives du dépôt principal restent en français.
## Domaines candidats à consolider
Le cadrage `alpha.1` doit notamment examiner les corpus déjà conçus pour :
```text
Rust / Cargo
Java / Maven / Gradle
Android
Rust + Android / JNI
Tauri desktop et mobile
Web / TypeScript / Vite / WASM / serveurs Rust
C / C++ / CMake
PHP / Composer
Python 3
architecture et règles cross-cutting associées
```
Cette liste est une matière de cadrage, pas l'obligation de créer immédiatement un document pour chaque entrée. Les profils doivent être matérialisés uniquement lorsqu'ils possèdent un contenu normatif réel et un propriétaire documentaire clair.
## Hors périmètre attendu de 0.0.2
Sauf REPLAN justifié, `0.0.2` ne doit pas encore :
- produire le catalogue final des templates techniques, réservé à `0.0.3` ;
- construire les skeleton specifications complètes, réservées à `0.0.4` ;
- créer un générateur PGR ;
- réécrire KSP ou `sasedev-games`, leur réconciliation réelle étant prévue plus tard ;
- créer des audits spécialisés sans propriété stable et objectivement automatisable.
## Règles de travail
Le cycle PGR s'applique à PGR lui-même :
```text
delta N
→ validation opérateur
→ history N
→ commit N
→ delta N+1
```
Le delta suivant MUST NOT être superposé avant le commit de la tranche courante.
Une interruption de session ne crée pas une nouvelle version. Reprendre depuis la dernière tranche réellement committée et son history ; utiliser un handoff uniquement lorsqu'il apporte une valeur réelle à la reprise.