From 4d7021b1017df9436720c135943b3ea216208409 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Thu, 1 Oct 2026 10:47:14 +0200 Subject: [PATCH] 0.1.5-rc.1 --- CHANGELOG.md | 11 +- README.md | 4 +- ROADMAP.md | 4 +- VERSION | 2 +- deltas/0.1.5/rc.1.md | 207 ++++++++++++++++++ docs/000-README.md | 6 +- .../011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md | 21 +- docs/studies/000-README.md | 3 +- docs/studies/005-V0_1_5_HORIZON_REVIEW.md | 105 +++++++++ history/0.1.5/rc.1.md | 135 ++++++++++++ prompts/012-V0_1_6_START_PROMPT.md | 87 ++++++++ 11 files changed, 575 insertions(+), 10 deletions(-) create mode 100644 deltas/0.1.5/rc.1.md create mode 100644 docs/studies/005-V0_1_5_HORIZON_REVIEW.md create mode 100644 history/0.1.5/rc.1.md create mode 100644 prompts/012-V0_1_6_START_PROMPT.md diff --git a/CHANGELOG.md b/CHANGELOG.md index ef0d4c3..8e49c5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ - + # Changelog Project Governance Rules @@ -7,6 +7,15 @@ 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.1.5 (candidate) + +- clarifie la sémantique normative de PGR : `MUST / MUST NOT` restent obligatoires, `SHOULD / SHOULD NOT` deviennent explicitement des recommandations fortes non obligatoires et `MAY` reste une possibilité neutre ; +- aligne l’adoption et la validation afin qu’un simple écart à un `SHOULD / SHOULD NOT` ne crée à lui seul ni non-conformité, ni `FAIL` de gate, ni `OVERRIDE` ou justification obligatoire ; +- formalise l’autonomie après instanciation/adoption : la baseline locale et ses owners deviennent l’autorité des sessions/releases suivantes, tandis qu’un réalignement PGR futur reste une opération explicite et bornée fondée sur un snapshot choisi ; +- fixe la frontière PGR / SaseDev Knowledge : PGR reste auto-suffisant pour ses contrats normatifs, tandis que howtos, recettes, snippets, exemples, dépannage et variantes pratiques peuvent vivre dans une base de connaissances séparée sans devenir une dépendance de PGR ; +- réconcilie transversalement les owners concernés sans réécriture mécanique des recommandations existantes et corrige la référence vivante à l’adoption Games vers `0.1.6` ; +- confirme par revue d’horizon que l’adoption réelle de `sasedev-games` reste la cible `0.1.6`, suivie de KSP `0.1.7` puis des audits Rust/Clippy `0.1.8`, sans réserver `0.1.9`. + ## 0.1.4 - réexamine le `DEFER` historique du skeleton Tauri contre les corpus Games/KSP fournis, confirme les prérequis Web désormais couverts et lève le blocage sans généraliser les choix locaux de ces projets ; diff --git a/README.md b/README.md index 7fd7f7e..47c47f8 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ - + # Project Governance Rules @@ -11,7 +11,7 @@ Le dépôt officiel est `https://git.sasedev.com/Sasedev/pgr`. ## Statut -La stable autoritaire courante reste `0.1.4`. Le travail `0.1.5-beta.1` réconcilie désormais les trois contrats transversaux stabilisés pendant les alphas : `SHOULD / SHOULD NOT` reste une forte recommandation non obligatoire, la baseline locale d’un projet devient son autorité après instanciation/adoption avec réalignement PGR uniquement explicite, et PGR reste auto-suffisant face aux contenus pratiques externes possibles de SaseDev Knowledge. Le rescan transversal n’a démontré aucun nouveau renforcement accidentel nécessitant une modification normative supplémentaire. Les adoptions Games `0.1.6`, KSP `0.1.7` ainsi que les audits Rust/Clippy `0.1.8` restent hors scope. +La stable autoritaire courante reste `0.1.4`. La candidate `0.1.5-rc.1` gèle désormais les trois contrats transversaux réconciliés : `SHOULD / SHOULD NOT` reste une forte recommandation non obligatoire, la baseline locale d’un projet devient son autorité après instanciation/adoption avec réalignement PGR uniquement explicite, et PGR reste auto-suffisant face aux contenus pratiques externes possibles de SaseDev Knowledge. La revue d’horizon limitée confirme qu’aucun nouveau prérequis transversal ne doit précéder l’adoption Games : `0.1.6` reste la prochaine release, suivie de KSP `0.1.7` puis des audits Rust/Clippy `0.1.8`, sans réservation de `0.1.9`. 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. La release `0.0.5` réconcilie PGR avec les baselines réelles de `khadhroony-solana-project` et `sasedev-games` : prompts versionnés, contrats documentaires locaux, lifecycle inter-release, profil Rust strict et audits monotâches, premier profil Tauri 2 et décision explicite de différer son skeleton complet jusqu'à matérialisation d'owners Web suffisants. La release `0.1.0` stabilise la première baseline réutilisable : adoption `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER`, skeletons/templates Rust/Cargo exercés par dry-run, clôture `rel.N`, handoff opérateur automatique et trajectoire `0.1.1` à `0.1.7` issue d'une revue d'horizon explicite. La release `0.1.1` stabilise la fondation frontend Web : owners indépendants TypeScript/package/Vite/CSS-Sass, déclarations de types externes conditionnelles, package manager neutre, validation frontend indépendante du host et skeleton Web composable, tout en conservant le skeleton Tauri en `DEFER` jusqu’à son réexamen `0.1.4`. La release `0.1.2` stabilise trois owners indépendants `520-JAVA`, `521-MAVEN` et `522-GRADLE`, clarifie JDK/source/bytecode et l'ownership Gradle, conserve Maven cohérent sans corpus artificiel et maintient les responsabilités Android dans `610-ANDROID.md` pour leur réévaluation distincte en `0.1.3`. La release `0.1.3` stabilise le profil Android générique : séparation des responsabilités SDK et identité applicative, contraintes natives conditionnelles, Android Lint explicite, niveaux de tests distincts, frontières APK/AAB et compatibilité 16 KB liée au code natif et au canal de distribution, sans imposer les versions ou ABI propres à Games. La release `0.1.4` stabilise le domaine Tauri : owner `710` recentré sur host/orchestration/ACL/plugins, skeleton `004` composable avec Rust/Cargo et Web, absence assumée de template technique générique ou de validation Tauri redondante, audit d’hygiène texte réutilisable et handoff vers `0.1.5` pour clarifier la sémantique normative et l’autonomie des projets. diff --git a/ROADMAP.md b/ROADMAP.md index aedbc44..70c24ec 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,5 +1,5 @@ - + # Roadmap Project Governance Rules @@ -41,6 +41,6 @@ Le détail et les conditions de cette séquence sont conservés dans [`docs/stud - `saselang-bible`, projets documentaires/spécifications et généricité hors logiciel — candidats d'une trajectoire ultérieure `0.2.x` / `0.3.x` à décider ; - `deployment & operations` — famille future pour reverse proxies, bases de données, Docker/Compose, services Linux, secrets, migrations/backups, health et observabilité ; un horizon `0.4.x` ou `0.5.x` est plausible mais aucun numéro précis n'est réservé. -La revue d’horizon `0.1.4-rc.1` remplace l’ordre initial `0.1.5` Games / `0.1.6` KSP / `0.1.7` audits par le contrat ci-dessus. Une nouvelle revue d’horizon doit intervenir si `0.1.5` démontre que l’autonomie ne peut pas être stabilisée sans scope supplémentaire, ou si Games/KSP exigent un owner réellement préalable à une adoption proportionnée. +La revue d’horizon `0.1.4-rc.1` remplace l’ordre initial `0.1.5` Games / `0.1.6` KSP / `0.1.7` audits par le contrat ci-dessus. La revue limitée `0.1.5-rc.1` confirme que les contrats transversaux sont suffisamment stabilisés et qu’aucun nouveau prérequis ne doit précéder l’adoption Games : l’ordre `0.1.6` Games, `0.1.7` KSP, `0.1.8` audits est conservé et aucun `0.1.9` n’est réservé. Le contenu détaillé et le nombre de tranches de chaque release sont définis par son plan actif, créé ou consolidé pendant `alpha.1`. diff --git a/VERSION b/VERSION index b1fa84d..9ff1753 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.5-beta.1 +0.1.5-rc.1 diff --git a/deltas/0.1.5/rc.1.md b/deltas/0.1.5/rc.1.md new file mode 100644 index 0000000..af3b149 --- /dev/null +++ b/deltas/0.1.5/rc.1.md @@ -0,0 +1,207 @@ + + + +# Delta 0.1.5-rc.1 — freeze, revue d’horizon et handoff Games + +## Objet + +Geler les trois contrats transversaux réconciliés par `beta.1`, préparer la présentation candidate de `0.1.5`, effectuer la revue d’horizon limitée prévue par le plan et préparer le handoff vers `0.1.6` uniquement puisque l’adoption Games reste la prochaine dépendance réelle. + +La RC n’ajoute aucun nouveau contrat normatif et ne commence aucune adoption. + +## Préconditions + +Le history `history/0.1.5/beta.1.md` doit être présent avec statut `PASS` avant application de ce delta. + +La séquence réelle doit rester : + +```text +alpha.1 PARTIAL +alpha.1.fix.1 PASS +alpha.2 PASS +alpha.3 PASS +alpha.4 PASS +beta.1 PASS +``` + +Les owners stabilisés pendant `alpha.2` à `alpha.4` sont gelés sauf défaut démontré. Aucun défaut nouveau n’est introduit par la préparation RC. + +## Revue d’horizon + +`docs/studies/005-V0_1_5_HORIZON_REVIEW.md` confirme qu’aucun nouveau prérequis transversal ne doit précéder l’adoption réelle de `sasedev-games`. + +La trajectoire reste : + +```text +0.1.6 adoption sasedev-games +0.1.7 adoption khadhroony-solana-project +0.1.8 audits Rust/Clippy read-only +0.1.9 NOT RESERVED +``` + +La revue impose pour `0.1.6` une stable PGR `v0.1.5` réellement publiée/vérifiée et une archive Games récente explicitement autoritaire. Elle ne fige volontairement aucun numéro Games. + +## Handoff 0.1.6 + +`prompts/012-V0_1_6_START_PROMPT.md` prépare `0.1.6-alpha.1` comme tranche d’intake et de cartographie avant migration. + +Le prompt exige une classification `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A`, conserve la sémantique non obligatoire de `SHOULD / SHOULD NOT`, préserve les décisions locales Games et rappelle que la baseline Games devient l’autorité du projet après adoption. + +Il interdit de généraliser automatiquement un ancien POC ou artefact historique sans applicabilité démontrée par le corpus Games fourni. + +## Modifications + +- `VERSION` passe à `0.1.5-rc.1` ; +- `README.md` passe en révision `33` et présente la candidate/freeze ; +- `CHANGELOG.md` passe en révision `20` et reçoit l’entrée `0.1.5 (candidate)` sans chronologie de tranches ; +- `ROADMAP.md` passe en révision `18` et enregistre la confirmation de trajectoire issue de la revue `0.1.5-rc.1` ; +- `docs/000-README.md` passe en révision `52` et indexe la revue d’horizon et le handoff `012` ; +- `docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md` passe en révision `6`, enregistre `beta.1 PASS` et le freeze RC ; +- `docs/studies/000-README.md` passe en révision `6` ; +- `docs/studies/005-V0_1_5_HORIZON_REVIEW.md` est créé ; +- `prompts/012-V0_1_6_START_PROMPT.md` est créé ; +- aucun owner normatif, skeleton, template ou contrat de validation stabilisé par les alphas n’est modifié. + +## Gate opérateur + +Après commit/push de `beta.1` avec son history `PASS`, appliquer ce delta puis exécuter : + +```bash +cat VERSION + +test -f history/0.1.5/beta.1.md +test -f deltas/0.1.5/rc.1.md +test -f docs/studies/005-V0_1_5_HORIZON_REVIEW.md +test -f prompts/012-V0_1_6_START_PROMPT.md +test ! -e history/0.1.5/rc.1.md + +grep -Fx '0.1.5-rc.1' VERSION +grep -A2 '^## Statut$' history/0.1.5/alpha.1.md | grep -Fx 'PARTIAL' +grep -A2 '^## Statut$' history/0.1.5/alpha.1.fix.1.md | grep -Fx 'PASS' +grep -A2 '^## Statut$' history/0.1.5/alpha.2.md | grep -Fx 'PASS' +grep -A2 '^## Statut$' history/0.1.5/alpha.3.md | grep -Fx 'PASS' +grep -A2 '^## Statut$' history/0.1.5/alpha.4.md | grep -Fx 'PASS' +grep -A2 '^## Statut$' history/0.1.5/beta.1.md | grep -Fx 'PASS' + +grep -Fx '' README.md +grep -F 'candidate `0.1.5-rc.1`' README.md +grep -F '`0.1.6` reste la prochaine release' README.md + +grep -Fx '' CHANGELOG.md +grep -Fx '## 0.1.5 (candidate)' CHANGELOG.md +grep -F 'forte recommandation non obligatoire' CHANGELOG.md +grep -F 'baseline locale et ses owners deviennent l’autorité' CHANGELOG.md +grep -F 'SaseDev Knowledge' CHANGELOG.md +grep -F 'adoption réelle de `sasedev-games` reste la cible `0.1.6`' CHANGELOG.md + +python3 -B -c "from pathlib import Path; s=Path('CHANGELOG.md').read_text(encoding='utf-8').split('## 0.1.5 (candidate)',1)[1].split('## 0.1.4',1)[0]; assert all(x not in s for x in ('alpha.1','alpha.2','alpha.3','alpha.4','beta.1','rc.1','rel.1')); print('0.1.5 candidate changelog: clean')" + +grep -Fx '' ROADMAP.md +grep -F -- '- `( ) 0.1.5`' ROADMAP.md +grep -F -- '- `( ) 0.1.6`' ROADMAP.md +grep -F -- '- `( ) 0.1.7`' ROADMAP.md +grep -F -- '- `( ) 0.1.8`' ROADMAP.md +grep -F 'La revue limitée `0.1.5-rc.1` confirme' ROADMAP.md +! grep -F -- '- `( ) 0.1.9`' ROADMAP.md + +grep -Fx '' docs/000-README.md +grep -F 'studies/005-V0_1_5_HORIZON_REVIEW.md' docs/000-README.md +grep -F 'prompts/012-V0_1_6_START_PROMPT.md' docs/000-README.md + +grep -Fx '' docs/studies/000-README.md +grep -F '005-V0_1_5_HORIZON_REVIEW.md' docs/studies/000-README.md + +grep -Fx '' docs/studies/005-V0_1_5_HORIZON_REVIEW.md +grep -F 'conserver `0.1.6` comme prochaine release' docs/studies/005-V0_1_5_HORIZON_REVIEW.md +grep -F 'aucun numéro de version Games n’est figé' docs/studies/005-V0_1_5_HORIZON_REVIEW.md +grep -F 'ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A' docs/studies/005-V0_1_5_HORIZON_REVIEW.md +grep -F 'Aucun `0.1.9` n’est réservé' docs/studies/005-V0_1_5_HORIZON_REVIEW.md + +grep -Fx '' prompts/012-V0_1_6_START_PROMPT.md +grep -F 'tag Gitea `v0.1.5`' prompts/012-V0_1_6_START_PROMPT.md +grep -F 'pgr-0.1.5-publish.001-report.md' prompts/012-V0_1_6_START_PROMPT.md +grep -F 'archive récente et explicitement autoritaire de `sasedev-games`' prompts/012-V0_1_6_START_PROMPT.md +grep -F '0.1.6-alpha.1' prompts/012-V0_1_6_START_PROMPT.md +grep -F 'ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A' prompts/012-V0_1_6_START_PROMPT.md +grep -F 'ne doivent pas rechercher automatiquement « la dernière version de PGR »' prompts/012-V0_1_6_START_PROMPT.md +grep -F 'réservée à `0.1.7`' prompts/012-V0_1_6_START_PROMPT.md +grep -F 'réservés à `0.1.8`' prompts/012-V0_1_6_START_PROMPT.md + +grep -Fx '' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md +grep -F 'La gate opérateur de `beta.1` du `2026-10-01` est `PASS`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md +grep -F 'Freeze et revue d’horizon préparés en `rc.1`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md +grep -F '0.1.9 NOT RESERVED' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md +grep -F '012-V0_1_6_START_PROMPT.md' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md + +grep -Fx '' RULES.md +grep -Fx '' docs/rules/210-WORKFLOW.md +grep -Fx '' docs/rules/230-ADOPTION.md +grep -Fx '' docs/rules/300-DOCUMENTATION.md +grep -Fx '' docs/rules/400-VALIDATION.md + +python3 -B -c "from pathlib import Path; expected={'0.0.1':12,'0.0.2':12,'0.0.3':10,'0.0.4':9,'0.0.5':19,'0.1.0':10,'0.1.1':11,'0.1.2':7,'0.1.3':6,'0.1.4':7}; assert all({p.name for p in Path('deltas',r).glob('*.md')} == {p.name for p in Path('history',r).glob('*.md')} and len(list(Path('deltas',r).glob('*.md'))) == n for r,n in expected.items()); assert {p.name for p in Path('deltas/0.1.5').glob('*.md')} == {'alpha.1.md','alpha.1.fix.1.md','alpha.2.md','alpha.3.md','alpha.4.md','beta.1.md','rc.1.md'}; assert {p.name for p in Path('history/0.1.5').glob('*.md')} == {'alpha.1.md','alpha.1.fix.1.md','alpha.2.md','alpha.3.md','alpha.4.md','beta.1.md'}; print('0.1.5 rc.1 history boundary: clean (109 closed prior pairs, current rc.1 pending)')" + +git diff --exit-code -- history/0.1.4 + +git diff --exit-code -- RULES.md \ + docs/objectives/001-PROJECT_OBJECTIVES.md \ + docs/architecture/002-GOVERNANCE_ARCHITECTURE.md \ + docs/rules/210-WORKFLOW.md docs/rules/220-SKELETONS.md \ + docs/rules/230-ADOPTION.md docs/rules/300-DOCUMENTATION.md \ + docs/rules/400-VALIDATION.md docs/rules/500-LANGUAGES.md \ + docs/rules/530-TYPESCRIPT.md docs/rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md \ + docs/rules/700-FRAMEWORKS.md \ + docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md \ + docs/skeletons/003-WEB_FRONTEND.md \ + docs/templates/003-NEW_SESSION_PROMPT.md \ + docs/templates/007-EXISTING_PROJECT_ADOPTION.md \ + docs/templates/008-WEB_TYPESCRIPT_PACKAGE.md + +python3 -B -m unittest discover -s tests -v + +python3 -B scripts/audit_text_hygiene.py \ + README.md RULES.md ROADMAP.md CHANGELOG.md VERSION \ + docs deltas history prompts scripts tests templates .gitignore .settings + +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 status --short + +git add VERSION README.md CHANGELOG.md ROADMAP.md \ + deltas/0.1.5/rc.1.md \ + docs/000-README.md \ + docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md \ + docs/studies/000-README.md \ + docs/studies/005-V0_1_5_HORIZON_REVIEW.md \ + prompts/012-V0_1_6_START_PROMPT.md + +git diff --cached --check +git status --short +``` + +## Scope Git attendu + +```text +M CHANGELOG.md +M README.md +M ROADMAP.md +M VERSION +A deltas/0.1.5/rc.1.md +M docs/000-README.md +M docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md +M docs/studies/000-README.md +A docs/studies/005-V0_1_5_HORIZON_REVIEW.md +A prompts/012-V0_1_6_START_PROMPT.md +``` + +## Transition + +Si la gate est `PASS`, produire `history/0.1.5/rc.1.md`, committer/pousser `0.1.5-rc.1`, puis préparer `rel.1` comme promotion mécanique vers la stable `0.1.5`, sans rouvrir les contrats acquis ni commencer `0.1.6`. diff --git a/docs/000-README.md b/docs/000-README.md index 47ffdd9..006f631 100644 --- a/docs/000-README.md +++ b/docs/000-README.md @@ -1,5 +1,5 @@ - + # Documentation PGR @@ -22,12 +22,14 @@ Les templates techniques copiables sous `templates/` restent séparés des instr ## Points d'entrée de 0.1.5 -- [`plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md`](plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md) — plan actif de `0.1.5` : inventaire `alpha.1`, récupération de preuve `alpha.1.fix.1`, sémantique normative `alpha.2`, autonomie locale `alpha.3`, frontière PGR / Knowledge `alpha.4`, puis réconciliation transversale `beta.1` avant freeze RC. +- [`plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md`](plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md) — plan actif de la candidate `0.1.5` : contrats normatifs/autonomie/Knowledge acquis, réconciliation `beta.1` validée et freeze `rc.1` avec revue d’horizon/handoff. - [`studies/004-V0_1_4_HORIZON_REVIEW.md`](studies/004-V0_1_4_HORIZON_REVIEW.md) — décision autoritaire de fermeture `0.1.4` qui place la release de gouvernance/autonomie avant les adoptions Games/KSP. - [`../RULES.md`](../RULES.md), [`rules/230-ADOPTION.md`](rules/230-ADOPTION.md) et [`rules/400-VALIDATION.md`](rules/400-VALIDATION.md) — owners primaires réconciliés en `alpha.2` : `SHOULD / SHOULD NOT` est une forte recommandation non obligatoire, sans `FAIL` de gate ni `OVERRIDE` automatique pour un simple écart. - [`rules/220-SKELETONS.md`](rules/220-SKELETONS.md), [`rules/230-ADOPTION.md`](rules/230-ADOPTION.md), [`skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md`](skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md) et [`templates/007-EXISTING_PROJECT_ADOPTION.md`](templates/007-EXISTING_PROJECT_ADOPTION.md) — owners réconciliés en `alpha.3` : baseline locale autoritaire, absence d'upstream PGR implicite et réalignement volontaire fondé sur un snapshot choisi. - [`objectives/001-PROJECT_OBJECTIVES.md`](objectives/001-PROJECT_OBJECTIVES.md), [`architecture/002-GOVERNANCE_ARCHITECTURE.md`](architecture/002-GOVERNANCE_ARCHITECTURE.md) et [`rules/300-DOCUMENTATION.md`](rules/300-DOCUMENTATION.md) — owners réconciliés en `alpha.4` : PGR reste auto-suffisant pour ses contrats normatifs ; les contenus pratiques externes restent complémentaires, sans dépendance PGR vers Knowledge ni déplacement automatique. - `beta.1` réconcilie les trois contrats sans nouvel owner normatif : les renforcements `SHOULD` connus restent corrigés, `210-WORKFLOW.md` et `003-NEW_SESSION_PROMPT.md` restent compatibles avec l’autonomie locale, et les références vivantes Games/KSP/audits restent respectivement réservées à `0.1.6`, `0.1.7` et `0.1.8`. +- [`studies/005-V0_1_5_HORIZON_REVIEW.md`](studies/005-V0_1_5_HORIZON_REVIEW.md) — revue limitée `rc.1` confirmant que l’adoption Games `0.1.6` reste la prochaine dépendance réelle sans nouveau prérequis transversal ni réservation de `0.1.9`. +- [`../prompts/012-V0_1_6_START_PROMPT.md`](../prompts/012-V0_1_6_START_PROMPT.md) — handoff préparé vers l’adoption réelle de `sasedev-games` en `0.1.6-alpha.1`, à utiliser uniquement après publication et vérification post-tag de `v0.1.5` avec un corpus Games autoritaire explicitement fourni. - [`../prompts/011-V0_1_5_START_PROMPT.md`](../prompts/011-V0_1_5_START_PROMPT.md) — contrat de reprise exécuté pour ouvrir `0.1.5-alpha.1` à partir de la stable `v0.1.4` vérifiée. ## Points d'entrée de 0.1.4 diff --git a/docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md b/docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md index f642c4f..4d7ae28 100644 --- a/docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md +++ b/docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md @@ -1,5 +1,5 @@ - + # Plan 0.1.5 — sémantique normative, autonomie et frontière PGR / Knowledge @@ -270,6 +270,25 @@ La réconciliation confirme également : Décision `beta.1` : **KEEP des owners normatifs acquis**. La tranche documente et valide la réconciliation ; elle n'ajoute aucun owner, ne modifie aucune règle normative et ne commence aucun scope futur. +La gate opérateur de `beta.1` du `2026-10-01` est `PASS` avec `55/55` tests, l'audit d'hygiène texte propre sur `321` fichiers, les audits Markdown propres et le scope Git attendu. La phase de réconciliation est donc acquise avant ouverture de `rc.1`. + +## Freeze et revue d’horizon préparés en `rc.1` + +`rc.1` gèle les owners normatifs acquis : aucune règle, skeleton, template ou validation stabilisés pendant `alpha.2` à `alpha.4` n'est réouvert sans défaut démontré. + +La revue d'horizon limitée matérialisée dans `docs/studies/005-V0_1_5_HORIZON_REVIEW.md` conclut qu'aucun nouveau prérequis transversal ne doit précéder l'adoption Games. La trajectoire reste : + +```text +0.1.6 adoption sasedev-games +0.1.7 adoption khadhroony-solana-project +0.1.8 audits Rust/Clippy read-only +0.1.9 NOT RESERVED +``` + +Le prompt `012-V0_1_6_START_PROMPT.md` prépare donc une reprise `0.1.6-alpha.1` à partir d'une future stable PGR `v0.1.5` réellement publiée et d'une archive Games récente explicitement autoritaire. Il impose un intake/cartographie avant toute migration et conserve le contrat d'autonomie locale après adoption. + +La RC ne commence ni l'adoption Games, ni KSP, ni les audits `0.1.8`. + ## Trajectoire de release ### `alpha.1` — intake, audit transversal et plan diff --git a/docs/studies/000-README.md b/docs/studies/000-README.md index 3fd688a..b518486 100644 --- a/docs/studies/000-README.md +++ b/docs/studies/000-README.md @@ -1,5 +1,5 @@ - + # Index des études PGR @@ -13,3 +13,4 @@ Une étude peut comparer des projets sources, des technologies ou plusieurs opti - [`002-TAURI_SKELETON_DECISION.md`](002-TAURI_SKELETON_DECISION.md) — décision historique `DEFER` du skeleton Tauri, complétée en `0.1.1-beta.1` par la preuve que ses cinq prérequis Web disposent désormais d'owners PGR, sans lever le report avant `0.1.4`. - [`003-V0_1_0_HORIZON_REVIEW.md`](003-V0_1_0_HORIZON_REVIEW.md) — revue d'horizon `0.1.0-beta.1` engageant les prochaines releases `0.1.x` suffisamment décidées et conservant les autres axes sans numéro. - [`004-V0_1_4_HORIZON_REVIEW.md`](004-V0_1_4_HORIZON_REVIEW.md) — revue de fermeture `0.1.4` clarifiant le besoin d’une release `0.1.5` dédiée à la sémantique normative, à l’autonomie des projets et à la frontière PGR / SaseDev Knowledge avant les adoptions Games/KSP. +- [`005-V0_1_5_HORIZON_REVIEW.md`](005-V0_1_5_HORIZON_REVIEW.md) — revue de fermeture `0.1.5` confirmant qu’aucun nouveau prérequis transversal ne précède l’adoption réelle de `sasedev-games` en `0.1.6`, puis KSP `0.1.7` et les audits Rust/Clippy `0.1.8`. diff --git a/docs/studies/005-V0_1_5_HORIZON_REVIEW.md b/docs/studies/005-V0_1_5_HORIZON_REVIEW.md new file mode 100644 index 0000000..189ed87 --- /dev/null +++ b/docs/studies/005-V0_1_5_HORIZON_REVIEW.md @@ -0,0 +1,105 @@ + + + +# Revue d’horizon 0.1.5 — adoption Games après stabilisation des contrats transversaux + +## Objet + +Cette étude clôt la revue d’horizon limitée exigée par le plan `0.1.5`. Elle vérifie si la stabilisation de la sémantique normative, de l’autonomie locale et de la frontière PGR / SaseDev Knowledge révèle un nouveau prérequis avant l’adoption réelle de `sasedev-games`. + +La revue ne cherche pas à prolonger artificiellement la roadmap. Elle réévalue uniquement les dépendances déjà engagées et les faits démontrés pendant `0.1.5`. + +## Contrats acquis en 0.1.5 + +La release candidate s’appuie sur trois contrats désormais réconciliés : + +```text +SHOULD / SHOULD NOT forte recommandation non obligatoire +baseline locale autorité des sessions/releases suivantes +PGR / Knowledge PGR normatif auto-suffisant, Knowledge pratique complémentaire +``` + +La gate `beta.1` confirme qu’aucun nouveau renforcement accidentel de `SHOULD`, aucune dépendance implicite à une version PGR plus récente et aucune dépendance normative vers SaseDev Knowledge ne restent démontrés dans les owners relus. + +## Vérification du prochain prérequis réel + +La trajectoire précédente réserve : + +```text +0.1.6 adoption sasedev-games +0.1.7 adoption khadhroony-solana-project +0.1.8 audits Rust/Clippy read-only +``` + +`0.1.5` n’a révélé aucun owner transversal supplémentaire qui devrait obligatoirement précéder l’adoption Games. + +Les contrats maintenant disponibles suffisent pour engager une adoption proportionnée : + +- classification `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER` ; +- distinction explicite entre obligations `MUST` et recommandations `SHOULD` ; +- baseline locale autonome après adoption ; +- réalignement futur uniquement explicite et fondé sur un snapshot PGR choisi ; +- validation proportionnée au scope réellement applicable ; +- absence de dépendance normative vers Knowledge. + +Décision : **conserver `0.1.6` comme prochaine release et y effectuer l’adoption réelle de `sasedev-games`**. + +## Corpus requis pour 0.1.6 + +La future session `0.1.6` doit disposer de deux baselines autoritaires distinctes : + +1. la stable PGR `v0.1.5` réellement publiée et vérifiée post-tag ; +2. une archive récente et explicitement autoritaire de `sasedev-games`, fournie comme corpus d’adoption. + +Aucun numéro de version Games n’est figé par cette étude. Le corpus Games doit être celui réellement fourni au démarrage de la session ; ne pas reconstruire ou supposer une baseline à partir d’un ancien historique PGR. + +L’absence d’un corpus Games autoritaire empêche de commencer l’adoption réelle, mais n’autorise pas à inventer ses décisions, son architecture ou son applicabilité technologique. + +## Méthode attendue pour l’adoption Games + +`0.1.6` doit commencer par un audit, pas par une réécriture globale. + +Pour chaque règle, profil, skeleton, template ou validation PGR potentiellement applicable, la session doit décider explicitement : + +```text +ADOPT intégré dans la baseline locale Games +KEEP-LOCAL décision Games conservée comme autorité locale +OVERRIDE contradiction réelle avec un MUST PGR applicable, documentée et bornée +DEFER applicable potentiellement mais non justifié dans le scope courant +N/A non applicable au corpus Games observé +``` + +Un simple écart à un `SHOULD / SHOULD NOT` ne constitue pas à lui seul un `OVERRIDE`. + +L’adoption doit préserver les décisions produit et architectures locales qui ne relèvent pas de PGR. Les anciens POCs, technologies historiques ou artefacts expérimentaux ne doivent pas devenir des surfaces applicables uniquement parce qu’ils existent dans l’historique : leur applicabilité doit être démontrée par la baseline Games fournie. + +## Autorité après adoption + +`0.1.6` doit exercer le contrat stabilisé en `0.1.5` : une fois l’adoption matérialisée, les règles, plans, architecture, histories et autres owners locaux de Games deviennent l’autorité des sessions/releases suivantes du projet. + +PGR ne devient pas un upstream documentaire à suivre. Un futur réalignement Games/PGR doit rester une opération explicitement décidée à partir d’un snapshot PGR précis. + +## Trajectoire conservée + +Aucune dépendance nouvelle ne justifie un changement d’ordre : + +```text +0.1.5 sémantique normative + autonomie + frontière PGR/Knowledge +0.1.6 adoption sasedev-games +0.1.7 adoption khadhroony-solana-project +0.1.8 audits Rust/Clippy read-only +``` + +`0.1.7` reste séparée afin que l’adoption KSP soit instruite contre son propre corpus et son propre scope applicable. + +`0.1.8` reste postérieure aux deux adoptions : les audits Rust/Clippy statiques doivent être dérivés de besoins effectivement éprouvés et ne pas être inventés avant les retours d’adoption. + +Aucun `0.1.9` n’est réservé par cette revue. + +## Hors scope de la présente RC + +Cette étude ne commence pas l’adoption Games et ne modifie aucune règle Games. + +Elle ne commence ni l’adoption KSP, ni les audits Rust/Clippy `0.1.8`, ni une migration de contenu vers SaseDev Knowledge. + +Elle ne transforme pas PGR en dépendance des projets adoptés et ne crée aucun mécanisme automatique de suivi de la dernière version PGR. diff --git a/history/0.1.5/rc.1.md b/history/0.1.5/rc.1.md new file mode 100644 index 0000000..2824583 --- /dev/null +++ b/history/0.1.5/rc.1.md @@ -0,0 +1,135 @@ + + + +# History 0.1.5-rc.1 — freeze et revue d’horizon + +## Statut + +FAIL + +La gate opérateur de `0.1.5-rc.1` exécutée le `2026-10-01` valide le freeze fonctionnel, les tests Python, les audits documentaires et le scope Git, mais échoue sur trois assertions textuelles exactes prévues par le delta. Le résultat réel est donc `FAIL` malgré l'absence de défaut normatif démontré. + +## Baseline opérateur + +La tranche `0.1.5-beta.1` et son history `PASS` ont été committés puis publiés avant application de `rc.1` : + +```text +commit beta.1 ec1a296 +push 43ee26b..ec1a296 master -> master +``` + +La version observée pendant la gate est : + +```text +0.1.5-rc.1 +``` + +Les histories précédents conservent la séquence réelle : + +```text +alpha.1 PARTIAL +alpha.1.fix.1 PASS +alpha.2 PASS +alpha.3 PASS +alpha.4 PASS +beta.1 PASS +``` + +Le history `rc.1` était absent pendant la gate. + +## Freeze et handoff acquis + +Les contrôles opérateur ont confirmé notamment : + +- `README.md` révision `33` présente la candidate `0.1.5-rc.1` et conserve `0.1.6` comme prochaine release ; +- `CHANGELOG.md` révision `20` contient l'entrée `0.1.5 (candidate)` sans chronologie de tranches ; +- `ROADMAP.md` révision `18` conserve `0.1.6` Games, `0.1.7` KSP et `0.1.8` audits Rust/Clippy, sans réserver `0.1.9` ; +- `docs/studies/005-V0_1_5_HORIZON_REVIEW.md` et `prompts/012-V0_1_6_START_PROMPT.md` sont présents ; +- le prompt `012` exige une future stable PGR `v0.1.5`, le rapport post-tag uniquement s'il existe réellement avec statut `PASS`, une archive Games autoritaire fournie, puis un intake `0.1.6-alpha.1` avec classification `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A` ; +- `RULES.md`, `210-WORKFLOW.md`, `230-ADOPTION.md`, `300-DOCUMENTATION.md` et `400-VALIDATION.md` restent gelés aux révisions attendues ; +- `history/0.1.4` et les owners normatifs stabilisés pendant les alphas restent byte-stables pendant la RC. + +## Assertions en échec + +Trois commandes exigées par `deltas/0.1.5/rc.1.md` ont été exécutées sans produire de correspondance : + +```text +grep -F 'forte recommandation non obligatoire' CHANGELOG.md +grep -F 'aucun numéro de version Games n’est figé' docs/studies/005-V0_1_5_HORIZON_REVIEW.md +grep -F 'ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A' docs/studies/005-V0_1_5_HORIZON_REVIEW.md +``` + +Le shell a poursuivi les commandes suivantes, mais l'absence de sortie sur ces assertions exactes constitue un échec de gate. + +Le diagnostic est documentaire et borné : + +- le changelog exprime la même sémantique avec la formulation « recommandations fortes non obligatoires », mais pas la chaîne canonique attendue au singulier ; +- l'étude contient « Aucun numéro de version Games n’est figé... » avec une majuscule initiale, alors que la gate recherche la sous-chaîne en minuscule ; +- l'étude présente bien les cinq valeurs de classification dans un bloc, mais ne contient pas encore la forme canonique slash-separated exigée par la gate. + +Aucun de ces trois écarts ne modifie les contrats normatifs acquis ni la décision d'horizon. + +## Frontière delta/history + +Le contrôle structurel a affiché : + +```text +0.1.5 rc.1 history boundary: clean (109 closed prior pairs, current rc.1 pending) +``` + +Il confirme que les releases `0.0.1` à `0.1.4` conservent leurs couples delta/history exacts, que les six tranches précédentes de `0.1.5` sont closes et que `rc.1` était le seul delta courant sans history pendant sa gate. + +## Tests Python + +La suite complète a affiché : + +```text +Ran 55 tests in 0.891s + +OK +``` + +Soit `55/55` tests `PASS`. + +## Audit d'hygiène texte + +L'audit réutilisable a affiché : + +```text +Text hygiene audit: clean (325 file(s)) +``` + +## Audits Markdown + +Les audits documentaires sont propres : + +```text +Markdown header audit: clean (298 file(s)) +Markdown table audit: clean (11 table(s), 298 file(s)) +Markdown link audit: clean (375 local link(s), 298 file(s)) +``` + +## Hygiène Git et scope observé + +`git diff --check` puis `git diff --cached --check` n'ont signalé aucune anomalie. + +Après indexation, le scope observé est exactement : + +```text +M CHANGELOG.md +M README.md +M ROADMAP.md +M VERSION +A deltas/0.1.5/rc.1.md +M docs/000-README.md +M docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md +M docs/studies/000-README.md +A docs/studies/005-V0_1_5_HORIZON_REVIEW.md +A prompts/012-V0_1_6_START_PROMPT.md +``` + +## Décision + +`0.1.5-rc.1` est historisée `FAIL` parce que trois assertions contractuelles de la gate ont échoué. + +La correction doit rester limitée à la présentation documentaire et à la traçabilité du correctif. Aucun owner normatif ne doit être rouvert et `rel.1` ne doit pas commencer avant un `0.1.5-rc.1.fix.1` validé `PASS`. diff --git a/prompts/012-V0_1_6_START_PROMPT.md b/prompts/012-V0_1_6_START_PROMPT.md new file mode 100644 index 0000000..df81c90 --- /dev/null +++ b/prompts/012-V0_1_6_START_PROMPT.md @@ -0,0 +1,87 @@ + + + +# Prompt de démarrage 0.1.6 — adoption réelle de PGR par sasedev-games + +## Baselines et cible + +Dépôt canonique PGR : `https://git.sasedev.com/Sasedev/pgr`. + +La baseline PGR attendue au démarrage effectif de `0.1.6` est l’archive source téléchargée depuis le tag Gitea `v0.1.5`, accompagnée du rapport post-tag `pgr-0.1.5-publish.001-report.md` uniquement si ce rapport a réellement été produit avec statut `PASS`. + +La session doit également recevoir une archive récente et explicitement autoritaire de `sasedev-games`. Le présent prompt ne fixe volontairement aucun numéro Games : utiliser la baseline réellement fournie et ne pas reconstruire une version depuis d’anciens documents PGR. + +Version cible PGR : `0.1.6`. Première tranche attendue : `0.1.6-alpha.1`. + +Une archive source de tag peut légitimement ne pas contenir `.git`. Ne pas lui attribuer une preuve Git qu’elle ne peut contenir. + +## Mission + +Exercer réellement le modèle d’adoption PGR contre `sasedev-games`, sans transformer PGR en upstream permanent du projet et sans généraliser les décisions propres à Games. + +L’objectif est de produire une cartographie explicite `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A`, puis de matérialiser uniquement les changements réellement justifiés dans la baseline locale Games. + +La décision de trajectoire autoritaire est enregistrée dans [`../docs/studies/005-V0_1_5_HORIZON_REVIEW.md`](../docs/studies/005-V0_1_5_HORIZON_REVIEW.md). + +## Intake obligatoire + +Avant toute modification : + +- vérifier intégralement la stable PGR `v0.1.5` et le rapport post-tag réellement fourni ; +- vérifier intégralement l’archive Games fournie et identifier sa version/baseline autoritaire réelle ; +- relire `RULES.md`, `docs/rules/200-GOVERNANCE.md`, `210-WORKFLOW.md`, `220-SKELETONS.md`, `230-ADOPTION.md`, `300-DOCUMENTATION.md` et `400-VALIDATION.md` ; +- relire `docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md`, `docs/templates/007-EXISTING_PROJECT_ADOPTION.md` et les profils techniques réellement applicables au corpus Games observé ; +- relire le plan historique `011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md` et la revue d’horizon `005-V0_1_5_HORIZON_REVIEW.md` ; +- vérifier les deltas/histories `0.1.5` sans réécrire la vérité opérateur, notamment `alpha.1 PARTIAL` puis `alpha.1.fix.1 PASS` ; +- vérifier que la première tranche préparée est bien `0.1.6-alpha.1`. + +## Contrat d’adoption + +L’audit doit classifier chaque écart réellement pertinent : + +```text +ADOPT règle/artefact PGR retenu pour la baseline locale Games +KEEP-LOCAL décision Games existante conservée comme autorité locale +OVERRIDE contradiction réelle et documentée avec un MUST PGR applicable +DEFER sujet potentiellement applicable mais non justifié dans le scope courant +N/A owner/profil non applicable au corpus Games observé +``` + +Un écart à un `SHOULD / SHOULD NOT` ne crée pas à lui seul un `OVERRIDE` et ne doit pas être traité comme une non-conformité. + +Ne pas forcer l’adoption d’un profil uniquement parce qu’il existe dans PGR. L’applicabilité doit être démontrée par la baseline Games réellement fournie. + +## Autorité locale après adoption + +PGR sert de snapshot de comparaison et d’adoption. Une fois la baseline locale Games établie, cette baseline et ses owners deviennent l’autorité des sessions/releases suivantes de `sasedev-games`. + +Les sessions Games ultérieures ne doivent pas rechercher automatiquement « la dernière version de PGR » ni traiter PGR comme un upstream documentaire permanent. + +Un futur réalignement reste possible uniquement comme opération explicitement décidée à partir d’un snapshot PGR précis. + +## Préservation du contexte Games + +Les décisions produit, architectures métier, POCs et contraintes propres à Games restent locales lorsqu’elles ne relèvent pas d’un contrat PGR générique. + +Ne pas promouvoir automatiquement un ancien POC, une technologie historique ou un artefact expérimental au rang de surface produit/applicable. La baseline Games fournie doit démontrer son rôle courant. + +Ne pas supprimer ou réécrire une décision locale uniquement pour obtenir une symétrie avec PGR. + +## Hors scope + +`0.1.6` ne doit pas : + +- commencer l’adoption de `khadhroony-solana-project`, réservée à `0.1.7` ; +- commencer les audits Rust/Clippy read-only, réservés à `0.1.8` ; +- rouvrir les contrats transversaux de `0.1.5` sans contradiction réelle démontrée par l’adoption Games ; +- rendre Games dépendant de PGR ou de SaseDev Knowledge ; +- généraliser dans PGR des choix Games uniquement parce qu’ils sont présents dans le corpus ; +- fabriquer un corpus, une version Games ou une preuve runtime absente de l’archive fournie. + +## Première tranche attendue + +`0.1.6-alpha.1` doit être une tranche d’intake et de cartographie : vérifier les deux baselines, inventorier les surfaces Games réelles, déterminer les profils PGR applicables, produire la classification `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A`, proposer le plan de release et identifier les owners exacts à modifier. + +Elle ne doit pas effectuer une migration massive avant cette cartographie. + +La validation doit rester proportionnée au corpus Games réellement applicable et conserver séparées les preuves PGR, les preuves Games et les décisions d’adoption.