# Delta 0.0.3-alpha.2 — outillage Rust/Cargo partagé ## Baseline et version Baseline : `0.0.3-alpha.1.fix.1` avec `history/0.0.3/alpha.1.fix.1.md` appliqué et committé. Ce delta MUST NOT être appliqué avant ce commit. Version avant application : ```text 0.0.3-alpha.1.fix.1 ``` Version après application : ```text 0.0.3-alpha.2 ``` ## Objet Matérialiser trois configurations Rust/Cargo directement issues des pratiques éprouvées dans KSP et Games, avec des instructions explicites d'adaptation. L'opérateur a précisé après le gate de `alpha.1.fix.1` que la sortie Cargo est généralement déportée vers `../builds//target/` et que Rustfmt/Clippy constituent des conventions de départ qu'il réutilise avec des adaptations mineures. Le `clippy.toml` livré conserve les réglages communs utiles aux deux corpus, sans copier leurs listes d'identifiants propres ni leurs entrées vides. Les niveaux des lints appartiendront aux templates `Cargo.toml` de `alpha.3`, conformément au profil `510`. ## Scope REPLACE : ```text VERSION docs/000-README.md docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md ``` ADD : ```text templates/rust-cargo/rustfmt.toml templates/rust-cargo/clippy.toml templates/rust-cargo/.cargo/config.toml docs/templates/001-RUST_CARGO_TOOLING.md deltas/0.0.3/alpha.2.md ``` DELETE : aucun. Les fichiers complets sont livrés dans l'archive delta. Aucun history `alpha.2`, manifest de suppression, crate PGR ou script d'audit nouveau n'y est inclus. ## Validation opérateur Depuis la racine du dépôt après application du delta : ```bash test "$(cat VERSION)" = '0.0.3-alpha.2' git cat-file -e HEAD:history/0.0.3/alpha.1.fix.1.md test ! -e history/0.0.3/alpha.2.md python3 -B - <<'PY' from pathlib import Path import tomllib root = Path('templates/rust-cargo') rustfmt = tomllib.loads((root / 'rustfmt.toml').read_text(encoding='utf-8')) clippy = tomllib.loads((root / 'clippy.toml').read_text(encoding='utf-8')) cargo = tomllib.loads((root / '.cargo/config.toml').read_text(encoding='utf-8')) assert rustfmt['edition'] == '2024' assert rustfmt['max_width'] == 160 assert clippy['allow-unwrap-in-tests'] is True assert clippy['allowed-idents-below-min-chars'] == ['id'] assert cargo['build']['target-dir'] == '../builds/project-name/target' assert cargo['build']['build-dir'] == cargo['build']['target-dir'] for path in (root / 'rustfmt.toml', root / 'clippy.toml', root / '.cargo/config.toml'): lines = path.read_text(encoding='utf-8').splitlines() assert lines[0] == f'# file: {path.as_posix()}', path assert lines[1] == '# version: 1', path print('Rust/Cargo template TOML audit: clean (3 file(s))') PY 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 files = [Path(name) for name in ('README.md', 'RULES.md', 'ROADMAP.md', 'CHANGELOG.md')] for directory in ('docs', 'deltas', 'history', 'prompts'): files.extend(Path(directory).rglob('*.md')) files = sorted(set(files)) for path in files: lines = path.read_text(encoding='utf-8').splitlines() assert len(lines) >= 2 and lines[0] == f'', path assert re.fullmatch(r'', lines[1]), path print(f'Markdown header audit: clean ({len(files)} file(s))') PY git diff --check git add VERSION docs/000-README.md docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md \ docs/templates/001-RUST_CARGO_TOOLING.md deltas/0.0.3/alpha.2.md \ templates/rust-cargo/rustfmt.toml templates/rust-cargo/clippy.toml \ templates/rust-cargo/.cargo/config.toml git diff --cached --check git status --short ``` Scope attendu avant ajout du history : les trois `REPLACE` et les cinq `ADD` énumérés ci-dessus, sans modification des deltas ou histories précédents. Revue opérateur : confirmer que la convention de sortie Cargo vers un dossier frère est expliquée avec son chemin relatif réel, que `project-name` est à remplacer avant copie et que les lints de niveau Cargo et les manifests restent bien au scope de `alpha.3`. La gate de cette tranche reste documentaire/TOML : PGR ne contient aucun workspace Rust à compiler. ## Transition ### PASS Produire séparément `history/0.0.3/alpha.2.md` avec les sorties réellement observées, l'appliquer et committer avant de préparer `alpha.3` consacré aux manifests Cargo. ### FAIL Enregistrer la défaillance réelle puis corriger ces seuls templates ou instructions dans `alpha.2.fix.1`, sauf besoin de REPLAN justifié.