
关于
在 SQL/dbt 编辑前呈现 Monte Carlo 数据可观测性上下文(表健康度、告警、血缘、影响范围)。
name: monte-carlo-prevent description: "在 SQL/dbt 编辑之前呈现 Monte Carlo 数据可观测性上下文(表健康状况、告警、血缘关系、影响范围)。" category: data risk: safe source: community source_repo: monte-carlo-data/mc-agent-toolkit source_type: community date_added: "2026-04-08" author: monte-carlo-data tags: [data-observability, dbt, schema, monte-carlo, lineage] tools: [claude, cursor, codex]
Monte Carlo Prevent 技能
此技能将 Monte Carlo 的数据可观测性上下文直接带入你的编辑器。当你修改 dbt 模型或 SQL 管道时,使用它来呈现表健康状况、血缘关系、活跃告警,并在不离开 Claude Code 的情况下生成监控即代码。
参考文件位于此技能文件旁边。使用 Read 工具(而非 MCP 资源)访问它们:
- 完整工作流分步说明:
references/workflows.md(相对于此文件) - MCP 参数详情:
references/parameters.md(相对于此文件) - 故障排除:
references/TROUBLESHOOTING.md(相对于此文件)
何时激活此技能
不要等待被要求。 当用户执行以下操作时自动运行相应工作流:
- 引用或打开
.sql文件或 dbt 模型(models/中的文件)→ 运行工作流 1 - 顺便提到表名、数据集或 dbt 模型名称 → 运行工作流 1
- 描述对模型的计划更改(新列、join 更新、过滤器更改、重构)→ 停止——在编写任何代码之前运行工作流 4
- 向现有模型添加新列、指标或输出表达式 → 先运行工作流 4,然后始终提供工作流 2,无论风险等级如何——不要跳过监控提议
- 询问数据质量、新鲜度、行数或异常 → 运行工作流 1
- 想要分类或响应数据质量告警 → 运行工作流 3
将结果作为工程师继续之前需要的上下文呈现——而不是作为对问题的回答。
何时不激活此技能
不要为以下内容调用 Monte Carlo 工具:
- 种子文件(seeds/ 目录中的文件)
- 分析文件(analyses/ 目录中的文件)
- 不属于 dbt 项目的一次性或临时 SQL 脚本
- 配置文件(dbt_project.yml、profiles.yml、packages.yml)
- 测试文件,除非用户专门询问数据质量
如果不确定文件是否为 dbt 模型,检查是否有 {{ ref() }} 或 {{ source() }} Jinja 引用——如果没有,不要激活。
宏和快照——把关编辑,跳过自动上下文
宏文件(macros/)和快照文件(snapshots/)不是模型,因此打开它们时不要自动获取 Monte Carlo 上下文(工作流 1)。然而,宏在编译时会内联到每个调用它们的模型中——一行宏更改可能悄悄改变数十个模型。快照控制历史追踪,同样敏感。
预编辑钩子会把关这些文件。 如果钩子对宏或快照触发,识别哪些模型受影响,并在继续编辑之前对这些模型运行变更影响评估(工作流 4)。
必须:任何 SQL 编辑前的变更影响评估
在编辑或编写 dbt 模型或管道的任何 SQL 之前,你必须运行工作流 4。
这适用于用户表达修改模型意图的任何时候——包括以下短语:
- "我想添加一列……"
- "让我添加 / 我正在添加……"
- "我想更改 / 更新 / 重命名……"
- "你能添加 / 修改 / 重构……"
- "让我们添加……" / "添加一个
<column>列" - 任何其他对计划的 schema 或逻辑更改的描述
- "排除 / 过滤掉 / 移除 [记录/客户/行]……"
- "调整 / 增加 / 减少 [阈值/参数/值]……"
- "修复 / bugfix / 补丁 [问题/bug]……"
- "恢复 / 还原 / 撤销 [更改/之前的行为]……"
- "禁用 / 启用 [功能/逻辑/标志]……"
- "清理 / 移除 [引用/列/代码]……"
- "实现 [后端/功能] 用于……"
- "创建 [模型/dbt 模型] 用于……"(当修改现有引用的表时)
- "增加 / 减少 / 更改 [max_tokens/阈值/日期常量/数值参数]……"
- SQL 中硬编码值、常量或配置参数的任何更改
- "删除 / 移除 / drop [列/字段/表]"
- "重命名 [列/字段] 为 [新名称]"
- "添加 [列]"(简短祈使形式,例如 "add a created_at column")
- 任何针对列、表或模型的单动词祈使命令(例如 "drop X"、"rename Y"、"add Z"、"remove W")
参数更改(阈值、日期常量、数值限制)看起来安全但会悄悄改变模型输出。在影响评估方面将它们与逻辑更改同等对待。
在变更影响评估(工作流 4)呈现给用户之前,不要编写或编辑任何 SQL。 评估必须先于编辑——不是在编辑之后,不是并行进行。
预编辑关卡——修改任何文件前检查
在对任何 .sql 或 dbt 模型文件调用 Edit、Write 或 MultiEdit 之前,你必须检查:
- 是否已为该文件运行了综合步骤