Files
pgr/deltas/0.1.5/alpha.1.md
2026-09-30 09:48:05 +02:00

11 KiB
Raw Permalink Blame History

Delta 0.1.5-alpha.1 — intake, audit transversal et plan d’autonomie

Objet

Ouvrir 0.1.5 conformément à prompts/011-V0_1_5_START_PROMPT.md, rejouer la stable 0.1.4, conserver son histoire réelle et matérialiser l’inventaire des ambiguïtés avant toute modification normative.

La tranche ne modifie aucune règle, aucun skeleton ni template normatif. Elle ne commence ni l’adoption Games 0.1.6, ni l’adoption KSP 0.1.7, ni les audits Rust/Clippy 0.1.8.

Sources vérifiées avant préparation

pgr-v0.1.4(1).zip
SHA-256  9f85ac16a5ad9fd788df51883b6ebf592602c5189d94e338a86edab2288b8f77
CRC      PASS
contenu  310 fichiers + 44 répertoires sous pgr/

pgr-0.1.4-publish.001-report.md
SHA-256  bb0c27a69e78037328d13c7be8df255d17f55e1392f1bc1b6121dd32b6fb07da
status   PASS
stable   c41b69badfd10ef9500d4cc4061fc6f66644352c

Le SHA de l’archive reçue correspond au SHA canonique vérifié lors de la publication post-tag. L’absence de .git dans l’archive est normale pour l’export du tag et n’est pas interprétée comme un défaut.

Replay de la stable

La baseline extraite a été vérifiée avant toute préparation de delta :

VERSION                           0.1.4
tests Python                      55/55 PASS
hygiène texte                     309 fichiers PASS
headers Markdown                  282 fichiers PASS
tables Markdown                   11 tables / 282 fichiers PASS
liens Markdown                    357 liens locaux / 282 fichiers PASS
JSON                              2 fichiers parsés
TOML                              5 fichiers parsés
deltas                            103
histories                         103
appariement historique            exact

La séquence 0.1.4 publiée est explicitement conservée :

alpha.1          PASS
alpha.2          FAIL
alpha.2.fix.1    PASS
alpha.3          PASS
beta.1           PASS
rc.1             PASS
rel.1            PASS

Aucun history n’est réécrit pour rendre la chronologie artificiellement linéaire.

Résultats de l’audit transversal

Le corpus courant contient 29 fichiers avec au moins un SHOULD ou SHOULD NOT, pour 242 occurrences brutes. Cette volumétrie confirme qu’une conversion mécanique serait incorrecte : la majorité des recommandations restent valides et doivent hériter d’un contrat global clarifié.

Les ambiguïtés confirmées sont consignées dans docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md.

Force normative

  • RULES.md peut faire comprendre qu’un écart à SHOULD doit être systématiquement justifié ;
  • 230-ADOPTION.md peut faire comprendre qu’un choix différent d’un SHOULD nécessite automatiquement OVERRIDE ;
  • 400-VALIDATION.md ne protège pas encore explicitement une gate contre l’échec fondé sur le seul écart à une recommandation ;
  • plusieurs owners Web matérialisent cette ambiguïté par une justification ou un OVERRIDE rendu obligatoire autour d’une recommandation.

Autonomie

Les objectifs, l’architecture, les skeletons et les patterns d’adoption contiennent déjà le principe d’autonomie, mais le contrat « baseline locale = autorité des sessions/releases suivantes » n’est pas encore propagé explicitement partout. PGR doit aussi cesser d’être interprétable comme upstream documentaire vivant après l’adoption.

210-WORKFLOW.md et 003-NEW_SESSION_PROMPT.md sont classés KEEP / REVIEW à ce stade : ils utilisent déjà la baseline autoritaire du projet courant plutôt qu’une version PGR externe.

Frontière PGR / Knowledge

001-PROJECT_OBJECTIVES.md et 002-GOVERNANCE_ARCHITECTURE.md parlent encore de skeletons comme de « recettes Markdown ». Cette terminologie brouille la frontière décidée en 0.1.4, où les recettes pratiques deviennent des candidats à Knowledge tandis qu’un skeleton PGR reste une spécification de composition.

300-DOCUMENTATION.md est proposé comme owner de la taxonomie ; aucun nouvel owner Knowledge n’est créé pendant alpha.1.

Cohérence d’horizon

docs/rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md contient encore une référence vivante à l’adoption Games 0.1.5. La trajectoire autoritaire issue de la revue 0.1.4 réserve maintenant Games à 0.1.6, KSP à 0.1.7 et les audits Rust/Clippy à 0.1.8.

La correction appartient à la réconciliation normative suivante. Les références historiques qui décrivent correctement un horizon antérieur ne doivent pas être réécrites.

Modifications de la tranche

  • VERSION passe à 0.1.5-alpha.1 ;
  • README.md annonce l’ouverture de l’audit transversal et référence le plan actif ;
  • docs/000-README.md ajoute les points d’entrée actifs de 0.1.5 ;
  • docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md consigne preuves, ambiguïtés, owners et trajectoire ;
  • le présent delta décrit la gate opérateur.

ROADMAP.md, CHANGELOG.md, RULES.md, docs/rules/, docs/skeletons/ et docs/templates/ restent normativement inchangés pendant cette tranche d’ouverture.

Décision de tranche

