0.0.5-alpha.7

This commit is contained in:
2026-09-25 11:45:10 +02:00
parent 4e1c1cd6f0
commit ac03b78708
8 changed files with 398 additions and 28 deletions

108
history/0.0.5/alpha.7.md Normal file
View File

@@ -0,0 +1,108 @@
<!-- file: history/0.0.5/alpha.7.md -->
<!-- version: 1 -->
# History 0.0.5-alpha.7 — profil Rust strict et nomenclature initiale
## Statut
FAIL
La gate mécanique de `0.0.5-alpha.7` exécutée le `2026-09-25` est propre : tests, audits Markdown, contrôle structurel ciblé et scope Git passent. La revue fonctionnelle opérateur qui suit révèle toutefois que la nomenclature matérialisée reste incomplète : les suffixes de crates ne portent pas encore explicitement leurs contrats architecturaux, la séparation package bibliothèque / package binaire n'est pas cadrée, et l'ownership du logging/tracing n'est pas généralisé alors que KSP et Games fournissent des preuves suffisamment convergentes.
La tranche est donc enregistrée `FAIL` malgré son gate mécanique vert. La correction appartient à `alpha.7.fix.1` ; aucun REPLAN de release n'est nécessaire.
## Baseline et version
La tranche part du commit opérateur de `0.0.5-alpha.6.fix.3` :
```text
4e1c1cd 0.0.5-alpha.6.fix.3
```
Le push vers `origin/master` a réussi avant l'application de `alpha.7`.
La version contrôlée après application est :
```text
0.0.5-alpha.7
```
`history/0.0.5/alpha.6.fix.3.md` est présent avec statut `PASS`, `deltas/0.0.5/alpha.7.md` est présent et `history/0.0.5/alpha.7.md` était absent pendant la gate.
## Validation opérateur observée
L'opérateur a fourni les sorties du `2026-09-25` depuis `~/Projects/pgr`, à `10:47:34`–`11:15:53`.
Les révisions contrôlées sont :
```text
docs/rules/510-RUST_CARGO.md version 5
docs/skeletons/002-RUST_CARGO_WORKSPACE.md version 3
docs/templates/002-CARGO_MANIFESTS.md version 2
docs/studies/001-KSP_GAMES_RECONCILIATION.md version 8
docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md version 9
```
La suite Python globale a exécuté `37` tests, tous réussis :
```text
Ran 37 tests in 0.492s
OK
```
Les audits documentaires sont propres :
```text
Markdown header audit: clean (154 file(s))
Markdown table audit: clean (7 table(s), 154 file(s))
Markdown link audit: clean (150 local link(s), 154 file(s))
```
Le contrôle structurel spécifique affiche :
```text
0.0.5 alpha.7 strict Rust profile audit: clean (explicit paths, crate-root facade, controlled naming, alpha.8 formatting deferred)
```
`git diff --check` et `git diff --cached --check` ne produisent aucun diagnostic.
Le scope Git observé avant ajout du présent history est exactement :
```text
M VERSION
A deltas/0.0.5/alpha.7.md
M docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
M docs/rules/510-RUST_CARGO.md
M docs/skeletons/002-RUST_CARGO_WORKSPACE.md
M docs/studies/001-KSP_GAMES_RECONCILIATION.md
M docs/templates/002-CARGO_MANIFESTS.md
```
## Écart fonctionnel découvert après gate
La clarification opérateur impose un sens architectural aux noms de crates :
- une crate `-api` doit être un contrat réellement séparé, principalement passif ; elle n'est pas créée si une seule implémentation suffit ;
- une crate `-lib` porte une implémentation/fonctionnalité réutilisable ;
- les exécutables doivent normalement vivre dans des packages séparés et composer les libs au lieu de mélanger binaire et bibliothèque ;
- Tauri constitue l'exception actuelle et doit alors déclarer des targets lib/bin de noms distincts ;
- `tracing` est préféré à `log` pour les diagnostics structurés et un owner transverse de logging doit éviter la duplication de subscriber/sinks/lifecycle dans les workspaces multi-runtime.
La relecture des corpus confirme ce besoin. KSP encode déjà la séparation `-api` / `-lib`, interdit les APIs créées par symétrie et centralise le tracing dans `ksp-logging-lib`. Games sépare ses launchers de ses libs et centralise également la configuration tracing. Une ancienne préférence KSP pour un package worker mixte lib/bin est explicitement rejetée comme règle PGR générale au profit de la clarification actuelle.
## Résultat
`alpha.7` a correctement rétabli le profil Rust strict sur les chemins, imports, façade et contrôle de flux, mais son contrat de nomenclature/packaging reste incomplet. La correction est bornée et n'affecte pas la trajectoire `alpha.8` formatage puis `alpha.9` skeleton Tauri.
## Transition
Appliquer le présent history puis committer et pousser `0.0.5-alpha.7`.
La tranche suivante est :
```text
0.0.5-alpha.7.fix.1
```
Elle complète uniquement les contrats de suffixes, la séparation lib/bin, l'ownership du tracing et l'exception Tauri. Les règles de blocs/espacement/ordre restent hors scope jusqu'à `alpha.8`.