@@ -1,236 +1,85 @@
<!-- file: docs/RUST_WORKSPACE_RULE_AUDIT.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Audit des règles Rust du workspace
Violations détectées : **616 ** .
L’ entrée unique est :
## Synthèse
``` bash
python3 scripts/audit_rust_workspace_rules.py
```
| Code | Nombre |
|------------|-------:|
| `RUST010` | 156 |
| `RUST011` | 16 |
| `RUST013` | 19 |
| `RUST021` | 1 |
| `TRACE002` | 32 |
| `TRACE003` | 202 |
| `TRACE004` | 190 |
Elle exécute trois contrôles obligatoires :
## Premiers écarts
1. `audit_rust_general_rules.py` pour les règles Rust réutilisables ;
2. `audit_rust_export_completeness.py` pour la fermeture des façades ;
3. `audit_khadhroony_workspace_rules.py` pour les contrats propres au projet.
- `RUST010` `kb_app_demo/src/demo_backfill.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_backfill.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_backfill.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_config.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_config.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_core_extraction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_core_extraction.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_core_extraction.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_decode_replay.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_decode_replay.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_decode_replay.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_execution_solana_core.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_execution_solana_core.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_execution_solana_core.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_execution_spl.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_http.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_http.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_spl_ata.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_spl_token.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_spl_token_2022.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_sql_common.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_sql_common.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_sql_diag.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_sql_pg_core.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_sql_pg_raw.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_sql_replay_candidates.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_ws.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_ws.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_ws.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_ws.rs:993` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/frontend_log.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/lib.rs:13` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/lib.rs:14` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/main.rs:12` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/splash.rs:9` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/splash.rs:10` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_config/src/settings.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_config/src/settings.rs:1223` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_api/src/contracts.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_metadata_metaplex_token_metadata/src/canonical.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_metadata_metaplex_token_metadata/src/decoder.rs:144` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_metadata_metaplex_token_metadata/src/instruction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_metadata_metaplex_token_metadata/src/instruction.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/address_lookup_table.rs:326` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/compute_budget.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/compute_budget.rs:673` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/config.rs:322` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/feature.rs:167` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/loaders.rs:992` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/payload.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/payload.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/slashing.rs:461` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/stake.rs:805` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/system.rs:438` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/vote.rs:707` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/zk_elgamal.rs:522` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/zk_token_proof.rs:693` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_associated_token_account/src/decoder.rs:335` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_associated_token_account/src/instruction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_associated_token_account/src/instruction.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_elgamal_registry/src/decoder.rs:95` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_elgamal_registry/src/decoder.rs:162` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_elgamal_registry/src/registry.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_elgamal_registry/src/registry.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_elgamal_registry/src/state.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_elgamal_registry/src/state.rs:49` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_memo/src/decoder.rs:160` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_memo/src/memo.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_memo/src/memo.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token/src/decoder.rs:144` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token/src/token.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token/src/token.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token_2022/src/decoder.rs:144` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token_2022/src/state.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token_2022/src/state.rs:916` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token_2022/src/token.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token_2022/src/token.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_api/src/execution.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_api/src/executor.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_safety/src/safety.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_solana/src/nonce.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_solana/src/transaction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_solana/src/transaction.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_solana/src/transaction.rs:654` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_solana/src/transaction.rs:655` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/address_lookup_table.rs:321` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/builder.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/builder.rs:1374` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/intent.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/native_admin.rs:381` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/precompiles.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/slashing.rs:346` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/stake.rs:1497` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/validation.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/validation.rs:108` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/vote.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/vote.rs:1846` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_associated_token_account/src/intent.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_elgamal_registry/src/builder.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_elgamal_registry/src/builder.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_elgamal_registry/src/intent.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_memo/src/builder.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_memo/src/builder.rs:194` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_memo/src/intent.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_token/src/builder.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_token/src/intent.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_token_2022/src/builder.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_token_2022/src/confidential.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_token_2022/src/confidential.rs:425` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_token_2022/src/intent.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_logging/src/tracing_runtime.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_logging/src/tracing_runtime.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_logging/src/tracing_runtime.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_logging/src/tracing_runtime.rs:676` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_logging/src/tracing_runtime.rs:677` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/canonical_transaction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/canonical_transaction.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/decoded.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/materialized.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/nomenclature.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/observation.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/solana.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/backfill.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/backfill.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/backfill.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/core_extraction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/core_extraction.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/core_extraction.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/decode_replay.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/decode_replay.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/solana_elgamal_registry_stateful.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/solana_elgamal_registry_stateful.rs:227` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/solana_stateful.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/solana_token_stateful.rs:392` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/solana_token_stateful.rs:470` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/execution_rpc.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/execution_rpc.rs:2251` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/get_transaction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/standard_http.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/ws_client.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/ws_client.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/ws_session.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/ws_session.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/ws_session.rs:1219` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/ws_session.rs:1220` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_store_pg/src/queries/core_extraction_queries.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_store_pg/src/queries/core_queries.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_store_pg/src/queries/decode_pipeline_queries.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_store_pg/src/queries/table_diagnostics_queries.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:261` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:294` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:299` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:411` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:524` — ordinary `use` requires a trait-import justification marker
- `RUST011` `kb_executor_solana_core/src/lib.rs:129` — grouped re-export is forbidden
- `RUST011` `kb_executor_solana_core/src/lib.rs:137` — grouped re-export is forbidden
- `RUST011` `kb_executor_solana_core/src/lib.rs:145` — grouped re-export is forbidden
- `RUST011` `kb_executor_solana_core/src/lib.rs:159` — grouped re-export is forbidden
- `RUST011` `kb_executor_spl_token/src/lib.rs:29` — grouped re-export is forbidden
- `RUST011` `kb_executor_spl_token_2022/src/lib.rs:16` — grouped re-export is forbidden
- `RUST011` `kb_executor_spl_token_2022/src/lib.rs:47` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:167` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:175` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:180` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:188` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:198` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:204` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:209` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:232` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:257` — grouped re-export is forbidden
- `RUST013` `kb_decoder_metadata_metaplex_token_metadata/src/canonical.rs:6` — grouped imports are forbidden
- `RUST013` `kb_decoder_spl_token_2022/src/state.rs:916` — grouped imports are forbidden
- `RUST013` `kb_executor_solana_core/src/lib.rs:129` — grouped imports are forbidden
- `RUST013` `kb_executor_solana_core/src/lib.rs:137` — grouped imports are forbidden
- `RUST013` `kb_executor_solana_core/src/lib.rs:145` — grouped imports are forbidden
- `RUST013` `kb_executor_solana_core/src/lib.rs:159` — grouped imports are forbidden
- `RUST013` `kb_executor_spl_token/src/lib.rs:29` — grouped imports are forbidden
- `RUST013` `kb_executor_spl_token_2022/src/confidential.rs:425` — grouped imports are forbidden
- `RUST013` `kb_executor_spl_token_2022/src/lib.rs:16` — grouped imports are forbidden
- `RUST013` `kb_executor_spl_token_2022/src/lib.rs:47` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:167` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:175` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:180` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:188` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:198` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:204` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:209` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:232` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:257` — grouped imports are forbidden
- `RUST021` `kb_app_demo/src/lib.rs:42` — crate-root re-export requires adjacent rustdoc
- `TRACE002` `kb_app_demo/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_metadata_metaplex_token_metadata/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_solana_core/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_spl_associated_token_account/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_spl_elgamal_registry/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_spl_memo/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_spl_token/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_spl_token_2022/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
## Façades et réexports
Le rapport est tronqué aux 200 premiers écarts sur 616.
Tous les modules sont privés avec `mod` . Une API de crate est formée uniquement par des
réexports explicites depuis `lib.rs` ou `main.rs` .
## Stratégie de correction
Les réexports d’ un module interne utilisent `self::` , ne sont jamais groupés, ne changent
jamais le nom du symbole avec `as` et possèdent une rustdoc adjacente. Un bloc homogène de
`pub use` ou `pub(crate) use` ne contient aucune ligne vide.
La mise en conformité est découpée avant toute nouvelle prérelease :
L’ audit de complétude suit les réexports transitifs à travers les façades privées. Il vérifie
donc qu’ un type déclaré dans un sous-module atteint réellement la racine de sa crate sans
exiger un faux accès public au module qui le contient. Les constantes de suivi des scaffolds
de migration restent internes à leur inventaire et ne font pas partie de l’ API publique.
1. `pre.035-delta-fix-002` : séparation des règles et audit automatisé reproductible ;
2. correctifs suivants : points d'entrée de crates, réexports `pub` /`pub(crate)` , rustdocs et chemins `crate::...` ;
3. correctifs suivants : imports de traits et suppression des imports ordinaires/groupés ;
4. correctifs suivants : `DC_METADATA_MTM_TRACING_TARGET` , dépendances `tracing` , macros et matrice de routes ;
5. correctifs suivants : helpers dupliqués et mutualisation inter-crates ;
6. fermeture : `cargo fmt --all` , audit strict, tests workspace et Clippy global.
## Nomenclature de `kb-lib`
| Famille | Constante | Type ou trait | Fonction libre |
|---|---|---|---|
| Décodeur | `DC_` | `Dc` | `decoder_` |
| Matérialiseur | `MT_` | `Mt` | `materializer_` |
| Exécuteur | `EX_` | `Ex` | `executor_` |
| Modèle | `MD_` | `Md` | `model_` |
Les méthodes inhérentes et les helpers strictement privés ne sont pas soumis à un préfixe
global. Les symboles `pub` et `pub(crate)` le sont, car ils peuvent entrer en collision après
la fusion des anciennes crates dans `kb-lib` .
Les 98 frontières de décodeurs encore en attente utilisent des constantes uniques
`DC_<FAMILLE>_<SURFACE>_LEGACY_CRATE` et
`DC_<FAMILLE>_<SURFACE>_MIGRATION_STATUS` . Elles sont référencées par un inventaire interne
pour que `cargo check` ne produise pas d’ avertissements de code mort.
## Tracing
Une crate opérationnelle autonome garde un unique `TRACING_TARGET` dans `constants.rs` et le
réexporte avec :
``` rust
pub ( crate ) use self ::constants ::TRACING_TARGET ;
```
Un composant opérationnel de `kb-lib` utilise un nom préfixé, par exemple
`DC_SPL_TOKEN2022_TRACING_TARGET` ou `MT_TOKEN_ACCOUNTS_TRACING_TARGET` , réexporté
transitivement jusqu’ à `kb-lib/src/lib.rs` . Sa valeur suit exactement le chemin hiérarchique
du composant, par exemple `kb-lib.decoder.spl.token2022` .
## Validation
L’ audit strict exige le `Cargo.lock` versionné de l’ application et vérifie exclusivement :
``` text
wincode 0.5.5
solana-wincode-varint 1.0.0
```
Une livraison sans `Cargo.lock` peut contrôler le reste avec `--report-only` , mais elle ne
doit pas annoncer l’ audit strict comme propre tant que le lock réel n’ a pas été utilisé.
La fermeture d’ une tranche demande ensuite :
``` bash
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo test --workspace
cargo clippy --workspace --all-targets
```
Aucune nouvelle prérelease ne doit être créée tant que cette séquence n'est pas terminée et validée localement.