はじめに
GitHubリポジトリにソースコードは1行もありません。あるのは CLAUDE.md という「自然言語の指示書」が1ファイルだけ。
たったこれだけで、「6時間ごとにNotionの未要約メモを検出し、内容を読んで300字以内で要約を書き込む」 という定期バッチ処理がAnthropicのクラウド上で動き続けています。
notion-summary-task/
└── CLAUDE.md ← これだけ(自然言語の指示が書かれている)
今回使ったのは、2026年2月にリリースされた Cloud Scheduled Tasks という機能です(Pro/Max/Team/Enterpriseで利用可能)。
本来はリポジトリのコードに対して「依存関係をアップデートする」「テストを回す」といった開発ワークフローを定期実行するための機能です。しかし、コードを一切置かず、CLAUDE.mdという指示書だけのリポジトリでMCPコネクタ経由の外部サービス操作に特化させることで、DifyやMakeのようなノーコード自動化基盤として活用できます。これが今回の「ハック」です。
この記事では、Notionの自動要約を例に、この構成の作り方を紹介します。
背景
僕は生活や技術のメモをすべてNotionのInboxに投げており、「溜まったメモをAIに定期的に要約してほしい」と思っていました。
これを実現する手段としてNotion AI(Businessプラン月$20/member)は非常に優秀です。メモを書いた瞬間にリアルタイムで要約が生成され、ユーザーの操作は一切不要。正直、この体験を手放すのは怖かったです。
しかし、僕はすでにClaude Maxに課金しています。「すでに優秀なLLMに課金しているのに、同じような機能のために別のAIオプションや自動化SaaSに二重で課金するのは悔しい」 という思いがありました。
そこで、「Claudeのサブスクに含まれている機能を活用して、追加コストゼロで完全自動化の仕組みを作れないか?」と考えたのが今回のスタートです。
AI自動化アーキテクチャの比較
定期的なAI処理(今回の例ならNotion要約)を構築するためのアーキテクチャを比較します。
| アーキテクチャ | 構築の手軽さ | 運用・メンテ | 追加コスト | 柔軟性 |
|---|---|---|---|---|
| 特定SaaSのAI機能(例: Notion AI) | ◎ 設定のみ | ◎ 不要 | △ 月$20など | × そのSaaS内限定 |
| ノーコード自動化ツール(Dify / Make / n8n等)※1 | ○ GUIベース | ○ 比較的楽 | △ 無料〜月$20+API代 | ◎ 高い |
| 自作スクリプト(GAS / Actions) | △ コード開発 | △ API変更時にコード修正 | ◎ ほぼAPI代のみ | ◎ 高い |
| Cloud Scheduled Tasks(今回の構成) | ○ 自然言語 | ○ プロンプト修正 ※2 | ◎ Pro/Max内包(追加$0)※3 | ○ Connectors対応サービス |
※1 Difyやn8nはセルフホストなら無料。Makeは月$9〜、クラウド版n8nは月€24〜。
※2 MCPコネクタ側の更新で多くの変更は吸収されますが、Notion DB側のスキーマ変更やコネクタ自体の不具合時はプロンプトやCLAUDE.mdの修正が必要になる場合があります。
※3 Cloud Scheduled TasksはPro、Max、Team、Enterpriseの全プランで利用可能です。ただしProプランは使用量の上限がMaxより低いため、高頻度の実行にはMaxの方が適しています。筆者はMaxプラン契約者です。
なぜ「空のリポジトリ」なのか?
Cloud Scheduled TasksはGitHubリポジトリと紐付けて動きます。実行のたびにリポジトリをクローンし、その中のコードに対して処理を行うのが本来の使い方です。
しかし、claude.aiのWeb版には Connectors と呼ばれるリモートMCP統合機能が組み込まれています。Notion、Slack、Linearなどの外部サービスとOAuth認証で接続でき、Cloud Scheduled Tasksからもそのまま利用できます(対応サービス一覧)。
つまり、「リポジトリ内のコードに対する処理」を一切させず、「Connectors経由で外部サービスのデータを処理させる」ことだけに特化させれば、実質的にノーコード自動化基盤として機能するわけです。
これが、コードゼロ・CLAUDE.mdのみのリポジトリを用意した理由です。自分でAPIクライアントを書かないため、Notion APIの仕様変更があっても自分がコードを直す必要はありません。Connectors側のアップデートで対応されるケースが多いです(ただしSLAが保証されているわけではないので、Connectors自体に不具合が出る可能性はゼロではありません)。
なお、クローンされたリポジトリ内の CLAUDE.md は、Claude Codeのセッション開始時に自動的にコンテキストとして読み込まれます。これはClaude Codeの標準動作で、Cloud Scheduled Tasksでも同様です。だからこそ、プロンプトを1行にして詳細はすべて CLAUDE.md に書くという構成が成り立ちます。
セットアップ手順(Notion自動要約の例)
1. リポジトリを用意する
設定ファイル置き場としてのリポジトリを作ります。必要なのは CLAUDE.md 1ファイルだけです。
2. CLAUDE.mdを書く
タスクの実行コンテキストとして、Notion DBの情報と要約ルールを自然言語で書きます。ノーコード自動化ツールでいうところのワークフロー設定にあたります。
# Notion 要約タスク
## 概要
Notion Inbox DBの「要約」カラムが空のレコードを検出し、
コンテンツを読み取って300字以内の日本語で要約を生成・書き込む。
## Notion DB 情報
- DB ID: `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`
- ビューURL: `view://xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`
## プロパティ
| プロパティ | 型 | 説明 |
|-----------|------|------|
| 名前 | title | ページタイトル |
| 日付 | created_time | 作成日 |
| 要約 | text | 要約テキスト(ここに書き込む) |
## 要約ルール
- 日本語で300字以内
- ページの本文を読み取って要約する
- 要約カラムが空のレコードのみ対象(既存のものはスキップ)
DB IDとビューURLの取得方法
-
DB ID: Notionでデータベースをブラウザで開き、URLの
notion.so/直後の32文字がDB IDです(例:https://notion.so/2b93611beab880fc8a4cfdb981797149)。 -
ビューURL: データベースのビューを切り替えたときのURLパラメータ
?v=以降がビューIDです。CLAUDE.mdにはview://プレフィックスをつけた形式(view://xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)で記載します。これはNotion MCPがビューを指定するための記法です。ビューを使わずDB全体を対象にする場合はDB IDだけで構いません。
3. GitHubにpushする
git init
git add CLAUDE.md
git commit -m "initial commit"
git remote add origin https://github.com/yourname/notion-summary-task.git
git push -u origin main
4. スケジュールタスクを作成する
claude.ai/code/scheduled のWeb UIから「新しいスケジュールタスク」を作成します。
設定内容は以下の通りです。
| 項目 | 設定値 |
|---|---|
| プロンプト | CLAUDE.mdを参照し、Notion DBの要約カラムが空のレコードを検出して本文を読み取り、要約を書き込め。 |
| モデル | Opus 4.6(300字要約程度ならSonnet 4.6でも十分。本文が長いページが多い場合はOpusが安定) |
| リポジトリ | yourname/notion-summary-task |
| スケジュール | カスタムcron 0 */6 * * *(6時間ごと)。UIのプリセットは毎時/毎日/平日/毎週。カスタム間隔はドロップダウンから「カスタムcron」を選択してcron式を入力。最小間隔は1時間。 |
| コネクタ | Notionを追加(OAuth認可) |
プロンプトが1行で済むのは、詳細をすべて CLAUDE.md に書いているからです。条件を変えたい時は CLAUDE.md を更新してpushするだけで、次回実行から反映されます。
5. Notionコネクタの接続
コネクタの「Notion」を追加すると、OAuthの認可フローが走ります。認可画面ではページピッカーが表示され、アクセスを許可するページ・データベースを個別に選択できます(Notion公式: Authorization)。ワークスペース全体ではなく、対象のDBだけにアクセスを絞ることが可能です。
動作結果
スケジュール通りにクラウドで実行され、要約カラムが空だったレコードに要約が書き込まれます。PCを閉じていても、寝ていても確実に動きます。
以下は、筆者のQiitaマイページをNotionにWebクリップしたレコードが自動要約されるデモです。
実行の過程はタスク詳細ページからセッションログとして確認できます。Claudeが何をしたか(どのレコードを読み、どんな要約を書いたか)を後から追跡できるので、結果が想定と違った場合のデバッグにも使えます。
応用アイデア:他に何をさせるか?
今回はNotionの自動要約を例にしましたが、claude.aiのConnectorsが対応しているサービスであれば同じ手法が使えます。以下のような「普段ならDifyやMakeでワークフローを組んだり、専用スクリプトを書いたりする処理」も、自然言語の指示書を置くだけで定期実行できます。
- Slackのデイリー要約: 毎日18時に特定チャンネルを読み取り、重要な決定事項だけを箇条書きにして別のチャンネルに投稿する
- GitHub Issueの自動トリアージ: 毎日、未分類のIssueをチェックし、内容を読んで適切なラベル(bug, enhancement など)を自動で付与する
- Linearのタスク整理: 放置されている古いタスクを検出し、担当者に状況確認のコメントを自動で残す
ロジックの構築(条件分岐やデータ抽出)をすべてLLMに委ねられるため、GUIでフィルターやパスを組むよりもシンプルです。
まとめ
本質は 「Cloud Scheduled Tasksを、自然言語で定義するノーコード自動化基盤として使える」 ということです。
- コードを書かない: ロジックも条件分岐も自然言語(CLAUDE.md)で定義
- 自分でメンテするコードがない: 外部APIの仕様変更はConnectors側のアップデートで対応されることが多い
- 追加課金なし: Pro/Maxプランの範囲内で完結する(筆者はMaxプラン)
「スクリプトを書いてcronで回す」時代から、「空のリポジトリに指示書だけ置いてAIに定期実行させる」時代へ。Claudeに課金している方は、ぜひ手元の定型作業をこの方法で自動化してみてください。


