0.1.4-alpha.2
This commit is contained in:
214
deltas/0.1.4/alpha.2.md
Normal file
214
deltas/0.1.4/alpha.2.md
Normal file
@@ -0,0 +1,214 @@
|
||||
<!-- file: deltas/0.1.4/alpha.2.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.1.4-alpha.2 — réconciliation normative Tauri
|
||||
|
||||
## Objet
|
||||
|
||||
Réconcilier l'owner Tauri `710` et l'étude historique `002` à partir du cadrage `alpha.1` validé, sans matérialiser encore le skeleton `004-TAURI.md`.
|
||||
|
||||
La tranche sépare explicitement les responsabilités Tauri des choix Web déjà possédés par les owners `530/540/550/560`, précise la frontière commande / permission / capability et rend la politique de sélection des capability files visible comme décision de sécurité.
|
||||
|
||||
## Précondition
|
||||
|
||||
Le history `history/0.1.4/alpha.1.md` doit être présent avec statut `PASS` avant application de ce delta.
|
||||
|
||||
`alpha.1` a validé :
|
||||
|
||||
```text
|
||||
48 / 48 tests PASS
|
||||
Markdown headers: clean (266 file(s))
|
||||
Markdown tables: clean (11 table(s), 266 file(s))
|
||||
Markdown links: clean (343 local link(s), 266 file(s))
|
||||
0.1.4 alpha.1 structural audit: clean (96 prior pairs, 7 current Tauri hosts classified, no premature skeleton/adoption)
|
||||
```
|
||||
|
||||
## Réconciliation de `710-TAURI.md`
|
||||
|
||||
La révision interne passe de `6` à `7`.
|
||||
|
||||
La convention contrôlée est recentrée sur ce que Tauri possède réellement :
|
||||
|
||||
- host Cargo direct `lib + bin` recommandé pour une nouvelle baseline PGR contrôlée ;
|
||||
- `src-tauri/` reste un layout Tauri supporté et n'est pas déclaré invalide ;
|
||||
- `build.rs`, configuration Tauri, capabilities, assemblage Rust, hooks et packaging restent dans le scope Tauri ;
|
||||
- la racine frontend est un point de composition, pas un choix possédé par `710` ;
|
||||
- TypeScript, Vite, CSS/Sass, framework CSS et package manager restent possédés par leurs owners Web ;
|
||||
- TS-RS devient un choix conditionnel de frontière typée plutôt qu'une obligation Tauri générale ;
|
||||
- aucun template technique n'est créé.
|
||||
|
||||
La frontière de sécurité distingue désormais :
|
||||
|
||||
```text
|
||||
commande enregistrée
|
||||
permission ACL + scopes
|
||||
capability assignant les permissions aux fenêtres/webviews
|
||||
```
|
||||
|
||||
La tranche exige une décision explicite sur la sélection des capabilities. Elle enregistre le comportement Tauri 2 courant : si `app.security.capabilities` est absent ou vide, les capability files du répertoire `capabilities/` sont inclus par défaut ; une liste explicite permet de sélectionner ceux qui participent au build.
|
||||
|
||||
L'ajout d'un capability file sous auto-inclusion devient donc explicitement une modification de surface de sécurité. La revue doit également considérer le cumul des droits lorsqu'une fenêtre/webview appartient à plusieurs capabilities.
|
||||
|
||||
## Révision de l'étude `002`
|
||||
|
||||
La révision interne passe de `2` à `3`.
|
||||
|
||||
La décision `DEFER` de `0.0.5-alpha.9` reste conservée comme preuve historique mais n'est plus la décision active :
|
||||
|
||||
```text
|
||||
motif Web historique LIFT
|
||||
candidat organisationnel ADOPT FOR MATERIALIZATION
|
||||
matérialisation pendant alpha.2 NO
|
||||
matérialisation visée alpha.3
|
||||
```
|
||||
|
||||
Le corpus courant reste `1` host Games `0.3.6` + `6` hosts KSP `0.3.19`. La future specification doit composer fondation + Rust/Cargo + Web applicable + Tauri + plateformes ciblées, sans recopier les owners.
|
||||
|
||||
## Mise à jour du plan et de l'index
|
||||
|
||||
`docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md` passe en révision `2` et enregistre :
|
||||
|
||||
- la gate `alpha.1 PASS` ;
|
||||
- les décisions normatives préparées pour `alpha.2` ;
|
||||
- l'autorisation conditionnelle de matérialiser `004-TAURI.md` en `alpha.3` ;
|
||||
- le point transversal découvert lors de l'utilisation de PGR avec SaseDev Knowledge : sémantique `SHOULD`, autonomie post-adoption et future séparation PGR/Knowledge ;
|
||||
- l'obligation de reprendre ce point lors de la revue d'horizon de fermeture avant de générer le prompt suivant.
|
||||
|
||||
`docs/000-README.md` passe en révision `42` pour refléter l'état réconcilié du profil et de l'étude.
|
||||
|
||||
`ROADMAP.md` et `CHANGELOG.md` restent inchangés. La trajectoire publiée `0.1.5` Games / `0.1.6` KSP / `0.1.7` audits Rust n'est pas réécrite avant la revue d'horizon prévue en fermeture de `0.1.4`.
|
||||
|
||||
## Frontières
|
||||
|
||||
Cette tranche MUST NOT :
|
||||
|
||||
- créer `docs/skeletons/004-TAURI.md` ;
|
||||
- créer un template `tauri.conf.json`, `build.rs` ou capability générique ;
|
||||
- créer un contrat `docs/validation/*TAURI*` séparé ;
|
||||
- modifier `RULES.md` ou `230-ADOPTION.md` pour traiter dès maintenant le point transversal `SHOULD`/autonomie ;
|
||||
- modifier `ROADMAP.md` ou `CHANGELOG.md` ;
|
||||
- commencer l'adoption Games ou KSP.
|
||||
|
||||
## Gate opérateur
|
||||
|
||||
Après application du history `alpha.1`, commit/push de `alpha.1`, puis application du présent delta, exécuter depuis la racine du dépôt :
|
||||
|
||||
```bash
|
||||
cat VERSION
|
||||
|
||||
test -f history/0.1.4/alpha.1.md
|
||||
test -f deltas/0.1.4/alpha.2.md
|
||||
test ! -e history/0.1.4/alpha.2.md
|
||||
test ! -e docs/skeletons/004-TAURI.md
|
||||
|
||||
grep -A4 '^## Statut$' history/0.1.4/alpha.1.md
|
||||
|
||||
python3 -B -m unittest discover -s tests -v
|
||||
|
||||
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-alpha.2'
|
||||
|
||||
history = Path('history/0.1.4/alpha.1.md').read_text(encoding='utf-8')
|
||||
assert re.search(r'## Statut\s+PASS', history)
|
||||
|
||||
assert {p.name for p in Path('deltas/0.1.4').glob('*.md')} == {'alpha.1.md', 'alpha.2.md'}
|
||||
assert {p.name for p in Path('history/0.1.4').glob('*.md')} == {'alpha.1.md'}
|
||||
|
||||
rule = Path('docs/rules/710-TAURI.md').read_text(encoding='utf-8')
|
||||
assert rule.startswith('<!-- file: docs/rules/710-TAURI.md -->\n<!-- version: 7 -->')
|
||||
for phrase in (
|
||||
'## Commandes, permissions et capabilities',
|
||||
'commande enregistrée → handler natif connu du système d\'invocation',
|
||||
'app.security.capabilities',
|
||||
'inclut par défaut les capability files du répertoire `capabilities/`',
|
||||
'droits cumulés',
|
||||
'Le choix ou le renforcement de TS-RS appartient au projet ou au futur skeleton Tauri',
|
||||
'host SHOULD être une crate Cargo mixte directement lisible',
|
||||
):
|
||||
assert phrase in rule, phrase
|
||||
for phrase in (
|
||||
'TypeScript et Vite sont fortement recommandés',
|
||||
'Bootstrap est la baseline de présentation privilégiée',
|
||||
'MUST utiliser TS-RS',
|
||||
):
|
||||
assert phrase not in rule, 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: 3 -->')
|
||||
for phrase in (
|
||||
'## Réexamen décisionnel `0.1.4-alpha.2`',
|
||||
'DEFER historique pour absence d\'owners Web LIFT',
|
||||
'candidat organisationnel ADOPT FOR MATERIALIZATION',
|
||||
'matérialisation visée alpha.3',
|
||||
'Le `DEFER` de `0.0.5-alpha.9` reste conservé comme décision historique',
|
||||
):
|
||||
assert phrase in study, phrase
|
||||
|
||||
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: 2 -->')
|
||||
for phrase in (
|
||||
'## Gate `alpha.1` acquise',
|
||||
'## Réconciliation normative préparée en `alpha.2`',
|
||||
'## Point transversal découvert pendant la gate `alpha.1`',
|
||||
'forte recommandation non obligatoire',
|
||||
'sans rechercher automatiquement une version PGR plus récente',
|
||||
'howtos, recettes et snippets pratiques vivent dans Knowledge',
|
||||
'revue d\'horizon',
|
||||
):
|
||||
assert phrase in plan, phrase
|
||||
|
||||
index = Path('docs/000-README.md').read_text(encoding='utf-8')
|
||||
assert index.startswith('<!-- file: docs/000-README.md -->\n<!-- version: 42 -->')
|
||||
assert 'owner Tauri 2 réconcilié en `alpha.2`' in index
|
||||
assert 'candidat organisationnel retenu pour matérialisation contrôlée en `alpha.3`' 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
|
||||
|
||||
assert not Path('docs/skeletons/004-TAURI.md').exists()
|
||||
assert not Path('history/0.1.4/alpha.2.md').exists()
|
||||
|
||||
print(
|
||||
'0.1.4 alpha.2 Tauri normative audit: clean '
|
||||
'(ACL boundaries explicit, Web ownership separated, historical DEFER lifted, skeleton still deferred to alpha.3)'
|
||||
)
|
||||
PY
|
||||
|
||||
git diff --check
|
||||
git add VERSION \
|
||||
deltas/0.1.4/alpha.2.md \
|
||||
docs/000-README.md \
|
||||
docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md \
|
||||
docs/rules/710-TAURI.md \
|
||||
docs/studies/002-TAURI_SKELETON_DECISION.md
|
||||
git diff --cached --check
|
||||
git status --short
|
||||
```
|
||||
|
||||
Le scope attendu du delta `alpha.2` est :
|
||||
|
||||
```text
|
||||
M VERSION
|
||||
A deltas/0.1.4/alpha.2.md
|
||||
M docs/000-README.md
|
||||
M docs/plans/010-V0_1_4_TAURI_REEVALUATION_PLAN.md
|
||||
M docs/rules/710-TAURI.md
|
||||
M docs/studies/002-TAURI_SKELETON_DECISION.md
|
||||
```
|
||||
Reference in New Issue
Block a user