bashrs 6.66.0

Rust-to-Shell transpiler for deterministic bootstrap scripts
//! # Corpus-Driven Transpilation Quality Module
//!
//! Implements the corpus registry, runner, and scoring system for measuring
//! and improving transpilation quality across Bash, Makefile, and Dockerfile
//! targets. Each corpus entry is a **potential falsifier** (Popper, 1959):
//! an input-output pair that could demonstrate transpilation failure.
//!
//! ## Architecture
//!
//! - **Registry**: `CorpusEntry` and `CorpusRegistry` types for metadata management
//! - **Runner**: `CorpusRunner` that transpiles entries and compares against expected output
//! - **Scoring**: 100-point quality score (transpilation + correctness + coverage + lint + determinism)
//! - **Convergence**: Tracks transpilation rate over iterations (Kaizen methodology)
//!
//! ## V2 Scoring Formula
//!
//! ```text
//! Score = A(30) + B_L1(10) + B_L2(8) + B_L3(7) + C(15) + D(10) + E(10) + F(5) + G(5)
//! ```
//!
//! Gates: A < 60% → B-G = 0; schema_invalid → score = 0; B_L1 fail → B_L2/B_L3 = 0

#[cfg(feature = "rand")]
pub mod adversarial_generator;
pub mod adversarial_templates;
pub mod baselines;
pub mod benchmark_export;
pub mod benchmark_publish;
pub mod citl;
pub mod classifier;
pub mod contract_validation;
pub mod convergence;
pub mod conversations;
pub mod cwe_mapping;
#[allow(clippy::expect_used)] // Dataset uses expect() for internal invariants
pub mod dataset;
#[allow(clippy::expect_used)] // Domain categories uses expect() for internal invariants
pub mod domain_categories;
#[allow(clippy::expect_used)] // Error dedup uses expect() for internal invariants
pub mod error_dedup;
pub mod eval_harness;
pub mod evaluation;
pub mod expansion_generator;
pub mod generalization_tests;
pub mod graph_priority;
pub mod label_audit;
pub mod model_card;
pub mod oip;
pub mod pattern_store;
#[allow(clippy::expect_used)] // Quality gates uses expect() for internal invariants
pub mod quality_gates;
pub mod registry;
#[allow(clippy::expect_used)] // Runner uses expect() for internal invariants
pub mod runner;
pub mod runner_checks;
pub mod runner_helpers;
pub mod runner_types;
pub mod schema_enforcement;
#[allow(clippy::expect_used)] // Report generation uses expect() for internal formatting
pub mod ssc_report;
pub mod tier_analysis;
pub mod tokenizer_validation;
pub mod training_config;

#[cfg(test)]
#[path = "registry_coverage_tests.rs"]
mod registry_coverage_tests;

#[cfg(test)]
#[path = "runner_coverage_tests.rs"]
mod runner_coverage_tests;

#[cfg(test)]
#[path = "runner_coverage_tests2.rs"]
mod runner_coverage_tests2;

#[cfg(test)]
#[path = "error_dedup_tests.rs"]
mod error_dedup_tests;

#[cfg(test)]
#[path = "registry_load_coverage_tests.rs"]
mod registry_load_coverage_tests;

#[cfg(test)]
#[path = "pattern_store_tests.rs"]
mod pattern_store_tests;

#[cfg(test)]
#[path = "adversarial_templates_tests.rs"]
mod adversarial_templates_tests;

#[cfg(test)]
#[path = "domain_categories_coverage_tests.rs"]
mod domain_categories_coverage_tests;

#[cfg(test)]
#[path = "citl_coverage_tests.rs"]
mod citl_coverage_tests;

#[cfg(test)]
#[path = "tier_analysis_coverage_tests.rs"]
mod tier_analysis_coverage_tests;

#[cfg(test)]
#[path = "domain_categories_tests.rs"]
mod domain_categories_tests;

#[cfg(test)]
#[path = "corpus_format_tests.rs"]
mod corpus_format_tests;

pub use pattern_store::{PatternStore, ShellFixPattern};
pub use registry::{CorpusEntry, CorpusFormat, CorpusRegistry, CorpusTier};
pub use runner::{ConvergenceEntry, CorpusResult, CorpusRunner, CorpusScore, FormatScore};