mcpField
A
axiom-ios-data

axiom-ios-data

github.com/charleswiltgen数据与数据库1.2k201 次安装今天更新
代码仓库

关于 axiom-ios-data

面向 iOS 开发者的数据持久化路由指南,帮助确定数据库、迁移、云同步、文件、序列化与安全存储相关的技能。它按具体技术和问题类型提供后续技能及审计 Agent 的入口。

主要功能

  1. 01按存储技术路由到相关技能
  2. 02覆盖数据库与模式迁移
  3. 03涵盖云同步和文件存储
  4. 04指引 Codable 与 JSON 处理
  5. 05提供存储安全审计入口

适用场景

  1. 01选择 SwiftData、Core Data 或 SQLiteData 相关指导
  2. 02处理数据库模式变更与迁移
  3. 03排查 CloudKit 或 iCloud 同步问题
  4. 04检查凭据存储、文件位置或数据模型

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/charleswiltgen/axiom --skill axiom-ios-data

安装后在 Claude Code 中输入/axiom-ios-data确认已加载。

详细介绍

iOS 数据与持久化路由器

任何涉及数据持久化、数据库、axiom-storage、CloudKit 或序列化的工作,都必须使用此技能。

适用场景

在处理以下内容时使用此路由器:

  • 数据库(SwiftData、Core Data、GRDB、SQLiteData)
  • 架构迁移
  • CloudKit 同步
  • 文件存储(iCloud Drive、本地存储)
  • 数据序列化(Codable、JSON)
  • 存储策略决策
  • Keychain / 安全凭据存储
  • 加密、签名、密钥管理(CryptoKit)

路由逻辑

SwiftData

使用 SwiftData → /skill axiom-swiftdata 架构迁移 → /skill axiom-swiftdata-migration 迁移问题 → /skill axiom-swiftdata-migration-diag 从 Realm 迁移 → /skill axiom-realm-migration-ref SwiftData 与 SQLiteData 的比较 → /skill axiom-sqlitedata-migration

其他数据库

GRDB 查询 → /skill axiom-grdb SQLiteData → /skill axiom-sqlitedata 高级 SQLiteData → /skill axiom-sqlitedata-ref Core Data 模式 → /skill axiom-core-data Core Data 问题 → /skill axiom-core-data-diag

迁移

数据库迁移安全性 → /skill axiom-database-migration(关键:防止数据丢失)

序列化

Codable 问题 → /skill axiom-codable

云存储

云同步模式 → /skill axiom-cloud-sync CloudKit → /skill axiom-cloudkit-ref iCloud Drive → /skill axiom-icloud-drive-ref 云同步错误 → /skill axiom-cloud-sync-diag

Keychain 与加密

Keychain / 安全凭据存储 → /skill axiom-keychain Keychain 错误 → /skill axiom-keychain-diag Keychain API 参考 → /skill axiom-keychain-ref 加密 / 签名 / 密钥管理 → /skill axiom-cryptokit CryptoKit API 参考 → /skill axiom-cryptokit-ref

文件存储

存储策略 → /skill axiom-storage 存储问题 → /skill axiom-storage-diag 存储管理 → /skill axiom-storage-management-ref 文件保护 → /skill axiom-file-protection-ref

tvOS 存储

tvOS 数据持久化 → /skill axiom-tvos(关键:tvOS 不支持本地持久化存储) tvOS + CloudKit → /skill axiom-sqlitedata(推荐:使用 SyncEngine 作为持久化存储)

自动化扫描

Core Data 审计 → 启动 core-data-auditor Agent 或 /axiom:audit core-data(迁移风险、线程隔离、N+1 查询、生产数据丢失) Codable 审计 → 启动 codable-auditor Agent 或 /axiom:audit codable(try? 吞掉错误、JSONSerialization、日期处理) iCloud 审计 → 启动 icloud-auditor Agent 或 /axiom:audit icloud(权利检查、文件协调、CloudKit 反模式) 存储审计 → 启动 storage-auditor Agent 或 /axiom:audit storage(文件位置错误、缺少备份排除项、数据丢失风险) 数据库架构审计 → 启动 database-schema-auditor Agent 或 /axiom:audit database-schema(不安全的 ALTER TABLE、DROP 操作、缺少幂等性、外键误用) SwiftData 审计 → 启动 swiftdata-auditor Agent 或 /axiom:audit swiftdata(结构体模型、缺少 VersionedSchema、关系默认值、后台上下文误用、N+1 模式)

