mcpField
D
delayed-command

delayed-command

github.com/paulrberg開発102135 回インストール今日更新
リポジトリ

delayed-command について

delayed-commandは、指定時間待機してからBashコマンドを実行するスキルです。時・分・秒を組み合わせた時間指定に対応し、短い待機は同期実行、長い待機はバックグラウンドで実行します。

主な機能

  1. 01時・分・秒による待機時間の解析
  2. 02指定時間後のコマンド実行
  3. 0310分以内の待機で同期実行
  4. 04長い待機でのバックグラウンド実行
  5. 05出力、終了ステータス、経過時間の報告

活用シーン

  1. 01短時間待機してからのコマンド実行
  2. 02シェルタスクの遅延とバックグラウンド実行
  3. 03デプロイやコミットコマンドの遅延実行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/paulrberg/agent-skills --skill delayed-command

インストール後、Claude Code で/delayed-commandを入力して読み込まれたか確認します。

詳細

コマンドの遅延実行

指定した時間だけ待機してから、Bash コマンドを実行します。

引数

  • duration:実行前に待機する時間(例:30s、5m、1h、1h30m)
  • command:待機後に実行する Bash コマンド

時間の形式

形式例意味
Xs30s30 秒
Xm5m5 分
Xh1h1 時間
XhYm1h30m1 時間 30 分
XhYmZs1h5m30s1 時間 5 分 30 秒

ワークフロー

1. 時間の解析

時間の引数を秒に変換します。

  • 時間(h)、分(m)、秒(s)の各要素を抽出します
  • 合計秒数を計算します:hours * 3600 + minutes * 60 + seconds

解析ロジック:

duration="$1"
seconds=0

# Extract hours
if [[ $duration =~ ([0-9]+)h ]]; then
  seconds=$((seconds + ${BASH_REMATCH[1]} * 3600))
fi

# Extract minutes
if [[ $duration =~ ([0-9]+)m ]]; then
  seconds=$((seconds + ${BASH_REMATCH[1]} * 60))
fi

# Extract seconds
if [[ $duration =~ ([0-9]+)s ]]; then
  seconds=$((seconds + ${BASH_REMATCH[1]}))
fi
2. 遅延実行

10 分以下(600 秒)の場合:

適切なタイムアウトを設定して、Bash ツールを同期的に実行します。

sleep <seconds> && <command>

Bash ツールの timeout パラメーターを、少なくとも (seconds + 60) * 1000 ミリ秒に設定します。

10 分を超える場合:

run_in_background: true を指定して、バックグラウンドで実行します。

sleep <seconds> && <command>

コマンドがバックグラウンドで実行中であることをユーザーに伝え、ステータス確認用のタスク ID を提示します。

3. 結果の報告

実行完了後:

  • コマンドの出力を表示します
  • 終了ステータスを報告します
  • 合計経過時間を記載します

例

短い遅延(同期実行)

ユーザー:/delayed-command 5m npm test

  1. 解析:5 分 = 300 秒
  2. 実行:sleep 300 && npm test(タイムアウト:360000ms)
  3. テスト結果を報告します
長い遅延(バックグラウンド実行)

ユーザー:/delayed-command 1h git commit -m "auto-commit"

  1. 解析:1 時間 = 3600 秒
  2. バックグラウンドで実行:sleep 3600 && git commit -m "auto-commit"
  3. ステータス確認用のタスク ID を返します
複合時間

ユーザー:/delayed-command 1h30m ./deploy.sh

  1. 解析:1h30m = 5400 秒
  2. バックグラウンドで実行(600 秒超):sleep 5400 && ./deploy.sh
  3. バックグラウンドタスクについてユーザーに伝えます

エラー処理

エラー応答
無効な時間形式対応している形式と例を表示します
コマンド引数がない実行するコマンドを尋ねます
コマンドが見つからない遅延完了後にエラーを報告します
時間が 24 時間を超えるユーザーに警告し、別の方法(cron、at)を提案します

コメント