6.8 KiB
Delta 0.1.5-rc.1.fix.1 — alignement des assertions documentaires RC
Diagnostic
La gate opérateur de 0.1.5-rc.1 a validé le freeze fonctionnel, les 55/55 tests Python, les audits d'hygiène/Markdown et le scope Git, mais trois assertions exactes prévues par rc.1 n'ont produit aucune correspondance :
grep -F 'forte recommandation non obligatoire' CHANGELOG.md
grep -F 'aucun numéro de version Games n’est figé' docs/studies/005-V0_1_5_HORIZON_REVIEW.md
grep -F 'ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A' docs/studies/005-V0_1_5_HORIZON_REVIEW.md
history/0.1.5/rc.1.md enregistre donc FAIL.
Le diagnostic est strictement documentaire : les contrats normatifs, la décision d'horizon, le prompt 012 et les validations techniques restent acquis.
Objet
Aligner les formulations de présentation avec les chaînes canoniques exigées par la gate RC sans rouvrir aucun owner normatif et sans commencer rel.1 ou 0.1.6.
Version après application :
0.1.5-rc.1.fix.1
Scope
REPLACE :
VERSION
CHANGELOG.md
docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
docs/studies/005-V0_1_5_HORIZON_REVIEW.md
ADD :
deltas/0.1.5/rc.1.fix.1.md
DELETE : aucun.
README.md, ROADMAP.md, docs/000-README.md, le prompt 012, tous les owners normatifs, skeletons, templates, validations et histories antérieurs MUST rester inchangés.
Corrections
CHANGELOG.md passe en révision 21 et emploie la formulation canonique forte recommandation non obligatoire pour SHOULD / SHOULD NOT.
docs/studies/005-V0_1_5_HORIZON_REVIEW.md passe en révision 2 et :
- contient explicitement la sous-chaîne
aucun numéro de version Games n’est figé; - expose explicitement la classification canonique
ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/Aavant son détail ligne par ligne.
docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md passe en révision 7 et conserve la vérité opérateur rc.1 FAIL ainsi que le scope borné du présent fix.
Aucune décision d'horizon n'est modifiée.
Gate opérateur
Après commit/push de rc.1 avec son history FAIL, appliquer ce delta puis exécuter :
cat VERSION
test -f history/0.1.5/rc.1.md
test -f deltas/0.1.5/rc.1.fix.1.md
test ! -e history/0.1.5/rc.1.fix.1.md
grep -Fx '0.1.5-rc.1.fix.1' VERSION
grep -A2 '^## Statut$' history/0.1.5/rc.1.md | grep -Fx 'FAIL'
grep -Fx '<!-- version: 21 -->' CHANGELOG.md
grep -F 'forte recommandation non obligatoire' CHANGELOG.md
grep -Fx '<!-- version: 2 -->' docs/studies/005-V0_1_5_HORIZON_REVIEW.md
grep -F 'aucun numéro de version Games n’est figé' docs/studies/005-V0_1_5_HORIZON_REVIEW.md
grep -F 'ADOPT / KEEP-LOCAL / OVERRIDE / DEFER / N/A' docs/studies/005-V0_1_5_HORIZON_REVIEW.md
grep -F 'conserver `0.1.6` comme prochaine release' docs/studies/005-V0_1_5_HORIZON_REVIEW.md
grep -F 'Aucun `0.1.9` n’est réservé' docs/studies/005-V0_1_5_HORIZON_REVIEW.md
grep -Fx '<!-- version: 7 -->' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F 'Gate `rc.1` en échec documentaire et correctif `rc.1.fix.1`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F 'history/0.1.5/rc.1.md` enregistre donc le résultat réel `FAIL`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -F '`rel.1` reste bloqué tant que `rc.1.fix.1` n’est pas validé `PASS`' docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
grep -Fx '<!-- version: 33 -->' README.md
grep -Fx '<!-- version: 18 -->' ROADMAP.md
grep -Fx '<!-- version: 52 -->' docs/000-README.md
grep -Fx '<!-- version: 1 -->' prompts/012-V0_1_6_START_PROMPT.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
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 {p.name for p in Path('deltas/0.1.5').glob('*.md')} == {'alpha.1.md','alpha.1.fix.1.md','alpha.2.md','alpha.3.md','alpha.4.md','beta.1.md','rc.1.md','rc.1.fix.1.md'}; assert {p.name for p in Path('history/0.1.5').glob('*.md')} == {'alpha.1.md','alpha.1.fix.1.md','alpha.2.md','alpha.3.md','alpha.4.md','beta.1.md','rc.1.md'}; print('0.1.5 rc.1.fix.1 history boundary: clean (110 closed prior pairs, current rc.1.fix.1 pending)')"
git diff --exit-code -- history/0.1.4
git diff --exit-code -- README.md ROADMAP.md docs/000-README.md \
prompts/012-V0_1_6_START_PROMPT.md 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
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
git diff --check
git status --short
git add VERSION CHANGELOG.md \
docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md \
docs/studies/005-V0_1_5_HORIZON_REVIEW.md \
deltas/0.1.5/rc.1.fix.1.md
git diff --cached --check
git status --short
Scope Git attendu
M CHANGELOG.md
M VERSION
A deltas/0.1.5/rc.1.fix.1.md
M docs/plans/011-V0_1_5_NORMATIVE_AUTONOMY_PLAN.md
M docs/studies/005-V0_1_5_HORIZON_REVIEW.md
Transition
PASS
Produire history/0.1.5/rc.1.fix.1.md, committer/pousser 0.1.5-rc.1.fix.1, puis préparer rel.1 comme promotion stable mécanique sans nouveau scope.
FAIL
Enregistrer le résultat réel dans history/0.1.5/rc.1.fix.1.md et poursuivre sous rc.1.fix.N. Ne pas commencer rel.1 tant que le correctif RC n'est pas PASS.