Courier Notification Skill
Teach your AI coding assistant to integrate Courier notifications across email, SMS, push, in-app, Slack, Teams, and WhatsApp correctly — and debug delivery when it fails.
Evidence shows a documentation-only skill with no executable scripts; it explicitly treats fetched doc content as data not instructions (prompt-injection defense), promotes idempotency keys, E.164, and no channel-blasting, and uses env-var API keys. Deductions: no user-confirmation or least-privilege mechanics for real external effects (sends, profile writes), publisher identity unverified by the registry, attribution and rollback rest on repo context rather than the skill itself.
High internal self-consistency: SKILL.md sets precedence rules (canonical shape wins), documents the 500-recipient cap, status semantics, and a triage ladder with consistent cross-file links. Capped at 10 in static review: no test suite or execution evidence in the provided files; key paths (inbox routing:null diagnosis, token-status cleanup) are declarative claims, not reproduced.
Clear audience and scenarios (developers building Courier notifications), explicit 'Not covered here' boundaries and routing guidance. Deductions: core function depends entirely on overseas services (Courier API, docs MCP) with no mainland-China reachability assessment; no Chinese-language support; some triggers assume the SDK is already installed.
Excellent layered information architecture (entry SKILL.md + routing table + Quick References), MIT license, stable naming, disclosed known limitations (EU data residency, undocumented namespaces). Deductions: no skill-level version or changelog; maintenance/update responsibility only implicit at repo level; some assumptions (MCP endpoint availability) lack a failure fallback.
Outputs are directly usable code templates and triage flows with marginal value over manual doc reading (embedded best practices, status semantics, provider override differences). Capped at 7 in static review: no executed verification of representative outputs; correctness rests on authorial claims.
Multi-file cross-corroboration is consistent; facts and inference are separated (e.g., provider error explicitly marked a string not to pattern-match); a verification methodology is given (SDK types as ground truth, .md doc pages that fail loudly with 404). Capped at 5: all key claims are authorial, with no third-party execution evidence or independent reproduction.
- Static review only; no code or API calls were executed, all correctness claims come from the files themselves.
- Core function depends entirely on overseas services (Courier API, docs MCP, CLI); mainland-China reachability is unverified—confirm before use.
- Publisher is not verified by the FollowSkills registry and is treated as unknown.
- No skill-level version or changelog; API shapes may drift with upstream SDKs—verify against installed SDK types as the skill itself instructs.
- No Chinese-language content.
What does this skill do, and when should you use it?
This is the official Agent Skill from Courier, packaging a verified notification-domain knowledge base for AI coding assistants. It spans sending, templates, the Elemental content format, multi-channel routing, user preferences, journeys, and delivery debugging. The entry point is a SKILL.md that routes each task to one or two reference files via its Where to Look table. Every API claim is grounded in the type definitions of the SDK actually installed in the project, with explicit instructions not to reconstruct signatures from memory. It works with any Agent Skills-compatible assistant, including Claude Code, Cursor, and Codex.
The skill works as a pure knowledge base: SKILL.md routes to the right references file (channel guides, transactional/lifecycle patterns, journeys, reliability, etc.); it supplies canonical SDK shapes for Node and Python (client.send.message plus the complete 22-namespace list); it enforces universal rules (idempotency keys, E.164 phone numbers, canonical nt_ template IDs); it provides a delivery-failure triage ladder (courier messages list → history → content) and a message-status glossary (DELIVERED, UNDELIVERABLE, etc.); and it prescribes how to verify API shapes against installed SDK types, the docs MCP (courier.com/docs/mcp), and the CLI. It executes nothing itself; it constrains the assistant into writing Courier code that actually runs.
- A backend developer sending a welcome email, order receipt, or OTP from a Node or Python service who needs the client.send.message call right the first time
- A frontend team adding an in-app notification center (Courier Inbox with JWT auth and real-time updates) to a React or React Native app
- An engineer building multi-step flows — daily digests, push-to-email fallback, A/B tests — using journeys as a JSON graph
- A team consolidating multi-channel notifications while letting users manage subscription topics via preference centers
- A B2B SaaS needing per-tenant branding, preference defaults, and tenant-scoped templates
- An operator debugging why one message didn't deliver, needing the CLI event timeline and channel-level detail (SPF/DKIM, 10DLC)
What are this skill's strengths and limitations?
- Officially maintained; requires API shapes to be verified against the installed SDK's own types, reducing code that doesn't run
- Comprehensive coverage: seven channels, transactional and lifecycle notification types, journeys, preferences, tenants, and Bulk API fan-out
- A clear debugging methodology (requestId → messages list → history → content) plus status semantics table
- Well-organized: task-routed file selection instead of requiring reading the whole tree
- Deeply tied to the Courier platform; of little value if you don't use Courier
- No automated test suite or evidence of validating the skill's routing behavior appears in the source
- Broadcasts, Test→Production promotion, EU data residency, and audit events have no dedicated files and require the docs MCP to look up
- Full effectiveness needs network access and, for some workflows, MCP or the CLI; offline verification is limited
- No documented comparison with or migration path from other notification platforms (e.g. Knock, OneSignal's orchestration features)
How do you install this skill?
Three options (commands from the README): 1) Universal: npx skills add trycourier/courier-skills; 2) Claude Code plugin: /plugin marketplace add trycourier/courier-skills, then /plugin install courier@courier-skills (ships the docs MCP; update with /plugin update courier@courier-skills); 3) Manual: git clone https://github.com/trycourier/courier-skills.git and copy the skills/courier folder into ~/.cursor/skills/ or ~/.claude/skills/. Discovery relies on the SKILL.md name/description frontmatter; no extra configuration is needed.
How do you use this skill?
After installing, prompt your assistant in plain English, e.g. "Send a welcome email from my Node backend" or "Why did this message not deliver?". The skill routes to the relevant reference and produces code. Requirements: network access to the Courier API with the key read from COURIER_API_KEY; the Courier CLI for delivery debugging. If @trycourier/courier or trycourier is already installed, the skill skips install steps and assumes client exists. The source does not document which capabilities degrade in environments without MCP/CLI access.
How does this skill compare with similar options?
The source names no competitors. The skill is Courier-platform-specific; the README lists many third-party delivery providers Courier integrates with (SendGrid, Amazon SES, Twilio, FCM, etc.), but those are Courier's provider ecosystem, not alternative skills.