action-mailer-coder
Use when creating or refactoring Action Mailer emails. Applies Rails 7.1+ conventions, parameterized mailers, preview workflows, background delivery, and email design best practices.
Best use case
action-mailer-coder is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when creating or refactoring Action Mailer emails. Applies Rails 7.1+ conventions, parameterized mailers, preview workflows, background delivery, and email design best practices.
Teams using action-mailer-coder 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/action-mailer-coder/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How action-mailer-coder Compares
| Feature / Agent | action-mailer-coder | 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?
Use when creating or refactoring Action Mailer emails. Applies Rails 7.1+ conventions, parameterized mailers, preview workflows, background delivery, and email design best practices.
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
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
Cursor vs Codex for AI Workflows
Compare Cursor and Codex for AI coding workflows, repository assistance, debugging, refactoring, and reusable developer skills.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
SKILL.md Source
# Action Mailer Coder
You are a senior Rails developer specializing in email delivery architecture.
## Mailer Design Principles
### Group Related Emails
```ruby
class NotificationMailer < ApplicationMailer
def comment_reply(user, comment)
@user = user
@comment = comment
mail(to: @user.email, subject: "New reply to your comment")
end
def mentioned(user, mention)
@user = user
@mention = mention
mail(to: @user.email, subject: "You were mentioned")
end
end
```
### Parameterized Mailers
```ruby
class NotificationMailer < ApplicationMailer
before_action { @user = params.fetch(:user) }
before_action { @account = params.fetch(:account) }
def comment_reply
@comment = params.fetch(:comment)
mail(to: @user.email, subject: "New reply on #{@account.name}")
end
end
# Calling the mailer
NotificationMailer.with(user: user, account: account, comment: comment).comment_reply.deliver_later
```
### Dynamic Defaults with Inheritance
```ruby
class AccountMailer < ApplicationMailer
default from: -> { build_from_address }
before_action { @account = params.fetch(:account) }
private
def build_from_address
@account.custom_email_sender? ?
email_address_with_name(@account.custom_email_address, @account.custom_email_name) :
email_address_with_name("hello@example.com", @account.name)
end
end
```
## Background Delivery
```ruby
UserMailer.with(user: user).welcome.deliver_later # Immediate queue
UserMailer.with(user: user).welcome.deliver_later(wait: 1.hour) # Delayed
UserMailer.with(user: user).digest.deliver_later(wait_until: Date.tomorrow.morning) # Scheduled
```
## Email Previews
```ruby
# test/mailers/previews/notification_mailer_preview.rb
class NotificationMailerPreview < ActionMailer::Preview
def comment_reply
NotificationMailer.with(
user: User.first,
account: Account.first,
comment: Comment.first
).comment_reply
end
end
```
Access at: `http://localhost:3000/rails/mailers`
## Internationalization
```ruby
def welcome
@user = params.fetch(:user)
I18n.with_locale(@user.locale) do
mail(to: @user.email, subject: t(".subject", name: @user.name))
end
end
```
## Attachments
```ruby
def invoice(order)
attachments.inline["logo.png"] = File.read("app/assets/images/logo.png")
attachments["invoice.pdf"] = generate_pdf(order)
mail(to: order.email, subject: "Your Invoice ##{order.number}")
end
```
## Testing (RSpec)
```ruby
RSpec.describe NotificationMailer, type: :mailer do
describe "#comment_reply" do
let(:mail) { described_class.with(user: user, comment: comment).comment_reply }
it "renders the headers" do
expect(mail.subject).to match(/New reply/)
expect(mail.to).to eq([user.email])
end
it "delivers later" do
expect { mail.deliver_later }.to have_enqueued_job(ActionMailer::MailDeliveryJob)
end
end
end
```
## Anti-Patterns
| Anti-Pattern | Problem | Solution |
|--------------|---------|----------|
| One mailer per email | Hard to navigate | Group related emails |
| Skipping `.with()` | Implicit dependencies | Use parameterized mailers |
| `deliver_now` | Blocks request | Use `deliver_later` |
| Missing previews | Can't visually test | Create preview classes |
## Output Format
When creating mailers, provide:
1. **Mailer Class** - The complete implementation
2. **Views** - HTML and text templates
3. **Preview** - Preview class for visual testing
4. **Tests** - Example test casesRelated Skills
bigmailer-automation
Automate Bigmailer tasks via Rube MCP (Composio). Always search tools first for current schemas.
action_logger
Keep an audit trail of changes, commands, and verification.
python-github-actions
Complete Python GitHub Actions system. PROACTIVELY activate for: (1) uv-based CI workflows (10-100x faster), (2) Matrix testing across Python versions, (3) Dependency caching with setup-uv, (4) Parallel test execution, (5) Reusable workflows, (6) Publishing to PyPI with trusted publishing, (7) Code coverage with codecov, (8) Security scanning. Provides: Workflow templates, caching config, matrix strategies, composite actions. Ensures fast, reliable CI/CD pipelines.
MailerLite Automation
Automate email marketing workflows including subscriber management, campaign analytics, group segmentation, and account monitoring through MailerLite via Composio
enginemailer-automation
Automate Enginemailer tasks via Rube MCP (Composio). Always search tools first for current schemas.
form-and-actions-in-sveltekit
Describes Form and Actions implementations.
backend-security-coder
Expert in secure backend coding practices specializing in input validation, authentication, and API security. Use PROACTIVELY for backend security implementations or security code reviews.
asyncredux-async-actions
Creates AsyncRedux (Flutter) asynchronous actions for API calls, database operations, and other async work.
adr-decision-extraction
Extract architectural decisions from conversations. Identifies problem-solution pairs, trade-off discussions, and explicit choices. Use when analyzing session transcripts for ADR generation.
add-ws-action
Add a new outgoing WebSocket action with typed payload and API exposure
agentDevCoder
Use this skill in the scenario of intelligent agent application development.
bgo
Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.