Skip to main content
Glama
ravigohel142996

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 2026Slack 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 #crisis-alerts

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

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) with verify_claim and corpus_info tools, so any MCP-capable agent can use GroundTruth as a verification tool.

Quickstart (10 minutes)

  1. Create the Slack app: api.slack.com/appsCreate New AppFrom an app manifest → pick your sandbox workspace → paste manifest.json.

  2. Tokens: Install the app to the workspace → copy the Bot User OAuth Token (xoxb-…). Then Basic Information → App-Level Tokens → generate a token with connections:write scope (xapp-…).

  3. Configure:

    cp .env.example .env    # paste both tokens; set ALERTS_CHANNEL
    pip install -r requirements.txt
  4. Create channels #crisis-ops and #crisis-alerts in the workspace and /invite @GroundTruth into both.

  5. Run:

    python app.py
  6. Demo 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 open for the on-demand path.

Tests

python -m pytest tests/ -q     # 7 tests: verdicts, claim filter, audit chain

Demo 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

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