forge-notifications: Notifications
Engine: Forge native
Purpose
Inspect email, SMS, push, and in-app notifications for authorization, preferences, retries, privacy, and deliverability.
Deterministic runtime composition
Before loading any provider procedure, run:
Resolve ../../runtime/cli/src/composition-entry.js relative to this SKILL.md, then run:
node "<resolved-absolute-runner-path>" notifications compose --workflow audit --root "<repository-root>" --dry-run --json
Add one repeatable --request <provider-or-source> flag for each explicit user request. Add
--condition <task-condition> or --risk-surface <surface> only for a task fact you directly
proved; never infer one from generic wording. The command above is the default for this
audit-oriented module; for implementation use --workflow build, and for a fix, retest, or
release gate use --workflow fix, verify, or ship respectively. Read the JSON response,
keep the Forge contract at index zero, and resolve paths against the absolute runtime_root
reported in that response. Read eager[].runtimePath when entering the module. The full
selected[] list is availability/provenance; load only deferred[].runtimePath when the task
reaches that concern, in tier order. Refuse any path that escapes the root. Respect every reported
suppression and context budget. If missing is non-empty, stop and report the installation as
damaged; do not improvise a prose fallback. The runner and specialist content may live in a plugin
cache or global installation; never assume they are inside the audited repository.
Resolve and read ../fullstack-forge/references/shared/module-contract.md (applicability,
execution, mutation, verification, completion) and
../fullstack-forge/references/shared/evidence-rules.md (statuses, standards, tools, findings via
../fullstack-forge/references/PROTOCOL.md) relative to this module SKILL.md before reporting.
Never hide failed checks or claim that an operation ran when it did not.
Automatic activation signals
Activate when a request or direct repository evidence involves notifications, when
the user explicitly names forge-notifications, or when discovery proves an applicable boundary.
- Transactional, security, lifecycle, or marketing messages
When not to activate
- No outbound or in-product notification system
Automated support
Relevant discovery inputs are:
- message producers and templates
- preference model
- provider integrations
Deterministic support, bounded evidence only:
Agent inspection procedure
- Inventory channels (email, SMS, push, in-app) and triggers, and trace one message per channel from trigger to delivery.
- Verify authorization and preference checks before send, unsubscribe handling, and an audit of who was notified.
- Check duplicate prevention: idempotency at the trigger and delivery layers, retry behavior, and scheduled-send time zones.
- Inspect templates for localization, sensitive-data exposure, and deep-link correctness including authentication state.
- Verify failed-delivery handling, bounce processing, rate limits, and fatigue controls.
Manual inspection requirements:
- Review content accuracy, accessibility, and deliverability settings
- Confirm legally required and user-controlled preference semantics
Stack-specific guidance:
- Treat provider webhooks as hostile signed input and make handlers idempotent
Evidence to collect
Standards used as criteria:
- OWASP ASVS 5.0
- RFC 8058
- WCAG 2.2
Common production failures
- Trace trigger, recipient authorization, template data, locale, channel selection, send, webhook, and state update
- Inspect idempotency, deduplication, rate limits, quiet hours, retry, expiry, unsubscribe, suppression, and bounce handling
- Check sensitive preview content, deep links, spoof resistance, preference overrides, tenant isolation, and provider secrets
Missing-control checks
Each item needs direct evidence or one reasoned status.
- Email delivery
- Templates
- Localization
- Unsubscribe behavior
- Notification preferences
- Duplicate sends
- Retry logic
- Scheduled delivery
- Time zones
- Sensitive information
- Deep links
- Failed delivery
- Push permissions
- Rate limits
- Notification fatigue
- Idempotency
Commands and tools
- Run
forge notifications audit --json or fullstack-forge notifications audit --json when
an explicit audit is requested and the CLI is installed. Normal feature work does not require it.
Safe fixes
- Add deduplication keys, expiry, and sensitive-data redaction
- Correct accessible template markup
Approval-required changes
- Changing mandatory-message policy, consent, sender identity, or provider
Verification
- Send to controlled sinks and trace provider callbacks
- Exercise duplicate, stale, opted-out, bounced, and cross-tenant cases
Completion contract
Follow fullstack-forge/references/shared/completion.md and the limitations below.
Known limitations
- Deliverability and carrier behavior require provider evidence
1---2name: forge-notifications-33description: Inspect email, SMS, push, and in-app notifications for authorization, preferences, retries, privacy, and deliverability.4---56# forge-notifications: Notifications78Engine: Forge native910## Purpose1112Inspect email, SMS, push, and in-app notifications for authorization, preferences, retries, privacy, and deliverability.131415## Deterministic runtime composition1617Before loading any provider procedure, run:1819Resolve `../../runtime/cli/src/composition-entry.js` relative to this `SKILL.md`, then run:2021`node "<resolved-absolute-runner-path>" notifications compose --workflow audit --root "<repository-root>" --dry-run --json`2223Add one repeatable `--request <provider-or-source>` flag for each explicit user request. Add24`--condition <task-condition>` or `--risk-surface <surface>` only for a task fact you directly25proved; never infer one from generic wording. The command above is the default for this26audit-oriented module; for implementation use `--workflow build`, and for a fix, retest, or27release gate use `--workflow fix`, `verify`, or `ship` respectively. Read the JSON response,28keep the Forge contract at index zero, and resolve paths against the absolute `runtime_root`29reported in that response. Read `eager[].runtimePath` when entering the module. The full30`selected[]` list is availability/provenance; load only `deferred[].runtimePath` when the task31reaches that concern, in tier order. Refuse any path that escapes the root. Respect every reported32suppression and context budget. If `missing` is non-empty, stop and report the installation as33damaged; do not improvise a prose fallback. The runner and specialist content may live in a plugin34cache or global installation; never assume they are inside the audited repository.353637Resolve and read `../fullstack-forge/references/shared/module-contract.md` (applicability,38execution, mutation, verification, completion) and39`../fullstack-forge/references/shared/evidence-rules.md` (statuses, standards, tools, findings via40`../fullstack-forge/references/PROTOCOL.md`) relative to this module `SKILL.md` before reporting.4142Never hide failed checks or claim that an operation ran when it did not.4344## Automatic activation signals4546Activate when a request or direct repository evidence involves notifications, when47the user explicitly names `forge-notifications`, or when discovery proves an applicable boundary.4849- Transactional, security, lifecycle, or marketing messages5051## When not to activate5253- No outbound or in-product notification system5455## Automated support5657Relevant discovery inputs are:5859- message producers and templates60- preference model61- provider integrations6263Deterministic support, bounded evidence only:6465- `inspect-routes`6667## Agent inspection procedure68691. Inventory channels (email, SMS, push, in-app) and triggers, and trace one message per channel from trigger to delivery.702. Verify authorization and preference checks before send, unsubscribe handling, and an audit of who was notified.713. Check duplicate prevention: idempotency at the trigger and delivery layers, retry behavior, and scheduled-send time zones.724. Inspect templates for localization, sensitive-data exposure, and deep-link correctness including authentication state.735. Verify failed-delivery handling, bounce processing, rate limits, and fatigue controls.7475Manual inspection requirements:7677- Review content accuracy, accessibility, and deliverability settings78- Confirm legally required and user-controlled preference semantics7980Stack-specific guidance:8182- Treat provider webhooks as hostile signed input and make handlers idempotent8384## Evidence to collect8586Standards used as criteria:8788- OWASP ASVS 5.089- RFC 805890- WCAG 2.29192## Common production failures9394- Trace trigger, recipient authorization, template data, locale, channel selection, send, webhook, and state update95- Inspect idempotency, deduplication, rate limits, quiet hours, retry, expiry, unsubscribe, suppression, and bounce handling96- Check sensitive preview content, deep links, spoof resistance, preference overrides, tenant isolation, and provider secrets9798## Missing-control checks99100Each item needs direct evidence or one reasoned status.101102- Email delivery103- Templates104- Localization105- Unsubscribe behavior106- Notification preferences107- Duplicate sends108- Retry logic109- Scheduled delivery110- Time zones111- Sensitive information112- Deep links113- Failed delivery114- Push permissions115- Rate limits116- Notification fatigue117- Idempotency118119## Commands and tools120121- Run `forge notifications audit --json` or `fullstack-forge notifications audit --json` when122 an explicit audit is requested and the CLI is installed. Normal feature work does not require it.123124## Safe fixes125126- Add deduplication keys, expiry, and sensitive-data redaction127- Correct accessible template markup128129## Approval-required changes130131- Changing mandatory-message policy, consent, sender identity, or provider132133## Verification134135- Send to controlled sinks and trace provider callbacks136- Exercise duplicate, stale, opted-out, bounced, and cross-tenant cases137138## Completion contract139140Follow `fullstack-forge/references/shared/completion.md` and the limitations below.141142## Known limitations143144- Deliverability and carrier behavior require provider evidence