Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add seed-forge/harness-ai-kit --skill devlab-dao-sql-compatgit clone --depth 1 https://github.com/seed-forge/harness-ai-kitWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/seed-forge/harness-ai-kit/devlab-dao-sql-compat)<a href="https://agentmods.dev/skills/seed-forge/harness-ai-kit/devlab-dao-sql-compat"><img src="https://agentmods.dev/badge/skills/seed-forge/harness-ai-kit/devlab-dao-sql-compat/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/seed-forge/harness-ai-kit/devlab-dao-sql-compat"><img src="https://agentmods.dev/badge/skills/seed-forge/harness-ai-kit/devlab-dao-sql-compat.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00160 | $0.02455 |
| Opus 5.5 | $0.00064 | $0.00982 |
| Sonnet 5.5 | $0.00032 | $0.00491 |
| Haiku 4.5 | $0.00016 | $0.00246 |
Grade A, and why
devlab-dao-sql-compat scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 153 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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 环境确认
- 确认 DAO 框架类型(auto-detect 或手动
--adapter) - 确认扫描根目录(scan_dir);框架专属源码位置默认自动探测,非标准布局时向用户确认 module_glob
- 向用户确认目标方言拓扑(二选一):
- 单一目标库:整个项目最终只跑一种数据库 → 所有非目标方言都是待修复项
- 多库路由:不同模块路由到不同数据库 → 逐模块建立"模块 → 目标方言"映射表
- 询问是否有自定义存储过程/函数(写入 custom_procs_file 清单)
Phase 1 扫描
bash <本Skill目录>/scripts/scan-sql-compat.sh \
--adapter <auto|mybatis|jpa|mybatis-plus|sqlalchemy> \
--dir <scan_dir> [--module-glob <glob>] [--procs <file>] --report <report_path>
产出报告含:三方言命中明细、模块级风险矩阵、自定义存储过程依赖。 风险等级:CRITICAL(同模块方言混用)/ HIGH(单方言文件数 >5)/ MEDIUM(单方言文件数 ≤5)。
Phase 2 范围决策
向用户呈现风险矩阵,确认本次修复范围(CRITICAL 优先,或用户指定模块)。禁止全量静默修复。
What ships with it
29 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- CHANGELOG.md 5.1 KB
- config.defaults.yaml 2.0 KB
- examples/mybatis/after/sample-mapper.xml 2.1 KB
- examples/mybatis/before/sample-mapper.xml 2.1 KB
- examples/mybatis/README.md 1.6 KB
- README.md 6.2 KB
- references/adapters/jpa.md 1.9 KB
- references/adapters/mybatis-plus.md 2.4 KB
- references/adapters/mybatis.md 1.8 KB
- references/adapters/sqlalchemy.md 2.6 KB
- references/dialects/mysql-to-oracle.md 1.7 KB
- references/dialects/mysql-to-postgres.md 1.6 KB
- references/dialects/oracle-to-mysql.md 1.7 KB
- references/dialects/oracle-to-postgres.md 3.1 KB
- references/dialects/postgres-to-mysql.md 1.6 KB
- references/dialects/postgres-to-oracle.md 2.7 KB
- references/REFERENCE-VERIFICATION.md 1.7 KB
- references/systematic-fixes/coalesce-nullstr.sed 520 B
- references/systematic-fixes/regex-operator.sed 757 B
- references/systematic-fixes/todate-concat.sed 904 B
- references/systematic-fixes/todate-format-guide.md 2.3 KB
- scripts/adapters/jpa.sh 2.8 KB runs code
- scripts/adapters/mybatis-plus.sh 3.3 KB runs code
- scripts/adapters/mybatis.sh 2.1 KB runs code
- scripts/adapters/sqlalchemy.sh 3.0 KB runs code
- scripts/fix-sql-compat.sh 9.8 KB runs code
- scripts/scan-sql-compat.sh 13 KB runs code
- skill.json 3.1 KB
- USAGE.md 2.6 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 153 lines · 160 tokens per session scan A 653b26a5f8a8
devlab-dao-sql-compat is a skill published in the GitHub repository seed-forge/harness-ai-kit (25 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 160 tokens to every session and 2,455 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
supabase-cli
This skill should be used when user asks to "use supabase CLI", "supabase init", "supabase start", "run migrations", "deploy edge functions", "manage Supabase project", or works with the supabase command-line tool for local development and project management.
supabase-js
This skill should be used when user asks to "use supabase-js", "query Supabase database", "supabase auth", "supabase storage", "supabase realtime", "supabase edge functions", or works with the @supabase/supabase-js JavaScript/TypeScript SDK.
bitrix-postgresql
PostgreSQL in Bitrix — PgsqlConnection, MySQL→PostgreSQL wizard, module support, portable SQL and module schema. Use when configuring, migrating to or writing code for PostgreSQL (Enterprise for Postgres).
supabase
Expert Supabase assistance covering PostgreSQL, Row Level Security (RLS), Edge Functions, Auth, and pgvector. Use when building full-stack web/mobile applications with Postgres backends and instant REST/GraphQL APIs.
senior-backend
Backend development with Node.js/Express/Fastify and PostgreSQL. Use when designing REST or GraphQL APIs, optimizing database queries, implementing authentication, building microservices, handling migrations, or reviewing backend code.
sc-supabase
(STUB / NOT IMPLEMENTED YET) Supabase backend as an alternative to self-hosted Convex. Create project, apply migrations from supabase/migrations, deploy Edge Functions, generate types. For projects where Postgres + Row-Level-Security is a better fit than Convex's reactive query model.