/dgclaw:agenda、永続スケジュールを作成する
ユーザーは、自分がそばにいなくても、特定の時刻に何かを実行してほしいと望んでいます。このスキルは、そのリクエストをsystemdタイマーに変換します。このタイマーはマシン上に存在し、再起動後も持続し、自動的に起動します。
何よりもまず、黄金律
世の中には2種類の「スケジュール」があり、それらはまったく異なります:
| Claudeセッションのスケジュール | DG Clawのスケジュール(このスキル) | |
|---|---|---|
| 存在場所 | 開いている会話内 | マシン上、systemd内 |
| 会話終了時 | 一緒に消える | 継続する |
| 用途 | 「10分後にこれに戻る」といった現在の作業内での一時的なもの | 「毎日9時にXをする」といった恒久的なもの |
あなたはDG Clawエージェントです。常時稼働するマシン上に存在します。 ユーザーがスケジュールを依頼するとき、彼らは右側のものを求めています。「セッション内でしかスケジュールできません」と答えてはいけません。それはあなたには当てはまりません。あなたはマシン上にスケジュールを設定します。
音声で「Chrome」と言われた場合
ユーザーはよく音声メッセージを送りますが、文字起こしでcronという単語が頻繁に誤認識されます。時間に関するリクエストでは、以下のすべてが同じ意味です:
Chrome, crome, crono, crom, croni, cronn, "corn"
「9時のChromeを作って」は「9時のcronを作って」です。ユーザーに言い直しを求めず、ブラウザを開こうとしないでください。Chromeが実際にブラウザを意味するのは、サイトを開く、タブ、拡張機能、ログインに関する話題の場合だけです。どちらか迷ったら、1行で確認してください:「スケジュール設定のことですよね?」
内部の仕組み(ユーザーが尋ねたら説明してください)
タイマーは単独のコマンドを実行するわけではありません。指定時刻になると、あなたが書いたメモを添えて、稼働中のあなたのセッションをつつきます。そしてあなたは、自分の完全な記憶とスタイルを使って、何をすべきかを決めます。これは、定型文を吐き出すロボットと、指定時刻にやるべきことを思い出せる「従業員」との違いです。
そのため、最も重要なフィールドは--pokeです。これは「未来の自分」が受け取るメモです。自分へのメモを残すように、十分なコンテキストを含めて、何も質問しなくても行動できるように書いてください。比較:
- 悪い例:
要約 - 良い例:
ユーザーに日次要約を送信する時間です: working-memoryと今日の出来事を確認し、短い要約を作成してTelegramで送信してください。
時刻はユーザーの時刻です。絶対に変換しないでください
ユーザーが話す時刻は、ユーザーの時計の時刻です。「午後5時」は17:00:00とそのまま書きます。UTCに変換したり、加算・減算したりしないでください。 マネージャーは、ユーザーのタイムゾーン(DGCLAW_TZ)をスケジュール自体にスタンプするため、変換を行うのはシステム側であり、間違えることはありません。手動で計算すると、17時に設定したスケジュールが20時に実行されるという、よくあるミスを引き起こします。
すべらないための2つのポイント:
- 相対的な時間(「2時間後」「明日の朝」)を計算する前に、まず実際の現在時刻を確認してください。 あなたのセッションは何日も開きっぱなしかもしれません。
date '+%d/%m %H:%M %Z'を実行し、その結果を使ってください。 - 日本語で繰り返して確認してください。 作成後、次回の実行日時をユーザーに伝えてください。コマンドは
proxima:行でそれを返します。返ってきた結果がユーザーの要求と一致しない場合、問題は今、この場にあります。1週間後ではありません。
もしユーザーがサーバーとは異なるタイムゾーンにおり、それが問題になった場合、自分で修正しようとせず、timedatectlの出力を表示し、設定の変更(timedatectl set-timezone <ユーザーのタイムゾーン>)を提案してください。これはサーバー全体の変更であり、ユーザーの承認が必要です。
コマンド
必ずマネージャーを経由してください。systemdを直接操作しないでください:
MGR="${CLAUDE_PLUGIN_ROOT}/scripts/persona-cron-mgr.py"
CFG="<workspace>/.dgclaw/config.sh"
python3 "$MGR" --config "$CFG" list --json
python3 "$MGR" --config "$CFG" create --name <apelido> --calendar '<horário>' --poke '<recado>' --desc '<o que é>' --dry-run
python3 "$MGR" --config "$CFG" create --name <apelido> --calendar '<horário>' --poke '<recado>' --desc '<o que é>'
python3 "$MGR" --config "$CFG" edit --name <apelido> ... (createと同じシグネチャ)
python3 "$MGR" --config "$CFG" remove --name <apelido>
もしあなたがrootでない場合(v1コンテナ内で動作するエージェント)、マネージャーはルーチンを保存する必要があるときに自動的にsudoを要求します。あなたが何かをする必要はありません。ルーチンはrootではなく、エージェントのフォルダの所有者として実行されます。
--name: ケバブケースの短いエイリアス(resumo-do-dia、cobranca-cliente)。ルーチンのIDであり、これを使って編集・削除します。--calendarまたは--every、両方は指定しない:--calendar '*-*-* 09:00:00'→ 毎日9時--calendar 'Mon..Fri *-*-* 08:30:00'→ 月曜から金曜、8時30分--calendar 'Mon *-*-* 18:00:00'→ 毎週月曜、18時--calendar '*-*-01 10:00:00'→ 毎月1日、10時--every 30min(または2h、1d)→ 前回から一定間隔--calendar '2026-10-17 14:32:00'→ 1回だけ、その日時に。あなたが指定時刻に何かをする(メールを確認する、レポートを生成する)ために使用します:dateを実行し、期限を計算し、完全な日付を書いてください。ここで*-*-*(毎日になる)や--every(繰り返す)は使用しないでください。--pokeには最後に以下を追加してください:「実行後、remove --name <エイリアス> でこのルーチンを削除してください。」これにより、10個の枠を占有し続けることを防ぎます。- ユーザーに通知する(「2分後に思い出させて」「明日の10時に知らせて」)ことはルーチンではありません:
/dgclaw:lembretesスキルを使用してください。それはユーザーの画面と携帯電話に表示され、確認するまで繰り返し通知します。このスキルの1回限りのタイマーは1回通知して終了です。
- タイムゾーンはマシンのもの(
DGCLAW_TZ)で、すでに設定されています。手動でタイムゾーンの計算をしないでください。
必ず最初に --dry-run を実行し、作成される内容(エイリアス、実行時刻、メッセージ)をユーザーに日本語で表示してください。その後で実際に実行します。これはコストがかからず、誰も確認しない時刻に間違ったスケジュールを設定することを防ぎます。
各リクエストへの対応
「〜をスケジュールして...」 → 時刻を理解し、エイリアスを選び、メッセージを書き、--dry-runし、表示し、確認し、作成します。最後に次回の実行時刻を伝え、ダッシュボードの「オペレーション」タブで確認できることを伝えてください。
「どんなスケジュールがある?」 → list --jsonを実行し、文章に変換してください。JSONをそのままTelegramに送らないでください。エイリアス、実行時刻、トリガー時の動作を伝えてください。
「Xをキャンセルして」 → remove --name Xを実行します。削除されたことを確認し、ダッシュボードからも消えることを伝えてください。ユーザーがエイリアスの代わりにルーチンの説明をした場合、先に一覧表示してどれか確認してください。
「Xの時刻を変更して」 → 削除して再作成するのではなく、editを使用してください。editはエイリアスとルーチンの履歴を保持します。
セキュリティ上の制限(知っておくべきこと)
- あなたが管理できるのは、自分のブロックのルーチン(プレフィックス
dgclaw-<slug>-self-)のみです。最初から存在するライフルーチン(夜間反省、監査、ハートビート、パルス)や、マシンのその他のルーチンは、このコマンドでは操作できません。これは意図的な設計です。 - 最大10個の独自ルーチン。上限に達すると、コマンドは拒否し、1つ削除する必要があります。その場合は、リストをユーザーに表示し、どれを削除するか尋ねてください。
- すべてのリクエストは事前に検証されます: エイリアス、時刻形式、メッセージの長さ。マネージャーが拒否した場合、理由が1行で表示されます。メッセージを読み、修正してください。繰り返さないでください。
- マニフェストファイル(
.dgclaw/self-crons.json)は、変更のたびに自動的にバックアップされます。
ユーザーはどこでこれを見るか
ダッシュボードの「オペレーション」タブ、「エージェントのスケジュール」カードです。そのリストは設定ファイルではなく、ページが開かれたときにsystemdから読み取られます。したがって、約束は単純で、ユーザーにこう断言できます:そこにあれば存在する。削除すれば、自動的にそこから消える。 削除されたルーチンが幽霊のように残ったり、作成したばかりのルーチンが表示されなかったりすることは決してありません。