Plan Review Output Format
JSON Schema
Return your analysis as a JSON code block. Do not include any text before or
after the JSON block — the orchestrator will parse this output directly.
{
"lens": "<lens-identifier>",
"summary": "2-3 sentence assessment from this lens perspective.",
"strengths": [
"Positive observation about what the plan gets right from this lens perspective"
],
"findings": [
{
"severity": "critical",
"confidence": "high",
"lens": "<lens-identifier>",
"location": "Phase 2, Section 3: Database Migration",
"title": "Brief finding title",
"body": "🔴 **<Lens Name>**\n\n[Issue description — 1-2 sentences with enough context to understand standalone].\n\n**Impact**: [Why this matters — 1 sentence].\n\n**Suggestion**: [Concrete fix — 1-2 sentences]."
}
]
}
Field Reference
- lens: Agent lens identifier (e.g.,
"architecture", "security",
"test-coverage", "code-quality", "standards", "usability",
"performance", "documentation", "database", "correctness",
"compatibility", "portability", "safety")
- summary: 2-3 sentence assessment from this lens perspective. Reflect the
key dimensions from the lens's Core Responsibilities. This is where holistic
assessment lives, beyond individual findings.
- strengths: Positive observations (fed into the review summary — never
posted as individual findings)
- findings: All findings, each referencing a location in the plan
- severity: One of
"critical", "major", "minor", "suggestion"
- confidence: One of
"high", "medium", "low"
- lens: The lens identifier (same value as the top-level
lens field).
Included on each finding so the orchestrator can attribute findings after
merging outputs from multiple agents.
- location: Human-readable reference to the plan section where the
finding is most relevant (e.g., "Phase 2: API Endpoints",
"Implementation Approach", "Phase 1: Data Model")
- title: Brief title for the finding (used in the summary index)
- body: Self-contained finding body. See "Finding Body Format" below.
Severity Emoji Prefixes
Use these actual Unicode emoji characters at the start of each finding body:
🔴 for "critical" severity
🟡 for "major" severity
🔵 for "minor" and "suggestion" severity
IMPORTANT: Use the actual Unicode emoji characters shown above (🔴 🟡 🔵), NOT
text shortcodes like :red_circle:, :yellow_circle:, or :blue_circle:. The
output is rendered as markdown, not Slack/Discord, so shortcodes will appear as
literal text.
Finding Body Format
Each finding body should follow this structure:
[emoji] **[Lens Name]**
[Issue description — 1-2 sentences, standalone context].
**Impact**: [Why this matters].
**Suggestion**: [Concrete fix].
Example:
🔴 **Architecture**
The plan proposes a direct dependency from the API layer to the database schema
with no service abstraction. This couples the presentation layer to the data
model.
**Impact**: Database schema changes will ripple into the API layer, breaking
the dependency rule.
**Suggestion**: Introduce a service layer to mediate between the API handlers
and the data access layer.
Output only the JSON block — do not include additional prose, narrative
analysis, or markdown outside the JSON code fence. The orchestrator parses
your output as JSON.
1---2name: plan-review-output-format3description: Output format specification for plan review agents. Defines the JSON schema, field reference, severity emoji prefixes, and finding body format for plan reviews.4---56# Plan Review Output Format78## JSON Schema910Return your analysis as a JSON code block. Do not include any text before or11after the JSON block — the orchestrator will parse this output directly.1213```json14{15 "lens": "<lens-identifier>",16 "summary": "2-3 sentence assessment from this lens perspective.",17 "strengths": [18 "Positive observation about what the plan gets right from this lens perspective"19 ],20 "findings": [21 {22 "severity": "critical",23 "confidence": "high",24 "lens": "<lens-identifier>",25 "location": "Phase 2, Section 3: Database Migration",26 "title": "Brief finding title",27 "body": "🔴 **<Lens Name>**\n\n[Issue description — 1-2 sentences with enough context to understand standalone].\n\n**Impact**: [Why this matters — 1 sentence].\n\n**Suggestion**: [Concrete fix — 1-2 sentences]."28 }29 ]30}31```3233## Field Reference3435- **lens**: Agent lens identifier (e.g., `"architecture"`, `"security"`,36 `"test-coverage"`, `"code-quality"`, `"standards"`, `"usability"`,37 `"performance"`, `"documentation"`, `"database"`, `"correctness"`,38 `"compatibility"`, `"portability"`, `"safety"`)39- **summary**: 2-3 sentence assessment from this lens perspective. Reflect the40 key dimensions from the lens's Core Responsibilities. This is where holistic41 assessment lives, beyond individual findings.42- **strengths**: Positive observations (fed into the review summary — never43 posted as individual findings)44- **findings**: All findings, each referencing a location in the plan45 - **severity**: One of `"critical"`, `"major"`, `"minor"`, `"suggestion"`46 - **confidence**: One of `"high"`, `"medium"`, `"low"`47 - **lens**: The lens identifier (same value as the top-level `lens` field).48 Included on each finding so the orchestrator can attribute findings after49 merging outputs from multiple agents.50 - **location**: Human-readable reference to the plan section where the51 finding is most relevant (e.g., "Phase 2: API Endpoints",52 "Implementation Approach", "Phase 1: Data Model")53 - **title**: Brief title for the finding (used in the summary index)54 - **body**: Self-contained finding body. See "Finding Body Format" below.5556## Severity Emoji Prefixes5758Use these **actual Unicode emoji characters** at the start of each finding `body`:59- `🔴` for `"critical"` severity60- `🟡` for `"major"` severity61- `🔵` for `"minor"` and `"suggestion"` severity6263**IMPORTANT**: Use the actual Unicode emoji characters shown above (🔴 🟡 🔵), NOT64text shortcodes like `:red_circle:`, `:yellow_circle:`, or `:blue_circle:`. The65output is rendered as markdown, not Slack/Discord, so shortcodes will appear as66literal text.6768## Finding Body Format6970Each finding `body` should follow this structure:7172```73[emoji] **[Lens Name]**7475[Issue description — 1-2 sentences, standalone context].7677**Impact**: [Why this matters].7879**Suggestion**: [Concrete fix].80```8182Example:8384```85🔴 **Architecture**8687The plan proposes a direct dependency from the API layer to the database schema88with no service abstraction. This couples the presentation layer to the data89model.9091**Impact**: Database schema changes will ripple into the API layer, breaking92the dependency rule.9394**Suggestion**: Introduce a service layer to mediate between the API handlers95and the data access layer.96```9798**Output only the JSON block** — do not include additional prose, narrative99analysis, or markdown outside the JSON code fence. The orchestrator parses100your output as JSON.