discord-bot-poller — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited discord-bot-poller (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use this skill when an automation job needs to watch one Discord channel and react to new messages without a full gateway bot framework. The helper uses the Discord REST API, stores the last seen message id in memory or a caller-provided value, and honors rate-limit responses.
discord.py and the Gateway instead.User input:
Poll my Discord alerts channel and send each new URL into the scraper.Output:
# Copy assets/poller.py into your project, then:
from poller import poll_forever
def handle(message):
print(message["author"].get("username", "user"), message.get("content", ""))
poll_forever(handle, poll_seconds=5)The helper reads DISCORD_BOT_TOKEN and DISCORD_CHANNEL_ID from env. Keep channel ids and tokens out of source control; persist last_message_id with [[sqlite-state]] if the poller must resume after restarts.
GET /channels/{channel_id}/messages with after=last_message_id to avoid reprocessing.retry_after and X-RateLimit-Reset-After before the next request.Reference: assets/poller.py.
Distilled from production use across the author's automation projects. v1.0.0. See also: [[sqlite-state]], [[telegram-alerter]], [[rate-limit-budget]].
→ Build the full runnable bot with Trawlkit.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.