Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/maintainers/hermes-compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ Socket tap. The curated set is:
- `bootstrap-skills-plugin-repo`
- `hermes-agent-compatibility`
- `sync-skills-repo-guidance`
- `app-extension-architecture-workflow`
- `mailkit-workflow`
- `file-provider-and-finder-sync-workflow`

```bash
hermes skills tap add gaelic-ghost/socket
Expand Down
13 changes: 10 additions & 3 deletions plugins/apple-dev-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "apple-dev-skills",
"version": "9.11.0",
"description": "Apple development workflows for Codex, including App Intents, Liquid Glass, PhotosUI/PhotoKit, VideoToolbox codecs, ARKit spatial/face/body sensing, camera/depth capture, Core Image, Image I/O, Vision/Core ML recognition, media/audio repair, local Tips/HelpViewer guide discovery, provisioning, CloudKit, TipKit, SwiftData, SwiftUI, XcodeGen, Core Animation, AppKit, Safari, security, OpenAPI, and DocC.",
"description": "Apple development workflows for Codex, including app extensions, MailKit, File Provider, Finder Sync, App Intents, Liquid Glass, PhotosUI/PhotoKit, VideoToolbox codecs, ARKit spatial/face/body sensing, camera/depth capture, Core Image, Image I/O, Vision/Core ML recognition, media/audio repair, local Tips/HelpViewer guide discovery, provisioning, CloudKit, TipKit, SwiftData, SwiftUI, XcodeGen, Core Animation, AppKit, Safari, security, OpenAPI, and DocC.",
"author": {
"name": "Gale",
"email": "mail@galewilliams.com",
Expand Down Expand Up @@ -60,6 +60,10 @@
"swiftui",
"app-intents",
"app-shortcuts",
"app-extension",
"mailkit",
"file-provider",
"finder-sync",
"liquid-glass",
"swiftui-performance",
"instruments",
Expand Down Expand Up @@ -96,8 +100,8 @@
"mcpServers": "./.mcp.json",
"interface": {
"displayName": "Apple Dev Skills",
"shortDescription": "Apple, Swift, image/media repair, SwiftUI, TipKit, Xcode, AppKit, Safari, security, OpenAPI, and DocC workflows for Codex.",
"longDescription": "Bundle Apple-platform development skills for PhotosUI selection and PhotoKit libraries/editing, VideoToolbox codecs, Core Video buffers, compressed samples, color/HDR, ARKit spatial/face/body sensing, world tracking, scene depth, LiDAR meshes and visionOS providers, AVFoundation camera/photo/depth/computational capture, Core Image, Image I/O, Apple Vision, custom Core ML recognition, AppKit/UIKit/Core Graphics images, AVFAudio, AVAudioEngine, AVFoundation media pipelines, Core Media, Core Audio, TipKit, XcodeGen migration, Xcode coding intelligence and String Catalog localization, Swift, SwiftUI, Core Animation, Apple typography, SF Symbols, AppKit, Icon Composer, Safari, DeviceCheck and App Attest, Swift OpenAPI clients, Xcode, SwiftPM, DocC, testing, formatting, and repository guidance. Most workflows work standalone; bootstrap and guidance-sync workflows require the companion Productivity Skills plugin, or the socket marketplace that installs both.",
"shortDescription": "Apple extension, MailKit, File Provider, Swift, image/media repair, SwiftUI, TipKit, Xcode, AppKit, Safari, security, OpenAPI, and DocC workflows for Codex.",
"longDescription": "Bundle Apple-platform development skills for app extension architecture, MailKit, File Provider and Finder Sync, PhotosUI selection and PhotoKit libraries/editing, VideoToolbox codecs, Core Video buffers, compressed samples, color/HDR, ARKit spatial/face/body sensing, world tracking, scene depth, LiDAR meshes and visionOS providers, AVFoundation camera/photo/depth/computational capture, Core Image, Image I/O, Apple Vision, custom Core ML recognition, AppKit/UIKit/Core Graphics images, AVFAudio, AVAudioEngine, AVFoundation media pipelines, Core Media, Core Audio, TipKit, XcodeGen migration, Xcode coding intelligence and String Catalog localization, Swift, SwiftUI, Core Animation, Apple typography, SF Symbols, AppKit, Icon Composer, Safari, DeviceCheck and App Attest, Swift OpenAPI clients, Xcode, SwiftPM, DocC, testing, formatting, and repository guidance. Most workflows work standalone; bootstrap and guidance-sync workflows require the companion Productivity Skills plugin, or the socket marketplace that installs both.",
"developerName": "Gale",
"category": "Developer Tools",
"capabilities": [
Expand All @@ -114,6 +118,9 @@
"Configure or repair AVFoundation camera discovery, controls, rotation, photo capture, synchronized outputs, depth, calibration, mattes, and computational capture using capability evidence.",
"Implement or repair ARKit world tracking, planes, ray casting, scene depth, LiDAR reconstruction, meshes, maps, relocalization, and visionOS provider lifecycles.",
"Implement or repair ARKit TrueDepth face geometry, blend shapes, eye transforms, body anchors, skeletons, scale, privacy, and Face ID boundaries.",
"Choose an Apple app extension point and design its target, isolated process, activation, entitlements, app-group data flow, privacy, signing, distribution, and validation boundaries.",
"Build or validate a macOS MailKit extension for content blocking, message actions, compose sessions, or message security without exposing private mail data.",
"Choose File Provider for remote storage synchronization or Finder Sync for bounded Finder badges, menus, and monitored-folder visibility without treating Finder Sync as a sync engine.",
"Implement or repair VideoToolbox compression and decompression, Core Video pixel buffers and Metal interop, compressed samples, hardware capability, color, HDR, and codec performance.",
"Implement or repair PhotosUI media selection and PhotoKit authorization, assets, resources, iCloud requests, library changes, saves, albums, and nondestructive editing.",
"Explore the relevant Apple docs first, then explain the right SwiftUI, AppKit, or Xcode path for this repository.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,9 @@ sync_one \
"$ROOT_DIR/skills/swiftui-animation-workflow/references/snippets/apple-xcode-project-core.md" \
"$ROOT_DIR/skills/tipkit-workflow/references/snippets/apple-xcode-project-core.md" \
"$ROOT_DIR/skills/safari-extension-control-workflow/references/snippets/apple-xcode-project-core.md" \
"$ROOT_DIR/skills/app-extension-architecture-workflow/references/snippets/apple-xcode-project-core.md" \
"$ROOT_DIR/skills/mailkit-workflow/references/snippets/apple-xcode-project-core.md" \
"$ROOT_DIR/skills/file-provider-and-finder-sync-workflow/references/snippets/apple-xcode-project-core.md" \
"$ROOT_DIR/skills/devicecheck-app-attest-workflow/references/snippets/apple-xcode-project-core.md" \
"$ROOT_DIR/skills/apple-developer-provisioning-workflow/references/snippets/apple-xcode-project-core.md" \
"$ROOT_DIR/skills/swiftui-app-architecture-workflow/references/snippets/apple-xcode-project-core.md" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,9 @@ active_skill_mds=(
"./skills/sf-symbols-workflow/SKILL.md"
"./skills/swiftui-animation-workflow/SKILL.md"
"./skills/safari-extension-control-workflow/SKILL.md"
"./skills/app-extension-architecture-workflow/SKILL.md"
"./skills/mailkit-workflow/SKILL.md"
"./skills/file-provider-and-finder-sync-workflow/SKILL.md"
"./skills/devicecheck-app-attest-workflow/SKILL.md"
"./skills/apple-developer-provisioning-workflow/SKILL.md"
"./skills/appkit-app-architecture-workflow/SKILL.md"
Expand All @@ -157,7 +160,7 @@ active_skill_mds=(
"./skills/xcode-coding-intelligence-workflow/SKILL.md"
"./skills/xcode-localization-workflow/SKILL.md"
)
[[ ${#active_skill_mds[@]} -eq 50 ]] || fail "Expected exactly 50 active skills, found ${#active_skill_mds[@]}."
[[ ${#active_skill_mds[@]} -eq 53 ]] || fail "Expected exactly 53 active skills, found ${#active_skill_mds[@]}."

shared_xcode_snippet="./shared/agents-snippets/apple-xcode-project-core.md"
shared_package_snippet="./shared/agents-snippets/apple-swift-package-core.md"
Expand Down Expand Up @@ -258,6 +261,9 @@ for file in \
"skills/sf-symbols-workflow/SKILL.md" \
"skills/swiftui-animation-workflow/SKILL.md" \
"skills/safari-extension-control-workflow/SKILL.md" \
"skills/app-extension-architecture-workflow/SKILL.md" \
"skills/mailkit-workflow/SKILL.md" \
"skills/file-provider-and-finder-sync-workflow/SKILL.md" \
"skills/devicecheck-app-attest-workflow/SKILL.md" \
"skills/appkit-app-architecture-workflow/SKILL.md" \
"skills/swiftui-app-architecture-workflow/SKILL.md" \
Expand Down
3 changes: 2 additions & 1 deletion plugins/apple-dev-skills/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ This file is the Apple Dev Skills child-repo override for work done from `socket

