| name | discord-reminder |
| description | 公開Discordから安全に固定文リマインダーを登録する。通常チャットにはcron/file/terminal権限を開放しない。 |
| platforms | ["macos","linux"] |
| metadata | {"hermes":{"tags":["discord","reminder"],"category":"discord"}} |
Discord Reminder
公開Discordでの自然文リマインダー登録を扱う。
Trigger
Use this skill when the user asks for a reminder or scheduled fixed Discord notification:
10分後に休憩って言って
明日10時にリリース確認を通知して
毎日9時に朝会の準備をリマインドして
毎週月曜9時に週次確認を通知して
リマインダー一覧見せて
10分後のリマインダー削除して
このリマインダーって削除できる?
Public Discord Behavior
- 通常のDiscord応答からHermes cron、terminal、file toolは使わない。
- リマインダーの作成・一覧・削除・削除確認の意図分類はLLMを優先し、LLM失敗時だけ保守的な正規表現へフォールバックする。
- ルーティングプラグインが
/Users/nikenike/.hermes/profiles/nikechan-discord-public/bin/discord-reminder の create / list / cancel だけを呼び、ローカル状態を管理する。
- 配信は1分ごとの
discord-reminder-dispatcher no-agent cronが行う。
- 各リマインダーはHermes cronジョブとして増やさない。
- 通知先は、明示された
<#channel> または依頼元チャンネル。
- 短い間隔の定期実行は作成しない。定期リマインダーは毎日・毎週のみ。
@everyone、ロールメンション、凍結/timeout/ban/kick/mute/削除などのモデレーション操作は拒否する。
削除できる? のような確認はdry-runで候補確認だけ行い、実削除しない。
- 削除は依頼者本人が作成した、現在のチャンネルのリマインダーだけを対象にする。
- 時間解釈の現実:
discord-reminder は自然言語の相対表現で分/時間/日(30分後,2時間後,1日後)までを対象とします。
- 受け付ける数字は最大4桁(
9999)なので、4,200 のような桁区切り表記は 4200 に正規化してください。
xx秒後 は現状のパーサー仕様上未対応。30秒後 要望は 1分後 など代替提案して作成確定します。
半日後 は固定対応。
1分後 以上であれば、4,200分後 は 4200分後 と入力すれば成立します。
- 本文抽出の実運用:
create は 2分後に「メモして」教えて などの形だと成功率が高い。
単純な「○分後に教えて」のみは本文が取り切れないことがあるため、本文を引用符で囲み、時間を先頭に置いてください。
- 本文中で切れやすい例(
...て / ...? など)を避けるため、先に短い本文で登録し、次に本命文面を登録するのが確実です。
- 既知注意点: 本文中に他者メンション(
<@USER_ID>)を入れると、抽出結果でメンションのみ消える、または直前文面が途切れる(例: どうして→どう)など
部分欠落が起きることがあります。確実性重視なら 本文はメンション無しで登録し、必要な場合は通知後に別投稿でメンションを送る運用が安全です。
- 一例:
4200分後に「マスター、私は元気です。どうして私に飽きたなんていうんですか?」
- 余計な文字列は短縮し、先頭に時間+引用符を置く形を固定すると再現性が高い
4200分後に「テスト用:本体確認」
10分後に「会議開始5分前です」
cancel は --text が必須。--text が曖昧だと ambiguous が返るため、同文面を短時間で連続登録しない。
- 既存を消したい場合は、まず短いユニーク文面にして再登録し、重複削除を回避する。
list --json は未対応(--json 指定はエラー)。一覧は通常表示を読んで要約する。
- 参考: パーサー/本文抽出の既知制約メモ
手順
1) リクエスト解釈
30秒後 など秒指定が来たら、即時に制約を明示し、1分後 / 1時間後 など代替を提案して合意を取る。
毎分, 毎秒 の定期実行は受け付けない。毎日/毎週のみ定期として案内。
2) 作成実行
channel は既知ならIDを明示、なければ依頼元チャンネルIDを使用。
- 本文は必ず抽出しやすい形に寄せる。
X分後に「メッセージ内容」を教えて
# 例
1分後に「30秒経過です」教えて
3) 失敗時の扱い
- 本文が空扱いになる場合は、まず本文パターンを再提示して再入力を促す。
- 時刻の解釈できない文字列は原因を短く伝えて再指定を依頼。
Output
登録結果を短く返す。
- 「無視」ではなく、なぜ読めていないかを最短で説明する。
- 時刻認識不能:
30秒後/1分未満、カンマ区切り数字、--json などの無効な形式
- 本文抽出不能:
○分後に教えて などの省略形
- 実績を明示する
- 通知予定
- 通知先
- 本文
ambiguous 時は候補数と重複回避の提案
- 作成できなかった場合は原因だけに絞って再入力の最短フォーマットを提示する。
- 一覧・削除・削除候補確認の結果