notification
Read ../idmp-shared/SKILL.md first.
Before any write: Follow the 🛑 Destructive op confirmation protocol. Read-only commands stay read-only here, but delete / write / patch flows still require the shared yes-gate.
What this skill covers
- Read global notification configuration, contact points, default contact point, and templates.
- Read delivery history and message details for troubleshooting.
- Distinguish global infrastructure from element or element-template notify rules.
- Use
try-send only when a real test notification is acceptable.
Recommended shortcuts
| Shortcut |
Purpose |
+config |
Show notification config |
+contacts |
List notification contact points |
+default |
Show the default contact point |
+details |
List notification delivery details |
+rules |
List notification rules for one element template |
Recommended reference
Missing context to resolve first
| Context |
Why it must be resolved before side effects |
| Scope type |
Decide whether you are reading global notification infrastructure, element-scoped notify rules, or template-scoped notify rules. |
| Owner scope |
If the task touches notify rules, you need the exact elementId or elementTemplateId first. |
| Delivery intent |
Decide whether you only need history and config reads or whether a real try-send side effect is allowed. |
| Template ID source |
If you do not already know a template id, start with the generated template-list command notification notification templates. |
| Rule target |
Decide which contact point, template, severity, and resend policy the final rule should cover. |
| Verification window |
Decide how you will reread delivery history after resend or try-send. |
Constrained live behaviors
- Element-scoped investigations use
notification notify-rules list; template-scoped investigations use notification notify-rules list-get.
notification template get does have a generated list companion, but it lives under the awkward path notification notification templates. Use that list before you guess a template ID.
try-send is a real notification side effect when it runs without --dry-run, and it should run only when the operator explicitly accepts that validation.
- If the task only needs a safe payload preview on a real event, prefer
try-send --dry-run --ack-risk; treat that as validation of command shape, not proof that delivery completed.
notification page list is backed by message-detail pages, not by raw resend attempts. A resend can update an existing detail row and append records under it instead of creating a new top-level page row.
- Delivery history can lag behind resend or
try-send, so reread notification page list instead of assuming the first response is final.
- Delivery retries can also be throttled by the event's minimum notification interval, so “no obvious new row yet” is not always a send failure.
- Global notification config and contact points can be healthy even when no rule binds the target event template or severity.
- If the task is really about creating or repairing alert delivery bindings, switch to
../idmp-workflow-alert-create/SKILL.md or ../idmp-workflow-alert-debug/SKILL.md.
Evidence of completion
- A global config read is only complete when the reread exposes the same config or contact-point object you summarized.
- A rule workflow is only complete when the scoped
notify-rules reread shows the intended binding on the same owner.
- A delivery proof is only complete when
notification page list or the message-detail reread reflects the send or resend outcome you claimed.
Operator workflow
- Treat
config, contact-point, default, and template / templates as global notification infrastructure.
- Treat
notify-rules as bindings on elements or element templates, not as global config.
- Use
notification notification templates before template get when no template ID is already known.
- Use
page list and details get for delivery history and message-level troubleshooting.
- Remember that resend visibility is detail-centric: a retry can land as an extra record under an existing detail instead of a brand-new page row.
- Use
try-send --dry-run --ack-risk for safe preview-only validation, and use non-dry-run try-send only when the operator explicitly accepts a real notification side effect.
- After any change, verify by re-reading config or rules and then checking delivery history.
Key commands
idmp-cli schema notification.config.list
idmp-cli notification config list
idmp-cli schema notification.list.list
idmp-cli notification list list
idmp-cli schema notification.notification.templates
idmp-cli notification notification templates
idmp-cli schema notification.template.get
idmp-cli notification template get --params '{"id":123}'
idmp-cli schema notification.notify-rules.list-get
idmp-cli notification notify-rules list-get --params '{"elementTemplateId":123}'
idmp-cli schema notification.page.list
idmp-cli notification page list --params '{"current":1,"size":20}'
idmp-cli schema notification.try-send.create-post
idmp-cli notification try-send create-post --ack-risk --data '{...}' --params '{"elementTemplateId":123}'
idmp-cli schema notification.try-send.create
idmp-cli notification try-send create --dry-run --ack-risk --data '{...}' --params '{"elementId":123}'
Exception and failure handling
- Global config is missing or disabled: notify rules may exist but delivery still will not happen.
- Contact-point or template reads fail: confirm the current account has notification administration access.
- You need a template read but have no template ID: use
idmp-cli notification notification templates first, and create a temporary template fixture only if the environment truly has no reusable template to inspect.
- A template rule list is empty: treat that as “no binding exists yet,” not as proof of a delivery outage.
- Dry-run
try-send succeeds but there is no notification history: that is expected; dry-run only proves the payload shape and preview path.
- Non-dry-run
try-send runs but no message arrives: inspect contact points, template content, channel settings, and delivery history.
- Delivery history looks empty after resend: widen the paging or time scope, inspect the existing detail row, and consider minimum-interval throttling before deciding no retry was attempted.
Validation scenarios
- Read global notification config with
idmp-cli notification config list.
- List contact points with
idmp-cli notification list list.
- List templates with
idmp-cli notification notification templates, then read one template with idmp-cli notification template get --params '{"id":123}'.
- List template rules with
idmp-cli notification notify-rules list-get --params '{"elementTemplateId":123}', or list element rules with idmp-cli notification notify-rules list --params '{"elementId":123}' when the scope is element mode.
- Query delivery history with
idmp-cli notification page list --params '{"current":1,"size":20}', or preview a safe element-scoped try-send with idmp-cli notification try-send create --dry-run --ack-risk --data '{...}' --params '{"elementId":123}' when a live test only needs payload validation.
1---2name: idmp-notification3description: IDMP notification skill. Use it to inspect global notification config, contact points, templates, delivery history, template-level rules, and test-send behavior.4---56# notification78**Read [`../idmp-shared/SKILL.md`](../idmp-shared/SKILL.md) first.**910**Before any write:** Follow the [🛑 Destructive op confirmation protocol](../idmp-shared/SKILL.md#-destructive-op-confirmation-mandatory). Read-only commands stay read-only here, but delete / write / patch flows still require the shared yes-gate.111213## What this skill covers1415- Read global notification configuration, contact points, default contact point, and templates.16- Read delivery history and message details for troubleshooting.17- Distinguish global infrastructure from element or element-template notify rules.18- Use `try-send` only when a real test notification is acceptable.1920## Recommended shortcuts2122| Shortcut | Purpose |23|----------|---------|24| `+config` | Show notification config |25| `+contacts` | List notification contact points |26| `+default` | Show the default contact point |27| `+details` | List notification delivery details |28| `+rules` | List notification rules for one element template |2930## Recommended reference3132- [`Notification read flows`](references/notification-read-flows.md)33- [`../idmp-workflow-alert-create/SKILL.md`](../idmp-workflow-alert-create/SKILL.md)34- [`../idmp-workflow-alert-debug/SKILL.md`](../idmp-workflow-alert-debug/SKILL.md)3536## Missing context to resolve first3738| Context | Why it must be resolved before side effects |39| --- | --- |40| Scope type | Decide whether you are reading global notification infrastructure, element-scoped notify rules, or template-scoped notify rules. |41| Owner scope | If the task touches notify rules, you need the exact `elementId` or `elementTemplateId` first. |42| Delivery intent | Decide whether you only need history and config reads or whether a real `try-send` side effect is allowed. |43| Template ID source | If you do not already know a template `id`, start with the generated template-list command `notification notification templates`. |44| Rule target | Decide which contact point, template, severity, and resend policy the final rule should cover. |45| Verification window | Decide how you will reread delivery history after resend or `try-send`. |4647## Constrained live behaviors4849- Element-scoped investigations use `notification notify-rules list`; template-scoped investigations use `notification notify-rules list-get`.50- `notification template get` does have a generated list companion, but it lives under the awkward path `notification notification templates`. Use that list before you guess a template ID.51- `try-send` is a real notification side effect when it runs without `--dry-run`, and it should run only when the operator explicitly accepts that validation.52- If the task only needs a safe payload preview on a real event, prefer `try-send --dry-run --ack-risk`; treat that as validation of command shape, not proof that delivery completed.53- `notification page list` is backed by message-detail pages, not by raw resend attempts. A resend can update an existing detail row and append records under it instead of creating a new top-level page row.54- Delivery history can lag behind resend or `try-send`, so reread `notification page list` instead of assuming the first response is final.55- Delivery retries can also be throttled by the event's minimum notification interval, so “no obvious new row yet” is not always a send failure.56- Global notification config and contact points can be healthy even when no rule binds the target event template or severity.57- If the task is really about creating or repairing alert delivery bindings, switch to [`../idmp-workflow-alert-create/SKILL.md`](../idmp-workflow-alert-create/SKILL.md) or [`../idmp-workflow-alert-debug/SKILL.md`](../idmp-workflow-alert-debug/SKILL.md).5859## Evidence of completion6061- A global config read is only complete when the reread exposes the same config or contact-point object you summarized.62- A rule workflow is only complete when the scoped `notify-rules` reread shows the intended binding on the same owner.63- A delivery proof is only complete when `notification page list` or the message-detail reread reflects the send or resend outcome you claimed.6465## Operator workflow66671. Treat `config`, `contact-point`, `default`, and `template` / `templates` as global notification infrastructure.682. Treat `notify-rules` as bindings on elements or element templates, not as global config.693. Use `notification notification templates` before `template get` when no template ID is already known.704. Use `page list` and `details get` for delivery history and message-level troubleshooting.715. Remember that resend visibility is detail-centric: a retry can land as an extra record under an existing detail instead of a brand-new page row.726. Use `try-send --dry-run --ack-risk` for safe preview-only validation, and use non-dry-run `try-send` only when the operator explicitly accepts a real notification side effect.737. After any change, verify by re-reading config or rules and then checking delivery history.7475## Key commands7677```bash78idmp-cli schema notification.config.list79idmp-cli notification config list8081idmp-cli schema notification.list.list82idmp-cli notification list list8384idmp-cli schema notification.notification.templates85idmp-cli notification notification templates8687idmp-cli schema notification.template.get88idmp-cli notification template get --params '{"id":123}'8990idmp-cli schema notification.notify-rules.list-get91idmp-cli notification notify-rules list-get --params '{"elementTemplateId":123}'9293idmp-cli schema notification.page.list94idmp-cli notification page list --params '{"current":1,"size":20}'9596idmp-cli schema notification.try-send.create-post97idmp-cli notification try-send create-post --ack-risk --data '{...}' --params '{"elementTemplateId":123}'9899idmp-cli schema notification.try-send.create100idmp-cli notification try-send create --dry-run --ack-risk --data '{...}' --params '{"elementId":123}'101```102103## Exception and failure handling104105- Global config is missing or disabled: notify rules may exist but delivery still will not happen.106- Contact-point or template reads fail: confirm the current account has notification administration access.107- You need a template read but have no template ID: use `idmp-cli notification notification templates` first, and create a temporary template fixture only if the environment truly has no reusable template to inspect.108- A template rule list is empty: treat that as “no binding exists yet,” not as proof of a delivery outage.109- Dry-run `try-send` succeeds but there is no notification history: that is expected; dry-run only proves the payload shape and preview path.110- Non-dry-run `try-send` runs but no message arrives: inspect contact points, template content, channel settings, and delivery history.111- Delivery history looks empty after resend: widen the paging or time scope, inspect the existing detail row, and consider minimum-interval throttling before deciding no retry was attempted.112113## Validation scenarios1141151. Read global notification config with `idmp-cli notification config list`.1162. List contact points with `idmp-cli notification list list`.1173. List templates with `idmp-cli notification notification templates`, then read one template with `idmp-cli notification template get --params '{"id":123}'`.1184. List template rules with `idmp-cli notification notify-rules list-get --params '{"elementTemplateId":123}'`, or list element rules with `idmp-cli notification notify-rules list --params '{"elementId":123}'` when the scope is element mode.1195. Query delivery history with `idmp-cli notification page list --params '{"current":1,"size":20}'`, or preview a safe element-scoped `try-send` with `idmp-cli notification try-send create --dry-run --ack-risk --data '{...}' --params '{"elementId":123}'` when a live test only needs payload validation.