## Scope

- This repository is the canonical home for Gale's Apple, Swift, and Xcode workflow skills.
- This repository is the canonical home for Gale's Apple, Swift, and Xcode workflow skills. It also owns reusable app-extension mechanics, MailKit, File Provider, and Finder Sync workflow guidance.
- Treat `productivity-skills` as the default baseline maintainer layer for general repo docs and maintenance work; this repo is the narrower specialist layer when Apple-specific behavior should change the workflow.
- Treat `swift-lang` as the shared Swift language layer when it is available through Socket. Keep Apple Dev focused on Apple documentation, Apple frameworks, Xcode project integrity, platform app architecture, DocC, SPI, and execution handoffs.
- Keep reusable app-extension mechanics, MailKit, and File Provider/Finder Sync boundaries here. Keep Messages/iMessage collaboration, communication-notification policy, VoIP, and Push to Talk workflows in Messaging Collaboration Skills.
- Preserve standalone-install guidance for public users who install only `apple-dev-skills`, while allowing the public README quickstart to lead with the Socket marketplace when users want Apple Dev Skills plus companion workflows from one catalog.
- Root `skills/` is the canonical authored and exported surface.
- Keep shared reusable assets in [`shared/`](./shared/) and maintainer tests in [`tests/`](./tests/).
Expand Down
8 changes: 7 additions & 1 deletion plugins/apple-dev-skills/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# apple-dev-skills

