Files
pgr/deltas/0.1.0/alpha.3.fix.1.md

5.7 KiB

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 :

0.1.0-alpha.3

Version après application :

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 :

'## Fermeture d'une tranche non stable'

Le fix rend les assertions textuelles syntaxiquement sûres sans modifier ce qu'elles vérifient.

Scope

REPLACE :

VERSION
docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md

ADD :

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 :

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 :

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.