Summary
Add Compiler-In-The-Loop (CITL) export support to enable integration with organizational-intelligence-plugin (OIP) for defect pattern analysis and training data generation.
Background
OIP uses compiler diagnostics as ground-truth labels for ML-based defect classification. Depyler already implements CITL export. This ticket adds the same capability to decy.
Implementation
CLI Flag
decy transpile input.d --citl-export diagnostics.json
Export Format
#[derive(Serialize)]
pub struct CitlExport {
pub source_file: String,
pub error_code: Option<String>, // e.g., "E0308"
pub clippy_lint: Option<String>, // e.g., "clippy::unwrap_used"
pub level: String, // "error" | "warning"
pub message: String,
pub oip_category: Option<String>, // Pre-classified if known
pub confidence: f32,
pub span: Option<SpanInfo>,
pub suggestion: Option<SuggestionInfo>,
pub timestamp: i64,
}
#[derive(Serialize)]
pub struct SpanInfo {
pub file: String,
pub line_start: u32,
pub line_end: u32,
pub col_start: u32,
pub col_end: u32,
}
#[derive(Serialize)]
pub struct SuggestionInfo {
pub message: String,
pub replacement: String,
pub applicability: String, // "MachineApplicable" | "MaybeIncorrect" | "HasPlaceholders"
}
Integration Points
- Capture rustc JSON diagnostics during compilation
- Capture clippy JSON output
- Map to CitlExport format
- Write to specified JSON file
Effort
~2-4 hours
Related
- OIP CITL spec:
organizational-intelligence-plugin/src/citl.rs
- Depyler implementation:
depyler/crates/depyler-core/src/citl.rs
Summary
Add Compiler-In-The-Loop (CITL) export support to enable integration with organizational-intelligence-plugin (OIP) for defect pattern analysis and training data generation.
Background
OIP uses compiler diagnostics as ground-truth labels for ML-based defect classification. Depyler already implements CITL export. This ticket adds the same capability to decy.
Implementation
CLI Flag
Export Format
Integration Points
Effort
~2-4 hours
Related
organizational-intelligence-plugin/src/citl.rsdepyler/crates/depyler-core/src/citl.rs