9.6 KiB
Delta 0.1.1-alpha.1 — audit de la stable et cadrage frontend Web
Baseline et sources
Baseline PGR autoritaire : pgr-v0.1.0.zip, archive source téléchargée depuis le tag Gitea v0.1.0, accompagnée du rapport externe pgr-0.1.0-publish.001-report.md avec statut PASS.
SHA-256 vérifiés :
pgr-v0.1.0.zip bc8f3a8117d04afc1280344eceaaac8c6a4724ca94c285a6234fe42c1023b2be
pgr-0.1.0-publish.001-report.md a64dc4a5a81e1776b641894d8493eec3ef315932fffb2881e52ff4147eb8b6a5
games-v0.3.6(1).zip ad6e44a1332eb7d6069cf1189d9433f0fbb8fac19c5aac9f4641ac45c1c556e8
khadhroony-solana-project-v0.3.17.zip 2a9cabcb9f147a348dcf8d24df8bc6c5029089b6d49feb17bd4a42b4293c329a
Le fichier Games fourni sous le nom local games-v0.3.6(1).zip a exactement le SHA-256 de la baseline canonique games-v0.3.6.zip attendue par le prompt 007.
KSP 0.3.17 est uniquement un corpus secondaire de corroboration pour éviter de confondre règles frontend génériques et choix d'un host particulier. Il n'est ni requis par la baseline 0.1.1, ni modifié, ni adopté dans cette tranche.
Version avant application :
0.1.0
Version après application :
0.1.1-alpha.1
Objet
Exécuter prompts/007-V0_1_1_START_PROMPT.md : vérifier intégralement la stable v0.1.0, ses règles, profils, templates, skeletons, audits, décisions différées et chaîne de gouvernance, puis auditer le corpus Games réellement fourni et créer le plan 0.1.1 avant toute normalisation Web importante.
alpha.1 reste un gate de cadrage. Aucun owner Web, template frontend, skeleton, audit ou règle normative n'est encore créé.
Résultat de l'audit d'intake
La stable PGR et son rapport post-tag concordent : archive SHA-256 attendue, CRC propre, racine unique pgr/, 221 fichiers, 33 répertoires, aucun symlink et absence normale de .git.
La suite de tests donne 48/48 PASS. Les audits Markdown sont propres : 198 fichiers pour les headers, 8 tables sur 198 fichiers et 193 liens locaux sur 198 fichiers. Les cinq templates TOML Rust/Cargo sont parsables et aucun output de build courant n'est embarqué.
Les 72 couples delta/history de 0.0.1 à 0.1.0 sont complets. 0.1.0 conserve explicitement alpha.2 FAIL, alpha.2.fix.1 PASS, alpha.3 FAIL, alpha.3.fix.1 PASS, puis rel.1 PASS. Le commit stable et le tag suivent la nouvelle convention sans réécrire les historiques antérieurs.
La stable possède déjà les profils 510 Rust/Cargo, 520 Java/Maven/Gradle, 610 Android et 710 Tauri. Le skeleton Tauri reste correctement DEFER; la décision existante identifie précisément TypeScript, Vite, Sass/CSS, outputs et validation frontend indépendante comme responsabilités encore manquantes.
Le corpus Games fourni est sain et correspond au hash canonique attendu. Il contient trois packages frontend réels : deux hosts Web directs et un host Tauri. Tous exercent TypeScript, Vite, frontend/ et des sorties/cache externes à l'arborescence source. Sass/Bootstrap n'est exercé que là où la chaîne de styles le requiert. Les lockfiles Node sont ignorés par Games, mais cette politique reste locale et n'est pas généralisée par alpha.1.
KSP 0.3.17 contient six applications Tauri avec frontend Vite/TypeScript et corrobore le caractère transversal de ces owners, sans devenir un corpus d'adoption dans cette release.
Le plan conserve explicitement WASM, serveur Rust/Actix et deployment hors scope, et ne lève pas le DEFER Tauri.
Scope
REPLACE :
VERSION
README.md
docs/000-README.md
ADD :
docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
deltas/0.1.1/alpha.1.md
DELETE : aucun.
RULES.md, ROADMAP.md, CHANGELOG.md, les règles, profils, templates, skeletons, scripts, studies, validations et histories existants restent inchangés dans alpha.1.
Aucun history/0.1.1/alpha.1.md n'est anticipé avant la gate opérateur.
Validation opérateur
Après application sur la stable 0.1.0, depuis la racine du dépôt :
test "$(cat VERSION)" = '0.1.1-alpha.1'
test -f docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
test -f deltas/0.1.1/alpha.1.md
test ! -e history/0.1.1/alpha.1.md
grep -Fx '<!-- version: 17 -->' README.md
grep -Fx '<!-- version: 24 -->' docs/000-README.md
grep -F '007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md' README.md docs/000-README.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
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,
}
for release, count in expected.items():
deltas = {path.name for path in Path('deltas', release).glob('*.md')}
histories = {path.name for path in Path('history', release).glob('*.md')}
assert len(deltas) == count, (release, len(deltas))
assert deltas == histories, (release, sorted(deltas ^ histories))
statuses = {}
for path in Path('history/0.1.0').glob('*.md'):
text = path.read_text(encoding='utf-8')
match = re.search(r'## Statut\s+(PASS|FAIL|PARTIAL|BLOCKED)\s', text)
assert match is not None, path
statuses[path.name] = match.group(1)
assert statuses['alpha.2.md'] == 'FAIL'
assert statuses['alpha.2.fix.1.md'] == 'PASS'
assert statuses['alpha.3.md'] == 'FAIL'
assert statuses['alpha.3.fix.1.md'] == 'PASS'
assert statuses['rel.1.md'] == 'PASS'
roadmap = Path('ROADMAP.md').read_text(encoding='utf-8')
for release in range(1, 8):
assert f'- `( ) 0.1.{release}`' in roadmap, release
assert '0.1.8' not in roadmap
assert 'skeleton Tauri avant owners Web suffisants' in roadmap
assert 'WASM' in roadmap
assert 'serveur Web Rust / Actix Web ou alternative' in roadmap
assert 'deployment & operations' in roadmap
prompt = Path('prompts/007-V0_1_1_START_PROMPT.md').read_text(encoding='utf-8')
for phrase in (
'Version cible : `0.1.1`',
'Première tranche attendue : `0.1.1-alpha.1`',
'ad6e44a1332eb7d6069cf1189d9433f0fbb8fac19c5aac9f4641ac45c1c556e8',
'TypeScript et configuration applicable',
'Vite, dev server et contrat de build outputs',
'package manager, manifest et lockfile sans imposer arbitrairement npm',
'Le skeleton Tauri reste `DEFER` pendant cette release.',
):
assert phrase in prompt, phrase
study = Path('docs/studies/002-TAURI_SKELETON_DECISION.md').read_text(encoding='utf-8')
for phrase in (
'DEFER',
'TypeScript et conventions Web contrôlées',
'Vite et ownership des commandes/dev server/build outputs',
'Sass/CSS et statut des artefacts générés',
'validation frontend indépendante de la validation Tauri',
):
assert phrase in study, phrase
plan = Path('docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md').read_text(encoding='utf-8')
for phrase in (
'Frontières d\'ownership à décider',
'alpha.2 — frontières d\'ownership Web',
'alpha.3 — TypeScript et écosystème de package',
'alpha.4 — Vite, dev server et outputs',
'alpha.5 — CSS/Sass et validation frontend',
'beta.1 — réconciliation et preuve de préparation Tauri',
'La réussite de `0.1.1` devra produire les owners nécessaires à ce réexamen, mais ne lèvera pas automatiquement le `DEFER`.',
'WASM, sans numéro réservé',
'serveur Web Rust / Actix Web ou alternative',
):
assert phrase in plan, phrase
print('0.1.1 alpha.1 structural audit: clean (72 prior pairs, Web scope bounded, Tauri DEFER preserved)')
PY
git diff --check
git add VERSION README.md docs/000-README.md \
docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md \
deltas/0.1.1/alpha.1.md
git diff --cached --check
git status --short
Le scope indexé attendu avant ajout du history est :
M README.md
M VERSION
A deltas/0.1.1/alpha.1.md
M docs/000-README.md
A docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
La revue opérateur doit également confirmer que :
- le plan n'impose pas npm, Sass ou Bootstrap comme obligation frontend universelle ;
- la politique Games sur les lockfiles reste une observation locale, pas une règle PGR acquise ;
- les numéros/frontières exacts des futurs owners Web restent à décider en
alpha.2; - aucun profil WASM ou serveur Rust n'est créé par proximité ;
- aucun skeleton Tauri n'est créé et son
DEFERn'est pas levé ; - Games et KSP restent des corpus externes non modifiés ;
- aucun nouveau numéro de release au-delà de
0.1.7n'est réservé.
Transition
PASS
Produire history/0.1.1/alpha.1.md à partir des résultats réellement observés. Dans la même réponse, si aucune décision nouvelle n'est ouverte, préparer séparément le delta 0.1.1-alpha.2 consacré aux frontières d'ownership Web et à la classification ADOPT / KEEP-LOCAL / OVERRIDE / DEFER des choix Games pertinents.
Après remise du history, fournir automatiquement le bloc Git exact de fermeture conformément à docs/templates/006-OPERATOR_COMMAND_HANDOFF.md, puis indiquer l'application du delta suivant seulement après succès du commit/push.
FAIL
Consigner le résultat réel dans le history, puis ouvrir 0.1.1-alpha.1.fix.1 ou un REPLAN selon la cause. Un fix de alpha.1 doit rester limité au cadrage et ne doit pas absorber les décisions normatives prévues pour alpha.2.