diff --git a/CHANGELOG.md b/CHANGELOG.md index 788184c..873d930 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ - + # Changelog Project Governance Rules @@ -7,7 +7,7 @@ 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. -## 0.0.4 (candidate) +## 0.0.4 - définit un contrat transversal de skeleton specifications pour sélectionner et composer règles, profils, templates, décisions destinataire, overrides et validation sans dupliquer les propriétaires normatifs ; - ajoute une fondation composable de gouvernance locale pour initialiser version, documentation minimale, workflow retenu et validation proportionnée d'un projet utilisant PGR ; diff --git a/README.md b/README.md index 09916f3..3a59c4a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ - + # Project Governance Rules @@ -13,7 +13,7 @@ Le dépôt officiel est `https://git.sasedev.com/Sasedev/pgr`. PGR est actuellement en phase de fondation `0.0.x`. -La version courante est définie par [`VERSION`](VERSION). La release `0.0.1` établit la gouvernance normative et documentaire de PGR lui-même. La release `0.0.2` ajoute les premiers profils réutilisables Rust/Cargo, Java/Maven/Gradle et Android, ainsi que deux audits Markdown. La release `0.0.3` fournit les premiers modèles Rust/Cargo, deux audits de style Rust facultatifs, l'audit des headers Markdown et la spécification du message manuel de reprise. La série `0.0.x` se poursuit avec les spécifications de skeletons de `0.0.4`. Le contrat transversal, la fondation de projet gouverné et la première specialization Rust/Cargo workspace sont désormais matérialisés ; les autres spécialisations technologiques restent différées tant que leurs pièces requises manquent. +La version courante est définie par [`VERSION`](VERSION). La release `0.0.1` établit la gouvernance normative et documentaire de PGR lui-même. La release `0.0.2` ajoute les premiers profils réutilisables Rust/Cargo, Java/Maven/Gradle et Android, ainsi que deux audits Markdown. La release `0.0.3` fournit les premiers modèles Rust/Cargo, deux audits de style Rust facultatifs, l'audit des headers Markdown et la spécification du message manuel de reprise. La release `0.0.4` définit le contrat transversal des skeleton specifications, ajoute une fondation composable de gouvernance locale et une première spécialisation Rust/Cargo workspace fondée sur les profils `500 + 510` et les cinq templates existants. Les autres spécialisations technologiques restent différées tant que leurs pièces requises manquent. ## Entrées principales @@ -27,7 +27,7 @@ La version courante est définie par [`VERSION`](VERSION). La release `0.0.1` é - [`docs/plans/001-V0_0_1_FOUNDATION_PLAN.md`](docs/plans/001-V0_0_1_FOUNDATION_PLAN.md) — plan historique de fondation `0.0.1` ; - [`docs/plans/002-V0_0_2_RULE_PROFILES_PLAN.md`](docs/plans/002-V0_0_2_RULE_PROFILES_PLAN.md) — plan historique des premiers profils `0.0.2` ; - [`docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md`](docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md) — plan historique des templates et audits `0.0.3` ; -- [`docs/plans/004-V0_0_4_SKELETONS_PLAN.md`](docs/plans/004-V0_0_4_SKELETONS_PLAN.md) — plan actif des skeleton specifications `0.0.4` ; +- [`docs/plans/004-V0_0_4_SKELETONS_PLAN.md`](docs/plans/004-V0_0_4_SKELETONS_PLAN.md) — plan historique des skeleton specifications `0.0.4` ; - [`docs/skeletons/000-README.md`](docs/skeletons/000-README.md) — index des skeleton specifications et de leur contrat de composition ; - [`docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md`](docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md) — fondation composable de gouvernance locale pour un projet adoptant PGR ; - [`docs/skeletons/002-RUST_CARGO_WORKSPACE.md`](docs/skeletons/002-RUST_CARGO_WORKSPACE.md) — specialization composable pour un workspace Rust/Cargo gouverné ; diff --git a/ROADMAP.md b/ROADMAP.md index fb1257b..f607e80 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,5 +1,5 @@ - + # Roadmap Project Governance Rules @@ -12,7 +12,7 @@ Statuts : `( )` planifié, `(x)` terminé, `(d)` différé, `(c)` annulé. - `(x) 0.0.1` — fondation normative et documentaire : gouvernance, lifecycle des releases, rôles documentaires, workflow delta/history/handoff et validation proportionnée ; - `(x) 0.0.2` — premiers profils de règles réutilisables : Rust/Cargo, Java/Maven/Gradle et Android, avec modèle de composition et audits Markdown initiaux ; - `(x) 0.0.3` — templates techniques initiaux et premiers patterns d'audit réutilisables issus de besoins réels ; -- `( ) 0.0.4` — spécifications Markdown de skeletons et règles de composition des profils/templates ; +- `(x) 0.0.4` — spécifications Markdown de skeletons et règles de composition des profils/templates ; - `( ) 0.0.5` — réconciliation réelle de PGR avec `khadhroony-solana-project` et `sasedev-games`. ## Première baseline réutilisable diff --git a/VERSION b/VERSION index 491edd7..81340c7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.4-rc.1 +0.0.4 diff --git a/deltas/0.0.4/rel.001.md b/deltas/0.0.4/rel.001.md new file mode 100644 index 0000000..c834074 --- /dev/null +++ b/deltas/0.0.4/rel.001.md @@ -0,0 +1,152 @@ + + + +# Delta 0.0.4 rel.001 — promotion stable pré-tag + +## Baseline et version + +Baseline : `0.0.4-rc.1`, avec `history/0.0.4/rc.1.md` appliqué et committé. Ce delta MUST NOT être appliqué avant ce commit. + +Le commit exact de cette baseline sera celui produit par l'opérateur après application du history RC ; il n'est pas anticipé dans cette livraison simultanée du history et du delta stable. + +Version avant application : + +```text +0.0.4-rc.1 +``` + +Version après application : + +```text +0.0.4 +``` + +`rel.001` identifie la clôture opérationnelle ; il ne fait pas partie de la version SemVer du produit. + +## Objet + +Promouvoir la RC validée vers la stable `0.0.4`. La tranche finalise uniquement la présentation de la release : version stable, roadmap terminée, changelog sans marqueur candidate, index documentaires et plan historique. + +Le scope fonctionnel reste celui validé en RC : contrat transversal des skeleton specifications, fondation gouvernée `001`, spécialisation Rust/Cargo `002`, utilisation gouvernée des cinq templates Rust/Cargo existants et différé explicite des autres familles non suffisamment matérialisées. + +La validation de cette tranche est **pré-tag**. Ni le tag `v0.0.4`, ni l'archive `pgr-v0.0.4.zip` téléchargée depuis Gitea, ni un rapport `pgr-0.0.4-publish.001-report.md` ne sont déclarés existants par ce delta. Ils suivent le history PASS, le commit stable et la publication réelle du tag. + +## Scope + +REPLACE : + +```text +VERSION +README.md +ROADMAP.md +CHANGELOG.md +docs/000-README.md +docs/plans/004-V0_0_4_SKELETONS_PLAN.md +``` + +ADD : + +```text +deltas/0.0.4/rel.001.md +``` + +DELETE : aucun. + +L'archive contient uniquement ces fichiers complets. `history/0.0.4/rc.1.md` est livré séparément ; le history de `rel.001` sera produit après sa gate. Le rapport post-tag restera extérieur à l'archive source taggée. + +## Validation opérateur pré-tag + +Après application sur le commit `rc.1`, depuis la racine du dépôt : + +```bash +test "$(cat VERSION)" = '0.0.4' +git cat-file -e HEAD:history/0.0.4/rc.1.md +test -f history/0.0.4/rc.1.md +test -f deltas/0.0.4/rel.001.md +test -f prompts/005-V0_0_5_START_PROMPT.md +test ! -e history/0.0.4/rel.001.md + +grep -Fx '' README.md +grep -Fx '' ROADMAP.md +grep -Fx '' CHANGELOG.md +grep -Fx '' docs/000-README.md +grep -Fx '' docs/plans/004-V0_0_4_SKELETONS_PLAN.md +grep -F 'La release `0.0.4` définit le contrat transversal des skeleton specifications' README.md +grep -F 'plan historique des skeleton specifications `0.0.4`' README.md +grep -F -- '- `(x) 0.0.4`' ROADMAP.md +grep -Fx '## 0.0.4' CHANGELOG.md +grep -F 'périmètre et décisions de la release `0.0.4`' docs/000-README.md +grep -F 'La gate opérateur de `rc.1` est `PASS`' docs/plans/004-V0_0_4_SKELETONS_PLAN.md +grep -F 'pgr-0.0.4-publish.001-report.md' docs/plans/004-V0_0_4_SKELETONS_PLAN.md + +python3 -B - <<'PY' +from pathlib import Path +import re + +expected = { + 'alpha.1.md': 'PASS', + 'alpha.2.md': 'PASS', + 'alpha.3.md': 'PASS', + 'alpha.4.md': 'FAIL', + 'alpha.4.fix.1.md': 'PASS', + 'beta.1.md': 'FAIL', + 'beta.1.fix.1.md': 'PASS', + 'rc.1.md': 'PASS', +} +for name, status in expected.items(): + delta = Path('deltas/0.0.4', name) + history = Path('history/0.0.4', name) + assert delta.is_file(), name + assert history.is_file(), name + text = history.read_text(encoding='utf-8') + assert re.search(rf'## Statut\s+{status}\s', text), (name, status) + +pending = {p.name for p in Path('deltas/0.0.4').glob('*.md')} - \ + {p.name for p in Path('history/0.0.4').glob('*.md')} +assert pending == {'rel.001.md'}, pending +print('Stable history audit: clean (8 prior histories with expected statuses, rel.001 pending)') +PY + +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 + +git diff --check +git add VERSION README.md ROADMAP.md CHANGELOG.md docs/000-README.md \ + docs/plans/004-V0_0_4_SKELETONS_PLAN.md deltas/0.0.4/rel.001.md +git diff --cached --check +git status --short +``` + +Le scope attendu avant ajout du history est exactement : + +```text +M CHANGELOG.md +M README.md +M ROADMAP.md +M VERSION +A deltas/0.0.4/rel.001.md +M docs/000-README.md +M docs/plans/004-V0_0_4_SKELETONS_PLAN.md +``` + +Les `15` tests, les cinq TOML et le smoke Rust/Cargo complets validés en RC restent des preuves applicables parce qu'aucun code, script, test, template ou skeleton technique n'est modifié pendant `rel.001`. La gate stable se concentre donc sur l'intégrité de la chaîne historique, la présentation stable et les audits documentaires affectés. + +## Revue opérateur complémentaire + +Confirmer que le scope fonctionnel de la RC ne change pas, que README/roadmap/changelog/index/plan décrivent la même stable, que les `FAIL` historiques restent conservés avec leurs fixes `PASS`, que le prompt `005` reste conditionnel à une vraie publication et à des baselines KSP/Games fournies, et qu'aucune preuve post-tag n'est anticipée. + +## Transition + +### PASS + +Produire séparément `history/0.0.4/rel.001.md`, l'appliquer puis committer la stable. Ensuite seulement créer et publier le tag canonique `v0.0.4`, télécharger son archive source depuis Gitea, vérifier cette archive et conserver séparément la preuve post-tag `pgr-0.0.4-publish.001-report.md`. + +Le message manuel de reprise de `prompts/005-V0_0_5_START_PROMPT.md` n'est remis à l'opérateur qu'après vérification effective de l'archive et d'un rapport post-tag PASS réel. + +### FAIL + +Consigner le diagnostic réel dans `history/0.0.4/rel.001.md`, ne pas tagger et corriger la clôture dans une tranche explicite avant publication. diff --git a/docs/000-README.md b/docs/000-README.md index 0860259..7383ffe 100644 --- a/docs/000-README.md +++ b/docs/000-README.md @@ -1,5 +1,5 @@ - + # Documentation PGR @@ -22,7 +22,7 @@ Les templates techniques copiables sous `templates/` restent séparés des instr ## Points d'entrée de 0.0.4 - [`plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md`](plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md) — périmètre et décisions de la release `0.0.3` ; -- [`plans/004-V0_0_4_SKELETONS_PLAN.md`](plans/004-V0_0_4_SKELETONS_PLAN.md) — cadrage actif des premières skeleton specifications et de leur composition ; +- [`plans/004-V0_0_4_SKELETONS_PLAN.md`](plans/004-V0_0_4_SKELETONS_PLAN.md) — périmètre et décisions de la release `0.0.4` ; - [`skeletons/000-README.md`](skeletons/000-README.md) — contrat de collection des skeleton specifications ; - [`skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md`](skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md) — fondation de gouvernance locale composable et sans spécialisation technologique ; - [`skeletons/002-RUST_CARGO_WORKSPACE.md`](skeletons/002-RUST_CARGO_WORKSPACE.md) — specialization Rust/Cargo workspace composable avec la fondation et les cinq templates existants ; diff --git a/docs/plans/004-V0_0_4_SKELETONS_PLAN.md b/docs/plans/004-V0_0_4_SKELETONS_PLAN.md index aebbc42..10954ea 100644 --- a/docs/plans/004-V0_0_4_SKELETONS_PLAN.md +++ b/docs/plans/004-V0_0_4_SKELETONS_PLAN.md @@ -1,11 +1,11 @@ - + # Plan 0.0.4 — skeleton specifications et composition ## Statut et sources -Plan actif créé pendant `0.0.4-alpha.1` après audit indépendant de la stable publiée `v0.0.3` demandé par `prompts/004-V0_0_4_START_PROMPT.md`. Les tranches `alpha.1` à `alpha.3` sont `PASS`. `alpha.4` a enregistré `FAIL` sur sa gate d'instanciation, puis `alpha.4.fix.1` a corrigé cette gate et est `PASS`. `beta.1` a enregistré `FAIL` sur une erreur de syntaxe de sa gate de réconciliation, puis `beta.1.fix.1` a rejoué la réconciliation et est `PASS`. À l'entrée de `rc.1`, aucun de ces deux fixes n'a nécessité de modifier les règles, skeletons ou templates validés ; le scope fonctionnel est gelé. +Plan historique créé pendant `0.0.4-alpha.1` après audit indépendant de la stable publiée `v0.0.3` demandé par `prompts/004-V0_0_4_START_PROMPT.md`. Les tranches `alpha.1` à `alpha.3` sont `PASS`. `alpha.4` a enregistré `FAIL` sur sa gate d'instanciation, puis `alpha.4.fix.1` a corrigé cette gate et est `PASS`. `beta.1` a enregistré `FAIL` sur une erreur de syntaxe de sa gate de réconciliation, puis `beta.1.fix.1` a rejoué la réconciliation et est `PASS`. La gate opérateur de `rc.1` est `PASS` : intégration documentaire, prompt `005`, cinq TOML et instanciation temporaire Rust/Cargo avec `cargo metadata`, `fmt`, `check` et `clippy -D warnings` ont été validés. Le scope fonctionnel est gelé et `rel.001` ne réalise qu'une promotion stable pré-tag. La baseline autoritaire est l'archive source fournie `pgr-v0.0.3.zip`, déclarée téléchargée depuis le tag Gitea `v0.0.3`. Son SHA-256 vérifié pendant le cadrage est : @@ -147,7 +147,9 @@ Le scope gelé comprend le contrat transversal `220-SKELETONS.md`, l'index de co ### stable — 0.0.4 -Promouvoir la RC validée, finaliser les documents vivants, produire le history pré-tag, committer et tagger `v0.0.4`, puis vérifier séparément l'archive publiée. La preuve post-tag reste extérieure au tag. +La gate opérateur de `rc.1` est `PASS`. Le delta `rel.001` prépare mécaniquement la stable `0.0.4` : `VERSION`, présentation du dépôt et des index, statut de la roadmap, conversion de l'entrée candidate du changelog et clôture du présent plan comme référence historique. Aucun nouveau skeleton, profil, template, audit ou domaine technologique n'est ajouté pendant cette promotion. + +Le résultat réel de la gate pré-tag appartient à `history/0.0.4/rel.001.md`, produit après exécution opérateur. Le commit stable et le tag `v0.0.4` suivent uniquement un `PASS`. La vérification de l'archive effectivement publiée depuis Gitea et le rapport `pgr-0.0.4-publish.001-report.md` constituent ensuite une preuve post-tag séparée ; ils ne sont pas présumés par le delta ni par le history pré-tag. ## Points de décision et stratégie de validation diff --git a/history/0.0.4/rel.001.md b/history/0.0.4/rel.001.md new file mode 100644 index 0000000..7a0497d --- /dev/null +++ b/history/0.0.4/rel.001.md @@ -0,0 +1,86 @@ + + + +# History 0.0.4 rel.001 — clôture stable pré-tag + +## Statut + +PASS + +La gate stable pré-tag `rel.001` exécutée par l'opérateur le `2026-09-24` valide la promotion documentaire de `0.0.4`. Cette preuve porte sur l'état du dépôt avant le commit stable et avant le tag `v0.0.4` ; elle ne valide pas encore l'archive source publiée ensuite par Gitea. + +## Baseline et version + +La baseline opérateur est le commit `c6af96b` de `0.0.4-rc.1`, poussé sur `master` avant application du delta stable. L'opérateur a confirmé `VERSION = 0.0.4`, la présence dans `HEAD` de `history/0.0.4/rc.1.md`, la présence du delta `rel.001` et du prompt `005`, ainsi que l'absence du présent history avant sa livraison. + +Les révisions et marqueurs de clôture attendus ont été retrouvés : + +```text +README.md version 11 +ROADMAP.md version 5 +CHANGELOG.md version 7 +docs/000-README.md version 9 +docs/plans/004-V0_0_4_SKELETONS_PLAN.md version 3 +ROADMAP 0.0.4 terminé +CHANGELOG entrée stable ## 0.0.4 +plan 004 plan historique, rc.1 PASS +``` + +La présentation du dépôt décrit désormais `0.0.4` comme la release qui définit le contrat transversal des skeleton specifications, ajoute la fondation gouvernée `001` et la spécialisation Rust/Cargo `002`, tout en maintenant le différé des autres spécialisations technologiques insuffisamment matérialisées. + +## Chaîne historique + +L'audit de la chaîne `0.0.4` a affiché : + +```text +Stable history audit: clean (8 prior histories with expected statuses, rel.001 pending) +``` + +Les statuts antérieurs observés et conservés sont : + +```text +alpha.1 PASS +alpha.2 PASS +alpha.3 PASS +alpha.4 FAIL +alpha.4.fix.1 PASS +beta.1 FAIL +beta.1.fix.1 PASS +rc.1 PASS +``` + +Les deux échecs historiques restent donc conservés avec leurs correctifs `PASS`; `rel.001` était le seul delta de `0.0.4` encore sans history au moment de la gate. + +## Audits documentaires + +Les trois audits Markdown ont affiché : + +```text +Markdown header audit: clean (122 file(s)) +Markdown table audit: clean (3 table(s), 122 file(s)) +Markdown link audit: clean (116 local link(s), 122 file(s)) +``` + +Les `15` tests Python, les cinq TOML Rust/Cargo et le smoke d'instanciation complet avaient été validés dans `rc.1`. Ils n'ont pas été rejoués pendant cette gate stable, conformément au delta `rel.001`, car aucun code, script, test, template ou skeleton technique n'est modifié par la promotion documentaire. + +## Scope Git observé + +`git diff --check` et `git diff --cached --check` n'ont produit aucun diagnostic. Après ajout des fichiers du delta, le statut indexé transmis est exactement : + +```text +M CHANGELOG.md +M README.md +M ROADMAP.md +M VERSION +A deltas/0.0.4/rel.001.md +M docs/000-README.md +M docs/plans/004-V0_0_4_SKELETONS_PLAN.md +``` + +La revue opérateur confirme que le scope fonctionnel gelé en RC n'a pas changé, que README/roadmap/changelog/index/plan décrivent la même stable, que le prompt `005` reste conditionnel à une publication réelle et à des baselines KSP/Games explicitement fournies, et qu'aucune preuve post-tag n'est anticipée. + +## Transition + +Appliquer ce history puis committer et pousser la stable `0.0.4`. Ensuite seulement créer et publier le tag canonique `v0.0.4`, télécharger l'archive source associée depuis Gitea et exécuter une vérification post-tag indépendante. + +Le commit stable, le tag, l'identité de l'archive publiée et le résultat du contrôle post-tag ne sont pas attestés par la transcription reçue. Le rapport `pgr-0.0.4-publish.001-report.md` ne pourra être produit qu'après ces opérations réelles ; le démarrage de `0.0.5` reste bloqué jusqu'à cette preuve post-tag `PASS` et à la fourniture des baselines autoritaires demandées par `prompts/005-V0_0_5_START_PROMPT.md`.