0.1.0-alpha.2.fix.1
This commit is contained in:
178
deltas/0.1.0/alpha.2.fix.1.md
Normal file
178
deltas/0.1.0/alpha.2.fix.1.md
Normal 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.
|
||||
Reference in New Issue
Block a user