决策树

  1. SwiftData?→ swiftdata,swiftdata-migration
  2. Core Data?→ core-data,core-data-diag
  3. GRDB?→ grdb
  4. SQLiteData?→ sqlitedata,sqlitedata-ref
  5. 任何模式迁移?→ database-migration(始终使用 — 防止数据丢失)
  6. Realm 迁移?→ realm-migration-ref
  7. SwiftData 与 SQLiteData?→ sqlitedata-migration
  8. 云同步架构?→ cloud-sync
  9. CloudKit?→ cloudkit-ref
  10. iCloud Drive?→ icloud-drive-ref
  11. 云同步错误?→ cloud-sync-diag
  12. Codable/JSON 序列化?→ codable
  13. 文件存储策略?→ storage,storage-diag,storage-management-ref
  14. 文件保护?→ file-protection-ref
  15. Keychain / 安全存储令牌、密码、机密信息?→ keychain,keychain-diag,keychain-ref
  16. SecItem 错误(errSecDuplicateItem、errSecItemNotFound、errSecInteractionNotAllowed)?→ keychain-diag
  17. 加密、签名、安全隔区、CryptoKit?→ cryptokit,cryptokit-ref
  18. 抗量子密码学、HPKE、ML-KEM?→ cryptokit
  19. 想要 Core Data 安全扫描?→ core-data-auditor(Agent)
  20. 想要 Codable 反模式扫描?→ codable-auditor(Agent)
  21. 想要 iCloud 同步审计?→ icloud-auditor(Agent)
  22. 想要存储位置审计?→ storage-auditor(Agent)
  23. 想要数据库模式/迁移安全扫描?→ database-schema-auditor(Agent)
  24. 想要 SwiftData 代码审计?→ swiftdata-auditor(Agent)
  25. tvOS 数据持久化?→ axiom-tvos(关键:没有持久化的本地存储)+ axiom-sqlitedata(CloudKit SyncEngine)

避免自我合理化

想法实际情况
“只是添加一列,不需要迁移”不进行迁移就更改模式会导致用户的应用崩溃。database-migration 可防止数据丢失。
“我会手动处理迁移”手动迁移会遗漏边界情况。database-migration 涵盖回滚和测试。
“只是简单查询,不需要这个技能”查询模式可防止 N+1 和线程安全问题。该技能提供可直接复制粘贴的解决方案。
“CloudKit 同步很简单”CloudKit 有 15 种以上的故障模式。cloud-sync-diag 可系统地诊断这些问题。
“我对 Codable 已经足够熟悉了”Codable 存在会导致静默数据丢失的陷阱(try? 会吞掉错误)。codable 技能可防止生产环境中的 Bug。
“我会在 tvOS 上使用本地存储”tvOS 没有持久化的本地存储。系统可随时删除 Caches。axiom-tvos 会介绍以 iCloud 为先的模式。
“用 UserDefaults 存这个令牌没问题”UserDefaults 未加密、会备份到 iCloud,且对 MDM 配置文件可见。一次审计就能发现这个问题。keychain 可安全存储令牌。
“我会用 CommonCrypto 自己加密”CryptoKit 用单行 API 取代了 CommonCrypto 那些令人头疼的缓冲区管理。cryptokit 可防止误用。

关键模式:迁移

添加/修改数据库列时,始终调用 /skill axiom-database-migration。

这可以防止:

  • “FOREIGN KEY constraint failed” 错误
  • “no such column” 崩溃
  • 不安全迁移导致的数据丢失

调用示例

用户:“我需要为我的 SwiftData 模型添加一列” → 调用:/skill axiom-database-migration(关键:可防止数据丢失)

用户:“如何使用复杂筛选条件查询 SwiftData?” → 调用:/skill axiom-swiftdata

用户:“CloudKit 同步无法正常工作” → 调用:/skill axiom-cloud-sync-diag

用户:“我应该使用 SwiftData 还是 SQLiteData?” → 调用:/skill axiom-sqlitedata-migration

用户:“检查我的 Core Data 代码是否存在安全问题” → 调用:core-data-auditor Agent

用户:“发布前扫描 Codable 反模式” → 调用:codable-auditor Agent

用户:“审查我的 iCloud 同步实现” → 调用:icloud-auditor Agent

用户:“检查我的文件是否存储在正确的位置” → 调用:storage-auditor Agent

用户:“审查我的数据库迁移是否安全” → 调用:database-schema-auditor Agent

用户:“检查我的 SwiftData 模型是否存在问题” → 调用:swiftdata-auditor Agent

用户:“如何在 tvOS 上持久化数据?” → 调用:/skill axiom-tvos + /skill axiom-sqlitedata

用户:“我的 tvOS 应用在每次启动后都会丢失数据” → 调用:/skill axiom-tvos

用户:“如何安全地存储身份验证令牌?” → 调用:/skill axiom-keychain

用户:“出现 errSecDuplicateItem,但我确认该项目并不存在” → 调用:/skill axiom-keychain-diag

用户:“如何在 Swift 中使用 AES 加密数据?” → 调用:/skill axiom-cryptokit

用户:“我需要使用 Secure Enclave 对数据签名” → 调用:/skill axiom-cryptokit

用户:“什么是 ML-KEM?我应该使用它吗?” → 调用:/skill axiom-cryptokit

评论

支持 Markdown