9.0 KiB
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é :
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 + binrecommandé 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 :
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 :
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.mdenalpha.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.rsou capability générique ; - créer un contrat
docs/validation/*TAURI*séparé ; - modifier
RULES.mdou230-ADOPTION.mdpour traiter dès maintenant le point transversalSHOULD/autonomie ; - modifier
ROADMAP.mdouCHANGELOG.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 :
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 :
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