verified-infographic-generator
Generates fact-checked infographic posters by separating claim verification from image rendering. Claude plans the content, verifies every statistic against peer-reviewed sources via web search, gets user approval, and only then hands a locked prompt to a text-to-image model. Use this skill whenever the user asks for a poster, infographic, or data visualization that contains numeric claims, statistics, or cited studies — especially comparison ("versus") posters, which invite fabricated mirror-statistics. Trigger phrases include "make a poster about X", "create an infographic comparing X and Y", "generate a data visualization of...", "design a poster that shows...". Skip only for purely decorative images or when the user supplies pre-verified data and just needs layout help.
What this skill does
# Verified Infographic Generator
**Version:** 1.0
## Overview
This skill produces high-quality infographic posters where **fact-verification is done by Claude in text** and the text-to-image engine is invoked **only in the final rendering step**, after all content has been locked and approved.
It exists because one-shot text-to-image generation of fact-based infographics has a very high fabrication rate. In one observed session generating a poster about biophilic design, 8 of 10 numeric claims (80%) were unsupported by the cited sources, and 2 of 5 citations were fictional or misattributed. Once incorrect text is baked into pixels, it cannot be corrected without regenerating, and readers have no way to audit where the numbers came from.
## Core Principles
1. **Separate facts from pixels.** Never let the image model choose which numbers to display.
2. **Evidence before composition.** No visual layout work begins until every claim has a verified source.
3. **Bake nothing unverified.** Any unverified claim blocks the pipeline, is downgraded to qualitative language, or is replaced.
4. **Preserve an audit trail.** Every number and citation in the final image must be traceable to a specific source URL and quoted passage in a sidecar file.
5. **Break symmetry bias.** Two-column "versus" layouts must explicitly allow asymmetric content — missing data on one side is a first-class output, not something to fabricate around.
## When to Use
Use this skill when the user asks for:
- A poster, infographic, or data visualization containing numeric claims
- A comparison ("X vs. Y") graphic where percentages or study results appear
- An evidence-based summary poster citing research, studies, or data
- An Earth Day / science communication / educational poster with statistics
Do **NOT** use this skill for:
- Purely decorative images with no factual claims
- Diagrams where the user supplies pre-verified data and just needs a layout rendered
- Artistic posters, logos, or illustrations without numeric content
- Static diagrams of known objects (use `interactive-infographic-overlay` for annotated scientific illustrations)
## Prerequisites
- Web search access (for Phase 2 source discovery)
- A text-to-image model available in the final step (OpenAI Images 2.0, Gemini, DALL·E, etc.)
- A project output directory (default: `docs/posters/`) where the poster, verification report, and sidecar source file will be saved together
## Workflow
The skill runs in **8 phases**. Phases 1–6 are executed by Claude. Phase 7 is the one image-model call. Phase 8 is a Claude audit of the final render.
### Phase 1: Intake & Claim Planning
Gather from the user:
- **Topic** of the poster
- **Intended audience** (grade 9-12, general public, policy maker, etc.)
- **Format** (landscape/portrait, dimensions, style preference)
- **Comparison structure** if any (A vs. B, single-subject, timeline, etc.)
- **Known references** the user wants to incorporate
Produce a **Claim Plan** — a structured list of 5–10 factual claims the poster must make. For each claim, record:
- Subject (what it's about)
- Metric type (percentage, count, range, qualitative descriptor)
- Polarity (positive outcome, negative outcome, neutral)
- Desired prominence (hero number, supporting stat, footnote)
Flag any planned comparison that invites symmetry bias. Tell the user explicitly: **"The 'versus' side may end up with less data than the main side. We will not invent numbers to balance it."**
Save the claim plan to `docs/posters/<slug>/01-claim-plan.yaml` using the template in `references/claim-plan-template.yaml`.
### Phase 2: Source Discovery
For each claim in the plan:
1. Run **at least two independent web searches** with different query phrasings.
2. Collect candidate sources. For each, record: title, authors, year, publisher or journal, URL, and a quoted sentence that directly supports the claim.
3. Prefer, in order:
- Peer-reviewed journal articles
- Systematic reviews and meta-analyses
- Government reports (EPA, NOAA, USGS, UK GBC, WHO, etc.)
- Named institutional studies with authors
4. Reject:
- Blog posts citing unnamed "studies"
- Marketing pages and vendor whitepapers
- Wikipedia as a sole source (can be a pointer to primary sources)
- Statistics without a traceable primary paper
- Social media posts as primary sources
### Phase 3: Verification & Classification
Classify each claim into one of four buckets:
| Bucket | Meaning | What happens in the poster |
|---|---|---|
| **VERIFIED** | Specific number matches a specific peer-reviewed paper with a quoted passage | Use the exact number |
| **DIRECTIONAL** | Effect direction is well-established but the exact number differs across studies | Use a range (e.g., "+6% to +15%") or best-supported single study |
| **QUALITATIVE-ONLY** | Effect is supported but not quantified reliably | Use words ("lower," "significant," "elevated") — no fake percentage |
| **REJECTED** | No credible source | Remove from the poster or replace with a VERIFIED claim on a related subject |
For every VERIFIED and DIRECTIONAL claim, store a citation record:
```yaml
- claim_id: wellbeing_increase
value: "+15%"
source: "Human Spaces / Interface (2015)"
authors: "Cooper, C. et al."
year: 2015
url: "https://..."
quote: "employees who work in environments with natural elements report a 15% higher level of well-being"
classification: VERIFIED
```
Save the full **Verification Report** to `docs/posters/<slug>/02-verification-report.md` using the template in `references/verification-report-template.md`.
**Abort condition:** If more than 20% of planned claims are REJECTED, stop the pipeline and tell the user the topic may not support the original framing. Offer to reshape the poster around the VERIFIED claims that remain.
### Phase 4: User Checkpoint (MANDATORY)
Present the Verification Report to the user. Show:
- Every original claim and its verdict
- Which claims survived with exact numbers
- Which were softened to qualitative language
- Which were dropped entirely
- Any fabrication risks detected (e.g., a "vs." side with thin evidence)
Wait for explicit user approval before proceeding. The user may:
- Approve the final claim set as-is
- Request additional sources for a specific claim
- Reshape the poster (remove comparison, change topic, widen scope)
- Accept qualitative language in place of a missing percentage
**Do not proceed to layout or rendering without this approval.** This is the single most important safety checkpoint in the pipeline.
### Phase 5: Layout Specification
Draft a structured layout spec in YAML (use `references/layout-spec-template.yaml`). Every text element must reference a `source_id` from the verification report, or be marked as a non-factual design element (title, decorative label, caption).
Key layout constraints:
- **Asymmetric layouts are allowed.** If the comparison side has only 3 verified claims to the main side's 5, render 3 vs. 5 — do not invent filler.
- **Mark qualitative claims clearly.** Use descriptor words instead of fake percentages ("Elevated," "Reduced," "Significant").
- **Cite in-place where possible.** Small parenthetical "(Author, Year)" under each statistic, with a full source list at the bottom.
- **One source per statistic minimum.** If a claim has no `source_id`, it cannot appear in the layout.
Save to `docs/posters/<slug>/03-layout-spec.yaml`.
### Phase 6: Image Prompt Assembly
Programmatically compose the text-to-image prompt from the approved layout spec. **Never re-author numbers at this stage** — copy them verbatim from the spec.
The assembled prompt must include these explicit instructions to the image model:
```
Render the following exact text verbatim. Do not substitute any numbers,
paraphrase any labels, or invent additional statistics, rows, or citations.
All percentages, author names, years, and institution names must appear
exactly as written below. If you cannRelated in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.