用途:对 SQLite/GRDB(含 SQLite.swift、sqlite-data)应用的数据库架构与迁移代码做安全审查,定位可能导致数据丢失、迁移崩溃、静默损坏与完整性问题。
主要能力:分五阶段执行。阶段一用 Glob/Grep/Read 梳理所用框架、迁移数量与顺序、表结构与关系、外键强制状态、事务策略,输出 Schema Map。阶段二检测十类已知反模式:ADD COLUMN NOT NULL 无 DEFAULT、DROP TABLE 用户数据、DROP COLUMN、ALTER TABLE 无幂等检查、INSERT OR REPLACE 破坏外键、给既有表新增外键未做孤儿检查、外键强制被关闭、RENAME COLUMN 未同步代码、批量插入未包在事务中、CREATE TABLE/INDEX 缺少 IF NOT EXISTS。阶段三推理架构完整性(迁移是否处理既有行、升级路径、迁移是否只追加、eraseDatabaseOnSchemaChange 是否关闭、WAL、迁移后校验等)。阶段四交叉引用,对组合问题提升严重级别。阶段五给出 Schema 健康评分:SAFE / FRAGILE / DANGEROUS。
使用方式:该技能以代理形式运行,可直接用 axiom-audit-database-schema 调用,或当用户提及数据库架构审查、迁移安全、GRDB 迁移审计、SQLite 架构检查时触发。运行时必须实际执行列出的搜索与读取命令,不凭记忆推理;每个 grep 匹配需 Read 验证上下文。排除测试、预览、Pods、Carthage、.build、DerivedData、scratch、docs、.claude 等路径。
输出:按严重级别与置信度列出问题,含文件行号、所处阶段、影响与修复代码,并给出按优先级排序的建议与升级路径测试计划。问题过多时按类别汇总并只详列 CRITICAL/HIGH。
限制:仅针对 SQLite/GRDB 系技术栈;DROP 临时表、DEBUG 下 DROP、do-catch 包裹的 ADD COLUMN、无外键表的 INSERT OR REPLACE、registerMigration 内 CREATE、少于 10 条的批量插入等视为误报不算问题。其他数据库类型或具体命令行用法资料未提供。