0.1.0-alpha.3.fix.1
This commit is contained in:
167
deltas/0.1.0/alpha.3.fix.1.md
Normal file
167
deltas/0.1.0/alpha.3.fix.1.md
Normal file
@@ -0,0 +1,167 @@
|
||||
<!-- file: deltas/0.1.0/alpha.3.fix.1.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.1.0-alpha.3.fix.1 — correction de la gate du handoff opérateur
|
||||
|
||||
## Baseline et version
|
||||
|
||||
Baseline attendue : commit opérateur de `0.1.0-alpha.3`, réalisé après application de `history/0.1.0/alpha.3.md` avec statut `FAIL`.
|
||||
|
||||
Le hash de ce commit n'est pas anticipé.
|
||||
|
||||
Version avant application :
|
||||
|
||||
```text
|
||||
0.1.0-alpha.3
|
||||
```
|
||||
|
||||
Version après application :
|
||||
|
||||
```text
|
||||
0.1.0-alpha.3.fix.1
|
||||
```
|
||||
|
||||
## Objet
|
||||
|
||||
Corriger uniquement la syntaxe défectueuse de la gate opérateur de `alpha.3`.
|
||||
|
||||
Le contenu normatif de `docs/rules/210-WORKFLOW.md`, le pattern `docs/templates/006-OPERATOR_COMMAND_HANDOFF.md`, l'index `docs/000-README.md` et le delta historique `deltas/0.1.0/alpha.3.md` restent inchangés.
|
||||
|
||||
Le défaut observé était un littéral Python entouré de quotes simples alors que son texte contenait l'apostrophe de `d'une` :
|
||||
|
||||
```python
|
||||
'## Fermeture d'une tranche non stable'
|
||||
```
|
||||
|
||||
Le fix rend les assertions textuelles syntaxiquement sûres sans modifier ce qu'elles vérifient.
|
||||
|
||||
## Scope
|
||||
|
||||
REPLACE :
|
||||
|
||||
```text
|
||||
VERSION
|
||||
docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
|
||||
```
|
||||
|
||||
ADD :
|
||||
|
||||
```text
|
||||
deltas/0.1.0/alpha.3.fix.1.md
|
||||
```
|
||||
|
||||
DELETE : aucun.
|
||||
|
||||
Aucun owner normatif, template, profil technologique, skeleton, script d'audit ou test n'est modifié par ce correctif.
|
||||
|
||||
## Validation opérateur
|
||||
|
||||
Après application du history `FAIL`, commit/push de `alpha.3`, puis application du présent delta :
|
||||
|
||||
```bash
|
||||
test "$(cat VERSION)" = '0.1.0-alpha.3.fix.1'
|
||||
git cat-file -e HEAD:history/0.1.0/alpha.3.md
|
||||
test -f history/0.1.0/alpha.3.md
|
||||
test -f deltas/0.1.0/alpha.3.md
|
||||
test -f deltas/0.1.0/alpha.3.fix.1.md
|
||||
test -f docs/templates/006-OPERATOR_COMMAND_HANDOFF.md
|
||||
test ! -e history/0.1.0/alpha.3.fix.1.md
|
||||
|
||||
grep -A2 '^## Statut$' history/0.1.0/alpha.3.md | grep -Fx 'FAIL'
|
||||
grep -Fx '<!-- version: 7 -->' docs/rules/210-WORKFLOW.md
|
||||
grep -Fx '<!-- version: 1 -->' docs/templates/006-OPERATOR_COMMAND_HANDOFF.md
|
||||
grep -Fx '<!-- version: 19 -->' docs/000-README.md
|
||||
grep -Fx '<!-- version: 5 -->' 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.3.md').read_text(encoding='utf-8')
|
||||
assert re.search(r'## Statut\s+FAIL\s', history)
|
||||
|
||||
workflow = Path('docs/rules/210-WORKFLOW.md').read_text(encoding='utf-8')
|
||||
template = Path('docs/templates/006-OPERATOR_COMMAND_HANDOFF.md').read_text(encoding='utf-8')
|
||||
plan = Path('docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md').read_text(encoding='utf-8')
|
||||
index = Path('docs/000-README.md').read_text(encoding='utf-8')
|
||||
|
||||
workflow_phrases = (
|
||||
'## Remise automatique des commandes opérateur',
|
||||
'le générateur MUST remettre spontanément les commandes nécessaires pour fermer cette tranche',
|
||||
'Le générateur MUST NOT inventer un remote, une branche ou une politique de tag non établis.',
|
||||
'première clôture `rel.N[/fix.M]` qui établit réellement la stable',
|
||||
'refs/tags/vX.Y.Z^{}',
|
||||
'Le rapport `publish.*` est produit seulement à partir des artefacts et preuves réellement disponibles après publication.',
|
||||
'../templates/006-OPERATOR_COMMAND_HANDOFF.md',
|
||||
)
|
||||
for phrase in workflow_phrases:
|
||||
assert phrase in workflow, phrase
|
||||
|
||||
template_phrases = (
|
||||
"## Fermeture d'une tranche non stable",
|
||||
'git diff --cached --check',
|
||||
'git push <remote> <branche>',
|
||||
"## Tranche échouée suivie d'un fix",
|
||||
'## Première clôture qui établit réellement la stable',
|
||||
'git tag -a vX.Y.Z -m "vX.Y.Z"',
|
||||
"git ls-remote <remote> 'refs/tags/vX.Y.Z^{}'",
|
||||
'## Remise nécessaire pour `publish.*`',
|
||||
'## Après `publish.* PASS`',
|
||||
)
|
||||
for phrase in template_phrases:
|
||||
assert phrase in template, phrase
|
||||
|
||||
assert '006-OPERATOR_COMMAND_HANDOFF.md' in index
|
||||
assert 'Statut opérateur : **FAIL**.' in plan
|
||||
assert '### alpha.3.fix.1 — correction de la gate du handoff opérateur' in plan
|
||||
|
||||
print('0.1.0 alpha.3.fix.1 operator handoff gate: clean (alpha.3 FAIL preserved, workflow/template reconfirmed, Python literals 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.3.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.3.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.3` est conservé historiquement ;
|
||||
- `docs/rules/210-WORKFLOW.md`, `docs/templates/006-OPERATOR_COMMAND_HANDOFF.md` et `docs/000-README.md` ne sont pas modifiés par le fix ;
|
||||
- le delta historique `alpha.3.md` n'est pas réécrit ;
|
||||
- aucun contenu prévu pour `alpha.4` n'est absorbé dans le correctif ;
|
||||
- aucun profil technologique n'est ajouté ou modifié.
|
||||
|
||||
## Transition
|
||||
|
||||
### PASS
|
||||
|
||||
Produire `history/0.1.0/alpha.3.fix.1.md`, l'appliquer puis committer/pousser le fix. Reprendre ensuite la trajectoire normale avec `0.1.0-alpha.4`, consacré à l'adoption proportionnée de PGR par un projet existant.
|
||||
|
||||
Le handoff remis après ce PASS doit lui-même suivre le contrat `210-WORKFLOW` et `006-OPERATOR_COMMAND_HANDOFF.md` désormais reconfirmé.
|
||||
|
||||
### FAIL
|
||||
|
||||
Consigner le diagnostic réel dans `history/0.1.0/alpha.3.fix.1.md` et rester dans `alpha.3.fix.M`. Le scope MUST rester limité à la correction de la gate du handoff tant qu'aucun défaut plus large ne justifie un REPLAN.
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md -->
|
||||
<!-- version: 4 -->
|
||||
<!-- version: 5 -->
|
||||
|
||||
# Plan 0.1.0 — première baseline PGR réutilisable
|
||||
|
||||
@@ -189,9 +189,15 @@ La validation a exécuté `48/48` tests et les trois audits Markdown sans diagno
|
||||
|
||||
### alpha.3 — handoff automatique des commandes opérateur
|
||||
|
||||
Formaliser le bloc de commandes remis après chaque history, l'ordre commit/push avant application du delta suivant, les commandes supplémentaires de tag pour une stable validée et la liste des preuves à fournir pour produire le rapport post-tag.
|
||||
Statut opérateur : **FAIL**.
|
||||
|
||||
La tranche introduit un pattern documentaire dédié afin de ne pas recopier ces règles dans chaque delta. Le workflow reste owner de la sémantique ; le template possède seulement la forme de rendu et les variantes tranche normale / échec + fix / clôture stable / post-tag.
|
||||
Le contenu prévu a été matérialisé : `210-WORKFLOW.md` possède le contrat normatif de remise automatique et `006-OPERATOR_COMMAND_HANDOFF.md` fournit la forme de rendu pour tranche ordinaire, échec + fix, clôture stable, tag et preuves `publish.*`. Les `48` tests et les trois audits Markdown sont restés propres.
|
||||
|
||||
La gate spécifique n'a toutefois pas pu s'exécuter jusqu'au bout : le littéral Python `'## Fermeture d'une tranche non stable'` utilisait des quotes simples autour d'un texte contenant l'apostrophe de `d'une`, provoquant `SyntaxError: unterminated string literal`. Le défaut appartient à la gate ; aucun défaut normatif du workflow ou du template n'est établi.
|
||||
|
||||
### alpha.3.fix.1 — correction de la gate du handoff opérateur
|
||||
|
||||
Corriger uniquement la syntaxe du contrôle Python de `alpha.3`, conserver les owners et le delta historique inchangés, puis reconfirmer le handoff automatique, les tests, audits Markdown et le scope minimal du fix.
|
||||
|
||||
### alpha.4 — adoption d'un projet existant
|
||||
|
||||
|
||||
94
history/0.1.0/alpha.3.fix.1.md
Normal file
94
history/0.1.0/alpha.3.fix.1.md
Normal file
@@ -0,0 +1,94 @@
|
||||
<!-- file: history/0.1.0/alpha.3.fix.1.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# History 0.1.0-alpha.3.fix.1 — correction de la gate du handoff opérateur
|
||||
|
||||
## Statut
|
||||
|
||||
PASS
|
||||
|
||||
La gate opérateur de `0.1.0-alpha.3.fix.1` exécutée le `2026-09-26` a réussi. Le `FAIL` historique de `alpha.3` est conservé, la syntaxe du contrôle Python a été corrigée sans modifier les owners du handoff, puis le contenu de `210-WORKFLOW.md` et de `006-OPERATOR_COMMAND_HANDOFF.md` a été reconfirmé.
|
||||
|
||||
## Baseline opérateur
|
||||
|
||||
La tranche `0.1.0-alpha.3` a été clôturée avec son history `FAIL`, puis committée et poussée avant application du fix :
|
||||
|
||||
```text
|
||||
commit f374816
|
||||
message 0.1.0-alpha.3
|
||||
push origin/master PASS
|
||||
```
|
||||
|
||||
Après application du correctif, les contrôles initiaux ont confirmé :
|
||||
|
||||
```text
|
||||
VERSION 0.1.0-alpha.3.fix.1
|
||||
history/0.1.0/alpha.3.md présent dans HEAD et le workspace
|
||||
deltas/0.1.0/alpha.3.md présent
|
||||
deltas/0.1.0/alpha.3.fix.1.md présent
|
||||
docs/templates/006-OPERATOR_COMMAND_HANDOFF.md présent
|
||||
history/0.1.0/alpha.3.fix.1.md absent pendant la gate
|
||||
docs/rules/210-WORKFLOW.md version 7
|
||||
docs/templates/006-OPERATOR_COMMAND_HANDOFF.md version 1
|
||||
docs/000-README.md version 19
|
||||
docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md version 5
|
||||
```
|
||||
|
||||
Le statut `FAIL` de `history/0.1.0/alpha.3.md` a été retrouvé explicitement.
|
||||
|
||||
## Validation opérateur observée
|
||||
|
||||
Le contrôle Python corrigé a terminé proprement :
|
||||
|
||||
```text
|
||||
0.1.0 alpha.3.fix.1 operator handoff gate: clean (alpha.3 FAIL preserved, workflow/template reconfirmed, Python literals safe)
|
||||
```
|
||||
|
||||
Il reconfirme notamment :
|
||||
|
||||
- le contrat normatif de remise automatique dans `210-WORKFLOW.md` ;
|
||||
- l'interdiction d'inventer remote, branche ou politique de tag ;
|
||||
- la clôture stable au premier `rel.N[/fix.M]` réellement `PASS` ;
|
||||
- la distinction entre objet tag et commit déréférencé ;
|
||||
- la production de `publish.*` uniquement à partir de preuves post-publication réellement disponibles ;
|
||||
- les blocs du pattern opérateur pour tranche ordinaire, échec + fix, stable, tag et reprise après `publish.* PASS`.
|
||||
|
||||
La suite Python globale a exécuté `48` tests, tous réussis :
|
||||
|
||||
```text
|
||||
Ran 48 tests in 0.688s
|
||||
|
||||
OK
|
||||
```
|
||||
|
||||
Les audits documentaires sont propres :
|
||||
|
||||
```text
|
||||
Markdown header audit: clean (182 file(s))
|
||||
Markdown table audit: clean (8 table(s), 182 file(s))
|
||||
Markdown link audit: clean (167 local link(s), 182 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.3.fix.1.md
|
||||
M docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
|
||||
```
|
||||
|
||||
Le scope correspond au correctif annoncé. `docs/rules/210-WORKFLOW.md`, `docs/templates/006-OPERATOR_COMMAND_HANDOFF.md`, `docs/000-README.md` et le delta historique `alpha.3.md` sont restés inchangés.
|
||||
|
||||
## Décision
|
||||
|
||||
`0.1.0-alpha.3.fix.1` est `PASS`. Aucun nouveau fix ni REPLAN n'est requis.
|
||||
|
||||
La trajectoire normale reprend à :
|
||||
|
||||
```text
|
||||
0.1.0-alpha.4
|
||||
```
|
||||
|
||||
Cette tranche formalise l'adoption proportionnée de PGR par un projet existant, distincte de l'instanciation d'un nouveau projet et sans migration concrète de Games ou KSP dans `0.1.0`.
|
||||
Reference in New Issue
Block a user