Files
pgr/deltas/0.1.5/rel.1.md
2026-10-01 11:02:04 +02:00

7.0 KiB

Delta 0.1.5 rel.1 — promotion stable pré-tag

Baseline et version

Baseline : 0.1.5-rc.1.fix.1, avec history/0.1.5/rc.1.fix.1.md appliqué et committé. Ce delta MUST NOT être appliqué avant ce commit.

Version avant application :

0.1.5-rc.1.fix.1

Version après application :

0.1.5

rel.1 identifie la clôture opérationnelle ; il ne fait pas partie de la version SemVer du produit.

Objet

Promouvoir mécaniquement la RC corrigée vers la stable 0.1.5 sans rouvrir les trois contrats stabilisés et sans commencer 0.1.6.

La tranche finalise uniquement la présentation et les métadonnées de release : version stable, roadmap terminée, changelog sans marqueur candidate, README/index en état stable et plan 011 historique.

Aucun owner normatif, skeleton, template, audit Python, étude d'horizon ou prompt de reprise n'est modifié par rel.1.

La validation de cette tranche est pré-tag. Le tag v0.1.5, son archive source Gitea et le rapport pgr-0.1.5-publish.001-report.md ne sont pas déclarés existants par ce delta. Ils suivent uniquement un history rel.1 PASS, le commit stable 0.1.5 et la publication réelle du tag.

Scope

REPLACE :

VERSION
README.md
ROADMAP.md
CHANGELOG.md
docs/000-README.md
docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md

ADD :

deltas/0.1.5/rel.1.md

DELETE : aucun.

Le history rc.1.fix.1 est livré séparément. Le history rel.1 sera produit uniquement après la gate opérateur.

Validation opérateur pré-tag

Après application sur le commit contenant history/0.1.5/rc.1.fix.1.md :

cat VERSION

test -f history/0.1.5/rc.1.fix.1.md
test -f deltas/0.1.5/rel.1.md
test -f prompts/012-V0_1_6_START_PROMPT.md
test -f docs/studies/005-V0_1_5_HORIZON_REVIEW.md
test ! -e history/0.1.5/rel.1.md

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

grep -Fx '<!-- version: 34 -->' README.md
grep -F 'La stable autoritaire courante est `0.1.5`' README.md
grep -F 'La release `0.1.5` stabilise la sémantique `MUST / SHOULD / MAY`' README.md
grep -F 'plan historique de la stable `0.1.5`' README.md

grep -Fx '<!-- version: 22 -->' CHANGELOG.md
grep -Fx '## 0.1.5' CHANGELOG.md
! grep -Fx '## 0.1.5 (candidate)' CHANGELOG.md
grep -F 'forte recommandation non obligatoire' CHANGELOG.md

grep -Fx '<!-- version: 19 -->' ROADMAP.md
grep -F -- '- `(x) 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

grep -Fx '<!-- version: 53 -->' docs/000-README.md
grep -F 'plan historique de la stable `0.1.5`' docs/000-README.md
grep -F 'prompts/012-V0_1_6_START_PROMPT.md' docs/000-README.md

grep -Fx '<!-- version: 8 -->' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F 'Gate `rc.1.fix.1` acquise et promotion stable' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F 'Le plan devient historique avec la stable `0.1.5`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F 'pgr-0.1.5-publish.001-report.md' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md

grep -Fx '<!-- version: 16 -->' RULES.md
grep -Fx '<!-- version: 9 -->' docs/rules/210-WORKFLOW.md
grep -Fx '<!-- version: 3 -->' docs/rules/230-ADOPTION.md
grep -Fx '<!-- version: 5 -->' docs/rules/300-DOCUMENTATION.md
grep -Fx '<!-- version: 2 -->' docs/rules/400-VALIDATION.md
grep -Fx '<!-- version: 2 -->' docs/studies/005-V0_1_5_HORIZON_REVIEW.md
grep -Fx '<!-- version: 1 -->' prompts/012-V0_1_6_START_PROMPT.md

python3 -B -c "from pathlib import Path; import re; expected={'alpha.1.md':'PARTIAL','alpha.1.fix.1.md':'PASS','alpha.2.md':'PASS','alpha.3.md':'PASS','alpha.4.md':'PASS','beta.1.md':'PASS','rc.1.md':'FAIL','rc.1.fix.1.md':'PASS'}; assert all(Path('deltas/0.1.5',n).is_file() and Path('history/0.1.5',n).is_file() and re.search(rf'## Statut\s+{st}\s',Path('history/0.1.5',n).read_text(encoding='utf-8')) for n,st in expected.items()); assert {p.name for p in Path('deltas/0.1.5').glob('*.md')} - {p.name for p in Path('history/0.1.5').glob('*.md')} == {'rel.1.md'}; print('0.1.5 rel.1 stable gate audit: clean (8 prior histories including alpha.1 PARTIAL and rc.1 FAIL/fix PASS, rel.1 pending)')"

python3 -B -c "from pathlib import Path; s=Path('CHANGELOG.md').read_text(encoding='utf-8').split('## 0.1.5',1)[1].split('## 0.1.4',1)[0]; assert all(x not in s for x in ('alpha.1','alpha.2','alpha.3','alpha.4','beta.1','rc.1','rc.1.fix.1','rel.1')); print('0.1.5 stable changelog: clean')"

git diff --exit-code -- history/0.1.4

git diff --exit-code -- RULES.md     docs/objectives/001-PROJECT_OBJECTIVES.md     docs/architecture/002-GOVERNANCE_ARCHITECTURE.md     docs/rules/210-WORKFLOW.md docs/rules/220-SKELETONS.md     docs/rules/230-ADOPTION.md docs/rules/300-DOCUMENTATION.md     docs/rules/400-VALIDATION.md docs/rules/500-LANGUAGES.md     docs/rules/530-TYPESCRIPT.md docs/rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md     docs/rules/700-FRAMEWORKS.md     docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md     docs/skeletons/003-WEB_FRONTEND.md     docs/templates/003-NEW_SESSION_PROMPT.md     docs/templates/007-EXISTING_PROJECT_ADOPTION.md     docs/templates/008-WEB_TYPESCRIPT_PACKAGE.md     docs/studies/005-V0_1_5_HORIZON_REVIEW.md     prompts/012-V0_1_6_START_PROMPT.md

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

python3 -B scripts/audit_text_hygiene.py     VERSION README.md RULES.md ROADMAP.md CHANGELOG.md     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

git diff --check
git status --short

git add VERSION README.md ROADMAP.md CHANGELOG.md     deltas/0.1.5/rel.1.md     docs/000-README.md     docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md

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

Scope Git attendu

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

Transition après PASS

Si cette gate pré-tag est PASS :

  1. produire history/0.1.5/rel.1.md avec les preuves opérateur réelles ;
  2. appliquer ce history ;
  3. git add -A, git diff --cached --check, puis committer 0.1.5 sans suffixe rel.1 ;
  4. pousser master ;
  5. vérifier un workspace propre ;
  6. créer et pousser le tag annoté v0.1.5 ;
  7. télécharger l'archive Gitea du tag et produire pgr-0.1.5-publish.001-report.md après vérification indépendante ;
  8. seulement après publish.001 PASS, ouvrir 0.1.6 avec prompts/012-V0_1_6_START_PROMPT.md et une archive Games récente explicitement autoritaire.