Files
pgr/deltas/0.1.0/alpha.2.md
2026-09-26 17:33:23 +02:00

7.1 KiB

Delta 0.1.0-alpha.2 — clôture stable et identité rel.N

Baseline

Baseline attendue : 0.1.0-alpha.1 committée avec history/0.1.0/alpha.1.md en PASS.

Cette tranche MUST être appliquée uniquement après le commit/push complet de alpha.1 ; elle ne doit pas être superposée au workspace encore non committé de la gate précédente.

Version avant application :

0.1.0-alpha.1

Version après application :

0.1.0-alpha.2

Objet

Corriger la convention normative de clôture stable avant diffusion plus large de PGR :

  • utiliser rel.1, rel.2, etc. sans padding pour les nouvelles releases ;
  • conserver sans renommage tous les artefacts historiques rel.001* déjà publiés ;
  • distinguer le nom de la tranche de clôture de l'identité du commit stable ;
  • rendre explicite qu'une clôture FAIL, PARTIAL ou BLOCKED conserve le suffixe opérationnel dans son commit ;
  • rendre explicite que la première tranche rel.N[/fix.M] qui obtient réellement le PASS stable est committée sous X.Y.Z avant création du tag vX.Y.Z.

La tranche ne modifie aucun profil technologique, skeleton, template, script d'audit ou convention de publication post-tag publish.001.

Scope

REPLACE :

VERSION
docs/rules/200-GOVERNANCE.md
docs/rules/210-WORKFLOW.md
docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md

ADD :

deltas/0.1.0/alpha.2.md

DELETE : aucun.

Le plan actif est révisé parce qu'il enregistre alpha.1 PASS et deux horizons différés explicitement décidés pendant la session — audit Python d'un sous-ensemble Clippy après Games/KSP et future famille deployment/operations — sans leur attribuer de numéro ni les absorber dans 0.1.0.

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

Convention obtenue

La représentation future canonique est :

rel.1
rel.1.fix.1
rel.2
...

Pour le message du commit de clôture, le défaut PGR devient :

history rel.1 FAIL / PARTIAL / BLOCKED
    -> X.Y.Z-rel.1

history rel.1.fix.1 FAIL / PARTIAL / BLOCKED
    -> X.Y.Z-rel.1.fix.1

premier history rel.N[/fix.M] PASS établissant réellement la stable
    -> X.Y.Z

VERSION MAY déjà être X.Y.Z pendant ces tranches de fermeture : rel.N n'est pas une prerelease SemVer. Le tag vX.Y.Z intervient uniquement après le commit final X.Y.Z contenant le history PASS stable.

Les fichiers historiques comme :

deltas/0.0.5/rel.001.md
history/0.0.5/rel.001.md
deltas/0.0.5/rel.001.fix.1.md
history/0.0.5/rel.001.fix.1.md

restent intacts.

Validation opérateur

Après application sur le commit de 0.1.0-alpha.1, depuis la racine du dépôt :

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

grep -Fx '<!-- version: 5 -->' docs/rules/200-GOVERNANCE.md
grep -Fx '<!-- version: 6 -->' docs/rules/210-WORKFLOW.md
grep -Fx '<!-- version: 2 -->' docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md

grep -F 'représentation canonique n'utilise pas de zéro de padding' docs/rules/200-GOVERNANCE.md
grep -F 'première tranche de clôture PASS' docs/rules/200-GOVERNANCE.md
grep -F 'history rel.1 FAIL / PARTIAL / BLOCKED' docs/rules/210-WORKFLOW.md
grep -F 'premier history rel.N[/fix.M] PASS qui établit réellement la stable' docs/rules/210-WORKFLOW.md
grep -F 'La présente règle ne renomme pas `publish.001`' docs/rules/210-WORKFLOW.md

grep -F 'sous-ensemble des conventions Rust/Clippy' docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
grep -F 'série dédiée au déploiement et à l'exploitation' docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.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

history = Path('history/0.1.0/alpha.1.md').read_text(encoding='utf-8')
assert re.search(r'## Statut\s+PASS\s', history)

governance = Path('docs/rules/200-GOVERNANCE.md').read_text(encoding='utf-8')
workflow = Path('docs/rules/210-WORKFLOW.md').read_text(encoding='utf-8')
plan = Path('docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md').read_text(encoding='utf-8')

for phrase in (
    'rel.1',
    'rel.1.fix.1',
    'représentation canonique n\'utilise pas de zéro de padding',
    'première tranche de clôture PASS',
    'Le commit `X.Y.Z` MUST',
):
    assert phrase in governance or phrase in workflow, phrase

for path in (
    Path('deltas/0.0.5/rel.001.md'),
    Path('history/0.0.5/rel.001.md'),
    Path('deltas/0.0.5/rel.001.fix.1.md'),
    Path('history/0.0.5/rel.001.fix.1.md'),
):
    assert path.is_file(), path

assert 'publish.001' in workflow
assert 'La présente règle ne renomme pas `publish.001`' in workflow
assert 'sous-ensemble des conventions Rust/Clippy' in plan
assert "série dédiée au déploiement et à l'exploitation" in plan
assert '- `( ) 0.1.1`' not in Path('ROADMAP.md').read_text(encoding='utf-8')

print('0.1.0 alpha.2 rel identity audit: clean (rel.N unpadded, historical rel.001 preserved, stable commit identity explicit)')
PY

git diff --check
git add VERSION docs/rules/200-GOVERNANCE.md docs/rules/210-WORKFLOW.md \
    docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md \
    deltas/0.1.0/alpha.2.md
git diff --cached --check
git status --short

Le scope indexé attendu avant ajout du history est :

M  VERSION
A  deltas/0.1.0/alpha.2.md
M  docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
M  docs/rules/200-GOVERNANCE.md
M  docs/rules/210-WORKFLOW.md

La revue opérateur doit également confirmer que :

  • aucune occurrence historique rel.001* n'a été renommée ;
  • publish.001 reste une convention indépendante et n'est pas modifiée par cette tranche ;
  • aucune commande de handoff Git automatique n'est encore rendue normative ici — ce sujet appartient à alpha.3 ;
  • les horizons Clippy statique et deployment/operations restent de simples candidats différés dans le plan ;
  • aucun profil Web, Java/Android, WASM, Tauri ou serveur n'est ajouté ou modifié.

Transition

PASS

Produire history/0.1.0/alpha.2.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 0.1.0-alpha.3 consacré au handoff automatique des commandes opérateur après history, au commit/push, au tag stable et aux preuves requises pour publish.001.

Après remise du history, fournir déjà spontanément le bloc Git exact de fermeture de alpha.2, conformément à la décision acquise, même si alpha.3 sera la tranche qui rendra ce comportement normatif.

FAIL

Consigner le résultat réel dans le history puis ouvrir 0.1.0-alpha.2.fix.1 ou un REPLAN selon la cause. Aucun élément du handoff automatique prévu pour alpha.3 ne doit être absorbé silencieusement dans le fix.