Skip to content

feat: Add CITL export for OIP integration #28

Description

@noahgift

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

  1. Capture rustc JSON diagnostics during compilation
  2. Capture clippy JSON output
  3. Map to CitlExport format
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions