Files
pgr/deltas/0.1.0/alpha.1.md
2026-09-26 17:25:10 +02:00

8.2 KiB

Delta 0.1.0-alpha.1 — audit de la stable et cadrage de la baseline réutilisable

Baseline et sources

Baseline PGR autoritaire : pgr-v0.0.5.zip, archive source téléchargée depuis le tag Gitea v0.0.5, accompagnée du rapport externe pgr-0.0.5-publish.001-report.md avec statut PASS.

SHA-256 vérifiés :

pgr-v0.0.5.zip                        1fb72bafb24b5a0f3406561b96caa8245142a5f099e692842d9ef1ba44f41b49
pgr-0.0.5-publish.001-report.md       a6727fd1f3122dbb19eb79d6b904ebaed2bbfc360ed4a34cc1299cb2166efd96
games-v0.3.6.zip                      ad6e44a1332eb7d6069cf1189d9433f0fbb8fac19c5aac9f4641ac45c1c556e8
khadhroony-solana-project-v0.3.16.zip db3cc1b3fc3fb07ee864b02e2a7346c673d4cf63b33e8e872aca6c6458856ca0

Games et KSP sont uniquement des corpus de pression pour préparer l'adoption future ; ils ne sont ni modifiés ni incorporés à cette archive delta.

Version avant application :

0.0.5

Version après application :

0.1.0-alpha.1

Objet

Exécuter prompts/006-V0_1_0_START_PROMPT.md : auditer intégralement la stable v0.0.5, ses règles, profils, templates, skeletons, audits, décisions différées et chaîne de gouvernance, puis créer le plan de la première baseline réellement réutilisable avant tout changement normatif important.

La tranche consigne également les décisions de cadrage acquises pendant la reprise :

  • corriger en 0.1.0 la convention future rel.001 vers rel.1 sans réécrire l'historique ;
  • distinguer le nom de tranche de fermeture du commit qui établit finalement la stable X.Y.Z ;
  • formaliser le handoff automatique des commandes Git après chaque history et des commandes/preuves de publication avant/après tag ;
  • traiter Web, serveur Rust/Actix, Java/Android, WASM et Tauri dans des releases 0.1.x séparées, jamais comme un bloc unique 0.1.0 ;
  • préparer l'adoption de PGR par Games dès que son sous-ensemble requis est prêt, puis par KSP dont la pression est principalement Rust/Cargo + Tauri.

Aucune de ces corrections n'est encore matérialisée normativement dans alpha.1.

Résultat de l'audit d'intake

La stable et son rapport post-tag sont cohérents. L'archive contient 225 entrées sous pgr/, 194 fichiers et 31 répertoires, CRC propre, aucun symlink et aucune métadonnée .git attendue.

La suite PGR donne 48/48 tests PASS. Les audits Markdown sont propres : 171 fichiers pour les headers, 8 tables sur 171 fichiers et 161 liens locaux sur 171 fichiers.

Les 62 couples delta/history de 0.0.1 à 0.0.5 sont complets. Les 19 histories de 0.0.5 conservent leurs statuts réels, notamment rel.001 FAIL puis rel.001.fix.1 PASS.

Les owners actuels couvrent déjà Rust/Cargo (510), Java/Maven/Gradle (520), Android (610) et Tauri (710). Les templates techniques actuels sont Rust/Cargo ; les skeletons concrets sont la fondation de gouvernance et le workspace Rust/Cargo. Le skeleton Tauri reste correctement DEFER tant que les owners Web manquants ne sont pas matérialisés.

Games 0.3.6 confirme une pression réelle Web/Vite/TypeScript/Sass, Android/Gradle, Rust/WASM et Tauri, avec 0.3.7 réservé dans son propre roadmap à l'alignement PGR. KSP 0.3.16 contient six applications Tauri et un socle essentiellement Rust/Cargo. Ces observations servent au sizing futur et ne créent aucun profil dans cette tranche.

Scope

REPLACE :

VERSION
README.md
docs/000-README.md

ADD :

docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
deltas/0.1.0/alpha.1.md

DELETE : aucun.

RULES.md, ROADMAP.md, CHANGELOG.md, les règles, profils, templates, skeletons, scripts et histories existants restent inchangés dans alpha.1.

Aucun history/0.1.0/alpha.1.md n'est anticipé avant la gate opérateur.

Validation opérateur

Après application sur la stable 0.0.5, depuis la racine du dépôt :

test "$(cat VERSION)" = '0.1.0-alpha.1'
test -f docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
test -f deltas/0.1.0/alpha.1.md
test ! -e history/0.1.0/alpha.1.md

grep -Fx '<!-- version: 15 -->' README.md
grep -Fx '<!-- version: 18 -->' docs/000-README.md
grep -F '006-V0_1_0_REUSABLE_BASELINE_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,
}
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.0.5').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['rel.001.md'] == 'FAIL'
assert statuses['rel.001.fix.1.md'] == 'PASS'

for path in (
    Path('docs/rules/510-RUST_CARGO.md'),
    Path('docs/rules/520-JAVA_MAVEN_GRADLE.md'),
    Path('docs/rules/610-ANDROID.md'),
    Path('docs/rules/710-TAURI.md'),
    Path('docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md'),
    Path('docs/skeletons/002-RUST_CARGO_WORKSPACE.md'),
    Path('docs/studies/002-TAURI_SKELETON_DECISION.md'),
):
    assert path.is_file(), path

plan = Path('docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md').read_text(encoding='utf-8')
for phrase in (
    'rel.1',
    'première tranche qui obtient le PASS stable',
    'Commandes opérateur et publication',
    'une release/session par domaine cohérent',
    'Games',
    'KSP',
    'TypeScript',
    'Vite',
    'Android',
    'WASM',
    'Tauri',
    'Actix Web ou autre framework',
    'beta.1 — réconciliation finale et revue d\'horizon',
):
    assert phrase in plan, phrase

assert '- `( ) 0.1.0`' in Path('ROADMAP.md').read_text(encoding='utf-8')
assert '- `( ) 0.1.1`' not in Path('ROADMAP.md').read_text(encoding='utf-8')
print('0.1.0 alpha.1 structural audit: clean (62 prior pairs, stable workflow truth preserved, future 0.1.x unnumbered)')
PY

git diff --check
git add VERSION README.md docs/000-README.md \
    docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md \
    deltas/0.1.0/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.0/alpha.1.md
M  docs/000-README.md
A  docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md

La revue opérateur doit également confirmer que :

  • le plan ne transforme pas les futurs axes 0.1.x en versions numérotées prématurément ;
  • Java/Android et Tauri sont reconnus comme profils existants, non recréés artificiellement ;
  • le DEFER du skeleton Tauri reste intact dans cette tranche ;
  • Games et KSP restent des corpus externes non modifiés ;
  • aucune règle Web/WASM/Actix n'est introduite dans alpha.1 ;
  • les anciennes occurrences rel.001* restent intactes et historiques.

Transition

PASS

Produire history/0.1.0/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.0-alpha.2 consacré uniquement à la clôture stable rel.N et à l'identité du commit final.

Après remise du history, fournir spontanément le bloc Git exact à exécuter pour fermer alpha.1 avant application du delta suivant, même si la règle normative des handoffs automatiques ne sera matérialisée qu'en alpha.3.

FAIL

Consigner le résultat réel dans le history, puis ouvrir 0.1.0-alpha.1.fix.1 ou un REPLAN selon la cause. Aucun changement de alpha.2 ne doit être absorbé silencieusement dans le fix.