the-mailman
fworks-tech/agenthood/skills/the-mailman/SKILL.md
Manages message delivery, content scheduling, notification dispatch, and channel management. Use before publishing any scheduled content, when configuring notification pipelines, or when setting up delivery workflows.
Skill3 starsChanged 6 days ago
What's in it
- The Mailman
- Overview
- When to Use
- Process
- Delivery Pipeline Verification
- Content Scheduling
- Notification Dispatch
- Delivery Logging & Auditing
- Red Flags
- Rationalizations
- Verification
Tools it asks for
- file.read
- file.search
- code.explain
- ask_human
- file.write
- code.write
- code.refactor
---
name: the-mailman
description: Manages message delivery, content scheduling, notification dispatch, and channel management. Use before publishing any scheduled content, when configuring notification pipelines, or when setting up delivery workflows.
allowed-tools: file.read file.search code.explain ask_human file.write code.write code.refactor
license: MIT
---
# The Mailman
## Overview
The Mailman does not create content. It *delivers* it. Every notification reaches its destination. Every scheduled post publishes on time. Every message appears in every channel it belongs in. The Mailman is the Society's outgoing communications infrastructure — the courier that ensures nothing gets lost in transit, no deadline slips, and no channel goes silent.
## When to Use
- Before publishing any scheduled content — to verify delivery pipeline integrity
- When configuring notification systems (email, push, webhook, Slack)
- When a scheduled task failed to execute or a notification wasn't delivered
- When auditing delivery logs for reliability metrics
## Process
### Delivery Pipeline Verification
1. Check the delivery manifest: what needs to go where, and by when
2. Verify each channel's health:
- **Email**: SMTP reachable, queue depth normal, bounce rate below threshold
- **Push**: Web Push API endpoint reachable, subscription count matches expected
- **Webhook**: Target endpoints respond 200, timeout configs aren't too tight
- **Internal**: API keys are valid, rate limits aren't exhausted
3. Dry-run the batch: simulate delivery without sending live
4. If dry-run passes, release the batch with tracking headers
5. After delivery, confirm receipt signals — log any failures for retry
### Content Scheduling
1. Accept the content payload: article body, metadata, target channels, publish time
2. Check the schedule against channel constraints:
- Rate limits (API calls per hour, posts per day)
- Time-of-day preferences (don't post at 3 AM local if it's a personal account)
- Content size limits per channel
3. Register scheduled delivery in two places:
- **Local job queue**: for immediate execution responsibility
- **Persistent store**: for crash recovery (if the scheduler restarts, what still needs to go out?)
4. At publish time, execute the delivery and log status
### Notification Dispatch
1. Determine the notification type: push, email, in-app, webhook
2. Route through the appropriate provider:
- **Push**: Web Push API (VAPID keys, subscription management)
- **Email**: SMTP / SendGrid / SES via transport layer
- **Webhook**: HTTP POST with signature verification
- **In-app**: Server-Sent Events or WebSocket broadcast
3. Apply per-channel formatting (HTML for email, markdown for webhook, notification payload for push)
4. Send with idempotency key — if the same notification is submitted twice, it should only be delivered once
5. On failure: retry with exponential backoff (1s → 4s → 16s → max 3 retries), then escalate
### Delivery Logging & Auditing
Every delivery attempt records:
```json
{
"id": "dlv_abc123",
"type": "notification",
"source": "system-alert",
"channels": ["email", "webhook"],
"status": "delivered",
"results": {
"email": { "status": "delivered", "latency": 1200 },
"webhook": { "status": "delivered", "latency": 300 }
},
"timestamp": "2026-07-06T14:00:00Z"
}
```
The Mailman maintains a rolling 7-day delivery log and can answer:
- What was delivered in the last 24 hours?
- Which channel has the highest failure rate?
- Are any scheduled tasks overdue?
## Red Flags
- A scheduled post that did not publish at its target time
- A notification channel with delivery latency > 30 seconds
- Delivery logs showing the same task submitted more than 3 times
- An API key expiring within the next 7 days
- A webhook endpoint returning non-200 for 3 consecutive attempts
## Rationalizations
| What you think | What The Mailman knows |
|---------------|----------------------|
| "I'll just post it manually" | Manual posting forgets channels. Automation remembers all of them. |
| "The notification went through, I saw it" | One success doesn't mean the pipeline is healthy. Check the logs. |
| "Scheduling a week ahead is risky" | Scheduling with a dry-run is safer than last-minute publishing. |
| "Rate limits won't matter for one post" | They matter when you're resubmitting the failed post plus the new one. |
## Verification
Before a scheduled publish:
- [ ] Delivery manifest is complete — every channel listed
- [ ] All target API keys are valid and not expiring within 7 days
- [ ] Rate limits are respected — no channel exceeds 80% of its hourly quota
- [ ] Dry-run passed — no formatting errors, no missing fields
- [ ] Idempotency keys are set — duplicate submissions won't double-deliver
- [ ] Retry policy is configured — exponential backoff with max 3 attempts
- [ ] Fallback channel exists for critical notifications (email is always the fallback)
- [ ] Delivery log is being written to the configured output
More agent context in fworks-tech/agenthood
60 other files this repository gives its agents.
AGENTS.md
Skill
- accessibility-auditorskills/accessibility-auditor/SKILL.md
- awsskills/aws/SKILL.md
- bug-fix-teammateskills/bug-fix-teammate/SKILL.md
- cleanup-specialistskills/cleanup-specialist/SKILL.md
- code-reviewskills/code-review/SKILL.md
- commit-messagesskills/commit-messages/SKILL.md
- concept-explainerskills/concept-explainer/SKILL.md
- context-economyskills/context-economy/SKILL.md
- cross-provider-translationskills/cross-provider-translation/SKILL.md
- datadogskills/datadog/SKILL.md
- debugging-and-error-recoveryskills/debugging-and-error-recovery/SKILL.md
- debugging-tutorskills/debugging-tutor/SKILL.md
- dockerskills/docker/SKILL.md
- elasticsearchskills/elasticsearch/SKILL.md
- emailskills/email/SKILL.md
- githubskills/github/SKILL.md
- gitlabskills/gitlab/SKILL.md
- goal-refinementskills/goal-refinement/SKILL.md
- implementation-plannerskills/implementation-planner/SKILL.md
- institutional-knowledgeskills/institutional-knowledge/SKILL.md
- issue-managerskills/issue-manager/SKILL.md
- jiraskills/jira/SKILL.md
- kubernetesskills/kubernetes/SKILL.md
- linearskills/linear/SKILL.md
- mongodbskills/mongodb/SKILL.md
- mysqlskills/mysql/SKILL.md
- onboarding-planskills/onboarding-plan/SKILL.md
- postgresskills/postgres/SKILL.md
- pull-request-assistantskills/pull-request-assistant/SKILL.md
- redisskills/redis/SKILL.md
- release-notesskills/release-notes/SKILL.md
- rememberskills/remember/SKILL.md
- runtime-healthskills/runtime-health/SKILL.md
- security-and-hardeningskills/security-and-hardening/SKILL.md
- sentryskills/sentry/SKILL.md
- society-integrityskills/society-integrity/SKILL.md
- spec-driven-developmentskills/spec-driven-development/SKILL.md
- telegramskills/telegram/SKILL.md
- test-driven-developmentskills/test-driven-development/SKILL.md
- the-architectskills/the-architect/SKILL.md
- the-auditorskills/the-auditor/SKILL.md
- the-builderskills/the-builder/SKILL.md
- the-debuggerskills/the-debugger/SKILL.md
- the-doormanskills/the-doorman/SKILL.md
- the-envoyskills/the-envoy/SKILL.md
- the-heraldskills/the-herald/SKILL.md
- the-inspectorskills/the-inspector/SKILL.md
- the-librarianskills/the-librarian/SKILL.md
- the-mediatorskills/the-mediator/SKILL.md
- the-operatorskills/the-operator/SKILL.md
- the-oracleskills/the-oracle/SKILL.md
- the-reviewerskills/the-reviewer/SKILL.md
- the-scribeskills/the-scribe/SKILL.md
- the-sentinelskills/the-sentinel/SKILL.md
- the-stewardskills/the-steward/SKILL.md
- the-strategistskills/the-strategist/SKILL.md
- the-testerskills/the-tester/SKILL.md
- the-wardenskills/the-warden/SKILL.md
- validation-and-enforcementskills/validation-and-enforcement/SKILL.md
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
Reports can't be read right now.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool public_context_discussion, action report. How to connect one.

