bcdev.ai & bcbuilder.ai

Notifications

Turn on notifications for a Business Central project following the OCPF BC Agentic Development Framework, so the developer knows whenever the agent finishes…

PolyForm ShieldContains scriptsbcdev.ai & bcbuilder.ai
No ratings yet↓ 0 downloadsby AJ Ansari· OnlyCopilotFans

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:

  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.

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

PathSize
scripts/ocpf-notify.ps12.2 KB
scripts/ocpf-notify.sh3.3 KB
SKILL.md5.5 KB
bcdev.ai & bcbuilder.ai

AL MCP Setup

ocpf_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…

bcdev.ai & bcbuilder.aiPolyForm Shield
No ratings yet↓ 3by AJ Ansari · OnlyCopilotFans
bcdev.ai & bcbuilder.ai

Analyze

ocpf_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…

bcdev.ai & bcbuilder.aiPolyForm Shield
No ratings yet↓ 3by AJ Ansari · OnlyCopilotFans
bcdev.ai & bcbuilder.ai

App Icon

ocpf_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…

bcdev.ai & bcbuilder.aiPolyForm Shield
No ratings yet↓ 3by AJ Ansari · OnlyCopilotFans
bcdev.ai & bcbuilder.ai

AL Standards

ocpf_al_standards

The OnlyCopilotFans (OCPF) AL Development Standards Guide for Microsoft Dynamics 365 Business Central - coding standards, API page design, field inclusion,…

bcdev.ai & bcbuilder.aiPolyForm Shield
No ratings yet↓ 2by AJ Ansari · OnlyCopilotFans
bcdev.ai & bcbuilder.ai

Build A Feature

ocpf_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…

bcdev.ai & bcbuilder.aiPolyForm Shield
No ratings yet↓ 2by AJ Ansari · OnlyCopilotFans
bcdev.ai & bcbuilder.ai

Skill Load

ocpf_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,…

bcdev.ai & bcbuilder.aiPolyForm Shield
No ratings yet↓ 2by AJ Ansari · OnlyCopilotFans

More bcdev.ai & bcbuilder.ai skills

Ratings and reviews

No ratings yet. Be the first to review this skill.
5 ★
0
4 ★
0
3 ★
0
2 ★
0
1 ★
0