--- name: batch-report-generator description: Generate GenuVerity fact-check reports from structured input (Gemini research output). Use /batch-report to process research into HTML reports. Optimized for token efficiency - expects pre-researched sources. allowed-tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch --- # Batch Report Generator Generate fact-check reports from pre-researched input (e.g., Gemini Deep Research output). ## Quick Start ``` /batch-report ``` Then paste your structured input (see format below). ## Structured Input Format Paste this JSON format with your Gemini research: ```json { "reports": [ { "slug": "claim-name-2025", "title": "The Full Claim Title", "verdict": "FALSE", "claim": "One sentence: what was claimed", "claimant": "Who made the claim", "date": "Jan 2025", "category": "Health & Medical", "sources": [ { "title": "Primary Source Name", "url": "https://example.com/article", "quote": "Key quote that supports/refutes the claim..." } ], "context": "2-3 sentences explaining why this verdict was reached. From Gemini research." } ] } ``` ## Gemini Prompt Template Copy this to Gemini for Deep Research: ``` Research these fact-check topics. For EACH topic, provide: 1. VERDICT: FALSE / MISLEADING / MIXED / CONTEXT NEEDED 2. CLAIM: One sentence summary of what was claimed 3. CLAIMANT: Who made the claim (person/organization) 4. DATE: When the claim was made 5. SOURCES: 10-15 primary sources (NO Wikipedia), each with: - Title - URL - Key quote (verbatim) 6. CONTEXT: 3 sentences explaining the verdict TOPICS: 1. [Topic 1] 2. [Topic 2] 3. [Topic 3] ... Format your response as JSON matching this structure: { "reports": [ { "slug": "topic-name-2025", "title": "Full Title", "verdict": "FALSE", "claim": "...", "claimant": "...", "date": "...", "category": "...", "sources": [{"title": "...", "url": "...", "quote": "..."}], "context": "..." } ] } ``` ## Categories Use one of these category values: - `U.S. Politics & Policy` - `Health & Medical` - `AI & Deepfakes` - `Immigration & Border` - `International Affairs` - `Economic Claims` - `Conspiracy & Hoaxes` - `Platform & Tech` - `Media & Journalism` ## Verdicts | Verdict | When to Use | |---------|-------------| | `FALSE` | Claim is demonstrably untrue | | `MISLEADING` | Contains truth but distorts context | | `MIXED` | Partially true, partially false | | `CONTEXT` | Needs additional context to evaluate | ## What This Skill Does 1. **Parses** your structured JSON input 2. **Validates** all source URLs exist (via WebFetch) 3. **Generates** HTML from `docs/report-template-2025.html` 4. **Creates** Chart.js visualization based on data 5. **Adds** entry to `js/reports-data.js` 6. **REQUIRES MANUAL RUN**: `node tools/sync-chart-configs.js` (see warning below) 7. **Runs** `./validate-report.sh` to verify 8. **Commits** to feature branch > **WARNING: CHART SYNC IS NOT AUTOMATIC** > > After generating reports, you MUST manually run: > ```bash > node tools/sync-chart-configs.js > ``` > Without this, carousel thumbnails will show wrong/placeholder data. > This step extracts chart data from HTML and updates reports-data.js. ## CRITICAL: Chart Height Constraint **ALWAYS** wrap canvas in height-constrained div. NEVER use height attribute on canvas: ```html
This paragraph wraps beside the chart.
More text continues wrapping.
This text appears ABOVE the chart.