Files
pgr/deltas/0.0.5/alpha.2.md
2026-09-24 21:21:44 +02:00

7.5 KiB

Delta 0.0.5-alpha.2 — contrat générique des prompts de démarrage

Baseline et version

Baseline attendue : commit opérateur de 0.0.5-alpha.1, réalisé après application de history/0.0.5/alpha.1.md avec statut PASS.

Le hash de ce commit n'est volontairement pas anticipé : le history alpha.1 et le présent delta peuvent être livrés dans le même échange, mais restent deux archives séparées et le delta alpha.2 MUST NOT être appliqué avant le commit de alpha.1.

Version avant application :

0.0.5-alpha.1

Version après application :

0.0.5-alpha.2

Objet

Exécuter la deuxième tranche du plan 0.0.5 en renforçant l'owner docs/rules/210-WORKFLOW.md pour les prompts de démarrage versionnés.

Les prompts PGR récents et les baselines KSP/Games montrent qu'un bon prompt de reprise ne se limite pas à nommer une baseline et une mission : il doit permettre de reconstruire explicitement l'état utile, les sources à lire, les décisions déjà acquises, les limites de scope, la première gate et la trajectoire de validation sans réimporter toute la documentation du projet.

La tranche généralise ce contrat sémantique sans copier la structure exhaustive des prompts KSP/Games. Elle ne crée ni nouveau template manuel ni nouveau type d'artefact.

Scope

REPLACE :

VERSION
docs/rules/000-README.md
docs/rules/210-WORKFLOW.md

ADD :

deltas/0.0.5/alpha.2.md

DELETE : aucun.

L'archive delta contient uniquement ces quatre fichiers complets avec leurs chemins relatifs. Elle ne contient pas history/0.0.5/alpha.1.md, livré séparément pour clôturer la tranche précédente, ni history/0.0.5/alpha.2.md, qui sera produit après la gate opérateur.

Le plan docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md, l'étude docs/studies/001-KSP_GAMES_RECONCILIATION.md et docs/templates/003-NEW_SESSION_PROMPT.md restent inchangés : cette tranche exécute leur trajectoire et préserve explicitement la séparation entre prompt versionné et message manuel de nouvelle session.

Contrat matérialisé

docs/rules/210-WORKFLOW.md porte désormais un contrat réutilisable des prompts de démarrage versionnés couvrant :

  • baseline autoritaire, cible et première tranche ;
  • ordre de lecture nécessaire à une reprise fiable ;
  • état déjà acquis et traçabilité des décisions conservées ;
  • mission et résultat attendu ;
  • scope et hors-scope ;
  • décisions gelées et questions ouvertes ;
  • première gate et travaux éventuellement interdits avant sa fermeture ;
  • trajectoire prévisionnelle explicitement non contraignante ;
  • validation et responsabilité de la preuve ;
  • comportement fail-closed lorsqu'une source externe requise manque.

Le contrat reste sémantique : il n'impose pas neuf titres littéraux ni une longueur uniforme. Les projets importants peuvent détailler leur ordre de lecture et leurs questions de cadrage ; les projets simples conservent une forme courte dès lors que les mêmes responsabilités sont couvertes.

Les règles locales de langage, plateforme, framework, architecture ou métier ne deviennent pas des règles PGR parce qu'elles apparaissent dans un prompt. Le prompt doit renvoyer vers les owners existants au lieu de les dupliquer.

docs/templates/003-NEW_SESSION_PROMPT.md conserve son rôle distinct : produire la courte phrase manuelle de reprise après une stable publiée. Il ne remplace pas le prompt versionné et n'est pas dupliqué par cette tranche.

Validation opérateur

Après avoir appliqué history/0.0.5/alpha.1.md, committé 0.0.5-alpha.1, puis appliqué le présent delta, depuis la racine du dépôt :

test "$(cat VERSION)" = '0.0.5-alpha.2'
test -f history/0.0.5/alpha.1.md
test -f deltas/0.0.5/alpha.2.md
test ! -e history/0.0.5/alpha.2.md

grep -Fx '<!-- version: 12 -->' docs/rules/000-README.md
grep -Fx '<!-- version: 4 -->' docs/rules/210-WORKFLOW.md
grep -F 'prompts versionnés' docs/rules/000-README.md

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

python3 -B - <<'PY'
from pathlib import Path
import re

history = Path('history/0.0.5/alpha.1.md').read_text(encoding='utf-8')
assert re.search(r'## Statut\s+PASS\s', history)

workflow = Path('docs/rules/210-WORKFLOW.md').read_text(encoding='utf-8')
required = (
    '## Prompt de démarrage versionné',
    '### Contrat minimal',
    'baseline autoritaire et cible',
    'ordre de lecture',
    'état déjà acquis',
    'mission et résultat attendu',
    'scope et hors-scope',
    'décisions gelées et questions ouvertes',
    'première gate',
    'trajectoire prévisionnelle',
    'validation et responsabilité',
    '### Sources externes et données manquantes',
    '### Décisions acquises et détails locaux',
    '### Création et clôture',
    '003-NEW_SESSION_PROMPT.md',
)
for phrase in required:
    assert phrase in workflow, phrase

for forbidden in (
    'prompts/036-V0_3_17_START_PROMPT.md',
    'prompts/007-V0_3_6_START_PROMPT.md',
    'tokio-postgres',
    'WebTransport',
    'Uroburas',
):
    assert forbidden not in workflow, forbidden

assert 'MUST NOT les recopier exhaustivement' in workflow
assert 'Le prompt n\'a pas à reproduire littéralement cette numérotation.' in workflow
assert 'MUST NOT autoriser à reconstituer silencieusement' in workflow
assert 'Les contraintes locales de langage, plateforme, framework, architecture ou métier restent chez leurs owners respectifs.' in workflow

manual = Path('docs/templates/003-NEW_SESSION_PROMPT.md').read_text(encoding='utf-8')
assert '<!-- version: 1 -->' in manual
assert 'une seule phrase' in manual

print('0.0.5 alpha.2 prompt contract audit: clean (versioned prompt strengthened, manual restart template unchanged)')
PY

git diff --check
git add VERSION docs/rules/000-README.md docs/rules/210-WORKFLOW.md \
    deltas/0.0.5/alpha.2.md
git diff --cached --check
git status --short

Le scope indexé attendu avant ajout du history est :

M  VERSION
A  deltas/0.0.5/alpha.2.md
M  docs/rules/000-README.md
M  docs/rules/210-WORKFLOW.md

La revue opérateur doit en outre confirmer que :

  • le nouveau contrat décrit des responsabilités de reprise et non une liste obligatoire de titres ;
  • la baseline et les sources manquantes restent fail-closed : aucun état externe n'est reconstruit depuis un souvenir ou un workspace non fourni ;
  • les décisions acquises sont résumées seulement lorsqu'elles empêchent une régression utile et restent traçables vers leur owner ;
  • les contraintes KSP/Games spécifiques ne sont pas aspirées dans la règle générale ;
  • le template 003-NEW_SESSION_PROMPT.md reste la forme courte post-publication et n'est ni remplacé ni dupliqué.

Transition

PASS

Rédiger et livrer séparément history/0.0.5/alpha.2.md avec les résultats réellement observés ; l'appliquer et committer la tranche. Préparer seulement ensuite 0.0.5-alpha.3 pour le pattern facultatif de contrats de fichiers/familles.

FAIL

Consigner le résultat réel dans le history de alpha.2, puis corriger le contrat dans 0.0.5-alpha.2.fix.1 ou produire un REPLAN motivé. Aucun contenu de alpha.3 ne doit être absorbé silencieusement dans un fix.