baseline 0.1.4                         VERIFIED
history 0.1.4 alpha.2 FAIL             PRESERVED
inventaire transversal                 COMPLETE
conversion mécanique des SHOULD        REJECTED
owners ciblés                          IDENTIFIED
règles modifiées en alpha.1             NO
Games / KSP / audits Rust commencés     NO
prochaine tranche                       alpha.2 — sémantique normative et gates/adoption

Trajectoire retenue

alpha.1   intake + audit transversal + plan
alpha.2   sémantique MUST/SHOULD/MAY + gates/adoption + cas concrets
alpha.3   autonomie locale + réalignement PGR volontaire
alpha.4   frontière PGR / SaseDev Knowledge
beta.1    réconciliation transversale
rc.1      freeze + handoff
rel.1     promotion stable

Le découpage peut être ajusté uniquement si une gate révèle un défaut réel ou si deux owners ne peuvent pas être corrigés proprement dans la même tranche.

Gate opérateur

Appliquer le delta puis exécuter depuis la racine du dépôt :

cat VERSION

test -f docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
test -f deltas/0.1.5/alpha.1.md
test ! -e history/0.1.5/alpha.1.md

grep -Fx '0.1.5-alpha.1' VERSION
grep -A2 '^## Statut$' history/0.1.4/alpha.2.md | grep -Fx 'FAIL'
grep -A2 '^## Statut$' history/0.1.4/alpha.2.fix.1.md | grep -Fx 'PASS'
grep -A2 '^## Statut$' history/0.1.4/rel.1.md | grep -Fx 'PASS'

grep -F -- '- `(x) 0.1.4`' ROADMAP.md
grep -F -- '- `( ) 0.1.5`' ROADMAP.md
grep -F -- '- `( ) 0.1.6`' ROADMAP.md
grep -F -- '- `( ) 0.1.7`' ROADMAP.md
grep -F -- '- `( ) 0.1.8`' ROADMAP.md
! grep -F -- '- `( ) 0.1.9`' ROADMAP.md

python3 -B -m unittest discover -s tests -v

python3 -B scripts/audit_text_hygiene.py \
    README.md RULES.md ROADMAP.md CHANGELOG.md VERSION \
    docs deltas history prompts scripts tests templates .gitignore .settings
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 -c "from pathlib import Path; expected={'0.0.1':12,'0.0.2':12,'0.0.3':10,'0.0.4':9,'0.0.5':19,'0.1.0':10,'0.1.1':11,'0.1.2':7,'0.1.3':6,'0.1.4':7}; assert all({p.name for p in Path('deltas',r).glob('*.md')} == {p.name for p in Path('history',r).glob('*.md')} and len(list(Path('deltas',r).glob('*.md'))) == n for r,n in expected.items()); assert Path('deltas/0.1.5/alpha.1.md').is_file(); assert not Path('history/0.1.5/alpha.1.md').exists(); print('0.1.5 alpha.1 history boundary: clean (103 prior pairs, current delta pending)')"

grep -F 'forte recommandation non obligatoire' prompts/011-V0_1_5_START_PROMPT.md
grep -F 'ne doivent ni rechercher automatiquement « la dernière version de PGR »' prompts/011-V0_1_5_START_PROMPT.md
grep -F 'réservée à `0.1.6`' prompts/011-V0_1_5_START_PROMPT.md
grep -F 'réservée à `0.1.7`' prompts/011-V0_1_5_START_PROMPT.md
grep -F 'réservés à `0.1.8`' prompts/011-V0_1_5_START_PROMPT.md

grep -F '29` fichiers' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F '242` occurrences' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F 'alpha.2` — sémantique normative' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F 'alpha.3` — autonomie locale' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F 'alpha.4` — frontière PGR / SaseDev Knowledge' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md

git diff --check
git status --short

git add VERSION README.md docs/000-README.md \
    docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md \
    deltas/0.1.5/alpha.1.md

git diff --cached --check
git status --short

Le scope indexé attendu avant ajout du history est :

M  README.md
M  VERSION
A  deltas/0.1.5/alpha.1.md
M  docs/000-README.md
A  docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md

Aucun fichier sous docs/rules/, docs/skeletons/ ou docs/templates/ ne doit être indexé pour alpha.1.

Revue opérateur attendue

La revue doit confirmer que l’inventaire distingue bien :

  • un SHOULD réellement recommandatoire d’une obligation MUST ;
  • un choix local face à une recommandation d’un véritable OVERRIDE ;
  • l’autonomie documentaire du projet d’une simple absence de dépendance runtime/build ;
  • une skeleton specification normative d’une recette pratique candidate à Knowledge ;
  • les références vivantes à corriger des références historiques à préserver.

Elle doit également confirmer qu’aucune adoption Games/KSP, aucun audit Rust futur et aucune réouverture Tauri ne sont introduits par la tranche.

Transition

PASS

Produire history/0.1.5/alpha.1.md à partir des résultats réellement observés. Dans la même réponse, préparer séparément le delta 0.1.5-alpha.2 consacré à la sémantique normative, aux conséquences de gate/adoption et aux cas concrets déjà identifiés, sans absorber l’autonomie alpha.3 ni la frontière Knowledge alpha.4.

Après remise du history, fournir automatiquement le bloc opérateur exact pour appliquer le history, committer/pusher 0.1.5-alpha.1, puis seulement appliquer le delta suivant conformément à docs/templates/006-OPERATOR_COMMAND_HANDOFF.md.

FAIL

Consigner le résultat réel dans le history, puis ouvrir 0.1.5-alpha.1.fix.1 ou un REPLAN selon la cause. Aucun changement prévu pour alpha.2 ne doit être absorbé silencieusement dans le fix.