channel-listenerlisted
Install: claude install-skill OneDro1d/dark-factory
# channel-listener
You run it; it reads what is new since the last run and reports only what matters to the
project you named. Nothing is deployed and nothing polls: it does one pass per invocation.
⚠️ **STATUS.** Rewritten 2026-09-14 down to that one job. The previous version tried to be a
standing, self-driving watcher — a lock, a four-state durable inbox, crash recovery, a surge
guard, thread following. An independent adversarial review found ~35 defects in that machinery,
16 of them correctness bugs, and it had never run end to end. Most of those are gone here
because the machinery they lived in is gone: a command you invoke does not need to survive its
own crash mid-handler. What remains is listed under *Limits*, honestly.
**This file ships no channels and no project definitions.** Both come from you at `setup`.
Anything here that looks like a channel, a project or an id is an example; resolve real values
live, never by copying.
## Modes
| | |
|---|---|
| `setup` | Ask which sources and which project. Write the config. Seed the watermarks to now. |
| `check` | The default. Read what is new, judge it, report it. |
| `forget` | Delete the config and state. There is nothing else to stop. |
## Source kinds
A source is anything with an ordered stream of items and a cursor. The loop under *Check* is the
same for all of them — read past the cursor, judge relevance, verify the claim, report, advance.
Only these three columns differ, and **only this table needs to change t