mcpField
M
monitor

monitor

github.com/joelhooks生产力6536 次安装2 天前更新
代码仓库

关于 monitor

monitor 是管理 joelclaw 资源订阅、评估新发现来源是否值得持续跟踪的技能。它说明每小时检查变更、使用 LLM 生成摘要,以及发布前需审批的通知流程。

主要功能

  1. 01通过命令行管理监控订阅
  2. 02识别 RSS、GitHub、页面和 Bluesky 来源
  3. 03按小时检查订阅
  4. 04使用 LLM 总结变更
  5. 05发送带发布或忽略操作的通知

适用场景

  1. 01跟踪 GitHub 项目的发布和提交
  2. 02监控博客与持续更新页面
  3. 03审核变更摘要后再发布
  4. 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 / rssURL 以 /atom/、/feed/、/rss 结尾,或内容类型为 XML标准订阅源解析博客、新闻简报
githubgithub.com/<owner>/<repo>GitHub API(版本发布、提交)开源项目
page其他任何 URL通过 defuddle 对比内容哈希持续更新的文档、指南
blueskybsky.app 或 AT Protocol 句柄AT Protocol 订阅源社交媒体/微博客

自动检测启发式规则

添加订阅时,检测其类型:

  1. GitHub URL → github 类型,检查版本发布和重要提交
  2. 包含 /atom/ 或 /feed/ 的 URL → atom 类型
  3. 包含 /rss 的 URL → rss 类型
  4. 博客根 URL → 在回退到 page 前,尝试 {url}/atom/、{url}/feed/、{url}/rss.xml
  5. 其他所有 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