TheSkillz

X Reply Engine

Find the posts where a reply gets seen, draft it, log what went out

TheSkillz Team TheSkillz Team No reviews yet3 installsv1.0.0
Scan passed · 100/100Human reviewedOfficial · TheSkillz
☆ Star 0

Runs the daily reply loop for a solo builder's X account: ranks a target List feed by real reach (views, reply count, age), keeps only the posts where a reply is actually visible, drafts substantive replies for you to approve, and logs every send with its reach. Ships a target-list playbook, browser automation scripts and a state ledger. It drafts; the human approves and sends, which is what keeps the account on the right side of X's automation rules.

SKILL.md

X Reply Engine

Find the handful of posts today where a reply will actually be seen, draft replies worth reading, and hand them to the human to send. Reach on a small account is borrowed from other people's posts; this skill spends that budget where it counts and keeps the account on the right side of X's automation rules.

When to use

Use it when the user asks to:

  • do today's replies / find posts to engage with on X
  • grow reach, followers, or connections for a solo-builder or indie-dev account
  • build or extend a target List of accounts to engage with
  • warm up a new or pseudonymous X account

Do not use it for:

  • paid promotion or ads
  • any platform other than X
  • accounts the user does not own or operate
  • auto-replying, auto-liking, or mass-following — the skill drafts; the human sends. X suspends accounts for automated engagement and the goal is real conversations, so this is not a shortcut to be argued around.

Requirements: a browser automation tool (for example Claude in Chrome) with a browser profile already signed in to the account. The skill never handles passwords or credentials. The only network host involved is x.com, which the browser tool loads to read the feed and post approved replies.

Procedure

1. Load state

Read the ledger; create it from the template if missing.

test -f state.md || cp templates/state.md state.md
cat state.md

The ledger holds the handle, the List id, the three target lanes, the account age, and the log of what was already sent. Trust it over any memory of a prior run.

Get the browser tab context and confirm the signed-in handle in the X sidebar matches state.md. Stop if it does not.

2. Build or top up the List (first run, or when under 60 members)

Read references/target-list.md for the three lanes and search queries. X's people search matches names only, so find accounts through their posts:

navigate  https://x.com/search?q=<quoted phrases> -crypto -airdrop -token&f=top
wait      4s
run       scripts/collect_authors.js      (browser JavaScript tool)

Present candidates grouped by lane. Add only what the user approves:

navigate  https://x.com/i/lists/<list_id>/members   → "Add members"
run       scripts/add_to_list.js          (≤ 8 handles per run; set HANDLES)

Record new members in state.md with their lane.

3. Rank today's feed

navigate  https://x.com/i/lists/<list_id>
wait      4s
run       scripts/rank_feed.js

The script returns every post with views, replies, likes, age, and URL, sorted by views. Apply references/reply-selection.md: keep posts with roughly 3k–100k views, under ~60 replies, under 12 hours old, from someone in a lane, and where a specific point can be made. Drop everything else — a reply under a 40-view post reaches nobody; a reply under a 2M-view post drowns.

4. Draft

For the top 8–10, write one reply each following the form rules in references/reply-selection.md: substance first, 1–3 sentences, under ~240 characters, no hashtags, no links, no product mention unless the post asked what people are building or the product solves the stated problem. Never invent experience, numbers, or shipped work for the user's voice; mark any claim that needs the user's confirmation.

Present the batch in the output format below and stop. Wait for the user to approve, edit, or kill each one.

5. Send approved replies (only after explicit approval in this session)

For each approved reply, follow references/browser-playbook.md exactly:

navigate  https://x.com/<author>/status/<id>
wait      5s
click     reply composer      (find "Post your reply")
click     reply composer again   ← the second click is required
type      <reply text>
run       VERIFY snippet from scripts/reply_helpers.js   (length must match)
run       SUBMIT snippet
wait      3s
run       DISMISS + CONFIRM snippet   (must report ≥ 1 post by the handle)

If VERIFY returns 0 or 1, the composer did not focus: click twice again and retype. If CONFIRM reports 0 after submitting, reload and check before ever re-sending. Space sends at least a minute apart; never send more than ten in a day.

6. Follows and log

Suggest 3–5 follows: anyone who replied to the user since the last run, then List members not yet followed. Follow only with approval:

navigate  https://x.com/<handle>
wait      3s
run       FOLLOW snippet from scripts/reply_helpers.js

Append one line per action to the ## Log section of state.md (date, post URL, reach at send time, one-line gist). Append the run summary to the ## Runs section.

7. Stop conditions

  • The browser tool hangs or times out twice → stop, report, suggest restarting the extension. Treat anything mid-flight as not done.
  • X shows a verification or "unusual activity" prompt → stop and hand the browser to the user.
  • The account is under two weeks old ("graduated access" dialogs after posting) → cap at 5–8 replies for the day and do not attempt to speed anything up.

Checklist

  • state.md was read before any browser action, and the signed-in handle matches it
  • Every candidate shown to the user carries its view count, reply count, and age
  • No candidate under ~1k views was proposed unless flagged as a deliberate relationship reply
  • Every draft is under 240 characters, contains no hashtag or URL, and makes a specific point
  • No draft asserts experience, numbers, or shipped work the user has not stated
  • Nothing was sent without the user's approval of that specific reply in this session
  • Each sent reply passed the VERIFY step before submit and the CONFIRM step after
  • At most ten replies and five follows were sent today, spaced out
  • Every sent reply and follow is logged in state.md with URL and reach
  • The report separates "sent" from "drafted, awaiting approval" and from "failed"

Output format

Fill templates/daily-report.md. Candidates first (so the user sees reach before the draft), then what was sent, then follows, then problems.

# X reply run — 2026-01-14

## Candidates (approve / edit / kill)
1. @author_a — 46.7k views · 24 replies · 8h — "Stopped describing my brand to the agent…"
   Draft: The reference-file trick generalizes way past design. Anything you'd explain to a new hire on day one belongs in a file the agent reads first.
2. @author_b — 6.6k views · 19 replies · 3h — "Had to write the same prompt 40 times…"
   Draft: The "why it works" part is the underrated bit. Copying a prompt gets you one session; understanding why gets you a file you never rewrite.
   ⚠ needs fact-check: none

## Sent
- https://x.com/author_a/status/… (46.7k views at send)

## Follows
- @author_b (peer) — followed

## Skipped (and why)
- @big_account — 2.1M views, 546 replies: reply would be invisible
- @small_account — 37 views: nobody would see it

## Problems
- none

Reviews

Sign in to leave a review.

  • Be the first to review this skill.

More in marketing