Agent skill

Reply Engine

by shawnla90 in shawnla90/gtm-coding-agent

Batch-draft one suggested Reddit reply template per classified opportunity, hard-gated.

MITAuto-check passed

Install Reply Engine

skills CLI
$ npx skills add shawnla90/gtm-coding-agent --skill reply-engine -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install shawnla90/gtm-coding-agent reply-engine --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/shawnla90/gtm-coding-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/reply-engine .claude/skills/reply-engine && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
reply-engine
GitHub stars
154
Token cost
~1.8k tokens
SKILL.md length
728 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Batch-draft one suggested Reddit reply template per classified opportunity, hard-gated.

  • Works in 8 steps: Answer the actual ask. One or two… → Concrete nouns from the buyer's world.… → Zero product mentions by default. Across… → …
  • The user types /reply-engine
  • SKILL.md covers Inputs, How to run, The 18-word cap (binding) and Reply gates, plus 5 more sections
  • Calls python3

What it does

Reply Engine is an agent skill from shawnla90/gtm-coding-agent. Batch-draft one suggested Reddit reply template per classified opportunity, hard-gated. Wraps the reddit-buyer-signals starter's replies.py — scaffold builds suggestedreplies.json from the classified ops, the agent writes each ≤18-word value-first template, check enforces the word cap and the slop gate, sheet renders a rules-pinned Suggested Replies tab with GO/REVIEW/NO-REPLY on every row, and angles feeds the daily digest. Every reply is a draft the human edits before posting; NO-REPLY rows are logged, never…

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Reddit. The repository describes itself as: Build your go-to-market engine with coding agents instead of a $2K/mo tool stack. 21 chapters, nine forkable starters, four installable skills, GTM-OS skeleton, and Python… The licence is MIT.

When your agent uses it

  • The user types /reply-engine
  • Says draft the suggested replies
  • Run the reply pass
  • Build the reply sheet

Example prompts

  • “/reply-engine”
  • “draft the suggested replies”
  • “run the reply pass”
  • “/reply-engine”

Requirements

  • Python 3

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Answer the actual ask. One or two clipped sentences; the first responds to their literal question.
  2. Concrete nouns from the buyer's world. Their tools, their workflows, their numbers, never category abstractions.
  3. Zero product mentions by default. Across a whole batch, a mention is the rare exception, and naming the product triggers the disclosure…
  4. End with a question back or a first step they can take today.
  5. Numbers stated plainly. "Free tier plus two hours of setup beats a paid seat nobody opens." No hedging.
  6. Match the thread's language and register. A Spanish thread gets a Spanish reply.
  7. No links, no DMs, no CTAs, no emojis, no "great question".
  8. If it can't fit in 18 words, it's two thoughts. Cut one.

What it can do on your machine

Read from SKILL.md and the folder at commit 072c185. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Reply Engine loads about 1.8k tokens when it runs. Until then it costs about 166 tokens; SKILL.md has 728 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~166
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from shawnla90/gtm-coding-agent at commit 072c185, republished under its MIT licence (© shawnla90). 728 words, ~1,812 tokens.

