Notifications
Turn on notifications for a Business Central project following the OCPF BC Agentic Development Framework, so the developer knows whenever the agent finishes…
About this skill
Turn on notifications for a Business Central project following the OCPF BC Agentic Development Framework, so the developer knows whenever the agent finishes a turn, asks a question, or waits for an approval. Asks which kinds the developer wants — Claude app push, sound, desktop notification, or none — records the answer in ocpfFramework/state/notifications.json, and applies it through each AI tool's own notifications and hooks. Nothing to install. Use when the user asks to "turn on notifications", "notify me when you're done", "alert me when it's my turn", or runs /ocpf-bc:notifications on a project set up before notifications existed.
Part of the OnlyCopilotFans BC Agentic Development Framework (ocpf-bc plugin). Source: github.com/ajansari/ocpfBcAgenticDevFramework.
OCPF turn notifications
The runbook turns notifications on at its first step (full framework: PRE-01; Lite: Step 1). Use this skill to do the same on a project that started earlier, or to repair it.
Follow Ops § Notifications in the project's Operations Guide (ocpfFramework/opsGuide/ocpfOperationsGuide.md)
— it has the exact settings, hooks, and record format, and it's the version this project follows. If
the project has no ocpfFramework/opsGuide/ yet (a project started before the guide existed, or a runbook older
than Full v3.0.0.0 / Lite v2.0.0.0), use this plugin's bundled copy in the start skill's
references/ocpfOperationsGuide.md, or fetch
https://raw.githubusercontent.com/ajansari/ocpfBcAgenticDevFramework/main/opsGuide/ocpfOperationsGuide.md.
The procedure is the same for both editions.
Called from the kickoff (since 5.10.0.0 — Ops § Intake → The kickoff boxes, box K2): the
runbook's first step asks the notification question and the Remote Control question in one box,
back to back with the other setup questions, and does nothing between boxes — so when this skill
is invoked with the answer already recorded — in docs/0-project/ProjectMemory.md (Full),
docs/1-define/ProjectParameters.md (Lite), or ocpfFramework/state/feature.json
(Build-a-Feature); this skill then writes ocpfFramework/state/notifications.json from it — it
skips steps 1 and 2 below and runs in
apply-only mode: steps 3 to 5 in the setup batch after the last kickoff box, and the
"did it arrive?" question of step 5 asked in the setup-done box, not on its own. Invoked on its own
(/ocpf-bc:notifications, a repair), it asks as below.
In short:
- Ask one multi-select question through the options mechanism: "Would you like to be notified
at the end of every turn and whenever a question or approval is waiting? Choose any." Offer only
what can work, per
Ops § Notifications, step 1:- Claude app — in Claude Code, always, unless a disqualifier is positively found: an API key, Bedrock, Google Cloud, Foundry, a gateway, or one of the environment variables Ops lists. A sign-in that can't be checked is offered anyway, with the claude.ai-subscription caveat in the option's description. A fresh install, a new machine, an unpaired phone, or Windows is never a reason to drop it — the pairing happens afterwards in the Claude app. (On a real Windows project the option was silently dropped and the human never asked.)
- Sound — always.
- Desktop notification — Copilot Chat or Copilot CLI; Claude Code on Windows or Linux, or in iTerm2, WezTerm, Ghostty, Warp, or Kitty. Not Claude Code's VS Code extension or VS Code's terminal on macOS.
- No notifications — always.
- With Claude app, explain Remote Control (transcripts are stored on Anthropic's servers while it's connected) and ask: only when the human turns it on, or every session on this machine.
- Record the answer in
ocpfFramework/state/notifications.json— per developer, always gitignored. The runbook reads it at the start of every session. - Apply it per
Ops § Notifications, step 3: Claude Code push settings and sound/desktop hooks in.claude/settings.local.json(plusremoteControlAtStartupin~/.claude/settings.jsonfor every-session Remote Control); VS Code user settings for Copilot Chat's own sounds and notifications; user-level~/.copilot/hooks/for Copilot CLI sound. Before writing a user-level file, say it applies to every project on this machine. AddocpfFramework/scripts/to.gitignore, then copyocpf-notify.shorocpf-notify.ps1(Windows PowerShell 5.1; step 5 proves it) from this skill'sscripts/folder into the project'socpfFramework/scripts/folder, exactly, when a hook needs it. A hook's command names the script through the project root:${CLAUDE_PROJECT_DIR}/ocpfFramework/scripts/ocpf-notify.sh sound desktop(Windows:powershell -NoProfile -ExecutionPolicy Bypass -File "%CLAUDE_PROJECT_DIR%\ocpfFramework\scripts\ocpf-notify.ps1" -Sound -Desktop). A project set up before Full v5.0.0.0 / Lite v5.0.0.0 has the script underscripts/and the record at.ocpf/notifications.json; theupdate-frameworkskill's migration moves both and rewrites the hook path — don't patch it here. - Test once, with each hook's exact command — the same interpreter, arguments, and script path the hook names, run from the shell — and ask whether each chosen kind arrived and whether clicking a notification opened the session. A hook is proven by running it, never by having written it: a missing interpreter exits silently (Ops § Notifications → 5).
Never raise an operating-system banner from a script on macOS: clicking one opens Script Editor instead of the session. Never ask the human to edit settings files or shell profiles by hand.
View SKILL.md
---
name: notifications
description: Turn on notifications for a Business Central project following the OCPF BC Agentic Development Framework, so the developer knows whenever the agent finishes a turn, asks a question, or waits for an approval. Asks which kinds the developer wants — Claude app push, sound, desktop notification, or none — records the answer in ocpfFramework/state/notifications.json, and applies it through each AI tool's own notifications and hooks. Nothing to install. Use when the user asks to "turn on notifications", "notify me when you're done", "alert me when it's my turn", or runs /ocpf-bc:notifications on a project set up before notifications existed.
---
# OCPF turn notifications
The runbook turns notifications on at its first step (full framework: PRE-01; Lite: Step 1). Use
this skill to do the same on a project that started earlier, or to repair it.
**Follow `Ops § Notifications` in the project's Operations Guide** (`ocpfFramework/opsGuide/ocpfOperationsGuide.md`)
— it has the exact settings, hooks, and record format, and it's the version this project follows. If
the project has no `ocpfFramework/opsGuide/` yet (a project started before the guide existed, or a runbook older
than Full v3.0.0.0 / Lite v2.0.0.0), use this plugin's bundled copy in the `start` skill's
`references/ocpfOperationsGuide.md`, or fetch
`https://raw.githubusercontent.com/ajansari/ocpfBcAgenticDevFramework/main/opsGuide/ocpfOperationsGuide.md`.
The procedure is the same for both editions.
**Called from the kickoff (since 5.10.0.0 — Ops § Intake → *The kickoff boxes*, box K2):** the
runbook's first step asks the notification question and the Remote Control question in one box,
back to back with the other setup questions, and does nothing between boxes — so when this skill
is invoked **with the answer already recorded** — in `docs/0-project/ProjectMemory.md` (Full),
`docs/1-define/ProjectParameters.md` (Lite), or `ocpfFramework/state/feature.json`
(Build-a-Feature); this skill then writes `ocpfFramework/state/notifications.json` from it — it
skips steps 1 and 2 below and runs in
**apply-only mode**: steps 3 to 5 in the setup batch after the last kickoff box, and the
"did it arrive?" question of step 5 asked in the setup-done box, not on its own. Invoked on its own
(`/ocpf-bc:notifications`, a repair), it asks as below.
In short:
1. **Ask one multi-select question** through the options mechanism: *"Would you like to be notified
at the end of every turn and whenever a question or approval is waiting? Choose any."* Offer only
what can work, per `Ops § Notifications`, step 1:
- *Claude app* — **in Claude Code, always, unless a disqualifier is positively found**: an API
key, Bedrock, Google Cloud, Foundry, a gateway, or one of the environment variables Ops lists.
A sign-in that can't be checked is offered anyway, with the claude.ai-subscription caveat in
the option's description. A fresh install, a new machine, an unpaired phone, or Windows is
never a reason to drop it — the pairing happens afterwards in the Claude app. (On a real
Windows project the option was silently dropped and the human never asked.)
- *Sound* — always.
- *Desktop notification* — Copilot Chat or Copilot CLI; Claude Code on Windows or Linux, or in
iTerm2, WezTerm, Ghostty, Warp, or Kitty. Not Claude Code's VS Code extension or VS Code's
terminal on macOS.
- *No notifications* — always.
2. **With *Claude app*, explain Remote Control** (transcripts are stored on Anthropic's servers
while it's connected) and ask: only when the human turns it on, or every session on this machine.
3. **Record the answer in `ocpfFramework/state/notifications.json`** — per developer, always gitignored. The
runbook reads it at the start of every session.
4. **Apply it** per `Ops § Notifications`, step 3: Claude Code push settings and sound/desktop hooks in
`.claude/settings.local.json` (plus `remoteControlAtStartup` in `~/.claude/settings.json` for
every-session Remote Control); VS Code user settings for Copilot Chat's own sounds and
notifications; user-level `~/.copilot/hooks/` for Copilot CLI sound. Before writing a user-level
file, say it applies to every project on this machine. Add `ocpfFramework/scripts/` to `.gitignore`, then copy
`ocpf-notify.sh` or `ocpf-notify.ps1` (Windows PowerShell 5.1; step 5 proves it) from this skill's `scripts/` folder
into the project's `ocpfFramework/scripts/` folder, exactly, when a hook needs it. A hook's
command names the script through the project root:
`${CLAUDE_PROJECT_DIR}/ocpfFramework/scripts/ocpf-notify.sh sound desktop` (Windows:
`powershell -NoProfile -ExecutionPolicy Bypass -File "%CLAUDE_PROJECT_DIR%\ocpfFramework\scripts\ocpf-notify.ps1" -Sound -Desktop`).
A project set up before Full v5.0.0.0 / Lite v5.0.0.0 has the script under `scripts/` and the
record at `.ocpf/notifications.json`; the `update-framework` skill's migration moves both and
rewrites the hook path — don't patch it here.
5. **Test once, with each hook's exact command** — the same interpreter, arguments, and script
path the hook names, run from the shell — and ask whether each chosen kind arrived and whether
clicking a notification opened the session. A hook is proven by running it, never by having
written it: a missing interpreter exits silently (Ops § Notifications → 5).
Never raise an operating-system banner from a script on macOS: clicking one opens Script Editor
instead of the session. Never ask the human to edit settings files or shell profiles by hand.
Files in v1.0.0
| Path | Size |
|---|---|
| scripts/ocpf-notify.ps1 | 2.2 KB |
| scripts/ocpf-notify.sh | 3.3 KB |
| SKILL.md | 5.5 KB |
Related skills
AL MCP Setup
Connect the AI to Microsoft's AL tools (build, compile, symbols, diagnostics) for a Business Central AL project, with nothing to install, using the AL…
Analyze
Analyze and document an existing Business Central AL extension that is NOT well documented - written by a human, vibe-coded, or built by an agent that…
App Icon
Create the app icon of a Business Central extension when the human has none - on every OCPF BC Agentic Development Framework journey (Full PRE-01, Lite Step…
AL Standards
The OnlyCopilotFans (OCPF) AL Development Standards Guide for Microsoft Dynamics 365 Business Central - coding standards, API page design, field inclusion,…
Build A Feature
The Build-a-Feature journey of the OCPF BC Agentic Development Framework - quick, tactical customizations of Business Central in a new or existing…
Skill Load
Load one or more Custom Skills - third-party skills made for the OCPF BC Agentic Development Framework - into a new or existing Business Central project,…