Report Format
Use this format when you want to create a changAIs report outside the app, for example from a script, CI job, or custom AI coding workflow.
A report is a JSON file. Save it in your project, commonly as .changais/report.json, then load it from the changAIs review surface.
Minimal Example
Section titled “Minimal Example”{ "version": "1.0", "generatedAt": "2026-06-08T12:00:00Z", "notes": [ { "id": "note-auth-guard", "file": "src/auth/session.ts", "line": 42, "endLine": 48, "type": "warning", "title": "Check unauthenticated behavior", "content": "The new guard changes how expired sessions are handled. Confirm redirects and API responses still match the product flow.", "checked": false } ]}Top-Level Fields
Section titled “Top-Level Fields”| Field | Required | Type | Description |
|---|---|---|---|
version | Yes | string | Report format version. Use 1.0 for the current format. |
generatedAt | Recommended | string | ISO 8601 timestamp for when the report was created. |
notes | Yes | array | Review notes attached to files or lines. |
Note Fields
Section titled “Note Fields”| Field | Required | Type | Description |
|---|---|---|---|
id | Yes | string | Stable unique ID for the note inside this report. |
file | Yes | string | Project-relative file path, using / separators. |
line | Yes | number | 1-based line number where the note starts. |
endLine | No | number | 1-based line number where the note ends. Omit it for a single-line note. |
type | Recommended | string | Note type. Use info, warning, or suggestion. |
title | Recommended | string | Short label shown for the note. |
content | Yes | string | Review guidance shown to the user. |
checked | No | boolean | Whether the note has already been checked. Defaults to false when omitted. |
JSON Schema
Section titled “JSON Schema”Use this schema to validate generated reports before loading them into changAIs.
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "changAIs Report", "type": "object", "required": ["version", "notes"], "additionalProperties": true, "properties": { "version": { "type": "string", "const": "1.0" }, "generatedAt": { "type": "string", "format": "date-time" }, "notes": { "type": "array", "items": { "type": "object", "required": ["id", "file", "line", "content"], "additionalProperties": true, "properties": { "id": { "type": "string", "minLength": 1 }, "file": { "type": "string", "minLength": 1 }, "line": { "type": "integer", "minimum": 1 }, "endLine": { "type": "integer", "minimum": 1 }, "type": { "type": "string", "enum": ["info", "warning", "suggestion"] }, "title": { "type": "string" }, "content": { "type": "string", "minLength": 1 }, "checked": { "type": "boolean" } } } } }}Generation Rules
Section titled “Generation Rules”- Use paths relative to the workspace root opened in VS Code.
- Use 1-based line numbers from the current file content you want to review.
- Keep
idvalues stable when regenerating the same report so review state can be matched reliably. - Keep notes focused on changed or review-relevant lines.
- Preserve unknown fields if your automation reads and rewrites an existing report.
If a report loads but notes do not appear where expected, confirm that the file paths and line numbers match the current workspace state.