0.1.0-alpha.1
This commit is contained in:
202
deltas/0.1.0/alpha.1.md
Normal file
202
deltas/0.1.0/alpha.1.md
Normal file
@@ -0,0 +1,202 @@
|
||||
<!-- file: deltas/0.1.0/alpha.1.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# 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 :
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```text
|
||||
0.0.5
|
||||
```
|
||||
|
||||
Version après application :
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```text
|
||||
VERSION
|
||||
README.md
|
||||
docs/000-README.md
|
||||
```
|
||||
|
||||
ADD :
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```bash
|
||||
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 :
|
||||
|
||||
```text
|
||||
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.
|
||||
Reference in New Issue
Block a user