send
The last step that matters most. A complete sending intelligence system for anyone who communicates at scale or with stakes: emails, messages, files, proposals, campaigns, or any communication before it leaves your hands. Trigger when someone needs to send something important, wants to check something before sending, needs to automate sending workflows, or has to deliver difficult news, critical information, or high-value content to the right person at the right moment in the right way.
Best use case
send is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
The last step that matters most. A complete sending intelligence system for anyone who communicates at scale or with stakes: emails, messages, files, proposals, campaigns, or any communication before it leaves your hands. Trigger when someone needs to send something important, wants to check something before sending, needs to automate sending workflows, or has to deliver difficult news, critical information, or high-value content to the right person at the right moment in the right way.
Teams using send should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/send/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How send Compares
| Feature / Agent | send | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
The last step that matters most. A complete sending intelligence system for anyone who communicates at scale or with stakes: emails, messages, files, proposals, campaigns, or any communication before it leaves your hands. Trigger when someone needs to send something important, wants to check something before sending, needs to automate sending workflows, or has to deliver difficult news, critical information, or high-value content to the right person at the right moment in the right way.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
Best AI Agents for Marketing
A curated list of the best AI agents and skills for marketing teams focused on SEO, content systems, outreach, and campaign execution.
ChatGPT vs Claude for Agent Skills
Compare ChatGPT and Claude for AI agent skills across coding, writing, research, and reusable workflow execution.
SKILL.md Source
# Send
## The Moment Before You Hit Send
Every important communication has a moment — the pause before it goes. The proposal to the
client who could change your year. The message to the person who needs to hear something
difficult. The campaign to ten thousand people. The apology that could repair or ruin a
relationship.
In that moment, most people are asking: is this good enough?
The better question is: will this do what I need it to do?
This skill answers that question. Then it helps you send with confidence.
---
## The Send Readiness Framework
```
SEND_READINESS = {
"purpose_check": {
"question": "What do I need to happen as a result of this communication",
"answers": ["Recipient takes a specific action",
"Recipient has specific information",
"Recipient feels a specific way",
"Relationship advances or repairs"],
"test": "Does every element of this message serve the stated purpose.
If not, it should not be there."
},
"recipient_check": {
"questions": ["Who exactly is reading this",
"What do they already know",
"What do they care about",
"What objection will they have",
"What do I need them to do after reading"],
"principle": "Write for the reader you have, not the reader you wish you had"
},
"clarity_check": {
"test": "Read only the first sentence. Is the purpose immediately clear?",
"test_2": "Read only the last sentence. Is the ask or next step unmistakable?",
"test_3": "Could this be misunderstood? If yes, how, and how do you prevent it?"
}
}
```
---
## Communication Type Protocols
```
SEND_PROTOCOLS = {
"high_stakes_email": {
"before_sending": [
"Reply-all check — is everyone on this thread meant to see this",
"Attachment confirmed — never write 'see attached' without attaching",
"Tone check — read aloud to hear how it sounds",
"Subject line — does it accurately represent the content",
"24-hour rule — for anything written in anger, wait 24 hours"
],
"checklist": """
def pre_send_audit(email):
checks = {
"correct_recipient": verify_to_cc_bcc(email),
"attachment_present": "attached" not in email.body or email.has_attachment,
"clear_subject": len(email.subject) > 5 and is_descriptive(email.subject),
"single_ask": count_requests(email.body) <= 1,
"appropriate_tone": not contains_words(email.body, TONE_RED_FLAGS),
"no_sensitive_data": not contains_pii_or_confidential(email.body)
}
return all(checks.values()), checks
"""
},
"difficult_message": {
"principles": ["Direct does not mean harsh — clarity is kindness",
"One difficult message per communication — do not stack",
"Private channel for personal or sensitive content",
"Written record for professional accountability"],
"structure": ["Context — what this is about",
"The specific situation or behavior",
"The impact",
"What you need going forward",
"Invitation to respond"],
"not_this": ["Email to avoid a conversation that needs to happen in person",
"Group message for individual feedback",
"Passive framing that obscures the actual message"]
},
"mass_send": {
"before_sending_to_list": [
"Test send to yourself first — always",
"Check all merge fields resolve correctly",
"Mobile preview — 60%+ of email is read on mobile",
"Unsubscribe link present and functional",
"Sending domain authenticated — SPF, DKIM, DMARC",
"Send time optimized for recipient timezone"
],
"send_time_intelligence": """
OPTIMAL_SEND_TIMES = {
"B2B_email": "Tuesday-Thursday, 9-11am recipient local time",
"B2C_email": "Tuesday-Thursday, 7-9pm recipient local time",
"newsletters": "Tuesday or Thursday morning",
"transactional": "Immediately — delay reduces conversion",
"cold_outreach": "Tuesday-Thursday, 8-9am — before inbox fills"
}
"""
},
"file_send": {
"before_sending": [
"File opens correctly — do not assume",
"Permissions set correctly — not edit when view is appropriate",
"Version is final — not draft_v3_FINAL_actual_final",
"File size appropriate for channel — large files to cloud storage, not attachment",
"Sensitive data redacted if going outside organization"
]
}
}
```
---
## Automation and Workflows
```
SEND_AUTOMATION = {
"when_to_automate": {
"good_candidates": ["Confirmation emails after form submission",
"Follow-up sequences with time delays",
"Recurring reports and digests",
"Payment reminders",
"Onboarding sequences"],
"bad_candidates": ["Responses requiring judgment",
"Sensitive communications",
"Anything where being wrong is costly"]
},
"sequence_design": """
def design_send_sequence(goal, audience):
sequence = []
sequence.append(Email(
timing="immediately",
purpose="deliver_value_or_confirm_action",
cta="single_clear_next_step"
))
sequence.append(Email(
timing="day_3",
purpose="provide_additional_value",
cta="softer_secondary_ask"
))
sequence.append(Email(
timing="day_7",
purpose="last_touch_before_exit",
cta="direct_ask_or_breakup_email"
))
return sequence
# 3 emails is enough for most sequences — more is diminishing returns
""",
"deliverability": {
"warm_up": "New domains need gradual volume increase over 4-6 weeks",
"list_hygiene": "Remove bounces and unengaged subscribers — protects sender reputation",
"engagement": "High open rates protect deliverability — send to engaged segments first"
}
}
```
---
## Damage Control
```
SENT_THE_WRONG_THING = {
"recall_reality": "Email recall works rarely and only within same organization.
Assume it cannot be recalled.",
"immediate_steps": ["Assess who received it and what they saw",
"Send correction promptly — delay makes it worse",
"Own the error directly — do not bury the correction"],
"correction_template": {
"subject": "Correction: [Original subject]",
"opening": "I sent an email earlier today that contained [error].
The correct information is [correction]. I apologize for any confusion."
},
"data_breach": "If sensitive data was sent to wrong recipient — notify IT and privacy
officer immediately. Most jurisdictions have notification requirements."
}
```
---
## Quality Check Before Delivering
- [ ] Purpose of communication is explicit and single
- [ ] Recipient confirmed including reply-all risk
- [ ] Tone appropriate for relationship and content
- [ ] Single clear call to action
- [ ] Attachment present if referenced
- [ ] Sensitive data check completed
- [ ] Send time optimized for mass sends
- [ ] Test send completed before list sendRelated Skills
send-usdc
Send USDC to an Ethereum address or ENS name. Use when you or the user want to send money, pay someone, transfer USDC, tip, donate, or send funds to a wallet address or .eth name. Covers phrases like "send $5 to", "pay 0x...", "transfer to vitalik.eth", "tip someone", "send USDC".
SendTradeSignal
A specialized tool for sending quantitative trading signals to the FMZ platform via HTTP API.
feishu-send
飞书发送图片/文件/语音。用 curl 调用飞书 API 发送,比 message 工具更可靠。用于需要发送图片、文件、语音到飞书时触发。
resend-email
Send emails using Resend API. Use when the user needs to send emails without configuring SMTP servers. Supports text and HTML emails, multiple recipients, CC/BCC, and bulk sending. Ideal for notifications, alerts, newsletters, and automated email workflows.
send-message
Send and receive direct messages on OpenAnt. Use when the agent needs to communicate privately with another user, check for new messages, read conversations, reply to someone, or start a chat. Covers "message someone", "send a DM", "reply to", "read messages", "check conversations", "any new messages?", "what did they say?", "check inbox".
feishu-image-sender - 飞书图片发送技能
**智能图片发送工具,支持系统截图、本地图片发送,自动处理大图片压缩和双版本发送。**
send-usd
Send USD from one agent to another.
send-token
Transfer tokens on Solana or Base. Use when the user wants to send, transfer, or pay tokens. Supports native coins (SOL, ETH) and tokens (USDC) by name, plus arbitrary tokens by mint/contract address. Covers "send SOL", "transfer USDC", "send tokens", "pay someone", "send ETH on Base", "transfer to address".
---
name: article-factory-wechat
humanizer
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
find-skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
tavily-search
Use Tavily API for real-time web search and content extraction. Use when: user needs real-time web search results, research, or current information from the web. Requires Tavily API key.