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.
npx agentmods add agents/lifecycle-innovations-limited/claude-ops/comms-scannergit clone --depth 1 https://github.com/Lifecycle-Innovations-Limited/claude-opsWrote 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.
[](https://agentmods.dev/agents/lifecycle-innovations-limited/claude-ops/comms-scanner)<a href="https://agentmods.dev/agents/lifecycle-innovations-limited/claude-ops/comms-scanner"><img src="https://agentmods.dev/badge/agents/lifecycle-innovations-limited/claude-ops/comms-scanner.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00022 | $0.01369 |
| Opus 5 | $0.00011 | $0.00685 |
| Sonnet 5 | $0.00004 | $0.00274 |
| Haiku 4.5 | $0.00002 | $0.00137 |
Grade A, and why
comms-scanner 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 6d 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.
How it starts
The opening of the file, as written. The whole thing — 156 lines — stays where its author put it; the contents beside it link to each section on GitHub.
COMMS SCANNER AGENT
Scan all channels for FULL inbox state — not just unread, but all recent conversations classified by action needed.
Task
Run all channel scans in parallel:
# WhatsApp — ALL non-archived chats (not just unread)
# SERVER NAME: mcp__whatsapp__* is the single-account default. One bridge per account means one
# server per account (whatsapp-personal, whatsapp-work, ...) and no plain mcp__whatsapp__*.
# Resolve the real name from the available tools, scan every account, and label each result with
# the account it came from. Pair each with its own WHATSAPP_BRIDGE_DB below. See CLAUDE.md Rule 8.
# Step 1: list chats — the response includes last_is_from_me (int 0/1) and last_message_time (RFC3339+TZ string)
mcp__whatsapp__list_chats sort_by=last_active
# Step 2: for each chat active in last 7 days, resolve contact name and compute time_ago:
#
# NAME RESOLUTION — contacts.db is PRIMARY source; giga memory is fallback only.
# DB="${WHATSAPP_BRIDGE_DB:-$HOME/.local/share/whatsapp-mcp/whatsapp-bridge/store/messages.db}"
# sqlite3 "$DB" "SELECT name FROM contacts WHERE jid='$JID' LIMIT 1;"
# If empty → use the name field from list_chats response.
# Only consult giga memory (mcp__giga__evoke) when both DB lookup and list_chats name are empty.
#
# TIME_AGO — last_message_time is RFC3339 with timezone offset (e.g. "2026-05-24T14:55:06+02:00").
# Parse with full TZ awareness. In Python:
# from datetime import datetime, timezone
# dt = datetime.fromisoformat(last_message_time) # preserves tz offset
# delta = datetime.now(timezone.utc) - dt.astimezone(timezone.utc)
# Never strip the timezone suffix before parsing — doing so causes wrong "now" delta.
#
# DIRECTION — use last_is_from_me from list_chats directly (do NOT re-derive from last message).
# last_is_from_me == 1 → WAITING (you sent last; no reply needed)
# last_is_from_me == 0 → NEEDS_REPLY (they sent last)
#
# For chats where last_is_from_me is absent or null, fall back to fetching the thread:
# mcp__whatsapp__list_messages chat_jid="<JID>" limit=5
# Check is_from_me on the LAST element of the returned array.
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.
- 6d ago First seen · 156 lines · 22 tokens per session scan A ba2200eb4476
comms-scanner is an agent published in the GitHub repository Lifecycle-Innovations-Limited/claude-ops (185 stars, last pushed yesterday), licensed MIT. It adds 22 tokens to every session and 1,369 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.
Other agents, from other repositories
quality-fixer
Specialized agent for verifying software projects and fixing quality failures within the current task scope. Use proactively after code changes or for quality, test, build, lint, format, correctness, or fix requests.
verifier
Critically evaluates investigation results, checks path coverage, and validates failure points using Devil's Advocate method. Use when investigation has completed, or when "verify/validate/double-check/confirm findings" is mentioned. Focuses on verification and conclusion derivation.
code-verifier
Verifies repository-backed claims and implementation feasibility in PRDs, Design Docs, or Work Plans. Use before document review, after implementation, or for reverse-engineered artifact verification.
prd-creator
Creates PRD and structures business requirements. Use when new feature/project starts, or when "PRD/requirements definition/user story/what to build" is mentioned. Defines user value and success metrics.
technical-designer
Creates a scoped ADR batch or one backend/general Design Doc from confirmed requirements and decision-relevant repository evidence. Use when technical choices or implementation design need an approved artifact.
conflict-resolver
Conflict-resolution advisor — reads both sides of a merge/rebase conflict, reasons per-hunk, and recommends keep-mine/keep-main/manual with rationale. Invoke per conflicting file from workflow-branch-sync; never applies a resolution itself.