Agent Skills: Apple Notes CI Integration

|

UncategorizedID: jeremylongshore/claude-code-plugins-plus-skills/apple-notes-ci-integration

Install this agent skill to your local

pnpm dlx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/tree/HEAD/plugins/saas-packs/apple-notes-pack/skills/apple-notes-ci-integration

Skill Files

Browse the full folder contents for apple-notes-ci-integration.

Download Skill

Loading file tree…

plugins/saas-packs/apple-notes-pack/skills/apple-notes-ci-integration/SKILL.md

Skill Metadata

Name
apple-notes-ci-integration
Description
|

Apple Notes CI Integration

Overview

Apple Notes automation requires macOS — use GitHub Actions macOS runners.

GitHub Actions Workflow

name: Notes Automation Tests
on: [push]

jobs:
  test:
    runs-on: macos-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: "20" }
      - run: npm ci
      - name: Test Notes access
        run: |
          # macOS CI runners have Notes.app but limited permissions
          osascript -l JavaScript -e "typeof Application(\"Notes\")" || echo "Notes not available in CI"
      - name: Run unit tests (mocked)
        run: npm test

Important Limitation

macOS CI runners (GitHub Actions) have restricted Apple Events permissions. Real Notes.app automation tests must run on local macOS machines. Use mocked clients in CI.

// tests/mocks/notes-client.mock.ts
export class MockAppleNotesClient {
  private notes: Array<{ id: string; title: string; body: string }> = [];

  createNote(title: string, body: string): string {
    const id = `note-${Date.now()}`;
    this.notes.push({ id, title, body });
    return id;
  }

  listNotes() { return this.notes; }
  searchNotes(q: string) { return this.notes.filter(n => n.title.includes(q)); }
}

Resources