Upgrade to Pro — share decks privately, control downloads, hide ads and more …

スピンアウト講座04_ルーティン処理

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 スピンアウト講座04_ルーティン処理

macOSのlaunchdで定期実行を自動化する方法を解説。plistファイルの書き方、登録・解除・ログ確認のコマンド、GitHub Actions(クラウド)との使い分けまでカバーします。

OffersにはAI Talent(トップクラスAI人材)が多数登録しています。その方たちとチームを組み、AIコンサルティングサービスを開始しています。ご関心のある方はこちらからご登録ください。順次、弊社よりご連絡させていただきます。
https://share-na2.hsforms.com/13F_F95BrTLaqRMk1hYhxQg3rs27

Avatar for overflow ,Inc

overflow ,Inc

March 21, 2026
Tweet

More Decks by overflow ,Inc

Other Decks in Technology

Transcript

  1. スピンアウト講座 04 ルーティン処理 launchd / cron / Claude Code /loop

    の違いを理解し、 定期実行の仕組みを構築する ver. 2026.03
  2. なぜルーティン処理が必要なのか CONFIDENTIAL © Offers All rights reserved. 1 「人間が起動する」限界 BEFORE

    — 毎回手動 ✕ 毎朝ターミナルを開く ✕ Claude Code を起動する ✕ 「メールを確認して」と入力 ✕ 忙しい日は忘れる ✕ 土日はやらない ✕ 出張中はできない AFTER — 自動実行 ✓ 毎朝8:00に自動起動 ✓ Claude Codeがメール確認 ✓ ドラフトを自動生成 ✓ Slackに通知が届く ✓ 人間は通知を見るだけ ✓ 土日・出張中も稼働
  3. なぜルーティン処理が必要なのか CONFIDENTIAL © Offers All rights reserved. 2 ルーティン処理が効果的な場面 朝の業務準備

    毎朝 メール確認、TODO作成 カレンダー確認 日報・レポート 毎日 日報生成 KPIデータ収集 コンテンツ制作 毎日〜毎週 ブログ記事下書き レポート生成 広告運用 毎日 パフォーマンス分析 改善提案 データ同期 毎日 KPIデータの取得 データ更新 月次処理 月1回 月次レポート 振り返り
  4. なぜルーティン処理が必要なのか CONFIDENTIAL © Offers All rights reserved. 3 3つのスケジュール実行方法の比較 launchd

    (plist) cron Claude Code /loop OS macOS専用 Unix/Linux/macOS Claude Code内 持続性 常駐(PC起動中) 常駐 セッション中のみ スリープ復帰 自動で未実行分を実行 スキップされる スキップされる 設定場所 ~/Library/LaunchAgents/ crontab -e Claude Code内で /loop 推奨用途 macOSでの本番運用 Linuxサーバー 一時的な繰り返し
  5. なぜルーティン処理が必要なのか CONFIDENTIAL © Offers All rights reserved. 4 結論 macOS

    で定期実行するなら launchd 一択 1 スリープ復帰後に 自動実行 cronはスキップするが launchdは未実行分を実行 2 macOS 公式推奨方式 Appleが推奨する タスクスケジューラ 3 PCをスリープから 起こすことも可能 Power Management との連携が可能
  6. launchd (plist) の仕組み CONFIDENTIAL © Offers All rights reserved. 5

    plist ファイルの構造 launchd が読み込むXML形式の設定ファイル。5つのパーツで構成されます。 1 Label タスクの識別名 com.claude.daily-report 2 ProgramArgumen ts 実行するシェルスクリ プト フルパスで指定 3 StartCalendar Interval 実行タイミング Hour/Minute/Weekday 4 StandardOutPath ログ出力先 デバッグに必須 5 Working Directory 作業ディレクトリ Vaultのパスを指定
  7. launchd (plist) の仕組み CONFIDENTIAL © Offers All rights reserved. 6

    スケジュールの書き方パターン パターン 設定キー 値の例 備考 毎日19:00 Hour / Minute 19 / 0 最もシンプル 毎週月曜12:00 Weekday / Hour / Minute 1 / 12 / 0 Weekday: 0=日〜6=土 平日(月〜金)8:00 配列で5つの dict Weekday: 1〜5 各曜日を個別指定 毎月10日 11:00 Day / Hour / Minute 10 / 11 / 0 月次レポート等 曜日番号リファレンス 0 = 日 1 = 月 2 = 火 3 = 水 4 = 木 5 = 金 6 = 土
  8. launchd (plist) の仕組み CONFIDENTIAL © Offers All rights reserved. 7

    設定はClaude Codeに任せる 依頼するだけで、必要なファイルをすべて自動生成してくれます。 1 ▶ 依頼する 「毎朝8:00に未読メール を 確認してTODOを作成す る ルーティン処理を設定し て」 2 ▶ 自動生成 シェルスクリプト plistファイル ログディレクトリ 3 ▶ 自動登録 launchctl load で 自動的にmacOSに登録 4 完了 毎朝自動で実行 人間は通知を見るだけ
  9. launchd (plist) の仕組み CONFIDENTIAL © Offers All rights reserved. 8

    Claude Codeに伝えるべき5つのこと 01 何をするか 「未読メールを確 認して TODOを作成す る」 02 いつ実行するか 「毎朝8:00、月〜 金」 03 出力先 「Vaultの〇〇フォ ルダ に保存」 04 通知方法 「Slackに通知して ほしい」 05 コスト上限 「1回あたり $3以内で」
  10. 運用と管理 CONFIDENTIAL © Offers All rights reserved. 9 plist の登録と管理コマンド

    操作 コマンド 説明 登録(有効化) launchctl load ~/Library/LaunchAgents/xxx.plist タスクを登録して有効化 解除(無効化) launchctl unload ~/Library/LaunchAgents/xxx.plist タスクを解除して無効化 一覧確認 launchctl list | grep claude 登録済みタスクの確認 即時実行 launchctl start com.claude.xxx テスト用の手動実行 状態確認 launchctl print gui/$(id -u)/com.claude.xxx タスクの詳細状態 ログ確認 tail -50 ~/.claude/logs/xxx.log 最新ログの表示
  11. 運用と管理 CONFIDENTIAL © Offers All rights reserved. 10 よくあるトラブルと対処法 症状

    原因 対処法 タスクが実行されない plistが未登録 launchctl load で登録 Claude CLIが見つからない PATHが通っていない シェルスクリプトでPATHを明示設定 ログが出力されない ログディレクトリがない mkdir -p ~/.claude/logs で作成 土日も実行されてしまう Weekdayの設定漏れ StartCalendarIntervalで曜日指定 2回実行されてしまう plistを2回ロードした unload → load で再登録 トラブル発生時は Claude Code にログ確認と修正を依頼できます
  12. 運用と管理 CONFIDENTIAL © Offers All rights reserved. 11 cron との違い:スリープ復帰時の動作

    シナリオ: 毎朝8:00に実行する設定。PCは7:30にスリープ、9:00に復帰。 cron の場合 8:00 → PCがスリープ中 → スキップ → 実行されない ✕ launchd の場合 8:00 → PCがスリープ中 → 9:00復帰 → 未実行分を自動実行 ✓ 項目 cron launchd macOS公式推奨 非推奨 推奨 スリープ復帰実行 ✕ ✓ 設定の柔軟性 5フィールド固定 XMLで柔軟に設定 ログ管理 手動設定 plistで指定
  13. 他のスケジュール実行方法 CONFIDENTIAL © Offers All rights reserved. 12 Claude Code

    /loop セッション中だけ有効な、一時的な繰り返し実行コマンド /loop 5m デプロイが完了したか確認して ▶ 5分ごとに デプロイ状態を確認 /loop 20m /review-pr 1234 ▶ 20分ごとに PRレビュー状態を確認 /loop ビルドの進捗を確認して ▶ デフォルト(10分間隔) ビルド進捗の監視 技術的制約 セッション終了で消滅 最大50タスク 3日で自動期限切れ 最小間隔は1分
  14. 他のスケジュール実行方法 CONFIDENTIAL © Offers All rights reserved. 13 /loop と

    launchd の使い分け 用途 ツール 理由 毎朝自動で日報を作成 launchd PCを起動するだけで動く デプロイ中に5分ごとに監視 /loop セッション中だけの一時的な監視 毎週月曜にレポート生成 launchd 永続的なスケジュール PRがマージされるまで監視 /loop 完了したら不要になる ポイント: /loop はセッションを閉じると消えます。永続的なスケジュールには launchd を使いま しょう。
  15. 他のスケジュール実行方法 CONFIDENTIAL © Offers All rights reserved. 14 GitHub Actions

    によるスケジュール実行 ローカルPCではなく、クラウド上で定期実行したい場合に最適 実行場所 GitHubのサーバー(クラウド) PCの電源 不要(クラウドで動く) 無料枠 月2,000分 設定 .github/workflows/ にYAML # .github/workflows/daily.yml name: 日次データ分析 on: schedule: - cron: '0 0 * * 1-5' jobs: analyze: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: npx claude-code \ --print "分析実行"
  16. 他のスケジュール実行方法 CONFIDENTIAL © Offers All rights reserved. 15 launchd vs

    GitHub Actions launchd GitHub Actions PCの電源が必要 はい いいえ ローカルファイルにアクセス 可能 リポジトリ内のみ MCP連携 フル対応 制限あり コスト 無料 月2,000分まで無料 推奨場面 ローカル処理(日報等) クラウド処理(CI/CD等) 使い分け: ローカルファイルやMCP連携が必要ならlaunchd、PCの電源不要でクラウド完結ならGitHub Actions
  17. 運用Tips と実践 CONFIDENTIAL © Offers All rights reserved. 16 コスト管理:モデル別コスト目安

    Sonnet $0.5〜3.0 1回あたりの目安コスト 推奨 日常の自動化タスク Opus $3.0〜10.0 1回あたりの目安コスト 高度な分析・判断が必要なタスク Haiku $0.1〜0.5 1回あたりの目安コスト シンプルな通知・集計 --max-budget-usd 3.00 --model sonnet
  18. 運用Tips と実践 CONFIDENTIAL © Offers All rights reserved. 17 重複実行防止とエラー通知

    重複実行防止 同日に既に実行済みなら何もしない仕組みをスクリプ トに組み込みます。 TODAY=$(date +%Y-%m-%d) if ls "$OUTPUT_DIR/ ${TODAY}_"*.md \ 1>/dev/null 2>&1; then echo "既に作成済み" exit 0 fi エラー通知 失敗時にSlackに自動通知する仕組みをスクリプト末尾 に追加します。 if [ $EXIT_CODE -ne 0 ]; then curl -X POST \ "$SLACK_WEBHOOK_URL" \ -d "実行に失敗しました" fi
  19. 運用Tips と実践 CONFIDENTIAL © Offers All rights reserved. 18 実践:3ステップで完了

    Step 1 ▶ Claude Codeに依頼する 「毎朝8:00(月〜金)に未読メールを 確認して TODOを作成するルーティン処理を launchdで設定してください」 Step 2 ▶ 動作確認する 「今作成したルーティン処理を手動で 1回テスト実行してください。 ログも確認して問題がないか教えてく ださい」 Step 3 翌日の自動実行を確認 「昨日設定したルーティン処理が 自動実行されたか確認してください。 ログに問題があれば修正もお願いしま す」 全て Claude Code に依頼するだけ。自分でコードを書く必要はありません。
  20. 運用Tips と実践 CONFIDENTIAL © Offers All rights reserved. 19 実践課題

    1 自分の日常業務から、自動化したいルーティンを3つ選ぶ 2 Claude Code に「毎朝◦時に◦◦を自動実行する launchd の設定をしてください」と依頼する 3 Claude Code にテスト実行とログ確認を依頼する 4 翌日、自動実行されたことを確認する(Claude Code に確認を依頼してもOK) 5 2つ目以降のルーティンも順次 Claude Code に設定を依頼する 6 launchctl list | grep claude で稼働中のタスクを一覧確認する plistの作成もスクリプトの作成も、トラブルシュートも、すべてClaude Codeに依頼できます。
  21.     ── AI時代のエンジニア転職プラットフォーム AIにできないことが1つだけあります。それは「何がしたいか」という夢を持つこと。 人間ならではの好奇心や違和感こそが、未来で最も価値ある「問い」になる。 Offersは、個人の「問い」と企業の「問い」が響き合い、新しい価値を生み出す場所です。 求職者の方へ Offersは「今すぐ転職する人」だけのサービスではありません。AI 時代のキャリア相談、先端AI企業への転職、職務経歴の棚卸しやAI による強み分析も可能です。 offers.jp

    ─ まずは無料登録 Offers職務経歴 AIx人間ハイブリッドの職務経歴作成サービス 企業の方へ OffersはAI RPOサービスです。35,000人以上の登録ユーザーからAI が最適な候補者を発見し、心理フェーズに合わせたスカウトを自動 配信。採用戦略の設計は専任CSチームが伴走し、「再現性ある採 用」を実現します。 サービスを見てみる PR
  22. FIN