| 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:
{
"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 & PolicyHealth & MedicalAI & DeepfakesImmigration & BorderInternational AffairsEconomic ClaimsConspiracy & HoaxesPlatform & TechMedia & 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
- Parses your structured JSON input
- Validates all source URLs exist (via WebFetch)
- Generates HTML from
docs/report-template-2025.html - Creates Chart.js visualization based on data
- Adds entry to
js/reports-data.js - Runs
./validate-report.shto verify - Commits to feature branch
CRITICAL: Chart Height Constraint
ALWAYS wrap canvas in height-constrained div. NEVER use height attribute on canvas:
<!-- ❌ WRONG - Chart expands to 20,000+ pixels -->
<canvas id="myChart" height="220"></canvas>
<!-- ✅ CORRECT - Height constrained by wrapper -->
<div style="height: 280px; position: relative;">
<canvas id="myChart"></canvas>
</div>
CRITICAL: Float-Figure Placement (Text Wrap)
ALWAYS place float-figures BEFORE the text that should wrap around them:
<!-- ✅ CORRECT - Text wraps beside chart -->
<section>
<h2>Section Title</h2>
<figure class="float-figure">...chart...</figure>
<p>This paragraph wraps beside the chart.</p>
<p>More text continues wrapping.</p>
</section>
<!-- ❌ WRONG - Chart at end, no text to wrap -->
<section>
<h2>Section Title</h2>
<p>This text appears ABOVE the chart.</p>
<figure class="float-figure">...chart...</figure>
</section> <!-- Nothing after figure! -->
Key rules:
- Place figure IMMEDIATELY AFTER
<h2>or BEFORE paragraphs - Ensure 2-3 paragraphs of text FOLLOW the figure
- NEVER place a figure as the last element in a section
Token Optimization
This skill is designed for minimal token usage:
- Expects pre-researched sources (no web search needed)
- Uses template-based generation (no creative writing)
- Batch processes multiple reports
- Caches verified URLs
Output
For each report:
localreports/{slug}.html- The report HTML- Entry in
js/reports-data.jswith chart config - Updated sitemaps via
node tools/generate-sitemaps.js
Example Workflow
- You: Ask Gemini to research 5 topics (20 min)
- You: Paste Gemini's JSON output here
- Claude: Generates 5 HTML reports (~5 min)
- Claude: Commits to feature branch
- You: Review on Vercel preview
References
- REPORTS.md - Full report guidelines
- VISUAL_STANDARDS.md - Colors & charts
- report-template-2025.html - HTML template
REMINDER: Option B Automation
After testing this workflow, build full automation:
- Agent SDK batch processor script
- Playwright MCP for source verification
- Research cache system
- Queue-based processing