一键导入
replace-skill-name
Summary of the [REPLACE: CHANNEL_PLATFORM] channel [REPLACE: CHANNEL_NAME] — top [REPLACE: TOP_N_THREADS] threads + open questions
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Summary of the [REPLACE: CHANNEL_PLATFORM] channel [REPLACE: CHANNEL_NAME] — top [REPLACE: TOP_N_THREADS] threads + open questions
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Price and volume tracker for [REPLACE: TOKEN_SYMBOL] with anomaly alerts above [REPLACE: ALERT_THRESHOLD_PCT]% movement
Watch Vercel deploys for [REPLACE: VERCEL_PROJECT] — alert on [REPLACE: ALERT_ON] in the last [REPLACE: LOOKBACK_HOURS] hours
Digest of the most interesting new posts on [REPLACE: TOPIC] from RSS feeds and the open web
Mention/keyword sweep on social platforms for [REPLACE: KEYWORDS] — trends, sentiment, top posts
5 concrete real-life actions, leverage-scored against open loops with specificity and anti-fluff gates
Curated AI-agent tweets, clustered into narratives with insight summaries
| name | [REPLACE: SKILL_NAME] |
| description | Summary of the [REPLACE: CHANNEL_PLATFORM] channel [REPLACE: CHANNEL_NAME] — top [REPLACE: TOP_N_THREADS] threads + open questions |
${var} — Optional. Override the channel name. If empty, summarises
[REPLACE: CHANNEL_NAME].
Today is ${today}. Read the last 24h of activity in [REPLACE: CHANNEL_PLATFORM] channel [REPLACE: CHANNEL_NAME] and produce a community digest.
| Platform | Secrets | Notes |
|---|---|---|
discord | DISCORD_BOT_TOKEN, DISCORD_CHANNEL_ID | Bot must be in the server with View Channel + Read Message History. |
telegram | TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID | Bot must have been added to the chat (private chats and groups both work). |
slack | SLACK_BOT_TOKEN, SLACK_CHANNEL_ID | Bot needs channels:history (public) or groups:history (private) scope. |
If the secrets for [REPLACE: CHANNEL_PLATFORM] aren't set, log COMMUNITY_NO_TOKEN and exit cleanly.
Resolve channel — CHANNEL="${var:-[REPLACE: CHANNEL_NAME]}". The exact API call depends on [REPLACE: CHANNEL_PLATFORM]:
GET https://discord.com/api/v10/channels/$DISCORD_CHANNEL_ID/messages?limit=100getUpdates polling has limits; better to read the bot's stored offset state from memory/topics/[REPLACE: SKILL_NAME]-tg-offset.json.POST https://slack.com/api/conversations.history with channel + oldest=24h ago.Filter to the last 24h — drop messages older than now - 24h. Drop bot messages (most platforms expose is_bot / bot_id). Keep replies.
Cluster into threads — Discord and Slack expose explicit thread/parent IDs; Telegram doesn't. For Telegram, cluster by reply-chain hops.
Score threads — for each thread:
? or contain words like "how", "why", "anyone", "stuck"? +5.Pick the top [REPLACE: TOP_N_THREADS] threads.
Detect open questions — scan all parent-level messages. If a message ends with ? and has zero replies after 6 hours, mark it as OPEN_QUESTION. List them separately so the operator can chase.
Write articles/[REPLACE: SKILL_NAME]-${today}.md:
# [REPLACE: CHANNEL_NAME] — ${today}
**Volume**: N messages from M participants (vs 7d avg of K).
## Top [REPLACE: TOP_N_THREADS] threads
1. [Author · timestamp] "Parent message excerpt..."
→ N replies, M reactions
→ Permalink
...
## Open questions (no reply > 6h)
- [Author] "Question text..." → permalink
## Volume sparkline (last 7 days)
▁▂▃▅▇▆▄
Notify via ./notify with a 3-line summary:
*[REPLACE: CHANNEL_NAME] — ${today}*
N messages · M participants · K open questions · top thread: <one-line>
Full digest: <url>
Skip the notification on quiet days (volume < 25% of 7d avg AND zero OPEN_QUESTIONs).
Log — append to memory/logs/${today}.md:
## [REPLACE: SKILL_NAME]
- **Channel**: [REPLACE: CHANNEL_PLATFORM]/[REPLACE: CHANNEL_NAME]
- **Volume**: messages=N, participants=M, vs_7d_avg=Δ%
- **Threads picked**: [REPLACE: TOP_N_THREADS] (of K candidates)
- **Open questions**: N
- **Status**: COMMUNITY_OK | COMMUNITY_QUIET | COMMUNITY_DEGRADED (api errors)
Telegram, Discord, and Slack all need their bot token in the Authorization header — curl with $TOKEN in headers fails inside the sandbox. Use the prefetch pattern documented in CLAUDE.md: scripts/prefetch-[REPLACE: SKILL_NAME].sh runs before Claude with full env access, writes the channel history to .community-cache/${today}.json, and Claude reads from disk.