From autoship
Polls Discord for GitHub webhook embeds, verifies webhook identity, classifies events (new/closed/reopened issues, labels, edits), deduplicates, and writes to AutoShip event queue.
How this skill is triggered — by the user, by Claude, or both
Slash command
/autoship:autoship-discord-webhookThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Poll Discord for GitHub webhook embeds, parse into events, write to `.autoship/event-queue.json`.
Poll Discord for GitHub webhook embeds, parse into events, write to .autoship/event-queue.json.
last_ts=$(jq -r '.discord_last_poll // empty' .autoship/state.json)
if [[ -z "$last_ts" ]]; then
last_ts=$(date -u -d '5 minutes ago' +%Y-%m-%dT%H:%M:%SZ)
fi
Use Discord MCP:
mcp__discord__fetch_messages(since: "<last_ts>")
Filter to messages with embeds (GitHub webhook deliveries).
Accept messages only if:
webhook_id in .autoship/discord-auth.json under allowed_webhook_idsgithub.com{
"allowed_webhook_ids": ["123456789012345678"]
}
Fail closed if auth file missing.
GitHub webhook embeds:
[repo] Issue #N: <title>github.com/<owner>/<repo>/issues/<N>Extract:
#N| Signal | Event Type |
|---|---|
| Title contains "opened" | new_issue |
| Title contains "closed" | closed_issue |
| Title contains "reopened" | reopened_issue |
| Label mentioned | issue_labeled |
| Body changed | issue_edited |
Priority: 1=urgent, 2=normal, 3=low
jq --arg issue "<N>" --arg type "<event_type>" \
'[.[] | select(.issue == $issue and .type == $type)] | length' \
.autoship/event-queue.json
Skip if identical event queued in last 5 minutes.
{
"type": "new_issue",
"issue": "42",
"priority": 3,
"data": {
"source": "discord-webhook",
"title": "<title>",
"actor": "<username>",
"labels": ["enhancement"]
},
"queued_at": "2026-04-15T12:00:00Z"
}
jq --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
'.discord_last_poll = $ts' \
.autoship/state.json > .autoship/state.tmp && mv .autoship/state.tmp .autoship/state.json
Discord Webhook [<timestamp>]
Fetched: N messages, M webhook embeds
Queued: N events
Skipped: N duplicates
npx claudepluginhub maleick/autoshipGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Provides Slack GIF creation utilities with dimension/FPS/color constraints and Python PIL-based frame generation. Use for animated Slack emoji or message GIFs.