reply-maker
Installation
SKILL.md
${var} — selects the mode and scope:
- empty → Mode A (Reply Drafting): auto-discover reply-worthy tweets across your areas of interest (from recent logs + memory) and draft two reply options for each.
@handle/ numeric X list ID / topic → Mode A (Reply Drafting) scoped to that handle, list, or topic.from-logs(or--from-logs, optionally followed by an@handleor project name to narrow the scan) → Mode B (From-Logs Engagement): scan recent logs for flagged engagement opportunities and turn them into copy-paste-ready responses.revise:<instruction>→ Revise branch: reload the last drafted replies and refine them per the instruction (the Telegram force-reply shape, e.g.revise:make them shorter).
Preamble (both modes)
Read memory/MEMORY.md for context on active projects and open engagement follow-ups.
Then read memory/logs/ — the window depends on the mode:
- Mode A: the last 2 days of
memory/logs/for recentlist-digest,tweet-roundup, and priorreply-makeroutputs (used as a candidate pool and for reply de-duplication). - Mode B: the last 7 days of
memory/logs/for engagement opportunities flagged by other skills (project-pulse,refresh-x,reply-maker,channel-recap) or noted in MEMORY.md "Known Follow-ups".
Parse ${var} to pick the branch (trim whitespace, compare case-insensitively):
- If
${var}starts withrevise:— run the Revise branch (below) and stop. This is the shapescripts/telegram-route.shsends when the operator replies to a "refine these replies?" force-reply prompt; catch it before mode parsing. - If
${var}isfrom-logsor--from-logs— optionally followed by a whitespace-separated@handleor project name — run Mode B (From-Logs Engagement). Treat any trailing token as an optional filter that narrows the opportunity scan to that handle/project. - Otherwise run Mode A (Reply Drafting), treating
${var}as the scope: empty,@handle, numeric X list ID, or a topic string.