0.1.4-beta.1

This commit is contained in:
2026-09-29 15:07:38 +02:00
parent e4f405ea9d
commit 091685af50
6 changed files with 386 additions and 6 deletions

View File

@@ -1 +1 @@
0.1.4-alpha.3 0.1.4-beta.1

189
deltas/0.1.4/beta.1.md Normal file
View File

@@ -0,0 +1,189 @@
<!-- file: deltas/0.1.4/beta.1.md -->
<!-- version: 1 -->
# Delta 0.1.4-beta.1 — réconciliation des artefacts Tauri
## Objet
Fermer la phase de conception Tauri de `0.1.4` en réconciliant les artefacts matérialisés, en vérifiant leurs owners et en décidant explicitement de ne pas créer de template technique Tauri, de contrat de validation Tauri séparé ou de dry-run factice en l'absence de lacune démontrée.
## Préconditions
- `0.1.4-alpha.3` est validée `PASS` et son history est présent ;
- `docs/skeletons/004-TAURI.md` est matérialisé ;
- `docs/rules/710-TAURI.md` reste l'owner Tauri en révision interne `7` ;
- aucun `docs/templates/011-TAURI.md` ni `docs/validation/006-TAURI_VALIDATION.md` n'existe ;
- les archives delta/history restent relatives directement à la racine du dépôt.
## Modifications
- `VERSION` passe à `0.1.4-beta.1` ;
- `docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md` passe en révision `4` et enregistre la gate `alpha.3` ainsi que les décisions d'artefacts de `beta.1` ;
- `docs/studies/002-TAURI_SKELETON_DECISION.md` passe en révision `4` et ferme explicitement la décision sur template, validation séparée et dry-run ;
- `docs/000-README.md` passe en révision `44` et indexe l'état `beta.1` ;
- aucun nouvel owner, template ou contrat de validation Tauri n'est créé.
## Décision attendue
```text
004-TAURI.md KEEP
template technique Tauri générique DO NOT CREATE
006-TAURI_VALIDATION.md DO NOT CREATE
dry-run exécutable d'un faux projet NOT REQUIRED
audit statique de composition REQUIRED
```
L'absence d'artefact supplémentaire est une décision positive : un fichier nouveau n'est justifié que s'il possède une responsabilité réutilisable non déjà couverte.
## Gate opérateur
```bash
cat VERSION
test -f history/0.1.4/alpha.3.md
grep -A2 '^## Statut$' history/0.1.4/alpha.3.md | grep -Fx 'PASS'
test -f docs/skeletons/004-TAURI.md
test ! -e docs/templates/011-TAURI.md
test ! -e docs/validation/006-TAURI_VALIDATION.md
test ! -e history/0.1.4/beta.1.md
python3 -B -m unittest discover -s tests -v
python3 -B scripts/audit_text_hygiene.py \
VERSION README.md RULES.md ROADMAP.md CHANGELOG.md \
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
python3 -B - <<'PY'
from pathlib import Path
import re
assert Path('VERSION').read_text(encoding='utf-8').strip() == '0.1.4-beta.1'
history = Path('history/0.1.4/alpha.3.md').read_text(encoding='utf-8')
assert re.search(r'## Statut\s+PASS', history)
expected_deltas = {
'alpha.1.md',
'alpha.2.md',
'alpha.2.fix.1.md',
'alpha.3.md',
'beta.1.md',
}
expected_histories = {
'alpha.1.md',
'alpha.2.md',
'alpha.2.fix.1.md',
'alpha.3.md',
}
assert {p.name for p in Path('deltas/0.1.4').glob('*.md')} == expected_deltas
assert {p.name for p in Path('history/0.1.4').glob('*.md')} == expected_histories
plan = Path('docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md').read_text(encoding='utf-8')
assert plan.startswith(
'<!-- file: docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md -->\n'
'<!-- version: 4 -->'
)
for phrase in (
'## Gate `alpha.3` acquise',
"## Réconciliation d'artefacts préparée en `beta.1`",
'template technique Tauri générique DO NOT CREATE',
'006-TAURI_VALIDATION.md DO NOT CREATE',
"dry-run exécutable d'un faux projet NOT REQUIRED",
'audit statique de composition REQUIRED',
):
assert phrase in plan, phrase
study = Path('docs/studies/002-TAURI_SKELETON_DECISION.md').read_text(encoding='utf-8')
assert study.startswith(
'<!-- file: docs/studies/002-TAURI_SKELETON_DECISION.md -->\n'
'<!-- version: 4 -->'
)
for phrase in (
'## Réconciliation finale des artefacts `0.1.4-beta.1`',
'Décision : **DO NOT CREATE**.',
'Décision : **NOT REQUIRED** pour `0.1.4-beta.1`.',
'004-TAURI.md KEEP',
'template Tauri générique DO NOT CREATE',
'validation Tauri séparée DO NOT CREATE',
'artefact supplémentaire sans lacune réelle FORBIDDEN BY DEFAULT',
):
assert phrase in study, phrase
skeleton = Path('docs/skeletons/004-TAURI.md').read_text(encoding='utf-8')
for ref in (
'001-PROJECT_GOVERNANCE_FOUNDATION',
'002-RUST_CARGO_WORKSPACE',
'003-WEB_FRONTEND',
'710 TAURI',
):
assert ref in skeleton, ref
for path in (
'docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md',
'docs/skeletons/002-RUST_CARGO_WORKSPACE.md',
'docs/skeletons/003-WEB_FRONTEND.md',
'docs/rules/710-TAURI.md',
'docs/validation/005-WEB_FRONTEND_VALIDATION.md',
):
assert Path(path).is_file(), path
assert not Path('docs/templates/011-TAURI.md').exists()
assert not Path('docs/validation/006-TAURI_VALIDATION.md').exists()
assert not Path('history/0.1.4/beta.1.md').exists()
index = Path('docs/000-README.md').read_text(encoding='utf-8')
assert index.startswith(
'<!-- file: docs/000-README.md -->\n'
'<!-- version: 44 -->'
)
assert '`004-TAURI.md` suffit' in index
roadmap = Path('ROADMAP.md').read_text(encoding='utf-8')
for phrase in (
'`( ) 0.1.4`',
'`( ) 0.1.5` — adoption réelle de PGR par `sasedev-games`',
'`( ) 0.1.6` — adoption réelle de PGR par `khadhroony-solana-project`',
'`( ) 0.1.7` — audits Python read-only',
):
assert phrase in roadmap, phrase
assert '0.1.8' not in roadmap
print(
'0.1.4 beta.1 artifact audit: clean '
'(004 sufficient, ownership composed, no redundant template/validation contract, no fake dry-run)'
)
PY
git diff --check
git add VERSION \
deltas/0.1.4/beta.1.md \
docs/000-README.md \
docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md \
docs/studies/002-TAURI_SKELETON_DECISION.md
git diff --cached --check
git status --short
```
## Scope Git attendu
```text
M VERSION
A deltas/0.1.4/beta.1.md
M docs/000-README.md
M docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md
M docs/studies/002-TAURI_SKELETON_DECISION.md
```
## Suite
Si la gate est `PASS`, produire `history/0.1.4/beta.1.md`, committer/pousser la tranche puis préparer `rc.1` avec freeze Tauri, changelog candidate et revue d'horizon transversale avant génération du prochain start prompt.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/000-README.md --> <!-- file: docs/000-README.md -->
<!-- version: 43 --> <!-- version: 44 -->
# Documentation PGR # Documentation PGR
@@ -22,11 +22,11 @@ Les templates techniques copiables sous `templates/` restent séparés des instr
## Points d'entrée de 0.1.4 ## Points d'entrée de 0.1.4
- [`plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md`](plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md) — plan actif du réexamen Tauri : audit des hosts Games/KSP actuels, classification `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER`, décision contrôlée sur le skeleton et séquencement jusqu'à la stable. - [`plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md`](plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md) — plan actif du réexamen Tauri : skeleton `004` matérialisé, réconciliation d'artefacts `beta.1`, freeze RC et revue d'horizon avant la stable.
- [`rules/710-TAURI.md`](rules/710-TAURI.md) — owner Tauri 2 réconcilié en `alpha.2` : host/orchestration, frontière commandes-permissions-capabilities, sélection des capabilities, plugins, version produit et validation proportionnée, sans absorber les choix Web. - [`rules/710-TAURI.md`](rules/710-TAURI.md) — owner Tauri 2 réconcilié en `alpha.2` : host/orchestration, frontière commandes-permissions-capabilities, sélection des capabilities, plugins, version produit et validation proportionnée, sans absorber les choix Web.
- [`skeletons/003-WEB_FRONTEND.md`](skeletons/003-WEB_FRONTEND.md) — specialization Web composable dont l'existence satisfait les prérequis historiques sans rendre Vite, TypeScript, Sass, Bootstrap ou `frontend/` universels à Tauri. - [`skeletons/003-WEB_FRONTEND.md`](skeletons/003-WEB_FRONTEND.md) — specialization Web composable dont l'existence satisfait les prérequis historiques sans rendre Vite, TypeScript, Sass, Bootstrap ou `frontend/` universels à Tauri.
- [`skeletons/004-TAURI.md`](skeletons/004-TAURI.md) — skeleton Tauri 2 matérialisé en `alpha.3`, composant fondation, Rust/Cargo, Web et owner `710` sans template technique universel ni copie des choix Games/KSP. - [`skeletons/004-TAURI.md`](skeletons/004-TAURI.md) — skeleton Tauri 2 matérialisé en `alpha.3`, composant fondation, Rust/Cargo, Web et owner `710` sans template technique universel ni copie des choix Games/KSP.
- [`studies/002-TAURI_SKELETON_DECISION.md`](studies/002-TAURI_SKELETON_DECISION.md) — décision historique `DEFER` et réexamen `0.1.4-alpha.2` : motif Web levé, candidat organisationnel retenu pour matérialisation contrôlée en `alpha.3`. - [`studies/002-TAURI_SKELETON_DECISION.md`](studies/002-TAURI_SKELETON_DECISION.md) — décision historique `DEFER`, levée du motif Web puis décision `beta.1` : `004-TAURI.md` suffit ; aucun template technique ni contrat de validation Tauri séparé n'est justifié.
- [`../prompts/010-V0_1_4_START_PROMPT.md`](../prompts/010-V0_1_4_START_PROMPT.md) — contrat de reprise exécuté pour ouvrir `0.1.4-alpha.1` après publication vérifiée de `v0.1.3`. - [`../prompts/010-V0_1_4_START_PROMPT.md`](../prompts/010-V0_1_4_START_PROMPT.md) — contrat de reprise exécuté pour ouvrir `0.1.4-alpha.1` après publication vérifiée de `v0.1.3`.
## Points d'entrée de 0.1.3 ## Points d'entrée de 0.1.3

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md --> <!-- file: docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md -->
<!-- version: 3 --> <!-- version: 4 -->
# Plan 0.1.4 — réexamen Tauri et skeleton contrôlé # Plan 0.1.4 — réexamen Tauri et skeleton contrôlé
@@ -274,6 +274,42 @@ Après cette gate, un défaut distinct de livraison a été identifié : deux ar
Aucun template technique Tauri n'est créé : `tauri.conf.json`, les manifests, capability files et sources Tauri restent trop dépendants des décisions du projet pour justifier une baseline copiable universelle à ce stade. Cette décision sera réexaminée en `beta.1` conformément au plan. Aucun template technique Tauri n'est créé : `tauri.conf.json`, les manifests, capability files et sources Tauri restent trop dépendants des décisions du projet pour justifier une baseline copiable universelle à ce stade. Cette décision sera réexaminée en `beta.1` conformément au plan.
## Gate `alpha.3` acquise
La gate opérateur de `alpha.3` est `PASS` : `55/55` tests, audit d'hygiène texte propre sur `300` fichiers, audits Markdown propres, audit structurel du skeleton propre et scope Git conforme. `docs/skeletons/004-TAURI.md` est donc la specification Tauri active pour la suite de `0.1.4`.
Aucun template technique Tauri ni contrat `006-TAURI_VALIDATION.md` n'a été créé. Le contrat ZIP racine est désormais explicite dans `210-WORKFLOW.md`.
## Réconciliation d'artefacts préparée en `beta.1`
Le réexamen de l'ensemble `710 + 004 + 003 + 005` ne met en évidence aucune responsabilité Tauri sans owner :
```text
host / orchestration / ACL / plugins 710-TAURI.md
instanciation et décisions de composition 004-TAURI.md
frontend 003-WEB_FRONTEND.md + owners Web
validation frontend 005-WEB_FRONTEND_VALIDATION.md
validation Rust / plateforme owners correspondants
workflow de gate 400-VALIDATION.md + matrice 001
```
Décisions préparées pour la gate `beta.1` :
```text
004-TAURI.md KEEP
template technique Tauri générique DO NOT CREATE
006-TAURI_VALIDATION.md DO NOT CREATE
catalogue plugins/capabilities DO NOT CREATE
dry-run exécutable d'un faux projet NOT REQUIRED
audit statique de composition REQUIRED
```
Un template technique créerait nécessairement des identifiants, hooks frontend, capabilities, plugins, fenêtres, bundle targets ou valeurs de plateforme arbitraires. Le skeleton possède précisément ces décisions afin de les laisser au projet destinataire.
Un contrat de validation Tauri séparé dupliquerait `710`, `004`, `005` et les owners Rust/plateforme. Une nouvelle famille de validation ne sera justifiée que lorsqu'une preuve Tauri répétitive non correctement possédée par ces documents apparaîtra dans un corpus réel.
Le dry-run exécutable d'un projet factice n'est pas requis pour valider une specification qui ne fournit volontairement aucun scaffold technique. La preuve pertinente en `beta.1` est une vérification statique de composition : références existantes, ownership non dupliqué, décisions visibles, absence de placeholders et absence d'artefacts créés par symétrie.
## Point transversal découvert pendant la gate `alpha.1` ## Point transversal découvert pendant la gate `alpha.1`
L'utilisation de PGR pour initialiser SaseDev Knowledge a fait apparaître trois questions de gouvernance qui dépassent le domaine Tauri : L'utilisation de PGR pour initialiser SaseDev Knowledge a fait apparaître trois questions de gouvernance qui dépassent le domaine Tauri :

