monitor について
monitorは、joelclawのリソース購読を管理し、新たに見つかった情報源を継続監視する価値があるか評価するスキルです。1時間ごとの変更確認、LLMによる要約、公開前の承認が必要な通知フローを説明します。
主な機能
- 01コマンドラインで監視購読を管理
- 02RSS、GitHub、ページ、Blueskyの情報源を判別
- 03購読を1時間ごとに確認
- 04LLMで変更内容を要約
- 05公開または却下操作付きの通知を送信
活用シーン
- 01GitHubプロジェクトのリリースやコミットの追跡
- 02ブログや更新されるページの監視
- 03変更要約を確認してから公開
- 04新たな情報源の継続監視適性を評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ joelhooks/ joelclaw --skill monitorインストール後、Claude Code で/monitorを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
リソースモニター — 重要な情報を追跡する
フィード購読システム(ADR-0127)を管理します。Inngest の cron が1時間ごとに購読をチェックし、変更を検出して LLM で要約し、承認/却下ボタンを付けてゲートウェイ経由で Joel に通知し、/cool への公開を促します。
Joel の関心分野
見つかったリソースをモニタリングする価値があるか評価する際に使用してください。リソースがこれらのうち2つ以上に明確に該当する場合は、簡単な説明を添えてモニタリングを推奨してください。
- エージェント型 AI — エージェントのパターン、エージェントのインフラ、ツールの使用、MCP、マルチエージェントシステム
- 開発者向け教育 — コースプラットフォーム、学習設計、コース作成エコシステム
- TypeScript ツール — Effect エコシステム、Bun、型レベルプログラミング、コンパイラー関連の取り組み
- Inngest/耐久性のあるワークフロー — イベント駆動型システム、ステップ関数、バックグラウンドジョブ
- パーソナル AI システム — ローカルファースト AI、セマンティックメモリ、ナレッジマネジメント、RAG
- BEAM/Elixir/OTP — Erlang エコシステム、アクターモデル、フォールトトレランス
- 動画インフラ — Mux、文字起こし、メディアパイプライン
- Next.js/React — RSC、App Router、キャッシュコンポーネント、Vercel プラットフォーム
- CLI 設計 — エージェントファーストなインターフェース、HATEOAS、ターミナル UI
- ナレッジマネジメント — Obsidian、デジタルガーデン、PKM、ツェッテルカステン
- セルフホスト可能なインフラ — ホームラボ、k8s、Tailscale、NAS、ローカルサービス
- AT Protocol/Bluesky — 分散型ウェブ、PDS、レキシコン
- Convex — リアルタイムデータベース、リアクティブバックエンド
CLI コマンド
# List all monitored subscriptions
joelclaw subscribe list
# Add a subscription (auto-detects type from URL)
joelclaw subscribe add <url> --name "Simon Willison" --interval hourly
joelclaw subscribe add <url> --name "json-render" --type github --interval daily
# Remove a subscription
joelclaw subscribe remove <id>
# Force-check a specific subscription now
joelclaw subscribe check --id <id>
# Force-check all subscriptions
joelclaw subscribe check
# Show recent updates across all subscriptions
joelclaw subscribe summary
Inngest の直接実行によるフォールバック(代替手段)
# Add subscription via event
joelclaw send subscription/add -d '{
"id": "simon-willison-blog",
"name": "Simon Willison",
"feedUrl": "https://simonwillison.net/atom/everything/",
"type": "atom",
"checkInterval": "hourly",
"notify": true,
"summarize": true,
"publishToCool": false,
"active": true
}'
# Force check all
joelclaw send subscription/check-feeds
# Check single
joelclaw send subscription/check-single -d '{"subscriptionId": "simon-willison-blog"}'
購読タイプ
| タイプ | 検出方法 | 方法 | 最適な対象 |
|---|---|---|---|
atom / rss | URL が /atom/、/feed/、/rss で終わるか、XML の content-type がある | 標準フィード解析 | ブログ、ニュースレター |
github | github.com/<owner>/<repo> | GitHub API(リリース、コミット) | オープンソースプロジェクト |
page | その他の URL | defuddle によるコンテンツハッシュの差分検出 | 更新され続けるドキュメント、ガイド |
bluesky | bsky.app または AT Protocol のハンドル | AT Protocol フィード | ソーシャルメディア/マイクロブログ |
自動検出のヒューリスティクス
購読を追加するときに、タイプを検出します。
- GitHub URL →
githubタイプ。リリースと重要なコミットを確認します /atom/または/feed/を含む URL →atomタイプ/rssを含む URL →rssタイプ- ブログのルート URL →
pageにフォールバックする前に、{url}/atom/、{url}/feed/、{url}/rss.xmlを試します - その他すべて →
pageタイプ(コンテンツハッシュの差分検出)
更新の流れ
Inngest cron (hourly) → subscription/check-feeds
→ fans out: subscription/check-single per subscription
→ fetch feed / API / page hash
→ new entries detected?
→ YES: subscription/summarize → LLM summary
→ gateway notification with [Publish to /cool] [Dismiss]
→ Joel approves → discovery/noted → vault note → /cool
→ NO: log quiet check, move on
通知の形式
フィードの更新に関するゲートウェイ通知には、次の内容が含まれます。
- ソース名と購読タイプ
- 変更内容の簡潔な LLM 要約
- エントリ数と重要な項目へのリンク
- 関連性タグ(該当する関心分野)
- アクションボタン:[Publish to /cool] [Dismiss]
発見したリソースの追加
発見スキルが実行され、エージェントがそのリソースはモニタリング可能だと判断した場合、MCQ を使って推奨します。
After firing joelclaw discover:
1. Assess: Is this a blog, repo, or living page with ongoing updates?
2. Assess: Does it map to 2+ items in Joel's Interest Profile above?
3. If both yes → recommend monitoring via MCQ with brief reasoning
4. If monitorable but low relevance → mention it's monitorable but don't push
5. If not monitorable (one-shot article, tweet, etc.) → don't mention monitoring
バックエンド
- Redis ストレージ:
joelclaw:subscriptionsハッシュ(ライブラリはpackages/system-bus/src/lib/subscriptions.ts) - Inngest 関数:
packages/system-bus/src/inngest/functions/subscriptions.ts - フィードチェッカー:
packages/system-bus/src/lib/feed-checker.ts - ADR:
~/Vault/docs/decisions/0127-feed-subscriptions-and-resource-monitoring.md
コメント
Markdown 対応