0.0.1-rc.1
This commit is contained in:
10
CHANGELOG.md
10
CHANGELOG.md
@@ -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.
|
||||||
|
|||||||
139
deltas/0.0.1/rc.1.md
Normal file
139
deltas/0.0.1/rc.1.md
Normal 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
71
history/0.0.1/rc.1.md
Normal 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.
|
||||||
94
prompts/002-V0_0_2_START_PROMPT.md
Normal file
94
prompts/002-V0_0_2_START_PROMPT.md
Normal 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.
|
||||||
Reference in New Issue
Block a user