Corroborate a claim against an external source URL.
Scanned 5/27/2026
Install via CLI
openskills install grainulation/grainulator---
name: witness
description: Corroborate a claim against an external source URL.
tools:
- mcp__wheat__wheat_add-claim
- mcp__wheat__wheat_compile
- mcp__wheat__wheat_search
- mcp__silo__silo_smart-fetch
- WebFetch
- Read
---
# /witness -- External corroboration
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
1. **Retrieve the target claim** using `wheat_search`.
2. **Fetch the external source**:
- If `--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.
- Otherwise use WebFetch for the raw page.
3. **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?
4. **Record the witness finding** as a `w###` claim:
- If corroborated: factual claim with evidence tier `documented` and source.artifact = URL
- If contradicted: risk claim noting the discrepancy
- If partially supported: estimate claim with the nuanced finding
5. **Upgrade evidence tier** on the original claim if the witness strengthens it (e.g., `web` -> `documented`).
6. Run `wheat_compile`.
7. **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
```
No comments yet. Be the first to comment!