v0.1.0-pre.012

This commit is contained in:
2026-07-24 15:59:00 +02:00
parent 60660ca555
commit e753a80c3a
179 changed files with 5653 additions and 10813 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: RULES.md -->
<!-- version: 20 -->
<!-- version: 21 -->
# Règles spécifiques à `khadhroony-bot3`
@@ -20,6 +20,7 @@ Toute livraison doit exécuter l'audit `python3 scripts/audit_rust_workspace_rul
- Les blocs consécutifs de réexports `pub use` et `pub(crate) use` ne contiennent aucune ligne vide interne et restent ordonnés alphabétiquement lorsque `cargo fmt` ne les réordonne pas.
- Les familles de symboles consolidées dans `kb-lib` utilisent les préfixes `DC_`/`Dc`/`decoder_` pour les décodeurs, `MT_`/`Mt`/`materializer_` pour les matérialisateurs, `EX_`/`Ex`/`executor_` pour les exécuteurs et `MD_`/`Md`/`model_` pour les modèles.
- Les méthodes inhérentes et helpers strictement privés peuvent conserver un nom local court ; les préfixes sappliquent aux constantes, types, traits et fonctions libres exposés à la crate ou hors de la crate.
- Les constantes temporaires `*_LEGACY_CRATE`, `*_MIGRATION_STATUS` et `*_MIGRATION_BOUNDARIES` doivent disparaître dune famille dès que ses squelettes typés sont restaurés ; elles ne constituent jamais une API durable.
## Règles Tauri et TypeScript
@@ -83,21 +84,23 @@ Les nouvelles surfaces de programmes doivent utiliser un nom canonique basé sur
<function_code>_<family_code>_<identifier_code>[_vN]
```
Les modules de décodage doivent utiliser :
Les modules internes de décodage doivent utiliser la hiérarchie de fichiers :
```text
kb_lib::decoder::<function_code>::<family_code>_<identifier_code>[_vN]
kb-lib/src/decoder/<function_code>/<family_code>_<identifier_code>[_vN].rs
```
Exemples :
- `kb_lib::decoder::amm::raydium_cpmm` ;
- `kb_lib::decoder::clmm::raydium` ;
- `kb_lib::decoder::dlmm::meteora` ;
- `kb_lib::decoder::router::jupiter_aggregator_v6` ;
- `kb_lib::decoder::orderbook::openbook_v2` ;
- `kb_lib::decoder::metadata::metaplex_token_metadata` ;
- `kb_lib::decoder::nft::metaplex_bubblegum`.
- `kb-lib/src/decoder/amm/raydium_cpmm.rs` ;
- `kb-lib/src/decoder/clmm/raydium.rs` ;
- `kb-lib/src/decoder/dlmm/meteora.rs` ;
- `kb-lib/src/decoder/router/jupiter_aggregator_v6.rs` ;
- `kb-lib/src/decoder/orderbook/openbook_v2.rs` ;
- `kb-lib/src/decoder/metadata/metaplex_token_metadata.rs` ;
- `kb-lib/src/decoder/nft/metaplex_bubblegum.rs`.
Ces modules restent privés. Les consommateurs externes utilisent exclusivement les types et fonctions réexportés directement par `kb_lib`.
Les noms historiques ou issus d'IDL doivent être conservés dans le registre, mais ne doivent pas créer de nouveau module si un module canonique existe déjà.
@@ -181,7 +184,7 @@ Aucun renommage massif de modules n'est autorisé sans étape de contrôle dédi
- Les exécuteurs résident dans `kb_lib::executor`.
- Une surface classifiée peut avoir un module décodeur et un module exécuteur distincts dans `kb-lib`.
- Les exécuteurs ne doivent pas dépendre des décodeurs.
- Les exécuteurs doivent passer par `kb_lib::executor::api` pour leur contrat public.
- Les exécuteurs utilisent les contrats `ExApi*` réexportés directement par la façade `kb_lib`.
- Les garde-fous communs doivent être placés dans les modules de sécurité partagés de `kb-lib`.
- Aucun exécuteur ne doit envoyer de transaction sans simulation et validation explicite.
- Les surfaces non classifiées ne doivent pas avoir de crate exécuteur.