---
name: x-research
description: "Read the watchlist of X accounts once for the hours since the last run and pick the posts worth a look. Use for the scheduled X digest."
version: 0.1.0
author: quotum.org/setup
license: MIT
platforms: [macos, linux]
metadata:
  hermes:
    tags: [X, Twitter, research, digest]
    related_skills: [memory-index]
prerequisites:
  commands: [node]
---

# x-research

## the reader

One command reads every account on the watchlist (`~/.hermes/profiles/x-digest/watchlist.json`, one entry per account: handle, lane, why) through twitterapi.io, one request per account. Run it exactly once per digest (the counts section below shows the same command with `tee`; that one call is the run):

```bash
node ~/.hermes/profiles/x-digest/skills/x-research/scripts/xwatch.mjs --hours <N>
```

`<N>` is the hours since the last run, given in the task prompt (decimals are fine). If the prompt gives none, use 24. Do not add other flags, and do not run it a second time: each run costs API credits. It takes up to a few minutes; let it finish.

## what it prints

Only accounts with posts in the window appear:

```
@handle · lane · why it is on the list
  10-02 05:41 utc · 12034v 210l 18r · post text, cut at 220 characters
    https://x.com/handle/status/1234567890
```

`v` views, `l` likes, `r` replies. Replies to others are included.

When the API fails the reader says so after the posts, in a line that starts with `reader errors:` (some accounts were not read) or `reader failed:` (nothing was read, exit code 2). Put that line in the digest as it is. After `reader failed` the window is unknown, not quiet: never write "nothing posted" then.

## picking what is worth a look

Pick 3 to 6 posts, fewer if the window was quiet. Prefer, in order:

1. a concrete fact: a number, a launch, a shipped feature, a price, a date
2. a change in what an account usually says, or two accounts on the same thing
3. unusual reach for that account (views or replies well above its other posts in the output)

Skip greetings, one-word replies, giveaways and pure engagement bait. One line of why for each pick, in your own words, grounded in the post text. Never paraphrase beyond what the 220 characters say; if the text is cut, say what it is about, not how it ends.

## counts

Do not count by eye. Save the reader's output while you read it, then count with grep:

```bash
node ~/.hermes/profiles/x-digest/skills/x-research/scripts/xwatch.mjs --hours <N> | tee xwatch-last.txt
grep -c '^@' xwatch-last.txt                  # accounts with posts in the window
grep -c '^ *https://x.com/' xwatch-last.txt   # posts
```

The digest states these two numbers exactly as grep printed them.
