groundtruth
GroundTruth — Crisis Verification Agent for Slack
Every agent answers. GroundTruth verifies.
During disasters, the deadliest thing in a coordination channel isn't slow information — it's wrong information. GroundTruth is a Slack agent that fact-checks every actionable instruction in a crisis channel against official advisories using retrieval-augmented verification, replies in-thread with a cited verdict, escalates dangerous misinformation, and keeps a tamper-evident audit log.
Built for the Slack Agent Builder Challenge 2026 — Slack Agent for Good track.
Verdicts
Verdict | Meaning | Action taken |
✅ VERIFIED | Consistent with a cited official advisory | Threaded confirmation + citation |
⚠️ UNVERIFIED | No official source covers this claim | Threaded caution notice |
🚨 DANGEROUS | Contradicts official guidance | Threaded correction + auto-escalation to |
Every verdict is appended to a hash-chained audit log (audit/verdicts.jsonl) — change any historical record and the chain breaks, so post-crisis accountability is provable.
Architecture

Slack #crisis-ops ──messages──▶ GroundTruth Agent (Bolt, Socket Mode)
│ claim extraction (actionable-only filter)
▼
Verification engine ◀── also exposed as an MCP server
embed → retrieve (advisory corpus) → verdict
│
┌────────────────────────┼──────────────────────┐
▼ ▼ ▼
Threaded verdict card #crisis-alerts Hash-chained
(Block Kit + citation) escalation (🚨 only) audit log (JSONL)Retrieval: sentence-transformers (
all-MiniLM-L6-v2) if installed, TF-IDF fallback otherwise — the test suite runs on the fallback, no heavy downloads needed.MCP: the same engine is exposed as an MCP server (
mcp_server.py) withverify_claimandcorpus_infotools, so any MCP-capable agent can use GroundTruth as a verification tool.
Quickstart (10 minutes)
Create the Slack app: api.slack.com/apps → Create New App → From an app manifest → pick your sandbox workspace → paste
manifest.json.Tokens: Install the app to the workspace → copy the Bot User OAuth Token (
xoxb-…). Then Basic Information → App-Level Tokens → generate a token withconnections:writescope (xapp-…).Configure:
cp .env.example .env # paste both tokens; set ALERTS_CHANNEL pip install -r requirements.txtCreate channels
#crisis-opsand#crisis-alertsin the workspace and/invite @GroundTruthinto both.Run:
python app.pyDemo it: post in
#crisis-ops:Water at Relief Camp B is safe to drink
GroundTruth replies 🚨 in-thread with the contradicting advisory citation and escalates to
#crisis-alerts. Try/groundtruth check Riverside Bridge is openfor the on-demand path.
Tests
python -m pytest tests/ -q # 7 tests: verdicts, claim filter, audit chainDemo corpus
data/advisories/ contains an original demo corpus written for this hackathon in the style of official flood advisories (clearly marked DEMO CORPUS). In deployment, drop real advisories from your authority (NDMA / WHO / state EOC) into the folder — the engine indexes any .md files at startup.
Limitations (honest MVP notes)
Contradiction detection is a transparent lexical polarity heuristic over the retrieved passage. It handles the common crisis pattern ("X is safe" vs "X is NOT safe") well, but a production build should replace
_stance()with an NLI cross-encoder.Claim extraction is keyword-based; a production build would use an LLM pass (Slack AI) for higher recall.
The corpus is static at startup; live advisory ingestion via the Real-Time Search API is the next milestone.
Roadmap
Multi-language claims (Hindi/Gujarati) · live advisory ingestion (RTS API) · NLI-based stance model · per-channel corpus scoping.
Credits
Built by Ravi Gohel (B.Tech CSE — AI/ML, Marwadi University) for the Slack Agent Builder Challenge 2026, with AI-assisted development. Verification approach informed by the author's research on safe/unsafe instruction classification with RAG grounding.
MIT License.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ravigohel142996/groundtruth'
If you have feedback or need assistance with the MCP directory API, please join our Discord server