About review-as-json
review-as-json is a code-review skill that runs `/review` and returns findings as one JSON object instead of a prose report. Its schema captures verdicts, severity, finding type, category, and summaries for structured review output.
Key features
- 01Runs the `/review` process
- 02Emits a single JSON object
- 03Classifies verdict and severity
- 04Categorizes findings by review pass
- 05Requires concrete evidence for findings
Use cases
- 01Producing machine-readable code reviews
- 02Passing review findings into CI output
- 03Reporting verified issues and questions
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ elliottlawson/ open-review --skill review-as-jsonAfter installing, type/review-as-jsonin Claude Code to confirm it loaded.
Details
From the project READMEReview as JSON
Run /review on this change and follow it exactly.
Emit the result as a single JSON object instead of a prose report:
{
"verdict": "approve | changes_needed | hold",
"summary": "One or two sentences on the change overall.",
"findings": [
{
"severity": "critical | warning | info",
"type": "issue | suggestion | question",
"category": "mission | architecture | implementation | craft | security | performance",
"title": "Short imperative, e.g. 'Sanitize user input before query'",
"description": "What it is, why it matters, and the consequence.",
"file": "path/to/file.ts",
"line": 42,
"suggestedFix": "Optional concrete fix."
}
],
"passes": {
"mission": "met | missing | different | unclear",
"architecture": "ok | concern | blocking",
"implementation": "ok | concern | blocking",
"craft": "ok | concern | blocking",
"security": "ok | concern | blocking",
"performance": "ok | concern | blocking"
},
"sectionSummaries": {
"mustFix": "1-2 sentences on the critical findings, if any.",
"shouldFix": "1-2 sentences on the warnings, if any.",
"questions": "1-2 sentences on the questions, if any.",
"suggestions": "1-2 sentences on the suggestions, if any."
}
}
Rules for the output:
- Emit only the JSON object. No preamble, no commentary, no markdown fences around it.
- Severity.
criticalblocks merge (bugs, security holes, data loss).warningshould be addressed but isn't a blocker.infois a note. - Summary. Never restate the verdict ("This PR is approved", "Changes requested") — the presentation layer renders it. The summary answers why.
- sectionSummaries. Explain the underlying theme ("Missing input validation across the new endpoints"), never just count findings.
- Type.
questionis something you need answered rather than a defect.suggestionis an optional improvement. Everything else is anissue. - Category. Every finding's
categoryis the pass that found it — this is how the passes show up in CI output. - Verify before you flag still applies. Every finding needs a concrete file, line, and consequence. If you can't verify it, make it a
question. - If there are no findings, emit an empty
findingsarray and anapproveverdict.
Comments
Markdown supported