# Delta 0.1.0-alpha.2.fix.1 — correction de la gate `rel.N` ## Baseline et version Baseline attendue : commit opérateur de `0.1.0-alpha.2`, réalisé après application de `history/0.1.0/alpha.2.md` avec statut `FAIL`. Le hash de ce commit n'est pas anticipé. Version avant application : ```text 0.1.0-alpha.2 ``` Version après application : ```text 0.1.0-alpha.2.fix.1 ``` ## Objet Corriger uniquement la gate opérateur défectueuse de `alpha.2`. Le contenu normatif de `docs/rules/200-GOVERNANCE.md` et `docs/rules/210-WORKFLOW.md` a déjà été couvert par la preuve Python de `alpha.2` et n'est pas modifié. Le défaut constaté provient de motifs `grep -F` entourés de quotes simples alors qu'ils contenaient des apostrophes littérales, notamment `n'utilise` et `l'exploitation`. Le delta historique `deltas/0.1.0/alpha.2.md` reste immuable. ## Scope REPLACE : ```text VERSION docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md ``` ADD : ```text deltas/0.1.0/alpha.2.fix.1.md ``` DELETE : aucun. Aucun owner normatif, profil technologique, skeleton, template, script d'audit ou test n'est modifié par ce correctif. ## Correction La validation du fix n'utilise plus de `grep` pour les phrases contenant apostrophes, backticks ou autres caractères shell sensibles. Ces assertions sont regroupées dans un bloc Python littéral sous heredoc quoté. Le fix vérifie à nouveau : - le history `alpha.2` en `FAIL` ; - la convention `rel.N` sans padding ; - la conservation des quatre artefacts historiques `rel.001*` de `0.0.5` ; - la distinction entre tranche de clôture et commit stable `X.Y.Z` ; - l'indépendance de `publish.001` ; - les horizons Clippy statique et deployment/operations différés ; - l'absence de réservation prématurée de `0.1.1` ; - les tests/audits globaux et le scope exact du fix. ## Validation opérateur Après application du history `FAIL`, commit/push de `alpha.2`, puis application du présent delta : ```bash test "$(cat VERSION)" = '0.1.0-alpha.2.fix.1' git cat-file -e HEAD:history/0.1.0/alpha.2.md test -f history/0.1.0/alpha.2.md test -f deltas/0.1.0/alpha.2.md test -f deltas/0.1.0/alpha.2.fix.1.md test ! -e history/0.1.0/alpha.2.fix.1.md grep -A2 '^## Statut$' history/0.1.0/alpha.2.md | grep -Fx 'FAIL' grep -Fx '' docs/rules/200-GOVERNANCE.md grep -Fx '' docs/rules/210-WORKFLOW.md grep -Fx '' docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md python3 -B - <<'PYGATE' from pathlib import Path import re history = Path('history/0.1.0/alpha.2.md').read_text(encoding='utf-8') assert re.search(r'## Statut\s+FAIL\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') roadmap = Path('ROADMAP.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 phrase in ( 'history rel.1 FAIL / PARTIAL / BLOCKED', 'premier history rel.N[/fix.M] PASS qui établit réellement la stable', 'La présente règle ne renomme pas `publish.001`', ): assert phrase in workflow, phrase for phrase in ( 'sous-ensemble des conventions Rust/Clippy', "série dédiée au déploiement et à l'exploitation", '### alpha.2.fix.1 — correction de la gate `rel.N`', ): assert phrase in plan, 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 '- `( ) 0.1.1`' not in roadmap print('0.1.0 alpha.2.fix.1 rel gate audit: clean (failed gate preserved, rel.N content reconfirmed, shell-sensitive assertions safe)') PYGATE 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 git diff --check git add VERSION docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md \ deltas/0.1.0/alpha.2.fix.1.md git diff --cached --check git status --short ``` Le scope indexé attendu avant ajout du history du fix est exactement : ```text M VERSION A deltas/0.1.0/alpha.2.fix.1.md M docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md ``` ## Revue opérateur complémentaire Confirmer que : - le `FAIL` de `alpha.2` est conservé historiquement ; - `docs/rules/200-GOVERNANCE.md` et `docs/rules/210-WORKFLOW.md` ne sont pas modifiés par le fix ; - le delta historique `alpha.2.md` n'est pas réécrit ; - aucun élément du handoff automatique réservé à `alpha.3` n'est absorbé dans le correctif ; - aucun profil Web, Java/Android, WASM, Tauri ou serveur n'est ajouté ou modifié. ## Transition ### PASS Produire `history/0.1.0/alpha.2.fix.1.md`, l'appliquer puis committer/pousser le fix. Dans la même réponse, reprendre la trajectoire normale avec `0.1.0-alpha.3`, consacré au handoff automatique des commandes opérateur. Après remise du history, fournir spontanément le bloc Git exact permettant de fermer `alpha.2.fix.1` avant application de `alpha.3`. ### FAIL Consigner le diagnostic réel dans `history/0.1.0/alpha.2.fix.1.md` et rester dans `alpha.2.fix.M`. Le scope MUST rester limité à la correction de la gate `rel.N` tant qu'aucun défaut plus large ne justifie un REPLAN.