0.1.0-alpha.2.fix.1

This commit is contained in:
2026-09-26 19:00:32 +02:00
parent 62f3d252d8
commit 3230356cd6
4 changed files with 286 additions and 8 deletions

View File

@@ -1 +1 @@
0.1.0-alpha.2
0.1.0-alpha.2.fix.1

View File

@@ -0,0 +1,178 @@
<!-- file: deltas/0.1.0/alpha.2.fix.1.md -->
<!-- version: 1 -->
# 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 '<!-- version: 5 -->' docs/rules/200-GOVERNANCE.md
grep -Fx '<!-- version: 6 -->' docs/rules/210-WORKFLOW.md
grep -Fx '<!-- version: 3 -->' 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.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md -->
<!-- version: 2 -->
<!-- version: 3 -->
# Plan 0.1.0 — première baseline PGR réutilisable
@@ -173,14 +173,22 @@ La stable `v0.0.5`, son rapport post-tag, les owners normatifs, profils, templat
### alpha.2 — clôture stable et identité `rel.N`
Modifier les owners de gouvernance/workflow nécessaires pour :
Statut opérateur : **FAIL**.
- remplacer la convention future `rel.001` par `rel.1` ;
- préserver l'immutabilité des anciennes releases ;
- définir le message de commit des tranches de clôture échouées ;
- définir que le commit qui obtient finalement le `PASS` stable se nomme `X.Y.Z` par défaut avant création de `vX.Y.Z`.
Le contenu normatif prévu a été matérialisé et le contrôle structurel spécifique a confirmé `rel.N` sans padding, la conservation des historiques `rel.001*` et l'identité explicite du commit stable. La gate livrée contenait toutefois des commandes `grep -F` entourées de quotes simples alors que certains motifs contenaient eux-mêmes des apostrophes (`n'utilise`, `l'exploitation`). Le shell a donc mal interprété plusieurs contrôles textuels.
Aucun changement technologique dans cette tranche.
Le défaut appartient à la gate opérateur, pas aux owners `200-GOVERNANCE` / `210-WORKFLOW`. Le delta `alpha.2.md` reste immuable.
### alpha.2.fix.1 — correction de la gate `rel.N`
Corriger uniquement la validation de `alpha.2` :
- conserver `200-GOVERNANCE.md` et `210-WORKFLOW.md` inchangés ;
- remplacer les assertions shell fragiles par une vérification Python syntaxiquement sûre ;
- rejouer la suite Python complète, les audits Markdown et la preuve structurelle ;
- conserver le `FAIL` de `alpha.2` avant toute progression.
Après PASS de ce fix, reprendre la trajectoire normale à `alpha.3`.
### alpha.3 — handoff automatique des commandes opérateur

View File

@@ -0,0 +1,92 @@
<!-- file: history/0.1.0/alpha.2.fix.1.md -->
<!-- version: 1 -->
# History 0.1.0-alpha.2.fix.1 — correction de la gate `rel.N`
## Statut
PASS
La gate opérateur de `0.1.0-alpha.2.fix.1` exécutée le `2026-09-26` valide la correction strictement opérationnelle de la gate `rel.N`. Le `FAIL` de `alpha.2` reste conservé comme vérité historique ; aucun owner normatif de la convention `rel.N` n'a dû être réécrit.
## Baseline opérateur
La tranche `0.1.0-alpha.2` a été clôturée avec son history `FAIL`, puis committée et poussée avant application du fix :
```text
commit 62f3d25
message 0.1.0-alpha.2
push origin/master PASS
```
Après application du delta de correction, les contrôles initiaux ont confirmé :
```text
VERSION 0.1.0-alpha.2.fix.1
history/0.1.0/alpha.2.md présent dans HEAD et le workspace
deltas/0.1.0/alpha.2.md présent
deltas/0.1.0/alpha.2.fix.1.md présent
history/0.1.0/alpha.2.fix.1.md absent pendant la gate
docs/rules/200-GOVERNANCE.md version 5
docs/rules/210-WORKFLOW.md version 6
docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md version 3
```
Le statut `FAIL` de `history/0.1.0/alpha.2.md` a également été retrouvé explicitement.
## Validation opérateur observée
La preuve Python corrigée a terminé proprement :
```text
0.1.0 alpha.2.fix.1 rel gate audit: clean (failed gate preserved, rel.N content reconfirmed, shell-sensitive assertions safe)
```
Elle reconfirme notamment :
- `rel.1` et `rel.1.fix.1` comme représentation future sans padding ;
- la règle du premier `history rel.N[/fix.M] PASS` qui établit réellement la stable ;
- la conservation de `publish.001` comme identité indépendante ;
- la présence intacte des quatre artefacts historiques `rel.001*` de `0.0.5` ;
- les horizons différés concernant le sous-ensemble statique Rust/Clippy et le futur domaine deployment/operations ;
- l'absence de réservation prématurée de `0.1.1` dans `ROADMAP.md`.
La suite Python globale a exécuté `48` tests, tous réussis :
```text
Ran 48 tests in 0.715s
OK
```
Les audits documentaires sont propres :
```text
Markdown header audit: clean (177 file(s))
Markdown table audit: clean (8 table(s), 177 file(s))
Markdown link audit: clean (163 local link(s), 177 file(s))
```
## Contrôles Git
Le statut indexé transmis avant ajout du présent history 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
```
Le scope correspond au correctif annoncé. `docs/rules/200-GOVERNANCE.md`, `docs/rules/210-WORKFLOW.md` et le delta historique `alpha.2.md` sont restés inchangés.
## Décision
`0.1.0-alpha.2.fix.1` est `PASS`. Aucun nouveau fix ni REPLAN n'est requis.
La trajectoire normale reprend à :
```text
0.1.0-alpha.3
```
Cette tranche formalise la remise automatique des commandes opérateur après chaque history, l'ordre commit/push avant le delta suivant, la clôture stable avec tag et les preuves à fournir pour la vérification post-tag.