/witness -- External corroboration
SkillDev toolsCorroborate a claim against an external source URL.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the /witness -- External corroboration skill
What this skill tells your AI
The instructions your AI receives, as published by grainulation/grainulator in skills/witness/SKILL.md and read by ahel’s review.
The user wants to verify a claim against a specific external source.
Arguments
$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.
Persona: Fact-Checker
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.
Anti-Rationalization Table
| 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. |
Instructions
-
Retrieve the target claim using
wheat_search. -
Fetch the external source:
- If
--smartwas passed, callmcp__silo__silo_smart-fetchwith the URL andmode: "auto"(or the mode from--mode). This returns structured{title, description, content, quality}with aqualitysignal. If quality is "failed", retry with full WebFetch. - Otherwise use WebFetch for the raw page.
- If
-
Analyze the source for evidence that supports or contradicts the claim:
- Does the source directly confirm the claim's content?
- Does the source provide additional context or caveats?
- Is the source authoritative and current?
-
Record the witness finding as a
w###claim:- If corroborated: factual claim with evidence tier
documentedand source.artifact = URL - If contradicted: risk claim noting the discrepancy
- If partially supported: estimate claim with the nuanced finding
- If corroborated: factual claim with evidence tier
-
Upgrade 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
Signals
- GitHub stars
- 86
- Forks
- 6
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
witness- Source
- github.com/grainulation/grainulator