witness

witness is a skill for Claude Code from grainulation/grainulator. It costs 15 tokens per session (779 once invoked), scanned A, original, MIT.

A fact-checking workflow that compares a claim with a specific external web address. It assesses the source and looks for supporting or conflicting evidence.

In plain words
What is it for?
Checking a claim against a URL in concise, full, or metadata-only mode, with an optional smaller smart-fetch operation.
Why use it?
It helps distinguish simple confirmation from stronger independent corroboration and can expose outdated or weak evidence.

Skill for Claude Code

Written for Claude Code: $ARGUMENTS substitution.

Part of the grainulator plugin — 19 skills, 1 agent, 2 hooks, 4 MCP servers shipped together

Good fit Checking a claim against a URL in concise, full, or metadata-only mode, with an optional smaller smart-fetch operation.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/grainulation/grainulator/witness
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add grainulation/grainulator --skill witness
Clone the repo
git clone --depth 1 https://github.com/grainulation/grainulator

Made for: Claude Code.

Or install grainulator, the plugin that ships this one along with the rest of its 19 skills, 1 agent, 2 hooks, 4 MCP servers.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for witness

README.md
[![agentmods](https://agentmods.dev/badge/skills/grainulation/grainulator/witness.svg)](https://agentmods.dev/skills/grainulation/grainulator/witness)
Your own site
<a href="https://agentmods.dev/skills/grainulation/grainulator/witness"><img src="https://agentmods.dev/badge/skills/grainulation/grainulator/witness.svg" alt="Measured on agentmods" height="20"></a>
Per session 15 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 779 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00015 $0.00779
Opus 5 $0.00008 $0.00390
Sonnet 5 $0.00003 $0.00156
Haiku 4.5 $0.00002 $0.00078

Measured 8d ago against content hash fb8f3bcd84b6, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

witness scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/witness/SKILL.md · 72 lines

How it starts

The opening of the file, as written. The whole thing — 72 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/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.

Read the full file on GitHub · 72 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 8d ago First seen · 72 lines · 15 tokens per session scan A fb8f3bcd84b6

Subscribe to this mod's changes

witness is a skill published in the GitHub repository grainulation/grainulator (86 stars, last pushed 4mo ago), licensed MIT. It adds 15 tokens to every session and 779 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

domain-expert

Use this skill during /plan (between scope validation and writing the plan artifact) to inject domain-specific context, gap questions, and regulatory concerns into the plan. Triggers automatically when the plan skill evaluates the task and scope.md against the domain registry in domains/index.json using semantic…

lantisprime/claude-sdlc · 70 tokens

discord-intent-application

Helps write the justification text for Discord Developer Portal privileged intent applications (Message Content, Server Members, Presence) for a specific bot. Takes a plain-text description of the bot's functionality and/or an uploaded/local codebase, screens the bot's features against Discord's known rejection…

The-LukeZ/discord-intent-application · 144 tokens

start

Use this skill when the user runs /start, says "start", "enable the SDLC workflow", "I want to build", "I want to fix", "set up", "get started", or otherwise signals they want to activate or re-enable the SDLC workflow. Handles three distinct paths based on marker state — fresh install (opt-in activation), re-enable…

lantisprime/claude-sdlc · 107 tokens

plan

Use this skill at the START of every coding task — new builds, bug fixes, and change requests. Classifies the work item, validates it against project scope, produces a high-level estimate, proposes a technology stack, and checks stack compatibility. Writes a plan artifact to .claude/sdlc/plans/ that every downstream…

lantisprime/claude-sdlc · 130 tokens

configure

Use this skill when the user runs /configure, /configure --needs, or /configure --check. Also auto-invoked by env-detect.sh on fresh install (Layer 0) and by skills that find required config missing at runtime (Layer 2). Guides setup of config/tools.json and config/tools.local.json through a question bank; handles…

lantisprime/claude-sdlc · 88 tokens

status

Use this skill when the user asks "where am I", "what's the current task", "what's blocking me", "show status", "what needs sign-off", or "what's next". Prints a snapshot of the active plan, gate, sign-off progress, and next action. Reads only — writes nothing.

lantisprime/claude-sdlc · 67 tokens