Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add swan-gtm/gtm-skills --skill handle-replygit clone --depth 1 https://github.com/swan-gtm/gtm-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/swan-gtm/gtm-skills/handle-reply)<a href="https://agentmods.dev/skills/swan-gtm/gtm-skills/handle-reply"><img src="https://agentmods.dev/badge/skills/swan-gtm/gtm-skills/handle-reply/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/swan-gtm/gtm-skills/handle-reply"><img src="https://agentmods.dev/badge/skills/swan-gtm/gtm-skills/handle-reply.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00034 | $0.01118 |
| Opus 5.5 | $0.00014 | $0.00447 |
| Sonnet 5.5 | $0.00007 | $0.00224 |
| Haiku 4.5 | $0.00003 | $0.00112 |
Grade A, and why
handle-reply scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 71 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Instructions
State check. This skill assumes a CRM is connected, at least one sender is configured with instructions, and the org has approved message examples to anchor voice. Check the CRM connection, load sender instructions, and pull message examples before drafting. If no sender instructions exist, ask the user to define voice once so every reply lands consistent — don't fall back to a generic tone. If no CRM is connected, the skill still runs for the draft itself, but skip the CRM write steps and tell the user.
Step 1 — Load the thread and the sequence context
Pull the sequence and the latest reply:
swan-search-sequencesfiltered to the contact or company to find the active sequence.swan-get-sequencefor the full thread and the original outbound message.hubspot-search-objectson Contacts + Companies to confirm CRM state (lifecycle stage, owner, deal associations).
If the response is large, read the full JSON from files/tool-outputs/swan-get-sequence_<callId>.json in swan-execute-code and print only the last 2-3 thread turns plus the sequence goal.
Step 2 — Classify intent
Read the reply once and pick exactly one bucket. Keep the classification one line.
| Intent | Signals | Next action |
|---|---|---|
| Interested | Asks a question, requests a meeting, asks for pricing, "tell me more" | Draft a fast positive reply, propose times, offer a deck |
| Objection | Concern about price, fit, timing, "not now," "we use X" | Draft a reframe — address the objection, offer one specific next step |
| Wrong person | "Not me," "talk to X," referral to a colleague | Route to the new contact, ask for the warm intro, thank them |
| Unsubscribe | "Stop emailing," "remove me," "unsubscribe" | Stop the sequence, mark do-not-contact, no reply |
| Out of office | Auto-reply, return date, alt contact | Pause the sequence to the return date; if alt contact given, route |
| Neutral / soft no | "Reaching out later," "send info," vague | Drop a short value follow-up, push to next sequence step |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 71 lines · 34 tokens per session scan A 501248fe4478
handle-reply is a skill published in the GitHub repository swan-gtm/gtm-skills (221 stars, last pushed 7d ago), licensed MIT. It adds 34 tokens to every session and 1,118 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
cold-outreach
Use when writing a cold email or LinkedIn DM to a stranger and its cadence: first-touch copy under a word ceiling, 4-7 step bump sequences, per-inbox volume and warm-up limits, the compliant opt-out footer. NOT SPF/DKIM/DMARC setup (that is email-deliverability), NOT sourcing the list (that is lead-gen), NOT life…
linkedin-outreach
Use when running LinkedIn social selling as a repeatable motion — Sales Navigator saved searches and trigger alerts, weekly request budgets, fixing a low acceptance rate, turning profile views and post engagers into warm threads, logging every touch. NOT the note or DM copy (that is cold-outreach), NOT the deal after…
Cold Email Writer
Write personalized cold outreach emails to hiring managers and founders - specific, human, not a pitch deck.
afrexai-lead-hunter
Enterprise-grade B2B lead generation, enrichment, scoring, and outreach sequencing for AI agents. Find ideal prospects, enrich with verified data, score against your ICP, and generate personalized outreach — all autonomously.
agent-browser
Drive a real headless Chromium on the workspace host to read pages, fill forms, click buttons, run JS, and take screenshots. Use this whenever you need more than a plain HTTP fetch — pages that require JS to render, pages with an interactive element you have to click through, or when you want an accessibility-tree…
find-leads
Find qualified B2B leads with OpenOutreach — run openoutreach find N [emails], read the CSV it prints on stdout, and hand the rows to whatever sends. Use when the user wants leads, prospects, an ICP-matched contact list, or asks what a campaign already has. Also covers first-run setup (openoutreach init), openoutreach…