Apple, Swift, image and video processing, Vision and Core ML recognition, camera and depth capture, ARKit spatial sensing, Photos, audio and media pipelines, SwiftUI animation and architecture, Core Animation, Apple typography, SF Symbols, AppKit, Apple Developer provisioning, CloudKit, Icon Composer app icons, Safari, DeviceCheck, App Attest, Xcode, Swift OpenAPI client, DocC, and `Dash.app` workflows for Codex.
Apple app extensions, MailKit, File Provider, Finder Sync, Swift, image and video processing, Vision and Core ML recognition, camera and depth capture, ARKit spatial sensing, Photos, audio and media pipelines, SwiftUI animation and architecture, Core Animation, Apple typography, SF Symbols, AppKit, Apple Developer provisioning, CloudKit, Icon Composer app icons, Safari, DeviceCheck, App Attest, Xcode, Swift OpenAPI client, DocC, and `Dash.app` workflows for Codex.

![Codex plugin directory filtered to the Socket marketplace, showing Apple Dev Skills listed alongside companion plugins below a Productivity Skills suggestion.](./docs/media/codex-plugin-directory-socket-apple-dev-skills.png)

Expand Down Expand Up @@ -68,6 +68,9 @@ Use Apple Dev Skills when an agent is helping with:
- AVFoundation camera discovery, controls, rotation, photo capture, depth, calibration, synchronized outputs, mattes, and computational-capture diagnostics
- ARKit world tracking, planes, ray casting, scene depth, LiDAR reconstruction, meshes, maps, relocalization, and visionOS provider guidance
- ARKit TrueDepth face geometry, blend shapes, eye transforms, body anchors, skeletons, scale estimation, privacy, and authentication boundaries
- Apple app-extension point selection, target ownership, process isolation, activation, entitlements, app groups/shared containers, privacy, signing, distribution, and validation handoffs
- macOS MailKit content blocking, message actions, compose sessions, message security, privacy, capability declarations, and handler validation
- Modern File Provider remote-storage synchronization, plus bounded Finder Sync badges, menus, selected-item context, and monitored-folder visibility
- VideoToolbox compression/decompression, Core Video pixel buffers and pools, Core Media compressed samples, hardware capability, color/HDR, and codec diagnostics
- Privacy-preserving PhotosUI selection and PhotoKit authorization, assets, resources, iCloud delivery, changes, creation, albums, and nondestructive editing
- Swift and SwiftUI implementation
Expand Down Expand Up @@ -144,6 +147,7 @@ uv run pytest
- `arkit-face-body-tracking-workflow`
- `arkit-spatial-sensing-workflow`
- `appkit-app-architecture-workflow`
- `app-extension-architecture-workflow`
- `app-intents-workflow`
- `author-swift-docc-docs`
- `avaudio-engine-workflow`
Expand All @@ -163,10 +167,12 @@ uv run pytest
- `explore-apple-swift-docs`
- `feedback-assistant-workflow`
- `format-swift-sources`
- `file-provider-and-finder-sync-workflow`
- `icon-composer-app-icon-workflow`
- `ios-runtime-forensics-workflow`
- `macos-distribution-workflow`
- `macos-window-management-workflow`
- `mailkit-workflow`
- `migrate-xcode-project-to-xcodegen`
- `photos-library-editing-workflow`
- `safari-extension-control-workflow`
Expand Down
30 changes: 30 additions & 0 deletions plugins/apple-dev-skills/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ Swift naming and persistence ownership are now standardized: each project explic
- [Milestone 63: System Integration, Runtime Evidence, and Distribution](#milestone-63-system-integration-runtime-evidence-and-distribution)
- [Milestone 64: Xcode String Catalog Localization Workflow](#milestone-64-xcode-string-catalog-localization-workflow)
- [Milestone 65: Feedback Assistant Workflow](#milestone-65-feedback-assistant-workflow)
- [Milestone 66: App Extension, MailKit, and File Provider Workflows](#milestone-66-app-extension-mailkit-and-file-provider-workflows)
- [Backlog Candidates](#backlog-candidates)
- [History](#history)

Expand Down Expand Up @@ -102,6 +103,7 @@ Swift naming and persistence ownership are now standardized: each project explic
- Milestone 63: System Integration, Runtime Evidence, and Distribution - In Progress
- Milestone 64: Xcode String Catalog Localization Workflow - Completed
- Milestone 65: Feedback Assistant Workflow - Completed
- Milestone 66: App Extension, MailKit, and File Provider Workflows - Completed

## Milestone 21: Swift Cleanup Automation Exploration

Expand Down Expand Up @@ -1234,6 +1236,34 @@ Completed

Completed Milestone 65 by shipping `feedback-assistant-workflow` with Apple-aligned report and diagnostic guidance, a live signed-in macOS app fixture, strict attachment and submission gates, and `LanguageModelSession.logFeedbackAttachment` guidance for Foundation Models session feedback.

## Milestone 66: App Extension, MailKit, and File Provider Workflows

### Status

Completed

### Scope

- [x] Add reusable app-extension architecture guidance for extension points, target ownership, separate-process lifecycle, activation, entitlements, App Groups/shared containers, data flow, privacy, testing, signing, distribution, and handoffs.
- [x] Add a focused macOS MailKit workflow for content blockers, message actions, compose sessions, message security, capability declarations, and privacy-safe validation.
- [x] Add a focused File Provider/Finder Sync workflow that selects File Provider for remote storage synchronization and strictly limits Finder Sync to monitored-folder badges, menus, and visibility.
- [x] Preserve Messaging Collaboration ownership for Messages/iMessage collaboration, communication-notification policy, VoIP, and Push to Talk.

### Tickets

- [x] Use [`app-extension-workflows-plan.md`](./docs/maintainers/app-extension-workflows-plan.md) as the durable ownership and delivery record.
- [x] Add the three skills with Apple documentation anchors, interface metadata, customization contracts, shared Xcode project references, and explicit Xcode/testing/distribution handoffs.
- [x] Update Apple Dev Skills metadata, active inventory, README, AGENTS guidance, docs validator, customization review, and targeted tests.
- [x] Export the portable instruction-only skills to the root Hermes tap and validate the generated inventory without representing the Codex plugin bundle as a Hermes plugin.

### Exit Criteria

- [x] App-extension mechanics, MailKit, and File Provider/Finder Sync each have a focused owner with no generic catch-all extension layer.
- [x] Finder Sync never claims remote synchronization ownership, and MailKit guidance preserves user privacy and explicit message-security behavior.
- [x] Apple Dev docs, metadata, tests, root Socket metadata, and Hermes compatibility validation agree on the shipped surface.

Completed Milestone 66 by shipping `app-extension-architecture-workflow`, `mailkit-workflow`, and `file-provider-and-finder-sync-workflow` with Apple-docs-first boundaries, explicit Messaging Collaboration handoffs, and a validated Hermes skill-tap export.

## Backlog Candidates

- [ ] Record plausible future work that is not yet committed to a milestone.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# App Extension Workflows Plan

## Decision

Apple Dev Skills owns reusable Apple app-extension mechanics plus the specific macOS MailKit and File Provider/Finder Sync workflows. This is a durable building-block change: it removes the gap between app-level architecture skills and extension-specific framework work without adding a generic extension framework or absorbing product policy.

## Owned Workflows

- `app-extension-architecture-workflow` routes extension points, targets, separate processes, lifecycle, activation, entitlement minimization, App Groups/shared containers, typed data flow, privacy, testing, signing, distribution, and focused handoffs.
- `mailkit-workflow` owns macOS MailKit content blockers, message actions, compose sessions, message security, capability declarations, privacy, and handler validation.
- `file-provider-and-finder-sync-workflow` owns remote storage synchronization through File Provider and constrains Finder Sync to monitored-folder badges, menus, selected-item context, and visibility.

## Explicit Non-Goals

- Do not turn this slice into a catch-all guide for every extension point.
- Do not place Messages/iMessage collaboration, communication-notification policy, VoIP, or Push to Talk behavior here; Messaging Collaboration Skills owns those product workflows.
- Do not make Finder Sync a sync engine. File Provider owns remote storage enumeration, materialization, document operations, remote change signaling, and recovery.
- Do not move server transport, storage protocol, or backend persistence ownership into Apple Dev Skills.

## Documentation Evidence

The shipped workflows cite Apple documentation for the separate-process app-extension model, MailKit handler capabilities, File Provider synchronization and working sets, Finder Sync controller UI, App Groups, and per-target signing/distribution boundaries. A current Xcode documentation search is required before future platform-behavior changes.

## Delivery Checklist

- [x] Add the three bounded skills with interface metadata, customization contract, shared Xcode policy reference, and authoritative Apple source links.
- [x] Add targeted tests and update the active inventory, plugin manifest, README, AGENTS guidance, docs validator, and customization review.
- [x] Export the portable instruction-only skills through the checked-in Hermes skill tap, group them, and validate the export.
- [x] Keep MailKit/File Provider/Finder Sync as product-specific handoffs from reusable extension mechanics.
- [ ] Validate a real app target for each framework only when a consumer app supplies the concrete project, signing identity, and service/backend context.
Loading