关于 monitor
monitor 是管理 joelclaw 资源订阅、评估新发现来源是否值得持续跟踪的技能。它说明每小时检查变更、使用 LLM 生成摘要,以及发布前需审批的通知流程。
主要功能
- 01通过命令行管理监控订阅
- 02识别 RSS、GitHub、页面和 Bluesky 来源
- 03按小时检查订阅
- 04使用 LLM 总结变更
- 05发送带发布或忽略操作的通知
适用场景
- 01跟踪 GitHub 项目的发布和提交
- 02监控博客与持续更新页面
- 03审核变更摘要后再发布
- 04评估新发现来源是否适合持续监控
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ joelhooks/ joelclaw --skill monitor安装后在 Claude Code 中输入/monitor确认已加载。
附带文件agents/openai.yaml
详细介绍
资源监控 — 追踪重要内容
管理订阅源系统(ADR-0127)。Inngest cron 每小时检查订阅、检测变化、通过 LLM 生成摘要,并通过网关通知 Joel,供其批准或驳回是否发布到 /cool。
Joel 的兴趣档案
用此档案评估发现的资源是否值得监控。如果某项资源明显符合其中 2 项或更多,建议监控并简要说明理由。
- Agentic AI — Agent 模式、Agent 基础设施、工具使用、MCP、多 Agent 系统
- 开发者教育 — 课程平台、学习设计、课程构建器生态
- TypeScript 工具链 — Effect 生态、Bun、类型级编程、编译器相关工作
- Inngest / 持久化工作流 — 事件驱动系统、步骤函数、后台任务
- 个人 AI 系统 — 本地优先 AI、语义记忆、知识管理、RAG
- BEAM / Elixir / OTP — Erlang 生态、Actor 模型、容错
- 视频基础设施 — Mux、转录、媒体管道
- Next.js / React — RSC、App Router、缓存组件、Vercel 平台
- CLI 设计 — Agent 优先的界面、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 | 标准订阅源解析 | 博客、新闻简报 |
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 - 其他所有 URL →
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 生成的简要摘要,说明发生了哪些变化
- 条目数量及重要条目的链接
- 相关性标签(对应的兴趣领域)
- 操作按钮:[发布到 /cool] [驳回]
从发现结果添加
当发现技能触发,且 Agent 评估认为该资源适合监控时,使用 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