# Delta 0.0.3-rc.1 — gel du scope et préparation de release ## Baseline et version Baseline : `0.0.3-beta.1`, avec `history/0.0.3/beta.1.md` appliqué et committé. Ce delta MUST NOT être appliqué avant ce commit. Version avant application : ```text 0.0.3-beta.1 ``` Version après application : ```text 0.0.3-rc.1 ``` ## Objet et gel La gate de `beta.1` est `PASS`. La RC gèle le scope fonctionnel : cinq modèles Rust/Cargo adaptables, deux audits facultatifs de style Rust, un audit de headers Markdown et une spécification du message manuel de reprise. La candidate `0.0.3` du changelog décrit ces résultats sans détailler les fixes ; le plan enregistre le gel et l'état observé de beta. Le prompt `004` prépare le cadrage de `0.0.4` consacré aux skeleton specifications Markdown et à la composition des profils/templates. Il demande un audit de la future archive taggée `v0.0.3` et traite son rapport post-tag comme une preuve conditionnelle, jamais acquise en RC. Son message manuel doit être ajusté et remis après la publication et son contrôle réel. Aucun skeleton complet, générateur, règle normative nouvelle, audit nouveau ni projet source modifié n'appartient à `rc.1`. ## Scope REPLACE : ```text VERSION CHANGELOG.md docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md ``` ADD : ```text prompts/004-V0_0_4_START_PROMPT.md deltas/0.0.3/rc.1.md ``` DELETE : aucun. L'archive contient exactement ces fichiers complets. Le history `beta.1` est livré séparément ; le history `rc.1` sera produit après la gate opérateur. Les histories et deltas antérieurs, les règles, modèles techniques, scripts, tests et `ROADMAP.md` restent inchangés. ## Gate opérateur de release candidate Après application sur le commit `beta.1`, depuis la racine du dépôt : ```bash test "$(cat VERSION)" = '0.0.3-rc.1' git cat-file -e HEAD:history/0.0.3/beta.1.md test -f history/0.0.3/beta.1.md test -f deltas/0.0.3/rc.1.md test -f prompts/004-V0_0_4_START_PROMPT.md test ! -e history/0.0.3/rc.1.md grep -Fx '' CHANGELOG.md grep -Fx '## 0.0.3 (candidate)' CHANGELOG.md grep -Fx '' docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md grep -F 'La gate opérateur de `beta.1` est `PASS`' docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md grep -F 'pgr-0.0.3-publish.001-report.md' prompts/004-V0_0_4_START_PROMPT.md grep -F "Si le rapport manque ou n'est pas PASS" prompts/004-V0_0_4_START_PROMPT.md python3 -B -m unittest discover -s tests -p 'test_*.py' -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 import tomllib names = ['alpha.1', 'alpha.1.fix.1', 'alpha.2', 'alpha.3', 'alpha.4', 'alpha.5', 'alpha.6', 'beta.1'] version = '0.0.2' for name in names: delta = Path(f'deltas/0.0.3/{name}.md').read_text(encoding='utf-8') history = Path(f'history/0.0.3/{name}.md').read_text(encoding='utf-8') assert re.search(r'## Statut\s+PASS\s', history), name assert f'Version avant application : `{version}`.' in delta or \ f'Version avant application :\n\n```text\n{version}\n```' in delta, name version = f'0.0.3-{name}' assert f'Version après application : `{version}`.' in delta or \ f'Version après application :\n\n```text\n{version}\n```' in delta, name assert {p.stem for p in Path('deltas/0.0.3').glob('*.md')} - \ {p.stem for p in Path('history/0.0.3').glob('*.md')} == {'rc.1'} for path in Path('templates/rust-cargo').rglob('*.toml'): tomllib.loads(path.read_text(encoding='utf-8')) print(f'RC integration audit: clean ({len(names)} PASS histories, 5 TOML files)') PY git diff --check git add VERSION CHANGELOG.md docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md \ prompts/004-V0_0_4_START_PROMPT.md deltas/0.0.3/rc.1.md git diff --cached --check git status --short ``` Scope attendu avant ajout du history : trois `REPLACE` et deux `ADD`. Revue opérateur : contrôler que le changelog décrit la release et non les tranches, que les exemples Cargo restent adaptables, que `004` concerne exclusivement la future `0.0.4` et que sa preuve post-tag n'est pas présumée. Une gate RC PASS n'est pas un tag ni une vérification de l'archive publiée. ## Transition ### PASS Produire séparément `history/0.0.3/rc.1.md` d'après la gate observée, l'appliquer puis committer la RC avant la promotion stable `rel.001`. ### FAIL Consigner les échecs dans le history RC et corriger le scope gelé dans `rc.1.fix.1` ; réviser le plan si un changement fonctionnel plus large s'impose.