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 :
- produire
history/0.1.5/rel.1.mdavec les preuves opérateur réelles ; - appliquer ce history ;
git add -A,git diff --cached --check, puis committer0.1.5sans suffixerel.1;- pousser
master; - vérifier un workspace propre ;
- créer et pousser le tag annoté
v0.1.5; - télécharger l'archive Gitea du tag et produire
pgr-0.1.5-publish.001-report.mdaprès vérification indépendante ; - seulement après
publish.001 PASS, ouvrir0.1.6avecprompts/012-V0_1_6_START_PROMPT.mdet une archive Games récente explicitement autoritaire.