0.0.1-rc.1.fix.1
This commit is contained in:
124
deltas/0.0.1/rc.1.fix.1.md
Normal file
124
deltas/0.0.1/rc.1.fix.1.md
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
<!-- file: deltas/0.0.1/rc.1.fix.1.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Delta 0.0.1-rc.1.fix.1 — fix interactive Bash header gate
|
||||||
|
|
||||||
|
## Baseline
|
||||||
|
|
||||||
|
Version attendue avant application :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.0.1-rc.1
|
||||||
|
```
|
||||||
|
|
||||||
|
Le history `history/0.0.1/rc.1.md` MUST avoir été appliqué et committé avant ce delta.
|
||||||
|
|
||||||
|
Version après application :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.0.1-rc.1.fix.1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Objet
|
||||||
|
|
||||||
|
Corriger exclusivement la commande de vérification globale des headers Markdown de la gate RC, puis rejouer la gate complète sans étendre le scope fonctionnel de `0.0.1`.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
REPLACE :
|
||||||
|
|
||||||
|
```text
|
||||||
|
VERSION
|
||||||
|
```
|
||||||
|
|
||||||
|
ADD :
|
||||||
|
|
||||||
|
```text
|
||||||
|
deltas/0.0.1/rc.1.fix.1.md
|
||||||
|
```
|
||||||
|
|
||||||
|
DELETE : aucun.
|
||||||
|
|
||||||
|
Aucun document normatif, changelog ou prompt n'est modifié.
|
||||||
|
|
||||||
|
## Correction
|
||||||
|
|
||||||
|
La gate `rc.1` construisait le header attendu dans une chaîne double-quotée contenant `<!--`. Dans un Bash interactif avec history expansion activée, le `!` est interprété avant l'exécution de `grep`.
|
||||||
|
|
||||||
|
Le fix construit désormais le header attendu avec `printf -v` et un format single-quoted :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
printf -v expected_header '<!-- file: %s -->' "$relative"
|
||||||
|
grep -Fx "$expected_header" "$file"
|
||||||
|
```
|
||||||
|
|
||||||
|
La vérification reste strictement read-only.
|
||||||
|
|
||||||
|
## Validation opérateur
|
||||||
|
|
||||||
|
```bash
|
||||||
|
test "$(cat VERSION)" = "0.0.1-rc.1.fix.1"
|
||||||
|
|
||||||
|
test -f prompts/002-V0_0_2_START_PROMPT.md
|
||||||
|
grep -Fx '<!-- file: prompts/002-V0_0_2_START_PROMPT.md -->' prompts/002-V0_0_2_START_PROMPT.md
|
||||||
|
grep -F 'v0.0.1' prompts/002-V0_0_2_START_PROMPT.md
|
||||||
|
grep -F '0.0.2-alpha.1' prompts/002-V0_0_2_START_PROMPT.md
|
||||||
|
|
||||||
|
grep -Fx '## 0.0.1' CHANGELOG.md
|
||||||
|
grep -F 'fondation normative de PGR' CHANGELOG.md
|
||||||
|
grep -F 'validation proportionnée' CHANGELOG.md
|
||||||
|
|
||||||
|
for file in README.md RULES.md ROADMAP.md CHANGELOG.md docs/000-README.md docs/objectives/001-PROJECT_OBJECTIVES.md docs/architecture/001-PROJECT_PROFILE.md docs/architecture/002-GOVERNANCE_ARCHITECTURE.md docs/plans/001-V0_0_1_FOUNDATION_PLAN.md docs/rules/000-README.md docs/rules/200-GOVERNANCE.md docs/rules/210-WORKFLOW.md docs/rules/300-DOCUMENTATION.md docs/rules/400-VALIDATION.md docs/validation/001-VALIDATION_MATRIX.md prompts/001-V0_0_1_START_PROMPT.md prompts/002-V0_0_2_START_PROMPT.md; do
|
||||||
|
test -f "$file" || {
|
||||||
|
echo "Missing required file: $file" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
done
|
||||||
|
|
||||||
|
while IFS= read -r file; do
|
||||||
|
relative="${file#./}"
|
||||||
|
printf -v expected_header '<!-- file: %s -->' "$relative"
|
||||||
|
grep -Fx "$expected_header" "$file" >/dev/null || {
|
||||||
|
echo "Missing or invalid file header: ${relative}" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
grep -Eq '^<!-- version: [1-9][0-9]* -->$' "$file" || {
|
||||||
|
echo "Missing or invalid version header: ${relative}" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
done < <(find . -type f -name '*.md' -not -path './.git/*' | sort)
|
||||||
|
|
||||||
|
if grep -F 'seront définis séparément' docs/rules/200-GOVERNANCE.md; then
|
||||||
|
echo '200-GOVERNANCE contient une promesse de cadrage obsolète.' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if grep -F 'seront formalisées dans `alpha.5`' docs/rules/210-WORKFLOW.md; then
|
||||||
|
echo '210-WORKFLOW contient une référence de cadrage obsolète.' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
grep -F '`PGR-NAV-001`' docs/validation/001-VALIDATION_MATRIX.md
|
||||||
|
grep -F '`PGR-SCOPE-001`' docs/validation/001-VALIDATION_MATRIX.md
|
||||||
|
|
||||||
|
git diff --check
|
||||||
|
|
||||||
|
git add VERSION deltas/0.0.1/rc.1.fix.1.md
|
||||||
|
|
||||||
|
git diff --cached --check
|
||||||
|
|
||||||
|
git status --short
|
||||||
|
```
|
||||||
|
|
||||||
|
La sortie attendue avant ajout du history est :
|
||||||
|
|
||||||
|
```text
|
||||||
|
M VERSION
|
||||||
|
A deltas/0.0.1/rc.1.fix.1.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## Transition
|
||||||
|
|
||||||
|
PASS : enregistrer `history/0.0.1/rc.1.fix.1.md`, committer `rc.1.fix.1`, puis préparer la promotion stable `0.0.1`.
|
||||||
|
|
||||||
|
FAIL : rester dans `rc.1` avec `rc.1.fix.2`, sauf REPLAN si la nouvelle gate révèle un problème structurel incompatible avec une correction de stabilisation.
|
||||||
50
history/0.0.1/rc.1.fix.1.md
Normal file
50
history/0.0.1/rc.1.fix.1.md
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<!-- file: history/0.0.1/rc.1.fix.1.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# History 0.0.1-rc.1.fix.1 — release candidate gate fix
|
||||||
|
|
||||||
|
## Statut
|
||||||
|
|
||||||
|
PASS
|
||||||
|
|
||||||
|
## Baseline
|
||||||
|
|
||||||
|
Version validée par l'opérateur :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.0.1-rc.1.fix.1
|
||||||
|
```
|
||||||
|
|
||||||
|
Le delta `0.0.1-rc.1.fix.1` a été appliqué après commit de `0.0.1-rc.1` avec son history `FAIL`.
|
||||||
|
|
||||||
|
## Validation opérateur observée
|
||||||
|
|
||||||
|
Les contrôles suivants ont réussi :
|
||||||
|
|
||||||
|
- `VERSION` vaut exactement `0.0.1-rc.1.fix.1` ;
|
||||||
|
- le prompt `prompts/002-V0_0_2_START_PROMPT.md` existe, possède son header attendu et référence `v0.0.1` ainsi que `0.0.2-alpha.1` ;
|
||||||
|
- `CHANGELOG.md` contient l'entrée candidate `0.0.1` et les éléments de fondation attendus ;
|
||||||
|
- tous les fichiers explicitement requis par la gate RC existent ;
|
||||||
|
- la vérification globale des headers `file/version` passe avec la commande Bash corrigée utilisant `printf -v expected_header` ;
|
||||||
|
- les références de cadrage obsolètes recherchées dans `200-GOVERNANCE.md` et `210-WORKFLOW.md` sont absentes ;
|
||||||
|
- `PGR-NAV-001` et `PGR-SCOPE-001` sont présents dans la matrice de validation ;
|
||||||
|
- `git diff --check` ne produit aucun diagnostic ;
|
||||||
|
- `git diff --cached --check` ne produit aucun diagnostic ;
|
||||||
|
- le `git status --short` final correspond exactement au scope du fix.
|
||||||
|
|
||||||
|
## État Git observé
|
||||||
|
|
||||||
|
Avant ajout du présent history :
|
||||||
|
|
||||||
|
```text
|
||||||
|
M VERSION
|
||||||
|
A deltas/0.0.1/rc.1.fix.1.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## Résultat
|
||||||
|
|
||||||
|
La gate complète de la release candidate est PASS.
|
||||||
|
|
||||||
|
Le correctif ne modifie aucun contenu normatif ou fonctionnel de la fondation ; il corrige uniquement l'exécution de la vérification globale des headers dans un Bash interactif.
|
||||||
|
|
||||||
|
La promotion stable `0.0.1` peut être préparée sans nouvelle RC.
|
||||||
Reference in New Issue
Block a user