Skip to content

ChatRSS Capability Map

The capability map answers what ChatRSS owns and what it does not own. Invocation details are in the CLI tree; Python mappings are in the interface tree.

Current capability surface

Capability Current status Current entry point Minor-version target
RSSHub/GitHub feed connector Implemented through the legacy watcher path chatrss init / chatrss watch Move under trigger add/test/run
Event Schema TriggerEvent / ActionJob / RouteDecision implemented chatrss.events Every connector emits this envelope
Rule Router Minimal rules implemented chatrss.pipeline.route_event Configurable YAML/JSON rules before model routing
Model Router Deterministic stub implemented chatrss.pipeline.model_route_event LLM JSON decision with schema validation and explanations
Action Planner Dry-run planning implemented; real platform cases record zulip.message.reply, discourse.post.reply, and mattermost.thread_reply actions chatrss.pipeline.plan_actions / real-world cases Action outbox with idempotency keys
Action Executor Package executor is dry-run; host-side practices verified Zulip, Discourse, and Mattermost action-bot replies chatrss.pipeline.execute_action / real-world cases Feishu/GitHub/Gitea/Zulip/Mattermost/agent adapters
Ledger JSONL flow ledger implemented append_ledger / read_ledger SQLite/Postgres inbox/outbox/ledger with replay and audit
Real community trigger Zulip @mention, Discourse topic/post, and Mattermost @bot -> action-bot reply verified real-world cases / Mattermost platform case Zulip/Discourse/Mattermost/Revolt connectors

Responsibility boundaries

  • Trigger Connector

Reads RSS, RSSHub, webhooks, notification APIs, or community message APIs and emits standard Events only.

  • Router / Model

Rules reduce noise first; models decide intent, priority, required context, and action type.

  • Action / Ledger

The planner emits jobs; the executor runs adapters; the ledger provides audit, idempotency, and recovery.

Explicit non-goals

  • ChatRSS does not turn RSSHub into a workflow engine; RSSHub is a trigger stream provider.
  • Trigger connectors do not directly send messages, comment, merge, publish, or edit configuration.
  • Planned commands are not successful placeholder CLI commands.
  • Ledgers, reports, README files, and docs must not contain tokens, passwords, or API keys.
  • External writes are not executed by default; they must pass through dry-run/draft/approval stages and are executed only in explicitly authorized cases with verification.

Platform extension priority

Source Preferred entry First action
GitHub project progress RSSHub routes / comments / issue / PR notify + agent.run + comment draft
Gitea collaboration events notifications API / issue / PR comments agent.run + gitea.comment.draft
Zulip community messages messages/events API + mention flag agent.run + zulip.message.reply (draft/approval by default, executable when authorized)
Discourse forum notifications/topics/posts API / posts watcher agent.run + discourse.post.reply (draft/approval by default, executable when authorized)
Mattermost realtime rooms Hermes Mattermost gateway / WebSocket / outgoing webhook; ChatRSS connector optional Prefer direct thread reply; enter TriggerEvent + ledger when unified audit is needed
Revolt channels bot token + gateway or REST polling agent.run + revolt.message.draft