v0.2.14-pre.002

This commit is contained in:
2026-08-28 11:07:16 +02:00
parent 5e5ed6d1ab
commit c1f61a380f
10 changed files with 605 additions and 9 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/021-V0_2_14_PROGRAM_API_PLAN.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Plan `0.2.14` — Program API foundation
@@ -535,11 +535,17 @@ Ce périmètre reste compatible avec une release clôturable dans une session et
### `pre.001` — Audit KSP + kbot3 + API model + sizing
Présente tranche : baseline, règles/architecture, héritage, ownership, API candidate, dependency graph, threat model, tests et scope réduit. Aucun code Program.
**Statut : réalisé ; gate opérateur intégralement PASS.**
Baseline, règles/architecture, héritage, ownership, API candidate, dependency graph, threat model, tests et scope réduit. Aucun code Program.
### `pre.002` — Scaffold `ksp-program-api` + façade + firewall
Créer la crate, l'ajouter au workspace, poser les réexports Core/Interface retenus, README/USAGE initiaux minimaux et canaris de dépendances/public facade. Aucun trait decoder encore.
**Statut : matérialisé ; gate opérateur à confirmer.**
La crate est membre du workspace avec exactement `ksp-core-lib` et `ksp-interface-lib` comme dépendances normales. Le crate-root réexporte `Error`, `ErrorCode`, `ErrorContext`, `Result`, `Pubkey`, `ProgramAccountMeta` et `ProgramInstruction`. README/USAGE initiaux et canaris `public_api` / `dependency_boundary` sont présents.
Aucun trait decoder, recognition, outcome, registry, codec, runtime logging ou execution preparer n'est avancé.
### `pre.003` — Recognition + outcome minimal
@@ -571,6 +577,28 @@ Mécanique de publication uniquement.
La numérotation reste souple : une anomalie peut insérer une tranche dédiée, mais les couloirs `gate technique -> réconciliation documentaire -> publication minimale` restent séparés.
## 13.1 État préparé après `pre.002`
Le scaffold strict attendu pour ouvrir `pre.003` est :
```text
ksp-program-api membre workspace
normal dependencies ksp-core-lib + ksp-interface-lib uniquement
crate-root facade Core/Interface réexportés explicitement
public modules aucun
ProgramInstructionRecognition absent par contrat pre.002
ProgramInstructionDecodeOutcome absent par contrat pre.002
ProgramInstructionDecoder absent par contrat pre.002
ProgramExecutionPreparer absent
serde / JSON / codecs absents
ksp-logging-lib / tracing absents
README / USAGE initiaux
public API canary présent
dependency firewall canary présent
```
`pre.003` reste limité à `ProgramInstructionRecognition` et `ProgramInstructionDecodeOutcome<Decoded>` avec leur sémantique et leur Debug sûr. Le trait decoder reste réservé à `pre.004`.
## 14. Hors périmètre confirmé
```text