noticed
<essential_principles>
How Noticed Works
Noticed is a Rails notification system that delivers notifications across multiple channels simultaneously.
1. Notifiers Define What and How
Each notification is a class inheriting from Noticed::Event. It defines:
- What params are required
- Which delivery methods to use
- Helper methods via
notification_methodsblock
class NewCommentNotifier < Noticed::Event
required_params :comment
deliver_by :email do |config|
config.mailer = "CommentMailer"
config.method = :new_comment
end
notification_methods do
def comment
record
end
end
end
2. Individual vs Bulk Delivery
- Individual (
deliver_by): One notification per recipient - Bulk (
bulk_deliver_by): One notification for all (e.g., team Slack channel)
3. The Record Pattern
Always pass the primary object as record::
NewCommentNotifier.with(record: @comment).deliver(@recipients)
This enables proper associations and querying from the record side.
4. Async by Default
Noticed uses ActiveJob. Ensure you have a background processor (Sidekiq, etc.) running.
</essential_principles>
What would you like to do?
- Set up noticed in a new project
- Create a new notifier
- Add a delivery method to existing notifier
- Debug notification issues
- Write tests for notifications
- Something else
If creating a notifier, which delivery methods do you need?
Available delivery methods:
- Email - ActionMailer integration
- ActionCable - Real-time WebSocket
- Slack - Slack webhooks (individual or bulk)
- Microsoft Teams - Teams webhooks
- Twilio - SMS/WhatsApp
- Vonage - SMS
- Apple Push (APNs) - iOS push notifications
- FCM - Firebase Cloud Messaging (Android)
- Discord - Discord webhooks (bulk)
- Bluesky - Bluesky posts (bulk)
- Webhook - Generic HTTP webhooks (bulk)
- Database only - In-app notification center, no external delivery
Then read the matching workflow from workflows/ and follow it.
| Response | Workflow |
|---|---|
| 1, "setup", "install", "new project" | workflows/setup-noticed.md |
| 2, "create", "new notifier", "notification" | workflows/create-notifier.md |
| 3, "add", "delivery method", "channel" | workflows/add-delivery-method.md |
| 4, "debug", "not working", "fix", "issue" | workflows/debug-notifications.md |
| 5, "test", "tests", "testing" | workflows/write-tests.md |
| Unsupported delivery method requested | workflows/create-custom-delivery-method.md |
<verification_loop>
After Every Change
# 1. Does it build?
bin/rails runner "NewCommentNotifier"
# 2. Do tests pass?
bin/rails test test/notifiers/
# 3. Check job queue
bin/rails runner "puts Sidekiq::Queue.new.size"
Report to the user:
- "Notifier loads: ✓"
- "Tests: X pass, Y fail"
- "Ready for you to test delivery"
</verification_loop>
<reference_index>
Domain Knowledge
All in references/:
Delivery: delivery-methods.md Patterns: notifier-patterns.md Config: configuration.md Database: database-integration.md Mistakes: anti-patterns.md
</reference_index>
<workflows_index>
Workflows
All in workflows/:
| File | Purpose |
|---|---|
| setup-noticed.md | Install and configure noticed |
| create-notifier.md | Create new notifier with delivery methods |
| add-delivery-method.md | Add delivery channel to existing notifier |
| create-custom-delivery-method.md | Build custom delivery for unsupported services |
| debug-notifications.md | Troubleshoot delivery issues |
| write-tests.md | Test notifications |
</workflows_index>
More from faqndo97/ai-skills
kamal-deployment
Deploy containerized applications (especially Rails) to VPS using Kamal 2. Covers deploy.yml configuration, accessories (PostgreSQL, Redis, Sidekiq), SSL/TLS, secrets management, CI/CD with GitHub Actions, database backups, server hardening, debugging, and scaling. Use when setting up Kamal, configuring deployments, troubleshooting deploy issues, or managing production infrastructure with Kamal.
31stimulus
Build Stimulus controllers from scratch through production. Full lifecycle - create, debug, test, optimize, integrate with Turbo. Covers targets, values, actions, outlets, and UI patterns.
22ruby-llm
Build AI-powered Ruby applications with RubyLLM. Full lifecycle - chat, tools, streaming, Rails integration, embeddings, and production deployment. Covers all providers (OpenAI, Anthropic, Gemini, etc.) with one unified API.
20ruby-on-rails
Build Ruby on Rails features from scratch through production. Full lifecycle - build, debug, test, optimize, refactor. Follows Vanilla Rails philosophy (37signals/DHH), SOLID principles, and Rails 8 patterns.
19shadcn-ui
Build production-ready React/Next.js UIs with shadcn/ui components. Full lifecycle - install, customize, compose, debug, optimize. Covers components, forms, tables, theming, animations, and hooks.
14inertia-rails
Build Rails + Inertia.js applications from scratch through production. Full lifecycle - setup, pages, forms, validation, shared data, authentication. Covers React/Vue/Svelte frontends with Vite bundling. Includes cookbook for shadcn/ui, modals, meta tags, and error handling.
13