View File

@@ -1,5 +1,5 @@
<!-- file: docs/studies/002-TAURI_SKELETON_DECISION.md --> <!-- file: docs/studies/002-TAURI_SKELETON_DECISION.md -->
<!-- version: 3 --> <!-- version: 4 -->
# Décision de skeleton Tauri pour projets contrôlés # Décision de skeleton Tauri pour projets contrôlés
@@ -296,3 +296,62 @@ Le réexamen ne démontre toujours pas le besoin de créer en `alpha.2` :
- un owner iOS, serveur Rust ou deployment/operations par proximité. - un owner iOS, serveur Rust ou deployment/operations par proximité.
Ces décisions restent à réévaluer après matérialisation de la specification, conformément au plan `0.1.4`. Ces décisions restent à réévaluer après matérialisation de la specification, conformément au plan `0.1.4`.
## Réconciliation finale des artefacts `0.1.4-beta.1`
La matérialisation de `docs/skeletons/004-TAURI.md` en `alpha.3` permet de vérifier la frontière entre specification organisationnelle, owner Tauri, owners Web et validations existantes.
### Couverture obtenue
La composition active est :
```text
001-PROJECT_GOVERNANCE_FOUNDATION
+ 002-RUST_CARGO_WORKSPACE
+ 003-WEB_FRONTEND si applicable
+ 710-TAURI
+ 004-TAURI
+ profils plateforme réellement ciblés
```
`004-TAURI.md` ne recopie pas les règles de ces owners. Il possède les décisions d'instanciation et renvoie les contraintes détaillées à leurs documents respectifs.
### Template technique Tauri
Décision : **DO NOT CREATE**.
Aucun ensemble de fichiers Tauri (`Cargo.toml`, `build.rs`, `tauri.conf.json`, capability files, `src/tauri.rs`) ne peut être rendu générique sans choisir prématurément au moins une partie des éléments suivants : nom du host, hooks frontend, ports/URLs, capabilities, permissions, plugins, fenêtres, identifiers, resources, bundle targets ou plateformes.
Les templates Rust/Cargo et Web existants possèdent déjà les parties réellement réutilisables. Un futur template Tauri reste possible uniquement après démonstration d'un sous-ensemble répétitif non arbitraire dans plusieurs instanciations réelles.
### Contrat de validation Tauri séparé
Décision : **DO NOT CREATE**.
La preuve nécessaire est déjà composable :
- Rust/Cargo par les owners Rust et la matrice de validation ;
- frontend par `005-WEB_FRONTEND_VALIDATION.md` ;
- intégration Tauri, ACL, hooks et packaging par `710-TAURI.md` et la gate initiale de `004-TAURI.md` ;
- plateformes mobiles par leurs profils applicables.
Créer `docs/validation/006-TAURI_VALIDATION.md` aujourd'hui dupliquerait ces responsabilités sans lacune démontrée.
### Dry-run local
Décision : **NOT REQUIRED** pour `0.1.4-beta.1`.
Le skeleton est une specification et ne fournit pas de scaffold exécutable. Créer un faux projet uniquement pour obtenir un lancement Tauri introduirait précisément les valeurs arbitraires que la specification cherche à éviter. Les sept hosts Games/KSP déjà audités fournissent le corpus d'implémentation ; `beta.1` doit vérifier statiquement que la specification les abstrait sans copier leurs choix locaux.
### Décision active après `beta.1`
```text
DEFER historique Web LIFT
004-TAURI.md KEEP
template Tauri générique DO NOT CREATE
validation Tauri séparée DO NOT CREATE
dry-run factice NOT REQUIRED
artefact supplémentaire sans lacune réelle FORBIDDEN BY DEFAULT
```
La prochaine étape est la RC : freeze du scope Tauri, préparation du changelog candidate et revue d'horizon transversale avant tout prompt de release suivante.

