Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Slackの未返信メッセージを検出し、返信ドラフトを生成するスキル。 「未返信メッセージ」「返信してないメッセージ」「Slack確認」等のリクエストで発動。
.claude/skills/minicoohei-slack-unanswered/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 60% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -22% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 19% | 0% |
「未返信メッセージ」「返信してないメッセージ」「Slack確認」「未読メンション」
This skill finds Slack messages that need your attention and helps you reply to them.
All searches are performed in: slack-sync/data/
> 以下を自分の Slack 表示名・ユーザー名に置き換えてください。
Search for these names (case-insensitive):
@{YOUR_DISPLAY_NAME}@{YOUR_FULL_NAME}@{YOUR_SLACK_USERNAME}{YOUR_FULL_NAME}, {YOUR_SLACK_USERNAME}設定方法: 上記のプレースホルダーを自分の情報に書き換えるか、--users オプションで指定してください。
Search for messages containing your identifiers:
bashgrep -rn -B2 -A10 -E "@{YOUR_DISPLAY_NAME}|@{YOUR_SLACK_USERNAME}|{YOUR_FULL_NAME}" slack-sync/data/
A message is unanswered if:
?) or contains a request> #### immediately after it (before the next ### or ---)Focus on recent messages (last 7 days). Exclude bot messages (Sentry, Vercel, etc.).
For each unanswered message, provide:
For messages that need replies, generate a draft reply in Japanese. Ask the user to review and edit.
IMPORTANT: Always get user confirmation before sending!
The reply flow is:
data/slack-sync/scripts/reply_slack.pybash# Dry run (preview without sending) python data/slack-sync/scripts/reply_slack.py \ --url "https://xxx.slack.com/archives/CHANNEL/pTIMESTAMP" \ --message "返信内容" \ --dry-run # Actually send (only after user confirms!) python data/slack-sync/scripts/reply_slack.py \ --url "https://xxx.slack.com/archives/CHANNEL/pTIMESTAMP" \ --message "返信内容"
SLACK_USER_TOKEN=xoxp-...This token needs the chat:write scope. See setup instructions below.
Claude: 以下の返信案を作成しました:
---
宛先: @{SENDER_NAME}
チャンネル: datadev-ai
Slack: [リンク](https://...)
返信案:
「担当者名のSlackアカウントは @xxx です!」
---
この内容で送信してよろしいですか? (修正があれば教えてください)
User: OKです
Claude: [reply_slack.py を実行して送信]
送信しました!To enable reply functionality:
chat:write - Post messagesxoxp-... tokenSLACK_USER_TOKEN in your environment/GitHub SecretsMessages in markdown files:
### HH:MM - Sender Name [[Slack]](url)> ####slack-sync/TODO.mdmarkdown- [ ] **[channel-name]** Sender名 (日付 時刻) - 内容: メッセージの要約 - Slack: URL - 返信案: 返信内容のドラフト
[x] に変更When you find an unanswered message, add it to slack-sync/TODO.md:
markdown- [ ] **[datadev-ai]** {SENDER_NAME}さん (1/7 19:10) - 内容: 担当者名のSlackアカウント名の確認 - Slack: https://... - 返信案: アカウント名を確認して回答
After sending a reply:
- [ ] to - [x]bashgrep -rn -B2 -A10 "@{YOUR_DISPLAY_NAME}" slack-sync/data/ | head -200
bashgrep -rn "### [0-9:]* - {YOUR_DISPLAY_NAME}" slack-sync/data/ | head -100
bashgrep -rn -A5 "@{YOUR_DISPLAY_NAME}" slack-sync/data/ | grep -E "\?$|でしょうか|ですか|ますか|ください"
bashcat slack-sync/TODO.md
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 8,540 | 7,438 | -13% | 1 | 1 | 0% | 1,325 | 1,744 | +32% | 0 | 0 | — |
case-02 | fail→fail | 10,271 | 5,987 | -42% | 1 | 1 | 0% | 1,613 | 1,681 | +4% | 0 | 0 | — |
case-03 | fail→fail | 10,170 | 5,729 | -44% | 1 | 1 | 0% | 1,618 | 1,650 | +2% | 0 | 0 | — |
case-04 | fail→pass | 7,383 | 2,007 | -73% | 1 | 1 | 0% | 1,091 | 1,751 | +60% | 0 | 0 | — |
case-05 | fail→pass | 15,906 | 8,090 | -49% | 1 | 1 | 0% | 2,482 | 2,878 | +16% | 0 | 0 | — |
case-06 | pass→pass | 11,161 | 6,519 | -42% | 1 | 1 | 0% | 1,646 | 2,459 | +49% | 0 | 0 | — |
case-07 | pass→pass | 7,583 | 3,631 | -52% | 1 | 1 | 0% | 1,190 | 2,013 | +69% | 0 | 0 | — |
case-08 | pass→pass | 3,667 | 1,991 | -46% | 1 | 1 | 0% | 615 | 1,783 | +190% | 0 | 0 | — |
case-09 | fail→pass | 8,516 | 1,515 | -82% | 1 | 1 | 0% | 1,306 | 1,576 | +21% | 0 | 0 | — |
case-10 | pass→pass | 6,491 | 1,992 | -69% | 1 | 1 | 0% | 932 | 1,606 | +72% | 0 | 0 | — |
case-11 | fail→pass | 12,909 | 1,941 | -85% | 1 | 1 | 0% | 2,180 | 1,708 | -22% | 0 | 0 | — |
case-12 | pass→pass | 9,166 | 3,812 | -58% | 1 | 1 | 0% | 1,431 | 2,129 | +49% | 0 | 0 | — |
case-13 | fail→pass | 11,410 | 4,347 | -62% | 1 | 1 | 0% | 1,863 | 2,223 | +19% | 0 | 0 | — |
case-14 | fail→fail | 12,599 | 1,873 | -85% | 1 | 1 | 0% | 1,799 | 1,675 | -7% | 0 | 0 | — |
case-15 | pass→pass | 9,878 | 1,788 | -82% | 1 | 1 | 0% | 1,455 | 1,634 | +12% | 0 | 0 | — |
case-16 | fail→pass | 13,393 | 2,832 | -79% | 1 | 1 | 0% | 2,006 | 1,844 | -8% | 0 | 0 | — |
case-17 | fail→pass | 13,354 | 3,779 | -72% | 1 | 1 | 0% | 2,000 | 2,018 | +1% | 0 | 0 | — |
case-18 | fail→pass | 13,845 | 4,963 | -64% | 1 | 1 | 0% | 2,002 | 2,291 | +14% | 0 | 0 | — |
case-19 | pass→pass | 5,398 | 1,476 | -73% | 1 | 1 | 0% | 748 | 1,531 | +105% | 0 | 0 | — |
case-20 | pass→pass | 33,143 | 16,303 | -51% | 1 | 1 | 0% | 3,760 | 4,619 | +23% | 0 | 0 | — |
case-21 | pass→pass | 8,135 | 6,353 | -22% | 1 | 1 | 0% | 1,438 | 2,508 | +74% | 0 | 0 | — |
case-22 | pass→pass | 14,924 | 9,176 | -39% | 1 | 1 | 0% | 2,799 | 3,091 | +10% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +36 percentage points is the difference between those two pass rates over the 20 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.