本文へ移動
cccskills
無料GitHub で公開

scheduling-jobs

このMacで定期実行するジョブを新しく作る・作り直す・やめる。エージェントに判断させる巡回は taskboard の定期起動、決まった処理だけのシェルスクリプトは launchd で作り、手順書・状態ファイル・ログ・秘密情報の置き場と、登録後の試運転までを同じ型で揃える。

「定期実行を作って」「毎朝◯◯させたい」「毎時巡回させたい」「cronで回したい」「LaunchAgentを作って」等の依頼時、既存の定期実行が失敗・スキップし続けている時、不要になった定期実行を片付ける時に使用。

境界: クラウドで動かす routine は schedule、今のセッション内での繰り返しは loop、定期起動の tool の引数・見回りは taskboard。

インストール方法を見る

含まれるファイル(9)

  • SKILL.md7.7 KB
  • references/launchd-job.md4.7 KB
  • references/taskboard-routine.md8.6 KB
  • templates/taskboard-patrol/ROUTINE.md4.1 KB
  • templates/taskboard-patrol/RUNBOOK.md30.3 KB
  • templates/taskboard-patrol/sources/github.md3.9 KB
  • templates/taskboard-patrol/sources/gmail.md2.4 KB
  • templates/taskboard-patrol/sources/jira.md5.4 KB
  • templates/taskboard-patrol/sources/slack.md4.9 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Scheduling Jobs

このMacの定期実行は、無人で走り、失敗しても誰も見ていない。だから作るときに「止まったら気づける」「飛ばされても取り返せる」「秘密が漏れない」を型として組み込む。

既存設定との関係

  • taskboard の tool: 引数・見回り・消し方は /taskboard スキルが真実源。本スキルはその上で、何を登録するか(仕組みの選択・手順書・プロンプト・状態ファイル)を決める
  • 置き場所: 他のマシンでも成り立つスクリプトは ~/.claude/bin、このマシンでしか成り立たない実値(ID・チャンネル・パス)は git 管理外に置く(@context/claude-customization-guide.md「公開リポジトリに書く内容」)
  • 後始末: 試運転で起動したプロセスは AGENTS.md「バックグラウンドプロセスの後始末」に従う

Step 1: 仕組みを選ぶ

条件(上から判定)仕組み手順
Mac が閉じていても動いてほしい / このMacのファイル・MCP に依存しないクラウドの routine/schedule スキル
今のセッションが開いている間だけ繰り返せばよいセッション内ループ/loop スキル
各回で読んで判断する(収集・分類・起票・要約・通知文の作成)taskboard の定期起動references/taskboard-routine.md
処理が決まっていて判断が要らない(掃除・同期・再認証・バックアップ)launchdreferences/launchd-job.md

判断の要る部分と決まった部分が混ざるなら、決まった部分をスクリプトに切り出し、taskboard の定期起動の手順書からそのスクリプトを呼ぶ。

完了基準: 仕組みを1つ選び、選んだ理由を上の表の行で言える。

Step 2: 中身を決めて、ユーザーに確認する

登録する前に次を表にして提示し、承認を得る。どれも「動き出してから気づくと取り返せない」項目なので、推測で埋めない。

  • 頻度(cron 式か間隔)と、Mac がスリープ・停止していた回をどう扱うか
  • 各回が書き込んでよい範囲(ファイル・外部サービス・taskboard)と、明示的に禁止すること
  • 対象にするもの・しないもの(ディレクトリ・アカウント・チャンネル)。消す・ゴミ箱に入れる処理は、今その対象に何があるかを ls で見せ、初回の実行で消えるものを列挙する
  • 失敗をどこに出すか(通知先・ログ)
  • モデル・effort(taskboard の場合)。巡回が重いほど上げる。既定は opus / medium

完了基準: 上の5項目すべてにユーザーの回答か承認がある。

Step 3: 作る

選んだ仕組みの reference の手順で作る。ソース(Slack・GitHub・Jira・メール等)を巡回して taskboard に起票し、列を進め、通知する巡回は、templates/taskboard-patrol/ の雛形を写して始める(手順は references/taskboard-routine.md「雛形から作る」)。どちらにも共通する規則:

  • 秘密情報(Webhook URL・トークン)は、ジョブのディレクトリに権限 600 のファイルで置き、プロンプト・手順書・plist・コマンドラインに書かない。プロンプトと手順書は会話ログに、コマンドラインはプロセス一覧に残る。通知の Webhook は curl の設定ファイル(url = "..." の1行)にし、curl -K <ファイル> で送る。このときコマンドラインに URL を並べない(並べると両方に送られる)
  • ログはジョブの名前のディレクトリに書く(/tmp は再起動で消え、失敗の調べようがなくなる)
  • 登録内容を ROUTINE.md(launchd は setup スクリプト)としてジョブのディレクトリに残す。登録の実体(taskboard の DB・plist)が消えても、別のマシンでも作り直せるようにする

完了基準: reference の「作るもの」が全部ある。grep で秘密情報の値がプロンプト・手順書・plist に無いことを確認した。

Step 4: 試運転する

予定の時刻を待たず、1回だけ手で起こして結果を見る。

  • taskboard: schedule_run → 終わったら schedule_runs と session_history で結果、状態ファイルとログが更新されたかを見る
  • launchd: launchctl kickstart -k gui/$(id -u)/<label> → launchctl print gui/$(id -u)/<label> の last exit code とログを見る

