PassKit — Foundations Skill
Purpose
Route PassKit implementation tasks to the minimum required PassKit
Knowledge Contracts. v1 scope is app-side Wallet-pass querying/adding,
.pkpass/pass.json structure, the add-to-Wallet UI flow, the
app-vs-server pass-update boundary, and building/presenting Apple Pay --
not server-side pass signing or certificate management, not
NFC/secure-element passes, not pass personalization, and not Apple Pay's
server-side merchant validation or token decryption.
Routing
Load only the contracts relevant to the task. All paths relative to knowledge/passkit/.
- Calling
PKPassLibrary.isPassLibraryAvailable()/containsPass(_:)/passes()/passes(of:); adding held passes withaddPasses(_:withCompletionHandler:); or asking why there's no EventKit-style permission gate -> pass-library-and-authorization.md - Authoring or validating
pass.json(formatVersion/passTypeIdentifier/serialNumber/teamIdentifier/organizationName/description, theboardingPass/coupon/eventTicket/storeCard/genericstyle keys,PassFieldsgroups,barcodes,locations/relevantDates); or inspecting a pass withPKPass(data:)-> pass-content-and-required-fields.md - Presenting
AddPassToWalletButton(SwiftUI) orPKAddPassesViewController/PKAddPassButton(UIKit); checkingcanAddPasses(); or the delegate/dismissal pattern -> adding-passes-ui.md - Wiring
webServiceURL/authenticationToken; or understanding the device-registration/push/update-fetch protocol and why the app registers for no PassKit push type -> pass-updates-and-push-registration.md - Building
PKPaymentRequest; checkingcanMakePayments()/canMakePayments(usingNetworks:); or choosingPayWithApplePayButton/PKPaymentButtonandPKPaymentAuthorizationController/PKPaymentAuthorizationViewController-> apple-pay-payment-request.md - Implementing
PKPaymentAuthorizationControllerDelegate; handlingPKPayment/PKPaymentTokenindidAuthorizePayment(_:handler:); returningPKPaymentAuthorizationResult; or dismissing viapaymentAuthorizationControllerDidFinish(_:)-> apple-pay-authorization-and-result-handling.md
Never load more than the contracts relevant to the specific question.
Stop Conditions
Stop and report if the requested topic has no matching Knowledge
Contract in knowledge/passkit/ — do not guess or fall back to general
knowledge. Server-side pass signing, certificate management, and the
Pass Type ID/Apple Developer portal setup process are out of scope
entirely -- not app-side Swift code, not planned as a contract here.
PKAddSecureElementPassViewController and NFC/secure-element-backed
passes (transit cards, car keys, driver's-license-in-Wallet) are out of
scope entirely -- a distinct, more specialized subsystem, not yet built.
PKPassPersonalization (the transit-pass personalization flow) is out
of scope entirely -- niche, not yet built. Apple Pay server-side merchant
validation, payment-token decryption, and payment-processor integration
are out of scope entirely -- report that this boundary exists and is
server-side rather than routing to a contract here or fabricating a
client-side decryption API.