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 職業分類に基づく
Audit every enabled skill's upstream file dependencies for staleness — flags chained skills about to consume yesterday's article or a long-dead topic file
Validate skill outputs against assertions, diff vs prior eval to flag regressions, file issues for new failures, and queue concrete fixes
Compare current progress against goals with quantified status, velocity, trend, and a concrete next action per goal
First-touch review of newly opened PRs on [REPLACE: WATCHED_REPO] — verdict + welcoming comment + label
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
| 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.