Use when iOS SDK guidance is needed for privacy-sensitive persistence, CryptoKit/Keychain, OCR, camera, biometrics, notifications, HealthKit, or privacy manifests. Requires swift. Not for SwiftUI composition or pure Swift language work. Output: SDK-specific implementation or review guidance with privacy and verification gates.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add hmj1026/dhpk --skill dhpk-ios-platform --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Dhpk Ios Platform?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hmj1026-dhpk-ios-platform)More formats (shields.io, HTML) on the badges page.
---
name: dhpk-ios-platform
description: 'Use when iOS SDK guidance is needed for privacy-sensitive persistence, CryptoKit/Keychain, OCR, camera, biometrics, notifications, HealthKit, or privacy manifests. Requires swift. Not for SwiftUI composition or pure Swift language work. Output: SDK-specific implementation or review guidance with privacy and verification gates.'
metadata:
dhpk-invocation-class: implicit-eligible
---
# iOS platform SDK
Routing index — load the reference that matches the task:
| Task | Reference |
|------|-----------|
| Core Data store, encryption, migration | `references/coredata-encryption.md` |
| Encrypting files/images, key storage | `references/cryptokit-keychain.md` |
| Text recognition / OCR | `references/vision-ocr.md` |
| Face ID / Touch ID / passcode | `references/local-authentication.md` |
| Local reminders / scheduling | `references/notifications.md` |
| Reading HealthKit data | `references/healthkit-read.md` |
| Privacy manifest, usage strings, data protection | `references/privacy-compliance.md` |
| Offline local store (actor + file-backed cache) | `references/actor-persistence.md` |
---
## Always-on non-negotiables (health / PHI data)
These hold regardless of which reference you load — they encode babylon's PDPA
Art. 6 special-category-data + App Review obligations:
1. **No iCloud for health data.** Prescriptions, medications, scan images, and
member health profiles must never go to iCloud / CloudKit / iCloud backup.
Exclude data files from backup; do not enable CloudKit on the Core Data store;
never set `kSecAttrSynchronizable` on PHI keys. (App Review 5.1.3(ii).)
2. **Encrypt at rest.** The Core Data store holding PHI is encrypted — SQLCipher
via EncryptedCoreData (high), or at minimum `NSFileProtectionComplete` on the
store file (baseline). Images are encrypted with CryptoKit `AES.GCM` and
written with `NSFileProtectionComplete`.
3. **Keys live in the Keychain**, accessible
`kSecAttrAccessibleWhenUnlockedThisDeviceOnly`, never synchronizable, never
hardcoded.
4. **Vision OCR does not read handwriting reliably** — a manual-correction path
(`rawDrugName` free entry) is mandatory, not an afterthought.
5. **Notifications use Time Sensitive**, not Critical Alert; respect the
64-pending-notification limit with rollover re-scheduling on launch.
6. **HealthKit is read-only** (no public write API for medication records).
## When NOT to Use
- SwiftUI view composition / state / navigation → swiftui module.
- Pure language questions (concurrency, optionals, actors) → swift module.
- Test authoring for these services → swift-test-strategy.
## Output
Persistence / encryption / Keychain / OCR / camera / biometric / notification /
HealthKit / privacy-manifest code that satisfies the always-on PHI rules: no
iCloud sync, encrypted at rest, keys in the Keychain (this-device-only,
non-synchronizable), a manual fallback for OCR, and Time Sensitive notifications.
## Verification
- [ ] No PHI reaches iCloud / CloudKit / iCloud backup; `kSecAttrSynchronizable` never set on PHI keys.
- [ ] PHI store encrypted (SQLCipher / EncryptedCoreData, or `NSFileProtectionComplete` baseline); images via `AES.GCM`.
- [ ] Keychain items use `kSecAttrAccessibleWhenUnlockedThisDeviceOnly`.
- [ ] OCR has a manual-correction path; notifications stay under the 64-pending limit with rollover.
- [ ] Privacy manifest + usage strings present for every accessed sensitive API.
## Reviewer hand-off
Encryption / Keychain / privacy-manifest / consent findings → `security-reviewer`
(iOS Fix Map). Core Data threading / migration / SQLCipher wiring →
`database-reviewer` (Core Data section). Concurrency of these services → the
swift module / `code-reviewer`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!