ChatRSS Interface Tree
The interface tree maps CLI commands to Python modules and reusable functions. The CLI should parse arguments and render output; core behavior should live in importable Python APIs.
Current CLI-to-Python mapping
chatrss
├── --tree / --tree-brief
│ └── chatstyle.add_tree_option() → registered chatrss.cli.main surface
├── init
│ └── chatrss.watcher.init_seen(repo, rsshub_url)
├── watch
│ ├── chatrss.watcher.poll_once(repo, rsshub_url, feeds)
│ └── chatrss.actions.process_items(...)
├── cat
│ └── chatrss.actions / local event-log reader
├── ps
│ └── chatrss.cli process-inspection helper
├── server
│ ├── chatrss.server.start(port)
│ ├── chatrss.server.stop()
│ ├── chatrss.server.restart()
│ ├── chatrss.server.status()
│ ├── chatrss.server.logs(tail)
│ ├── chatrss.server.get_url(port)
│ └── chatrss.server.is_running(port)
└── flow
└── demo
├── chatrss.pipeline.sample_multi_agent_event()
├── chatrss.pipeline.run_event_flow(event, ledger_path)
└── chatrss.pipeline.read_ledger(path)
New architecture modules
| Module | Responsibility |
|---|---|
chatrss.events |
TriggerEvent, EventSubject, EventActor, RouteDecision, ActionJob, and ActionResult schemas. |
chatrss.pipeline |
Event normalization, rule routing, model-router stub, action planning, dry-run execution, and JSONL ledger. |
chatrss.feed |
RSS/RSSHub feed parsing and FeedItem. |
chatrss.watcher |
Legacy GitHub/RSSHub watcher: poll, seen state, and feed orchestration. |
chatrss.actions |
Legacy notification, Feishu doc, and local event-log action logic. |
chatrss.server |
Local RSSHub Docker/docker-compose helper. |
chatrss.config |
ChatEnv-backed configuration definition. |
Target interface layering
connector.* # RSSHub / GitHub / Gitea / Zulip / Discourse / Revolt collection
normalizer.* # source-specific raw payload -> TriggerEvent
inbox.* # durable event inbox / cursor / dedupe
router.* # rule router + model router
planner.* # RouteDecision -> ActionJob
executor.* # ActionJob -> ActionResult; real adapters live here
ledger.* # audit/replay/query/failure state
Planned interfaces must have real behavior and tests before becoming CLI commands. Do not add empty commands for documentation blueprints.