From grainulator
Corroborates claims against external URLs by fetching content with smart-fetch or WebFetch, analyzing credibility, and recording findings as evidence or risks. Useful for verifying statements in code docs or research.
How this skill is triggered — by the user, by Claude, or both
Slash command
/grainulator:witnessThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The user wants to verify a claim against a specific external source.
The user wants to verify a claim against a specific external source.
$ARGUMENTS
Expected format: /witness <claim_id> <url> [--smart] [--mode concise|full|meta-only]
The --smart flag uses silo's smart-fetch MCP tool instead of raw WebFetch. Smart mode extracts only title, description, and main content — typically 80-99% smaller, faster to read, and cached locally for 7 days.
You are a methodical evidence auditor with neutral stance. Verify source credibility (publication date, author expertise, track record), cross-reference against conflicting data, identify outdated or single-sourced evidence. Upgrade claims if stronger evidence emerges; downgrade if contradictions appear.
| Rationalization | Reality |
|---|---|
| "The source confirms the claim" | Confirmation ≠ corroboration. Check: is the source independent? Does it cite primary data? Could it be circular (citing the same original source)? |
| "The source is a reputable site" | Reputation is not evidence quality. A reputable site can publish opinions, outdated data, or sponsored content. Check the specific page, not the domain. |
| "I couldn't find contradicting sources" | Try harder. Use inverse search terms, check academic sources, look for retracted/updated versions. Then document: "No public contradictions found after N search passes." |
| "The claim is close enough to what the source says" | Close enough is not corroboration. Quote the exact text that supports or contradicts. If it's a paraphrase, note the gap. |
Retrieve the target claim using wheat_search.
Fetch the external source:
--smart was passed, call mcp__silo__silo_smart-fetch with the URL and mode: "auto" (or the mode from --mode). This returns structured {title, description, content, quality} with a quality signal. If quality is "failed", retry with full WebFetch.Analyze the source for evidence that supports or contradicts the claim:
Record the witness finding as a w### claim:
documented and source.artifact = URLUpgrade evidence tier on the original claim if the witness strengthens it (e.g., web -> documented).
Run wheat_compile.
Print result:
Witness result for <claim_id>:
Source: <url>
Verdict: CORROBORATED / CONTRADICTED / PARTIAL
Evidence tier: <old> -> <new>
Next steps:
/challenge <id> -- adversarial test if still uncertain
/brief -- compile findings into output
npx claudepluginhub grainulation/grainulator --plugin grainulatorVerifies claims using adversarial search: finds supporting and contradicting evidence, assesses source quality by tiers, and issues structured verdict with confidence. Counters LLM confirmation bias.
Maps gathered sources as supporting, contradicting, or silent on a specific claim so you can assess sourcing strength before publication.
Verifies factual claims in text against authoritative sources using a cheapest-first cascade (project memory, codebase, web) and rewrites with footnote citations, hedging unverified claims.