0.0.5-alpha.2
This commit is contained in:
179
deltas/0.0.5/alpha.2.md
Normal file
179
deltas/0.0.5/alpha.2.md
Normal file
@@ -0,0 +1,179 @@
|
||||
<!-- file: deltas/0.0.5/alpha.2.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# 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 :
|
||||
|
||||
```text
|
||||
0.0.5-alpha.1
|
||||
```
|
||||
|
||||
Version après application :
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```text
|
||||
VERSION
|
||||
docs/rules/000-README.md
|
||||
docs/rules/210-WORKFLOW.md
|
||||
```
|
||||
|
||||
ADD :
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```bash
|
||||
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 :
|
||||
|
||||
```text
|
||||
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.
|
||||
Reference in New Issue
Block a user