poll-slacklisted
Install: claude install-skill tomharris/engineer-agent
# Poll Slack for Questions
Check configured Slack channels for messages matching keywords that may need a response. Iterates over all projects that have Slack configured.
## Tools Needed
- `Bash` — run the [Spy](https://github.com/tomharris/spy) Slack CLI:
- `spy read <channel> <count> --json -w <workspace>` — read recent messages in a channel
- `spy thread <channel> <ts> --json -w <workspace>` — read thread context
- `Read` — read config and state
- `Write` — create queue items
- `Glob` — check for existing queue items
## Steps
### 1. Load Config
Read `~/.local/share/engineer-agent/engineer.yaml`. Extract the `projects` map and the optional
`agent.slack` block.
Resolve the Spy invocation settings:
- **Binary:** `agent.slack.bin` if set, otherwise `spy` (assumed on `PATH`).
- **Workspace** (resolved per project below): `projects.<slug>.slack.workspace` if set,
otherwise `agent.slack.workspace`. Pass it as `-w <workspace>` on every `spy` call. If
neither is set, omit `-w` and rely on Spy's own default — but note `spy` errors when
multiple workspaces are signed in and no default is set.
### 2. Load Dedup State
Read `~/.local/share/engineer-agent/state/last-poll.yaml`. This contains per-project state under `projects.<slug>`.
### 3. Iterate Over Projects
For each project slug in the `projects` config map that has a `slack` section configured:
Extract `projects.<slug>.slack.channels`, `projects.<slug>.slack.keywords`, and `projects.<slug>.slack.ignore_bots`.