devlab-dao-sql-compatlisted
Install: claude install-skill seed-forge/harness-ai-kit
# devlab-dao-sql-compat
## 用途
面向使用任何持久层框架(MyBatis / JPA / MyBatis-Plus / SQLAlchemy)的项目,解决"同一套 DAO 代码需要运行在不同数据库(Oracle / PostgreSQL / MySQL)"或"数据库迁移"场景下的 SQL 方言兼容性问题:
- **检查**:通过 adapter 模式扫描框架专属源码文件,按模块输出三方言命中矩阵与风险分级
- **修复**:AI 按转换方向加载对应映射表(references/dialects/),逐模块修复
- **验证**:静态复扫必做,库级语法预检可选,明确降级声明
- **记录**:输出前后对比与待人工复核清单
支持三方言全对称 6 个转换方向:O→PG、PG→O、O→MySQL、MySQL→O、PG→MySQL、MySQL→PG。
## 框架探测
本技能支持 4 种 DAO 框架的 adapter,默认自动探测:
| 检测特征 | 判定框架 | 扫描目标 |
|---------|---------|---------|
| `**/mapper/**/*.xml` 含 SQL 标签 | MyBatis | Mapper XML |
| `**/*.java` 含 `@Query` / `@NamedQuery` | JPA/Hibernate | Java 源码 |
| `**/*.java` 含 `QueryWrapper` / `LambdaQueryWrapper` / `BaseMapper` | MyBatis-Plus | Java + XML |
| `**/*.py` 含 `text()` / `.execute()` / `session.execute` | SQLAlchemy | Python 源码 |
| 多个命中 | 提示用户选择 | monorepo 可能多框架 |
也可手动指定:`bash scripts/scan-sql-compat.sh --adapter mybatis`
各框架的扫描模式、提取逻辑和方言陷阱详见 `references/adapters/` 下对应文档。
## 配置上下文
本 Skill 的运行时配置遵循 harness-ai-kit 配置治理规范的三级优先级:
> L3 对话中用户明确声明的参数 > L2 用户配置(~/.harness-ai-kit/config.yaml → 环境变量 → ~/.harness-ai-kit/.env.tak)> L1 本目录 config.defaults.yaml
配置项见 `config.defaults.yaml`:adapter / scan_dir / module_glob / report_path / custom_procs_file / fail_on_critical / verify_jdbc_url。
其中 verify_jdbc_url 为 sensitive:无默认值,只能经 L2/L3 注入,禁止写入任何文档或提交。
## 工作流(七阶段)
### Phase 0 环境确认
1. 确认 DAO 框架类型(auto-detect 或手动 `--adapter`)
2. 确认扫描根目录(scan_dir);框架专属源码位置默认自动探测,非标准布局时向用户确认 module_glob
3. 向用户确认**目标方言拓扑**(二选一):
- **单一目标