Agent skill · software engineering · jeremylongshore
apple-notes-ci-integration
Run Apple Notes automation in CI on macOS runners.
Why this skill is useful
Adds a mock client implementation and CI workflow for Apple Notes automation that the AI wouldn't reliably generate on its own.
What it needs
Requires node installed locally. About 3k tokens when loaded. Last updated 2026-08-07. 2,604 stars on the source repository.
What this skill does
Apple Notes CI Integration Overview Apple Notes automation is macOS-only because it depends on the Apple Events subsystem and Notes.app. CI pipelines must use GitHub Actions macOS runners (macos-latest or macos-14). However, macOS CI runners have restricted TCC (Transparency, Consent, and Control) permissions, which means direct Notes.app automation via osascript will fail in CI. The standard pattern is to run unit tests against a mock JXA client in CI, and reserve real Notes.app integration tests for local macOS machines or self-hosted runners with pre-granted automation permissions. Prerequisites A Node 20+ project with deterministic dependencies and a mockable Notes client boundary. A macOS runner only for syntax and mock tests; do not treat a GitHub-hosted runner as eligible for real Notes access. A separately administered self-hosted Mac for opt-in integration tests, with an interactive user session and TCC consent granted through normal macOS or MDM controls. Instructions 1. Keep unit tests independent of Notes.app by injecting the mock client shown below. 2. Run npm ci, lint, and mocked tests on every pull request. 3. Gate any real integration job behind an explicit repository environment and a self-hosted runner label; do not run it for forks or untrusted pull requests. 4. Record the macOS version and the job's test mode (mock or integration) in the job summary so a green mock job is not misread as device coverage. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills jeremylongshore/apple-notes-ci-integration--0b12b3