完了基準: 試運転の回が成功で終わり、ログに1回分の記録がある。失敗したら原因を直してもう1回起こす。

Step 5: やめる

  • taskboard: schedule_update の enabled: false で止め、要らなければ schedule_delete(/taskboard の消し方に従い、1回目の応答で消えるものを確かめる)。常設タスクの扱いはユーザーに聞く
  • launchd: launchctl bootout gui/$(id -u)/<label> で外し、plist をゴミ箱に移す(/usr/bin/trash)。launchctl print が「Could not find service」を返せば外れている
  • スクリプト・手順書・状態ファイルを消すかどうかはユーザーに聞く(消さなければ報告に残した場所を書く)

完了基準: 登録が一覧(schedule_list / launchctl print)から消えている。

Gotchas

  • Mac のふたを閉じたスリープ中も、macOS は短く起きる(DarkWake)。taskboard の定期起動はその間は起こさず、完全に起きてから過ぎた分の最新の1回を起こす(daemon が判定する)。launchd のジョブにはこの判定が無い。ネットワークの要る処理は、届かなかったら失敗として終わり、次の回でやり直す作りにする。どの仕組みでも回は遅れたり飛んだりするので、各回は「前回成功した時刻から今まで」を処理する作りにし、飛ばされた回を次の回で取り返す
  • launchd から起動したプロセスは、Desktop・Documents・Downloads を読めない(macOS のプライバシー保護。ターミナルに付けた許可は引き継がれない)。読めないディレクトリに *(N) の glob を使うと、エラーにならず空として扱われ、何もしないまま成功したように見える
  • set -e のスクリプトは、途中の1コマンドの失敗でそれ以降の処理を全部飛ばす。独立した処理は失敗しても次へ進ませ、最後に失敗があったかで終了コードを決める
  • taskboard の定期起動は、止めていた間と規則を変える前の時刻をさかのぼって起こさない。launchd の StartInterval もスリープ中の回は起こさない(StartCalendarInterval は復帰時に1回だけ起こす)

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

codebase-review

無料日本語概要

コードベース全体のレビュー・監査。perf/sec/test/arch/cq/docs の6観点を並列委譲し、優先度付き issue ファイルと観点サマリをメモリディレクトリに生成する。コードベース全体の監査・定期レビュー・リリース前品質確認の依頼時、/codebase-review 実行時に使用。境界: PR 単位は pr-review、自ブランチの提出前確認は self-review。

ukwhatn/.claude42026年10月12日 更新

commit

無料日本語概要

変更をコミットする。/commit 実行時、「コミットして」「pushして」等の依頼時に使用。--push 引数または「pushして」の依頼で push も行う。

ukwhatn/.claude42026年10月12日 更新

create-draft-pr

無料日本語概要

PR を Draft で作成する。PR テンプレートを全セクション埋め、対象 repo の既存 PR の分量に合わせて書きすぎを削る。PR 作成の依頼時、実装が一段落して PR 化する時、/create-draft-pr 実行時に使用(gh pr create を直接実行しない)。引数でベースブランチを指定できる。境界: 個別レビューコメントへの対応は pr-comment。

ukwhatn/.claude42026年10月12日 更新

create-skill

無料日本語概要

スキルを新規作成する。「スキルを作って」「この手順をスキル化して」等の依頼時、/create-skill 実行時に使用。AGENTS.md・context・既存スキルと整合させ、重複・競合を避ける。境界: 既存スキル・指示ファイルの修正は update-inst、指示ファイル全体の監査は instructions-audit。

ukwhatn/.claude42026年10月12日 更新

design-feature

無料日本語概要

抽象的な要件・事業側の要求を深掘りし、既存実装との整合を確認して実装マスタとシステム要件書を作成する。「こういう機能を作りたい」「この要求を満たす機能を設計して」等の抽象要件の提示時、既存機能の拡張や Phase 分割の要件定義開始時、/design-feature 実行時に使用。境界: 要件確定後の実装計画書・PR 分割と実装進行は plan-feature-prs。

ukwhatn/.claude42026年10月12日 更新

designing-ui

無料日本語概要

画面の設計判断(ナビゲーション・重ね方・通知と空状態と読み込み・外枠とトークンと状態表現)の型を決定表で選び、アプリ内の全画面で揃える。画面・ページ・レイアウト・ナビゲーション・ダイアログ・コンポーネントを新しく作る・作り直す時、モックやダッシュボードを作る時、サイドバー・タブ・モーダル・シート・toast・バナー・空状態のどれを使うか決める時に使用。PJ に components.json があれば shadcn の部品とトークンへの対応も扱う。主要なデザインシステム(Material・HIG・Carbon・Primer・Atlassian・Fluent・GOV.UK・NN/g・WAI-ARIA APG・WCAG)の一致点を規則にし、食い違いの採否を定めてある。境界: 画面の文言は writing-ui-text、画面に何を出すかと提示前の完了基準は context/ui-artifact-standards.md、コードの実装原則は writing-code、shadcn 部品の API と組み立ては shadcn。

ukwhatn/.claude42026年10月12日 更新

ukwhatn のスキルをすべて見る

このスキルの問題を報告する