active/gen-notifier/SKILL.md
Top-level agents only: send exactly one final-state desktop notification before the final report.
npx skillsauth add kevinslin/skills gen-notifierInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill sends desktop notifications using terminal-notifier to alert the user when a job has reached its final terminal state.
Use this skill in the following scenarios:
Use this skill only once per job, at the very end, after the work is finalized and immediately before you generate the final user-facing report.
Do not send a desktop notification for chronicle-related threads unless the user explicitly asks to override this suppression for that thread.
Treat a thread as chronicle-related when the primary work is about chronicle memory/resources, chronicle rollout summaries, or communication-triage workflows sourced from chronicle data.
This suppression overrides the default "notify for all jobs" behavior, including long-running tasks.
When a job reaches a finalized terminal state (completed, needs_input, or errors), send a notification using:
terminal-notifier -title "{DESCRIPTION OF JOB}" -message "{STATUS_OF_JOB} — click to open task" -sound default -open "codex://threads/{THREAD_ID}"
The -sound default parameter makes a beeping sound to alert the user audibly.
When the thread ID for the Codex task receiving the final report is available, make the entire notification clickable with -open "codex://threads/{THREAD_ID}".
^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$-open and keep the original status-only message-execute; it invokes a shell when clicked and creates avoidable injection risk-sender or -activate; they change app identity or only bring an app forward instead of opening the taskUse one of these status values in the message:
The title should be a concise description of the job (3-8 words):
Good examples:
Bad examples:
terminal-notifier -title "API Integration Implementation" -message "completed — click to open task" -sound default -open "codex://threads/{THREAD_ID}"
terminal-notifier -title "Database Migration Setup" -message "needs_input — click to open task" -sound default -open "codex://threads/{THREAD_ID}"
terminal-notifier -title "Build and Test Suite" -message "errors — click to open task" -sound default -open "codex://threads/{THREAD_ID}"
Send the notification only when both conditions are true:
Order of operations:
Don't send notifications for:
User: "Implement the new authentication feature and notify me when done"
Assistant steps:
User: "Set up the database migration"
Assistant steps:
User: "Run the full test suite and notify me"
Assistant steps:
Always send the notification after the job is finalized and immediately before the final user-facing report:
Assistant: I've completed implementing the authentication feature...
[Details of what was done]
[Runs terminal-notifier command]
[Final report to the user]
If terminal-notifier is not installed, gracefully inform the user:
I attempted to send a notification but terminal-notifier is not installed.
You can install it with: brew install terminal-notifier
For multiple sub-tasks within a larger job, only send ONE notification for the entire job:
❌ Bad - multiple notifications:
- Notification: "User model created"
- Notification: "API endpoint created"
- Notification: "Tests written"
- Notification: "Authentication complete"
✅ Good - single notification:
- Notification: "Authentication Feature" -message "completed — click to open task" -sound default -open "codex://threads/{THREAD_ID}"
This skill requires terminal-notifier to be installed:
brew install terminal-notifier
Check if installed:
which terminal-notifier
development
Create, rename, audit, or close a tracked Codex task whose turns and status are persisted in the local thread ledger. Only use when directly invoked.
testing
Manage Git preflight, branch and worktree creation, and completed-work cleanup. Use when explicitly invoked.
databases
Automatically use for durable knowledge, configured project-context lookup, and schema-backed artifact layouts.
content-media
Create, update, or optimize skills and SKILL.md content.