Download SKILL.mdSave it as .claude/skills/reply-engine/SKILL.md (or your agent's skills folder).
name
reply-engine
description
Batch-draft one suggested Reddit reply template per classified opportunity, hard-gated. Wraps the reddit-buyer-signals starter's replies.py — scaffold builds suggested_replies.json from the classified ops, the agent writes each ≤18-word value-first template, check enforces the word cap and the slop gate, sheet renders a rules-pinned Suggested Replies tab with GO/REVIEW/NO-REPLY on every row, and angles feeds the daily digest. Every reply is a draft the human edits before posting; NO-REPLY rows are logged, never answered. Use when the user types "/reply-engine" or says "draft the suggested replies", "run the reply pass", "build the reply sheet".
version
1.0.0

reply-engine

One gated, ≤18-word reply template per opportunity, and a recorded reason for every thread you skip.

This is the batch pass. ../reddit-engage/ is the interactive mode: full 2–5 sentence comments, approved one by one. This skill runs earlier and wider: every classified op gets either a short template the human edits into a real comment, or a NO-REPLY gate with a note. The skip discipline is half the value. Wraps replies.py in the reddit-buyer-signals starter: the script scaffolds and checks; the agent writes the words.

Inputs

  • data/ops_classified.json — classified opportunities (op_id, lane, subreddit, summary, permalink)
  • Optional: a client sheet id (or data/sheet_url.txt) for the Suggested Replies tab
  • The client's offer context and voice profile, same as every other drafting surface

How to run

bash
cd starters/reddit-buyer-signals
python3 replies.py scaffold --ops data/ops_classified.json --out data/suggested_replies.json
# the agent writes every empty reply slot, then:
python3 replies.py check data/suggested_replies.json --ops data/ops_classified.json
python3 replies.py sheet --ops data/ops_classified.json --replies data/suggested_replies.json --sheet-id <id>
python3 replies.py angles --ops data/ops_classified.json --replies data/suggested_replies.json --out data/engage_angles.json

The 18-word cap (binding)

Target 15–18 words; 18 is the hard limit (wc -w semantics: whitespace-separated words). Longer templates read contrived, and the human is going to edit anyway. Render the count as <N>/18 next to every draft you present. Check it, don't eyeball it:

bash
printf '%s' "<reply>" | wc -w

check enforces the same count and exits nonzero on 19+.

Reply gates

Deterministic from the action lane; overrides beat the lane. NO-REPLY is a result, not a failure — log it and move on.

GateLane ruleNote on the row
GOengage_now / reply_nowTimely thread. Reply when ready.
REVIEWevery other laneCheck thread age + sub self-promo rules first.
NO-REPLYcompetitor_intel / competitor_watchLog as competitor intel. Do not post.

gate_overrides handles the exceptions the lanes can't see, e.g. a founder self-promoting their own tool sits in an engage lane but gets ["NO-REPLY", "Founder self-promo. Flag for partnership outreach instead."].

Output shape

json
{
  "rules": "Every reply is a draft template. Nothing posts automatically. All replies go through the account owner personally before posting. Disclose affiliation whenever the product comes up. Never DM. Check subreddit self-promo rules and thread age before posting. Gate: GO = timely, reply when ready. REVIEW = check thread age + sub rules first. NO-REPLY = log as intel, do not post.",
  "replies": {
    "op_101": "Twelve people will outgrow both boards the same way. What breaks first for you: reporting or handoffs?"
  },
  "gate_overrides": {
    "op_207": ["NO-REPLY", "Founder self-promo. Flag for partnership outreach instead."]
  }
}

The sheet tab (Suggested Replies): frozen 2 rows — row 1 is the rules string pinned above the header, row 2 is the header. Columns: Op ID | Tier | Lane | Reply Gate | Gate Note | Subreddit | What They Want | Suggested Reply (≤18 words, edit before posting) | Reddit URL. The gate column is color-coded GO green / REVIEW yellow / NO-REPLY red. The tab is added to the existing client sheet in place; other tabs are never touched.

Voice rules

  1. Answer the actual ask. One or two clipped sentences; the first responds to their literal question.
  2. Concrete nouns from the buyer's world. Their tools, their workflows, their numbers, never category abstractions.
  3. Zero product mentions by default. Across a whole batch, a mention is the rare exception, and naming the product triggers the disclosure rule.
  4. End with a question back or a first step they can take today.
  5. Numbers stated plainly. "Free tier plus two hours of setup beats a paid seat nobody opens." No hedging.
  6. Match the thread's language and register. A Spanish thread gets a Spanish reply.
  7. No links, no DMs, no CTAs, no emojis, no "great question".
  8. If it can't fit in 18 words, it's two thoughts. Cut one.
Show full SKILL.md (256 more words)Show less

Worked examples (fictional)

Thread (lane)GateSuggested replyCount
"Asana vs Monday for a 12-person team?" (engage_now)GOTwelve people will outgrow both boards the same way. What breaks first for you: reporting or handoffs?17/18
"How do you keep follow-up from falling through?" (lead_enrich)REVIEWAssign every follow-up one owner and one date. Exceptions get a weekly fifteen-minute review. Start there.16/18
"RivalPM just shipped dashboards, worth switching?" (competitor_intel)NO-REPLYnothing drafted; logged as competitor intel—
"I built a sprint-planning tool for remote teams, feedback welcome" (engage_now, overridden)NO-REPLYoverride note: Founder self-promo. Flag for partnership outreach instead.—

Rules

  1. Every reply is a draft template. Nothing posts automatically; the human edits and posts each one personally.
  2. The gates are strong. A NO-REPLY row never gets a reply drafted, not even a good one. check fails a drafted reply on a NO-REPLY op.
  3. Disclose affiliation whenever the product comes up. Never DM.
  4. REVIEW means work: check thread age and the sub's self-promo rules before posting, every time.
  5. check before ship. A draft that fails the cap or the slop gate gets rewritten, not trimmed word-by-word into mush.
  6. Overrides are recorded, not improvised. Every override carries its note in gate_overrides.
  • ../../starters/reddit-buyer-signals/replies.py — the module this wraps: scaffold, check, sheet, angles
  • ../reddit-engage/ — the interactive approval loop; expand a GO template into a full comment there
  • personalization/SKILL.md in ClearboxGTM — the 3-variable model, applied at template length
  • ../../starters/reddit-buyer-signals/digest.py — renders the angles file this skill exports
  • how-to-win-on-reddit.md in ClearboxGTM — why value-first and no-links are non-negotiable

© shawnla90, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/reply-engine of shawnla90/gtm-coding-agent.

Open the folder on GitHubat commit 072c185

Compare with similar skills

Reply Engine next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Reply Engine compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Reply Engine this skillshawnla90/gtm-coding-agent154—~1.8kAutomated safety check: PassMIT
Agent ReachPanniantong/Agent-Reach93k1 repos~1.4kAutomated safety check: PassMIT
Last30daysmvanhorn/last30days-skill64k—~7.8kAutomated safety check: NotesMIT
Customer ResearchNexus-JPF/note-companion8706 repos~3.2kAutomated safety check: PassMIT
Scrapecreators APIScrapeCreators/social-media-research-skills3.3k1 repos~4kAutomated safety check: NotesMIT
Last30days CnJesseovo/last30days-skill-cn1.9k—~2.4kAutomated safety check: NotesMIT

Similar skills

  • Agent Reach

    Panniantong/Agent-Reach

    Routes web research and platform lookups across 16 sites, including Twitter, Reddit, YouTube, Bilibili, Xiaohongshu and GitHub, through one command-line tool.

    93k GitHub starsUsed in 1 repo~1.4k tokens
    Productivity & AutomationAuto-check passed
  • Last30days

    mvanhorn/last30days-skill

    Research what people actually say about any topic in the last 30 days.

    64k GitHub stars~7.8k tokensUpdated today
    Research & ScienceAuto-check: notes
  • Customer Research

    Nexus-JPF/note-companion

    When the user wants to conduct, analyze, or synthesize customer research.

    870 GitHub starsUsed in 6 repos~3.2k tokens
    Marketing & SEOAuto-check passed
  • Scrapecreators API

    ScrapeCreators/social-media-research-skills

    Scrape and extract public data from 27+ social media platforms using the ScrapeCreators REST API.

    3.3k GitHub starsUsed in 1 repo~4k tokens
    Backend & APIsAuto-check: notes
  • Last30days Cn

    Jesseovo/last30days-skill-cn

    Research what Chinese internet users actually said in the last 30 days across Weibo, Xiaohongshu (RED), Bilibili, Zhihu, Douyin, WeChat public accounts, Baidu and Toutiao: engagement-weighted…

    1.9k GitHub stars~2.4k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check: notes
  • Reddit JSON Fetcher

    ykdojo/claude-code-tips

    Fetches Reddit posts, threads and search results as JSON through a browser session, using a DuckDuckGo redirect to get past Reddit's automated-access block.

    10k GitHub stars~1.4k tokensUpdated 13 days ago
    Productivity & AutomationAuto-check passed

More from shawnla90/gtm-coding-agent

  • Podcast Shorts

    shawnla90/gtm-coding-agent

    Turn a raw podcast or interview recording into captioned vertical shorts staged as Buffer drafts.

    154 GitHub stars~1.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Clearbox Onboard

    shawnla90/gtm-coding-agent

    Turn a website domain into a complete Clearbox offer pack — one-liner, selling points in the form's fixed template shapes, keywords, competitor brands, own brands, and suggested tracked subreddits —…

    154 GitHub stars~1.7k tokensUpdated 1 mo ago
    Auto-check passed
  • Reddit Onboard

    shawnla90/gtm-coding-agent

    Build a personalized Reddit onboarding doc for a new Clearbox signup or client, grounded in their real product data, and push it to Notion.

    154 GitHub stars~1.4k tokensUpdated 1 mo ago
    Auto-check: notes
  • Reddit Agency

    shawnla90/gtm-coding-agent

    The agency motion for a Reddit-led visibility offer. An agent skill from shawnla90/gtm-coding-agent.

    154 GitHub stars~3.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Reddit Engage

    shawnla90/gtm-coding-agent

    Draft and approve Reddit comments from scouted opportunities with a hard human-in-the-loop gate.

    154 GitHub stars~794 tokensUpdated 1 mo ago
    Auto-check passed
  • Student Gtm

    shawnla90/gtm-coding-agent

    Scaffold a student's own GTM repo and run the weekly build-in-public loop that turns a coding agent into a public go-to-market track record.

    154 GitHub stars~4.2k tokensUpdated 1 mo ago
    Auto-check: notes

Works with

Questions about Reply Engine

What does Reply Engine do?

Batch-draft one suggested Reddit reply template per classified opportunity, hard-gated. Reply Engine is an agent skill from shawnla90/gtm-coding-agent. Batch-draft one suggested Reddit reply template per classified opportunity, hard-gated.

When should I use Reply Engine?

Reply Engine fits situations like: the user types /reply-engine; says draft the suggested replies; run the reply pass; build the reply sheet.

How do I install Reply Engine in Claude Code?

Run `npx skills add shawnla90/gtm-coding-agent --skill reply-engine -a claude-code`. Or copy the skill folder (skills/reply-engine in shawnla90/gtm-coding-agent) into .claude/skills/reply-engine in your project. Claude Code loads it when a task matches its description.

How do I install Reply Engine in Codex?

Run `npx skills add shawnla90/gtm-coding-agent --skill reply-engine -a codex`. Or copy the skill folder (skills/reply-engine in shawnla90/gtm-coding-agent) into .agents/skills/reply-engine in your project. Codex loads it when a task matches its description.

Can I use Reply Engine in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add shawnla90/gtm-coding-agent --skill reply-engine -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/reply-engine, .gemini/skills/reply-engine, .github/skills/reply-engine and .opencode/skills/reply-engine in your project.

What does Reply Engine need to run?

Going by SKILL.md and its folder, Reply Engine needs the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Reply Engine access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Reply Engine safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Reply Engine use?

Reply Engine is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Reply Engine use?

About 1.8k tokens (SKILL.md is roughly 7.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Reply Engine?

Skills that share tags, products or a category with Reply Engine: Agent Reach (Panniantong/Agent-Reach, 93k stars), Last30days (mvanhorn/last30days-skill, 64k stars), Customer Research (Nexus-JPF/note-companion, 870 stars) and Scrapecreators API (ScrapeCreators/social-media-research-skills, 3.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Reply Engine?

shawnla90 (a GitHub user) maintains it in shawnla90/gtm-coding-agent, which has 154 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on September 2, 2026.

Source: shawnla90/gtm-coding-agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.