Export Formats
Export your review results in multiple formats for integration with CI pipelines, issue trackers, or team reports.
Overview
After a review is complete, click the Export button (or press Cmd + E) to open the export dialog. You can choose which format to export and whether to include all issues or only those matching the current filter.
Format Comparison
| Format | Extension | Best For | Includes Code Snippets |
|---|---|---|---|
| JSON | .json |
Programmatic consumption, CI integration, custom tooling. | Yes |
| Markdown | .md |
Human-readable reports, pasting into PRs or wikis. | Yes |
| SARIF | .sarif |
GitHub Code Scanning, VS Code SARIF Viewer, standard static analysis tooling. | Yes (as SARIF regions) |
| ZIP Archive | .zip |
Full bundle with JSON + Markdown + metadata for archival. | Yes |
JSON
The JSON export produces a single file containing an array of issue objects. Each object includes all metadata: category, severity, file path, line range, description, explanation, and suggested fix.
{
"meta": {
"project": "my-app",
"review_id": "rev_abc123",
"exported_at": "2025-07-15T10:30:00Z",
"total_issues": 42
},
"issues": [
{
"id": "iss_001",
"category": "security",
"severity": "critical",
"title": "SQL injection via unsanitised input",
"file": "src/db/queries.ts",
"line_start": 45,
"line_end": 48,
"description": "User input is interpolated directly into a SQL query string.",
"suggestion": "Use parameterised queries instead of string interpolation.",
"status": "approved",
"code_snippet": "const result = db.query(`SELECT * FROM users WHERE id = ${userId}`);"
}
]
}
jq or feeding into your own scripts. For example: jq '.issues[] | select(.severity == "critical")' export.json.
Markdown
The Markdown export generates a formatted report you can paste directly into a GitHub PR comment, Notion page, or any Markdown-compatible editor.
# Code Review Report — my-app
**Review ID:** rev_abc123
**Date:** 2025-07-15
**Issues:** 42 total (3 critical, 8 high, 15 medium, 12 low, 4 info)
---
## Critical Issues
### 1. SQL injection via unsanitised input
- **Category:** Security
- **File:** `src/db/queries.ts` (lines 45–48)
- **Status:** Approved
User input is interpolated directly into a SQL query string.
**Suggestion:** Use parameterised queries instead of string interpolation.
```ts
// Before
const result = db.query(`SELECT * FROM users WHERE id = ${userId}`);
// After
const result = db.query('SELECT * FROM users WHERE id = $1', [userId]);
```
Issues are grouped by severity level (Critical first, then High, Medium, Low, Info) with a summary table at the top.
SARIF
SARIF (Static Analysis Results Interchange Format) is an OASIS standard supported by GitHub Code Scanning, VS Code, and many CI/CD platforms. VibeRails exports SARIF v2.1.0.
{
"$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/main/sarif-2.1/schema/sarif-schema-2.1.0.json",
"version": "2.1.0",
"runs": [
{
"tool": {
"driver": {
"name": "VibeRails",
"version": "2.2.1",
"rules": [
{
"id": "security",
"shortDescription": { "text": "Security vulnerability" }
}
]
}
},
"results": [
{
"ruleId": "security",
"level": "error",
"message": { "text": "SQL injection via unsanitised input" },
"locations": [
{
"physicalLocation": {
"artifactLocation": { "uri": "src/db/queries.ts" },
"region": { "startLine": 45, "endLine": 48 }
}
}
]
}
]
}
]
}
ZIP Archive
The ZIP archive bundles everything together for archival or sharing with stakeholders who may not have access to VibeRails:
review-my-app-rev_abc123.zip
├── report.json # Full JSON export
├── report.md # Full Markdown report
├── report.sarif # SARIF export
└── metadata.json # Review session metadata (project, model, prompt, dates)
The ZIP format is especially useful for compliance workflows where you need to archive a complete record of each review.
What Data is Included
All export formats include the following data for each issue:
- Issue ID and title
- Category and severity
- File path, start line, and end line
- Description and AI-generated explanation
- Suggested fix (if available)
- Triage status (approved, rejected, skipped, pending)
- User-added notes and comments
- Code snippet from the source file
The export also includes session-level metadata: project name, review ID, AI model used, prompt name, and timestamps.