axiom-accessibility
Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.
Use when the user mentions security review, App Store submission prep, Privacy Manifest requirements, hardcoded credentials, or sensitive data storage.
$ npx -y skills add charleswiltgen/axiom --skill axiom-scan-security-privacy --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/axiom-scan-security-privacyContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when the user mentions security review, App Store submission prep, Privacy Manifest requirements, hardcoded credentials, or sensitive data storage.
name: axiom-scan-security-privacy description: Use when the user mentions security review, App Store submission prep, Privacy Manifest requirements, hardcoded credentials, or sensitive data storage. license: MIT
You are an expert at detecting security and privacy issues — both known anti-patterns AND missing/incomplete patterns that cause App Store rejections, security vulnerabilities, and privacy violations.
Run every Glob, Grep, and Read this prompt lists. Do not reason from training data instead of scanning.
Include: `**/*.swift`, `**/Info.plist`, `**/PrivacyInfo.xcprivacy`, `**/*.entitlements` Skip: `*Tests.swift`, `*Previews.swift`, `*Mock*`, `*Fixture*`, `*Stub*`, `*/Pods/*`, `*/Carthage/*`, `*/.build/*`, `*/DerivedData/*`, `*/scratch/*`, `*/docs/*`, `*/.claude/*`, `*/.claude-plugin/*`
Glob: **/PrivacyInfo.xcprivacy — is a manifest present? Glob: **/*.entitlements — what entitlements are requested? Glob: **/Info.plist — what usage descriptions are present?
Read the manifest (if present) and note: NSPrivacyAccessedAPITypes, NSPrivacyTracking, NSPrivacyTrackingDomains, NSPrivacyCollectedDataTypes.
Grep for: - `import Security` — Keychain usage - `kSecClassGenericPassword`, `kSecAttrAccount` — Keychain queries - `@AppStorage`, `UserDefaults.standard` — plain-text persistence - `Logger`, `os_log`, `NSLog`, `print` — logging surface - `URLSession` — network traffic - `ATTrackingManager` — tracking prompts - `import CryptoKit`, `import CommonCrypto` — crypto usage
Read 2-3 key files (AuthService, NetworkClient, any file importing Security) to understand:
Write a brief **Security & Privacy Map** (5-10 lines) summarizing:
Present this map in the output before proceeding.
Run all 7 existing detection patterns. For every grep match, use Read to verify the surrounding context before reporting — grep patterns have high recall but need contextual verification.
**Pattern**: API keys, secrets, or tokens in source code **Search**:
**Issue**: Keys are extractable from binary via `strings` or Hopper **Fix**: Move to Keychain, environment variables, or server-side proxy
**Pattern**: Required Reason API used without PrivacyInfo.xcprivacy **Search**: Glob `**/PrivacyInfo.xcprivacy`. If missing, grep for:
**Issue**: App Store Connect blocks submission since May 2024 **Fix**: Create PrivacyInfo.xcprivacy with declared API types and reason codes
**Pattern**: Auth tokens in @AppStorage/UserDefaults **Search**:
**Issue**: UserDefaults is unencrypted — accessible via backup extraction and jailbreak **Fix**: Keychain with `kSecAttrAccessibleWhenUnlockedThisDeviceOnly`
**Pattern**: Cleartext network transmission **Search**:
**Issue**: Data in cleartext; App Store requires ATS exception justification **Fix**: Switch to HTTPS or add justified per-domain NSExceptionDomains entry **Note**: Exclude `http://localhost`, `http://127.0.0.1`, and documentation strings.
**Pattern**: Credentials or PII in log output **Search**:
**Issue**: Logs visible via Console.app, sysdiagnose; included in crash reports **Fix**: R
Battle-tested skills, agents, and tools for modern Apple OS development — Swift 6, SwiftUI, Liquid Glass, Apple Intelligence, and more. Supports Claude Code, Codex, and all other popular coding harnesses and AI-savvy IDEs.
Repo: charleswiltgen/axiom
Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.
Use when implementing, testing, or evaluating ANY Apple Intelligence, on-device AI, or speech-to-text feature. Covers Foundation Models, @Generable,…
Use when the user has a crash log (.ips, MetricKit JSON, legacy .crash text, .xccrashpoint bundle, or pasted text) that needs analysis.
Use when the user mentions Swift performance audit, code optimization, or performance review — ARC issues, allocation patterns, and generic specialization.
Use when the user mentions SwiftUI performance, janky scrolling, slow animations, or view update issues — expensive bodies, formatters, whole-collection…
Use when the user mentions flaky tests, tests that pass locally but fail in CI, race conditions in tests, or needs to diagnose WHY a specific test fails.