Output Formatters
Implement multiple output format backends for review results.
Formats
- pretty (default) — Rich terminal output with colors, file names, line numbers, severity icons, and code context
- compact — One line per finding, minimal output (good for pre-commit hooks)
- json — Machine-readable JSON output for piping to other tools
- sarif — SARIF format for GitHub Code Scanning integration
Requirements
- Trait-based architecture:
trait OutputFormatter { fn write(&self, findings: &[Finding], writer: &mut dyn Write) }
- Severity levels:
info, warning, error with icons/colors
- File path and line number for each finding
- Configurable via
--output flag or config file
Acceptance Criteria
Output Formatters
Implement multiple output format backends for review results.
Formats
Requirements
trait OutputFormatter { fn write(&self, findings: &[Finding], writer: &mut dyn Write) }info,warning,errorwith icons/colors--outputflag or config fileAcceptance Criteria