用途:在数据仓库上运行 dbt 命令并进行故障分级处理。它把环境问题前置到首条命令之前,并归纳常见错误输出。
主要能力:每次调用先检查项目根目录的 .dbt-runner/context.md。若不存在则视为首次运行,读取 references/install.md 并执行 bootstrap(发现 profile、target、引擎、所需环境变量,写入上下文文件)后继续;若存在则加载,作为该项目 dbt 配置的事实来源。上下文文件只存名称,不存密钥。
用法:每会话首次 dbt 命令前运行一次预检:python3 <skill-dir>/scripts/preflight.py --project-root <dbt-project-root>,仅做静态检查(环境变量、私钥文件、dbt_packages/ 与 package-lock.yml、profile/target 解析),有 FAIL 须先修复。所有命令都通过上下文文件中的 runner 调用,不直接裸用 dbt;须在沙箱外运行以获得仓库网络访问;输出重定向到日志文件而非管道:<runner> build --select <sel> > /tmp/dbt_run.log 2>&1,再查看日志。长任务放后台并轮询日志,确认选择确实匹配到模型。
结果解读:dbt build 非零退出不等于模型构建失败,需区分运行错误、测试失败、警告三类。失败时按升级阶梯排查:先在 references/failures.md 中按错误签名查找,连接/认证类且静态预检通过时运行 python3 <skill-dir>/scripts/preflight.py --connect;引擎为 v2 时另查 references/dbt-v2.md;将项目特有经验追加到上下文文件 Project lore。
限制:资料未提供收费、价格、平台支持范围等信息;预检为静态检查,不覆盖运行时全部问题。