96
history/0.1.4/beta.1.md Normal file
View File

@@ -0,0 +1,96 @@
<!-- file: history/0.1.4/beta.1.md -->
<!-- version: 1 -->
# History 0.1.4-beta.1 — réconciliation des artefacts Tauri
## Statut
PASS
La gate opérateur de `0.1.4-beta.1` exécutée le `2026-09-29` est propre. Elle confirme que le skeleton Tauri `004` et les owners existants suffisent, qu'aucun template technique Tauri ni contrat de validation séparé n'est justifié et qu'aucun dry-run factice n'est nécessaire pour une specification volontairement non génératrice.
## Baseline opérateur
La tranche précédente a été clôturée, committée puis publiée avant application de `beta.1` :
```text
commit alpha.3 e4f405e
push 9b140e8..e4f405e master -> master
```
La version observée pendant la gate est :
```text
0.1.4-beta.1
```
Les contrôles préalables ont confirmé `history/0.1.4/alpha.3.md` présent avec statut `PASS`, `docs/skeletons/004-TAURI.md` présent, l'absence de `docs/templates/011-TAURI.md`, l'absence de `docs/validation/006-TAURI_VALIDATION.md` et l'absence du présent history pendant la gate.
## Tests Python
La suite complète a affiché :
```text
Ran 55 tests in 0.935s
OK
```
Soit `55/55` tests `PASS`.
## Audit d'hygiène texte
L'audit réutilisable a affiché :
```text
Text hygiene audit: clean (302 file(s))
```
La gate confirme donc LF, absence de whitespace terminal, newline finale unique et absence de ligne vide terminale surnuméraire sur le corpus sélectionné.
## Audits Markdown
Les audits documentaires sont propres :
```text
Markdown header audit: clean (275 file(s))
Markdown table audit: clean (11 table(s), 275 file(s))
Markdown link audit: clean (352 local link(s), 275 file(s))
```
## Audit structurel `beta.1`
Le contrôle structurel a affiché :
```text
0.1.4 beta.1 artifact audit: clean (004 sufficient, ownership composed, no redundant template/validation contract, no fake dry-run)
```
Il confirme notamment :
- les quatre deltas antérieurs `alpha.1`, `alpha.2`, `alpha.2.fix.1` et `alpha.3` possèdent leurs histories ;
- `beta.1.md` est le seul delta `0.1.4` encore sans history pendant la gate ;
- `docs/skeletons/004-TAURI.md` compose les owners existants sans ownership caché ;
- `docs/templates/011-TAURI.md` et `docs/validation/006-TAURI_VALIDATION.md` restent absents ;
- la décision d'artefacts est explicitement `KEEP / DO NOT CREATE / NOT REQUIRED` selon le besoin réel ;
- la roadmap reste encore inchangée pendant `beta.1`, la revue d'horizon transversale étant réservée à `rc.1`.
## Hygiène Git et scope observé
`git diff --check` et `git diff --cached --check` n'ont produit aucun diagnostic.
Le scope indexé observé est exactement :
```text
M VERSION
A deltas/0.1.4/beta.1.md
M docs/000-README.md
M docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md
M docs/studies/002-TAURI_SKELETON_DECISION.md
```
## Décision
`0.1.4-beta.1` est validée `PASS`.
`rc.1` peut maintenant geler le domaine Tauri, préparer le changelog candidat et exécuter la revue d'horizon explicitement requise par le plan. Cette revue doit décider avant génération du prochain start prompt si la clarification de `SHOULD`, l'autonomie des projets après adoption PGR et la frontière future PGR / SaseDev Knowledge imposent une release de gouvernance avant les adoptions Games/KSP.