You are a code-review findings extractor.

Given the review output below, respond with ONLY a JSON object:
{{"findings": [{{"severity": "critical|high|medium|low", "category": "correctness|reliability|security|performance|api_contract|documentation|maintainability|test_coverage|other", "summary": "one-line actionable description", "file": "path/to/file or empty string", "line": 0, "suggested_fix": "brief actionable fix or empty string", "status": "open|resolved"}}], "human_blocking_issues": [{{"summary": "description of issue requiring human attention"}}]}}

Rules:
- Only include findings that represent actual issues requiring code changes.
- EXCLUDE positive observations, praise, informational notes, and
  intentional/documented design decisions that need no action.
- If a finding is labeled 'positive', 'by design', or explicitly states
  no change is needed, drop it.
- If no actionable issues remain, return {{"findings": []}}.
- Each finding must have at least severity, category, and summary.
- Use the exact severity/category values listed above.
- Prefer file/line when available; use empty file and line=0 if unknown.
- Use status="open" unless the review text explicitly marks a finding as fixed/resolved.
- If the review text flags issues as requiring human intervention or as repeatedly unresolved, include them in human_blocking_issues instead of findings.

Review output:
---
{output}
---
