Agent skill

monitor

Manage feed subscriptions that track blogs, repos, and living pages for changes. Use when adding, listing, removing, or checking monitored resources. Also use when the discovery skill flags a resource as monitorable. Triggers on: 'monitor this', 'subscribe to', 'track this repo', 'watch this blog', 'what are we monitoring', 'check feeds', 'unsubscribe', 'stop monitoring', or any task involving feed subscriptions.

Stars 51
Forks 3

Install this agent skill to your Project

npx add-skill https://github.com/joelhooks/joelclaw/tree/main/skills/monitor

SKILL.md

Resource Monitor — Track What Matters

Manage the feed subscription system (ADR-0127). Inngest cron checks subscriptions hourly, detects changes, summarizes via LLM, and notifies Joel via gateway with approve/dismiss for /cool publishing.

Joel's Interest Profile

Use this to assess whether a discovered resource is worth monitoring. If a resource clearly maps to 2+ of these, recommend monitoring with a brief explanation.

  • Agentic AI — agent patterns, agent infrastructure, tool use, MCP, multi-agent systems
  • Developer education — course platforms, learning design, course-builder ecosystem
  • TypeScript tooling — Effect ecosystem, Bun, type-level programming, compiler work
  • Inngest / durable workflows — event-driven systems, step functions, background jobs
  • Personal AI systems — local-first AI, semantic memory, knowledge management, RAG
  • BEAM / Elixir / OTP — Erlang ecosystem, actor model, fault tolerance
  • Video infrastructure — Mux, transcription, media pipelines
  • Next.js / React — RSC, App Router, cache components, Vercel platform
  • CLI design — agent-first interfaces, HATEOAS, terminal UIs
  • Knowledge management — Obsidian, digital gardens, PKM, zettelkasten
  • Self-hosted infra — homelab, k8s, Tailscale, NAS, local services
  • AT Protocol / Bluesky — decentralized web, PDS, lexicons
  • Convex — real-time database, reactive backends

CLI Commands

bash
# 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

Direct Inngest Fallback (alternative)

bash
# 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"}'

Subscription Types

Type Detection Method Best For
atom / rss URL ends in /atom/, /feed/, /rss or has XML content-type Standard feed parse Blogs, newsletters
github github.com/<owner>/<repo> GitHub API (releases, commits) Open source projects
page Any other URL Content hash diff via defuddle Living documents, guides
bluesky bsky.app or AT Protocol handle AT Protocol feed Social/microblog

Auto-Detection Heuristics

When adding a subscription, detect the type:

  1. GitHub URLgithub type, check releases + significant commits
  2. URL with /atom/ or /feed/atom type
  3. URL with /rssrss type
  4. Blog root URL → try {url}/atom/, {url}/feed/, {url}/rss.xml before falling back to page
  5. Everything elsepage type (content hash diff)

How Updates Flow

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

Notification Format

Gateway notifications for feed updates include:

  • Source name and subscription type
  • Brief LLM summary of what changed
  • Entry count and links to significant items
  • Relevance tag (which interest areas it maps to)
  • Action buttons: [Publish to /cool] [Dismiss]

Adding from Discovery

When the discovery skill fires and the agent assesses the resource is monitorable, use MCQ to recommend:

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

Backend

  • Redis storage: joelclaw:subscriptions hash (lib at packages/system-bus/src/lib/subscriptions.ts)
  • Inngest functions: packages/system-bus/src/inngest/functions/subscriptions.ts
  • Feed checker: packages/system-bus/src/lib/feed-checker.ts
  • ADR: ~/Vault/docs/decisions/0127-feed-subscriptions-and-resource-monitoring.md

Expand your agent's capabilities with these related and highly-rated skills.

joelhooks/joelclaw

skill-review

Audit and maintain the joelclaw skill inventory. Use when checking skill health, fixing broken symlinks, finding stale skills, or running the skill garden. Triggers: 'skill audit', 'check skills', 'stale skills', 'skill health', 'skill garden', 'broken skill', 'skill review', 'fix skills', 'garden skills', or any task involving skill inventory maintenance.

51 3
Explore
joelhooks/joelclaw

cli-design

Design and build agent-first CLIs with HATEOAS JSON responses, context-protecting output, and self-documenting command trees. Use when creating new CLI tools, adding commands to existing CLIs (joelclaw, slog), or reviewing CLI design for agent-friendliness. Triggers on 'build a CLI', 'add a command', 'CLI design', 'agent-friendly output', or any task involving command-line tool creation.

51 3
Explore
joelhooks/joelclaw

daily-summary

Generate a daily system activity summary across all joelclaw subsystems. Triggers on 'daily summary', 'what happened today', 'system report', 'today's tally', 'activity summary', 'what did we do', 'daily report'.

51 3
Explore
joelhooks/joelclaw

inngest-durable-functions

Create and configure Inngest durable functions. Covers triggers (events, cron, invoke), step execution and memoization, idempotency, cancellation, error handling, retries, logging, and observability.

51 3
Explore
joelhooks/joelclaw

recall

Fan-out search across all memory sources when context is unclear or vaguely referenced. Triggers on: 'from earlier', 'remember when', 'what we discussed', 'that thing with', 'the conversation about', 'did we ever', 'what happened with', 'you mentioned', 'we talked about', 'earlier today', 'last session', 'the other day', or any vague reference to past context that needs resolution before the agent can act.

51 3
Explore
joelhooks/joelclaw

inngest-local

Set up self-hosted Inngest on macOS as a durable background task manager for AI agents. Interactive Q&A to match intent — from Docker one-liner to full k8s deployment with persistent state. Use when: 'set up inngest', 'background tasks', 'durable workflows', 'self-host inngest', 'event-driven functions', 'cron jobs', or any request for a local workflow engine.

51 3
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results