apple-agent-kit 1.0.3 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -61
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](CHANGELOG.md)
|
|
6
6
|
|
|
7
7
|
Status: Stable
|
|
8
|
-
Version:
|
|
8
|
+
Version: 2.2.0
|
|
9
9
|
|
|
10
10
|
## Overview
|
|
11
11
|
|
|
@@ -47,76 +47,61 @@ Skills
|
|
|
47
47
|
↓
|
|
48
48
|
Workflows
|
|
49
49
|
|
|
50
|
-
##
|
|
51
|
-
|
|
52
|
-
Skills route a task to the minimum set of Knowledge Contracts it needs. Invoke them with a specific task, not a broad topic request — name the concrete thing you're doing (e.g. "check this screen's layout against HIG"), not "tell me about HIG."
|
|
53
|
-
|
|
54
|
-
- **`authentication`** — Routes sign-in, sign-up, credential, and biometric implementation tasks to Authentication Knowledge Contracts.
|
|
55
|
-
Example: `"add a Face ID unlock option to my login screen"` → `knowledge.authentication.authentication`, `knowledge.authentication.accessibility-forms`
|
|
56
|
-
|
|
57
|
-
- **`style-guide`** — Routes UI copy and wording tasks (button labels, error text, capitalization, punctuation, inclusive writing, formatting) to Style Guide Knowledge Contracts.
|
|
58
|
-
Example: `"what's the correct label for a destructive delete button"` → `general-button-labels.md`
|
|
59
|
-
|
|
60
|
-
- **`human-interface-guidelines`** — Routes iOS/iPadOS visual design tasks (layout, color, typography, dark mode, materials, motion, icons, branding, accessibility-design, privacy UI, RTL) to HIG Foundations Knowledge Contracts.
|
|
61
|
-
Example: `"check this screen's layout against HIG"` → `layout.md` (+ `right-to-left.md` if relevant)
|
|
62
|
-
Example: `"does my dark mode palette meet contrast guidance"` → `dark-mode.md`, `color.md`
|
|
63
|
-
|
|
64
|
-
- **`human-interface-guidelines-components`** — Routes iOS/iPadOS Components/Inputs design tasks (lists and tables, buttons, sheets, alerts, action sheets, navigation bars, tab bars, pickers, toggles, text fields, menus, touchscreen gestures) to HIG Components Knowledge Contracts.
|
|
65
|
-
Example: `"review this list screen's layout against HIG"` → `lists-and-tables.md`
|
|
66
|
-
Example: `"when should I use an action sheet instead of an alert"` → `action-sheets.md`
|
|
67
|
-
|
|
68
|
-
- **`human-interface-guidelines-patterns`** — Routes iOS/iPadOS Patterns design tasks (onboarding, searching, settings, notifications, feedback, undo/redo) to HIG Patterns Knowledge Contracts.
|
|
69
|
-
Example: `"design an onboarding flow for a fitness app"` → `onboarding.md`
|
|
70
|
-
Example: `"how should notification content be worded and when should we send one"` → `notifications.md`
|
|
50
|
+
## Workflows
|
|
71
51
|
|
|
72
|
-
|
|
73
|
-
Example: `"why would this in-app subscription get rejected"` → `digital-goods-iap.md`, `restore-purchases.md`
|
|
74
|
-
Example: `"what needs to go in my PrivacyInfo.xcprivacy"` → `privacy-manifest.md`
|
|
52
|
+
A Workflow composes several Skills into one task that no single domain owns. Routing matches Workflows first: if the task spans more than one of the Skills a Workflow names, that Workflow is loaded and sequences them; otherwise exactly one Skill is loaded.
|
|
75
53
|
|
|
76
|
-
- **`
|
|
77
|
-
|
|
78
|
-
|
|
54
|
+
- **`authentication`** — Build a sign-in feature end to end: wording, form accessibility, Sign in with Apple, biometric re-auth, Keychain storage. → [WORKFLOW.md](workflows/authentication/WORKFLOW.md)
|
|
55
|
+
- **`app-store-submission`** — Review-guideline compliance and privacy declaration, gated ahead of signing, archive, and export. → [WORKFLOW.md](workflows/app-store-submission/WORKFLOW.md)
|
|
56
|
+
- **`add-widget`** — Widget surface, its configuration and interaction intents, and the background refresh that keeps its timeline current. → [WORKFLOW.md](workflows/add-widget/WORKFLOW.md)
|
|
79
57
|
|
|
80
|
-
|
|
81
|
-
Example: `"why isn't my view fading in smoothly"` → `animation-modifiers.md`
|
|
82
|
-
Example: `"how do I make a card draggable and snap back if released early"` → `drag-gesture.md`
|
|
83
|
-
|
|
84
|
-
- **`accessibility`** — Routes Accessibility API implementation tasks (labels, traits, value/hint, custom actions, element grouping, VoiceOver navigation order, Dynamic Type API, Reduce Motion/Transparency/Increase Contrast, Full Keyboard Access, hidden/decorative elements, accessibility audits) to Accessibility Knowledge Contracts, across SwiftUI and UIKit.
|
|
85
|
-
Example: `"this icon-only button has no VoiceOver label"` → `accessibility-labels.md`
|
|
86
|
-
Example: `"swipe-to-delete row needs a VoiceOver alternative"` → `custom-accessibility-actions.md`
|
|
87
|
-
|
|
88
|
-
- **`uikit`** — Routes UIKit screen-scaffolding implementation tasks (view controller lifecycle/composition, programmatic Auto Layout, navigation, diffable table/collection views, modal presentation) to UIKit Knowledge Contracts.
|
|
89
|
-
Example: `"my child view controller's view isn't showing up correctly"` → `view-controller-composition.md`
|
|
90
|
-
Example: `"how do I animate row insertion in a UITableView"` → `table-view-diffable.md`
|
|
91
|
-
|
|
92
|
-
- **`sf-symbols`** — Routes SF Symbols API implementation tasks (rendering modes, symbol variants, variable value, weight/scale, color/tinting mechanics, custom symbol usage, UIKit SymbolConfiguration) to SF Symbols Knowledge Contracts, across SwiftUI and UIKit.
|
|
93
|
-
Example: `"this status icon should use two colors, one per layer"` → `rendering-modes.md`
|
|
94
|
-
Example: `"how do I show wifi signal strength as a symbol"` → `variable-value-symbols.md`
|
|
95
|
-
|
|
96
|
-
- **`networking`** — Routes URLSession async/await networking implementation tasks (request construction, data fetching, Codable decoding, error handling, task cancellation, session configuration, App Transport Security, authenticated requests) to Networking Knowledge Contracts.
|
|
97
|
-
Example: `"my JSON response isn't decoding, dates are failing"` → `codable-decoding.md`
|
|
98
|
-
Example: `"how do I retry a request after a 401 without an infinite loop"` → `authenticated-requests.md`
|
|
99
|
-
|
|
100
|
-
- **`xcode`** — Routes Xcode project-configuration implementation tasks (build configurations, xcconfig files, schemes/targets, automatic and manual code signing, entitlements/capabilities, archive process, export options) to Xcode Knowledge Contracts.
|
|
101
|
-
Example: `"my archive won't export, wrong provisioning profile"` → `manual-signing-provisioning-profiles.md`
|
|
102
|
-
Example: `"Product > Archive is greyed out"` → `archive-process.md`
|
|
58
|
+
## Skills
|
|
103
59
|
|
|
104
|
-
|
|
105
|
-
Example: `"Face ID prompt shows the wrong icon"` → `availability-and-biometry-type.md`
|
|
106
|
-
Example: `"user is locked out of Face ID after too many failed attempts"` → `error-handling.md`
|
|
60
|
+
Skills route a task to the minimum set of Knowledge Contracts it needs. Invoke them with a specific task, not a broad topic request — name the concrete thing you're doing (e.g. "check this screen's layout against HIG"), not "tell me about HIG."
|
|
107
61
|
|
|
108
|
-
- **`
|
|
109
|
-
|
|
110
|
-
|
|
62
|
+
- **`style-guide`** — UI copy and wording: labels, error text, capitalization, formatting. → [SKILL.md](skills/style-guide/SKILL.md)
|
|
63
|
+
- **`human-interface-guidelines`** — Visual design: layout, color, typography, dark mode, motion, icons. → [SKILL.md](skills/human-interface-guidelines/SKILL.md)
|
|
64
|
+
- **`human-interface-guidelines-components`** — HIG Components/Inputs: lists, buttons, sheets, alerts, navigation, pickers, gestures. → [SKILL.md](skills/human-interface-guidelines-components/SKILL.md)
|
|
65
|
+
- **`human-interface-guidelines-patterns`** — HIG Patterns: onboarding, search, settings, notifications, feedback, undo/redo. → [SKILL.md](skills/human-interface-guidelines-patterns/SKILL.md)
|
|
66
|
+
- **`app-store-review-guidelines`** — App Store submission compliance: safety, metadata, IAP, privacy, intellectual property, ratings. → [SKILL.md](skills/app-store-review-guidelines/SKILL.md)
|
|
67
|
+
- **`swiftui`** — SwiftUI view composition, navigation, layout, state management, and legacy-code migration. → [SKILL.md](skills/swiftui/SKILL.md)
|
|
68
|
+
- **`swiftui-interaction`** — SwiftUI animation and gestures. → [SKILL.md](skills/swiftui-interaction/SKILL.md)
|
|
69
|
+
- **`accessibility`** — Accessibility API (labels, traits, Dynamic Type, VoiceOver, announcements, audits) across SwiftUI/UIKit. → [SKILL.md](skills/accessibility/SKILL.md)
|
|
70
|
+
- **`uikit`** — UIKit screen scaffolding: view controllers, Auto Layout, navigation, diffable views. → [SKILL.md](skills/uikit/SKILL.md)
|
|
71
|
+
- **`uikit-interaction`** — UIKit gestures, animation, view controller transitions, and SwiftUI interop. → [SKILL.md](skills/uikit-interaction/SKILL.md)
|
|
72
|
+
- **`sf-symbols`** — SF Symbols rendering, variants, and configuration across SwiftUI/UIKit. → [SKILL.md](skills/sf-symbols/SKILL.md)
|
|
73
|
+
- **`networking`** — URLSession networking across async/await, completion-handler, and Combine, plus delegates, background transfers, and TLS trust. → [SKILL.md](skills/networking/SKILL.md)
|
|
74
|
+
- **`xcode`** — Xcode project configuration: build settings, signing, entitlements, archive/export, test plans and coverage, project localization. → [SKILL.md](skills/xcode/SKILL.md)
|
|
75
|
+
- **`local-authentication`** — Face ID/Touch ID implementation. → [SKILL.md](skills/local-authentication/SKILL.md)
|
|
76
|
+
- **`app-tracking-transparency`** — App Tracking Transparency / IDFA authorization. → [SKILL.md](skills/app-tracking-transparency/SKILL.md)
|
|
77
|
+
- **`usernotifications`** — UserNotifications framework: local/push scheduling, delegate handling, actions. → [SKILL.md](skills/usernotifications/SKILL.md)
|
|
78
|
+
- **`privacy`** — Privacy Manifest (`PrivacyInfo.xcprivacy`) implementation. → [SKILL.md](skills/privacy/SKILL.md)
|
|
79
|
+
- **`foundation`** — Swift Foundation essentials: date/measurement formatting, Codable, FileManager. → [SKILL.md](skills/foundation/SKILL.md)
|
|
80
|
+
- **`security`** — Keychain Services item CRUD, accessibility levels, sharing. → [SKILL.md](skills/security/SKILL.md)
|
|
81
|
+
- **`storekit`** — StoreKit 2 in-app purchase: purchase, entitlements, subscriptions. → [SKILL.md](skills/storekit/SKILL.md)
|
|
82
|
+
- **`authenticationservices`** — Sign in with Apple implementation. → [SKILL.md](skills/authenticationservices/SKILL.md)
|
|
83
|
+
- **`widgetkit`** — WidgetKit: declaration, timelines, interactivity, refresh. → [SKILL.md](skills/widgetkit/SKILL.md)
|
|
84
|
+
- **`app-intents`** — App Intents: intent authoring, entities, App Shortcuts, Siri. → [SKILL.md](skills/app-intents/SKILL.md)
|
|
85
|
+
- **`backgroundtasks`** — BackgroundTasks scheduling and execution. → [SKILL.md](skills/backgroundtasks/SKILL.md)
|
|
86
|
+
- **`eventkit`** — EventKit calendar/reminder access and EventKitUI hand-off. → [SKILL.md](skills/eventkit/SKILL.md)
|
|
87
|
+
- **`tipkit`** — TipKit in-app feature tips. → [SKILL.md](skills/tipkit/SKILL.md)
|
|
88
|
+
- **`passkit`** — PassKit Wallet passes and Apple Pay. → [SKILL.md](skills/passkit/SKILL.md)
|
|
89
|
+
- **`swiftdata`** — SwiftData model definition, querying, relationships. → [SKILL.md](skills/swiftdata/SKILL.md)
|
|
90
|
+
- **`core-data`** — Core Data model definition, fetching, relationships. → [SKILL.md](skills/core-data/SKILL.md)
|
|
91
|
+
- **`combine`** — Combine publishers/subscribers, `@Published`, operators. → [SKILL.md](skills/combine/SKILL.md)
|
|
92
|
+
- **`testing`** — XCTest, Swift Testing, and XCUITest implementation. → [SKILL.md](skills/testing/SKILL.md)
|
|
93
|
+
- **`localization`** — String Catalogs, plurals, `Locale` resolution, RTL APIs. → [SKILL.md](skills/localization/SKILL.md)
|
|
94
|
+
- **`core-location`** — Location authorization, delivery, accuracy, background monitoring. → [SKILL.md](skills/core-location/SKILL.md)
|
|
95
|
+
- **`photos`** — Photo library access, pickers, the limited library, fetching, image requests, saving. → [SKILL.md](skills/photos/SKILL.md)
|
|
111
96
|
|
|
112
97
|
Full routing tables: [skills/index.md](skills/index.md). Domain build order and scope: [docs/architecture/domain-map.md](docs/architecture/domain-map.md).
|
|
113
98
|
|
|
114
99
|
## What's New
|
|
115
100
|
|
|
116
|
-
- 2026-08-
|
|
117
|
-
- 2026-08-
|
|
118
|
-
- 2026-08-
|
|
119
|
-
|
|
101
|
+
- 2026-08-23 — Tier 2's 78 Knowledge Contracts and 17 Skills finished their first full pass through every Level 4 check, L4.1 through L4.5. The last of those, L4.5 — does the page a rule cites actually say what it's quoted as saying — had been explicitly left open by two earlier reviews because answering it means fetching live Apple documentation, not just reading the repository. Fetching it found what reading alone never could: fourteen fabricated-but-plausible quotes attached to otherwise-correct rules, a pair of stale rule-number citations, and one rule whose entire premise — that PassKit ships no SwiftUI equivalent for adding a pass to Wallet — had gone false the moment Apple shipped one, silently invalidating a coupling an earlier review had verified under the premise that held when it was written.
|
|
102
|
+
- 2026-08-09 — The two-domain experiment was tested the way it was meant to be tested, and it passed with one gap. The idea under test: settle in writing, before any rule is authored, every boundary a new domain shares with the existing ones. Nine such boundaries were settled for the photo and location domains, and until now the only evidence they worked came from the person writing to them — not from someone using the result. So a realistic feature was put through the kit end to end: pick photos from the library, show where each one was taken, and react when the user comes back to that place later with the app closed. Four of the settled boundaries were exercised and all four held, including the one an agent is most likely to get wrong. The gap is elsewhere, and it is the interesting part: the photo library hands back a location — the place a photo was taken travels with the photo, and reading it needs no location permission at all — but neither domain said so, so a feature asking that question either stopped with nothing or asked the user for a permission it would never use. The reason nobody wrote it down is that the boundaries were settled by walking each new domain against the domains that already existed, which cannot see the seam between two domains built at the same time. That is now a written rule, along with the review question that would have caught it.
|
|
103
|
+
- 2026-08-09 — Photo library support shipped, and it closed the two-domain pilot by contradicting the note written to guide it. The pilot's premise is that boundaries between a new domain and the existing ones are cheaper to settle in writing before any rule is authored than to discover later by testing. Four boundaries were settled in advance for photos, and the one that mattered most had been recorded as a repeat of a defect found twice before: two other domains had told an agent to wrap a screen component for use in modern UI code without pointing at the rule that makes the wrap correct, and photos was expected to be the third. Checking Apple's own documentation while writing showed the opposite — the photo picker already ships a modern-UI-native version, so the correct instruction here is not to wrap it at all. The wrap is still needed, but for a different call entirely: the one that lets a user revise which photos they have shared. Two rules now sit in the same domain saying opposite things about the same technique, deliberately, each naming the call it governs. The advance note had named the right neighbour and the wrong symbol, which would have produced a confidently wrong instruction had it been followed as written. Six rule documents, a source index, and a router entry landed with it, every rule quoted from Apple's pages rather than recalled.
|
|
104
|
+
Only the 3 most recent entries live here — see [CHANGELOG.md](CHANGELOG.md) for the full release history.
|
|
120
105
|
|
|
121
106
|
## Contributing
|
|
122
107
|
|