# Delta `0.2.14-pre.006` — gate technique final Program API ## 1. Base requise Cette tranche s'applique exclusivement après `0.2.14-pre.005-fix.001`. Le gate opérateur du fix est intégralement vert : ```text cargo fmt --all PASS python3 scripts/audit_rust_workspace_rules.py PASS / clean python3 scripts/audit_markdown_tables.py ... PASS / clean — 173 tables / 123 fichiers cargo check --workspace PASS cargo clippy --workspace --all-targets PASS cargo test -p ksp-program-api PASS — 18 tests Rust cargo test -p ksp-logging-lib --test ownership PASS — 2/2 cargo test --workspace PASS cargo tree -p ksp-program-api --edges normal Core + Interface uniquement cargo tree --duplicates inspecté ``` Le faux positif logging de `pre.005` est donc fermé sans changement de production ni de dépendances. ## 2. Objectif Préparer le gate technique final de `0.2.14` sans rouvrir la surface fonctionnelle. Aucun nouveau type, trait, test métier, registry, codec, runtime ou comportement n'est ajouté. Les canaris existants couvrent déjà : ```text ProgramInstructionRecognition ProgramInstructionDecodeOutcome ProgramInstructionDecoder: Send + Sync associated Decoded sans bounds implicites extension externe avec Pubkey non enregistré NoMatch / ProgramMatch / ExactMatch Decoded / Unsupported / Err Core input Interface maximal 255 comptes / 10 240 bytes Debug outcome opaque façade crate-root exacte inventaire de production exact absence de ProgramKind / registry / preparer / payload D3 absence de serde / JSON / Any / codecs absence de logging runtime / IO firewall Core + Interface ``` ## 3. Décision de tranche `pre.006` reste un gate pur. Ajouter un nouveau test uniquement pour matérialiser le numéro de prerelease augmenterait la surface de changement sans renforcer une propriété non couverte. La tranche modifie donc seulement la version workspace, le plan, la validation et le présent delta. ## 4. Version La prerelease non-fix synchronise la version Cargo conformément à `VER-ID-009` : ```text 0.2.14-pre.5.fix.1 → 0.2.14-pre.6 ``` Commit attendu après validation : ```text v0.2.14-pre.006 ``` Aucun tag prerelease. ## 5. Fichier ajouté ```text deltas/0.2.14/pre.006.md ``` ## 6. Fichiers modifiés ```text Cargo.toml docs/plans/021-V0_2_14_PROGRAM_API_PLAN.md docs/validation/017-V0_2_14_PROGRAM_API.md ``` ## 7. Fichiers supprimés Aucun. ## 8. Surface explicitement inchangée ```text crates/ksp-program-api/src/** crates/ksp-program-api/tests/** crates/ksp-program-api/unit_tests/** crates/ksp-program-api/Cargo.toml crates/ksp-program-api/README.md crates/ksp-program-api/USAGE.md CHANGELOG.md ROADMAP.md prompts/** architectures / règles ``` La réconciliation README/USAGE et des documents durables reste réservée à `pre.007`. La préparation du prompt suivant, du CHANGELOG et du ROADMAP reste réservée à `pre.008`. ## 9. Validations exécutées à la génération ```text python3 scripts/audit_rust_workspace_rules.py PASS / clean python3 scripts/audit_markdown_tables.py ... PASS / clean — 174 tables / 124 fichiers contrôle du diff PASS / 3 modifiés + 1 ajouté ``` Aucun `cargo` n'est disponible dans l'environnement de génération ; aucun PASS Cargo local n'est revendiqué. ## 10. Gate opérateur ```bash cargo fmt --all python3 scripts/audit_rust_workspace_rules.py python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.2.14 cargo check --workspace cargo clippy --workspace --all-targets cargo test -p ksp-program-api cargo test -p ksp-logging-lib --test ownership cargo test --workspace cargo tree -p ksp-program-api --edges normal cargo tree --duplicates ``` ## 11. Décisions prises - le scope fonctionnel `0.2.14` est figé ; - aucun nouveau contrat Program n'est introduit ; - aucun registry, payload D3 ou `ProgramExecutionPreparer` n'est anticipé ; - Program API reste déclarative et sans logging runtime ; - Core + Interface restent les seules dépendances normales ; - aucun smoke réseau n'est pertinent pour cette crate instruction-only sans I/O ; - `pre.007` ne commence qu'après gate `pre.006` intégralement vert. ## 12. Questions ouvertes Aucune question technique bloquante pour `0.2.14`. Après gate vert, la seule étape suivante est la réconciliation documentaire finale.