/configure-quality-rule
通过 Dataphin OpenAPI 完成数据质量规则的全生命周期管理:创建监控对象、配置质量规则、设置调度与告警、试跑验证、启停规则、查看执行结果。 当用户场景涉及为某张表/字段配置质量校验、设置质量调度或告警、试跑质量规则、查看质量结果时进入。 触发场景: - 「给 X 表 Y 字段配非空/唯一/值域/枚举校验」 - 「质量规则要不要试跑 / 质量试跑失败排查」 - 「质量规则挂调度 / 质量告警通知负责人」
$ npx -y skills add aliyun/alibabacloud-aiops-skills --skill configure-quality-rule --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/configure-quality-rule
Context preview
The summary Claude sees to decide when to auto-load this skill.
通过 Dataphin OpenAPI 完成数据质量规则的全生命周期管理:创建监控对象、配置质量规则、设置调度与告警、试跑验证、启停规则、查看执行结果。 当用户场景涉及为某张表/字段配置质量校验、设置质量调度或告警、试跑质量规则、查看质量结果时进入。 触发场景: - 「给 X 表 Y 字段配非空/唯一/值域/枚举校验」 - 「质量规则要不要试跑 / 质量试跑失败排查」 - 「质量规则挂调度 / 质量告警通知负责人」
SKILL.md
configure-quality-rule.SKILL.mdname: configure-quality-rule
description: |-
通过 Dataphin OpenAPI 完成数据质量规则的全生命周期管理:创建监控对象、配置质量规则、设置调度与告警、试跑验证、启停规则、查看执行结果。
当用户场景涉及为某张表/字段配置质量校验、设置质量调度或告警、试跑质量规则、查看质量结果时进入。
触发场景:
- 「给 X 表 Y 字段配非空/唯一/值域/枚举校验」
- 「质量规则要不要试跑 / 质量试跑失败排查」
- 「质量规则挂调度 / 质量告警通知负责人」
触发词:质量监控、质量规则、数据质量校验、质量告警、质量试跑、质量调度、监控对象、validateCondition、upsert-quality-rule。
关键限制 / 类型分支:监控对象类型必须先确认;监控对象名称不可让用户填写;templateId 必须用 list-quality-templates 实测获取;模板级 formProperties 必填项以界面和模板定义为准;validateCondition 无后端默认必须显式传;分区表试跑必须钉单分区;归档模式/计分方式/质量分权重 OpenAPI 不可配。
配置数据质量规则(创建 → 调度告警 → 试跑 → 监控)
1. Scenario Description
通过 Dataphin OpenAPI 完成一条质量规则从「监控对象 → 规则 → 调度/告警 → 试跑 → 启停 → 看板」的完整闭环。
> **核心原则**:本 skill 通过 OpenAPI 配置,但目的是让用户在**界面上看到的结果与手工配置一致、且能正常运行**。因此: > 1. **必填项以界面为准**,不能因 API 允许省略就擅自省略——先与用户确认(见 §6)。 > 2. **监控对象类型必须先确认**:`TABLE` / `DATASOURCE_TABLE` / `DATASOURCE` / `INDEX` / `REALTIME_LOGICAL_TABLE` 会决定对象定位方式、创建参数、可用模板和调度边界;不能仅凭对象名猜类型。 > 3. **监控对象名称(WatchName/tableName)不是用户配置项**,禁止让用户填写或选择;由 skill 根据目标对象元数据自动生成/回查校验。 > 4. **模板级必填项以模板和界面为准**,不能因为 `SaveQualityRule.formProperties` 顶层标为非必填就传空;例如 `TABLE_SCHEMA_CHECK`/2600 必须先选校验表并传 `dataSourceTable`。 > 5. **API 无法指定的项**(异常归档表、计分方式、质量分权重)必须**主动向用户说明默认值**。 > 7. **规则模版的必填项都不能为空**:`template-config-catalog.json` 中 `required=true` 的配置项必须全部有值。处理方式二选一: > - **有合理默认值** → 自动补上(如 `timeTolerance` 默认 `>0天 且 <1天`,`validateCondition` 默认 `ERROR_NUMBER=0`) > - **无合理默认值** → 必须询问用户(如 `validateField` 校验字段、`doubleTableCompareTable` 比较表、`customSql` 自定义SQL) > - **CLI 无法安全传值** → 创建规则后主动告知用户需到界面手工补充 > 8. **调度、告警由独立命令实现**,创建规则前必须**分别询问是否需要**,不默认配也不默认跳过。
**Architecture**:`Dataphin Tenant + QualityWatch(监控对象) + QualityRule(规则) + QualitySchedule(调度) + QualityAlert(告警)`。
2. Installation
> 仅**公共云(A)走 CLI** 时需要安装插件;**独立部署(B)直调 OpenAPI(见 §3 执行通道)无需安装 CLI 插件**。
aliyun plugin install --names aliyun-cli-dataphin-public
(详见 [`references/cli-installation-guide.md`](references/cli-installation-guide.md))
3. Environment Variables
> 凭证与环境变量由父 skill `alibabacloud-dataphin-skills` 统一声明并预检(父 §3 + §4 Authentication + §8 Step 0,先于路由到本 skill 执行);本 skill 不重复声明。
> **执行通道(按父 §4.1 自动判定的环境选择,★重要)**:本 skill 的 OpenAPI Action 与参数语义两套环境一致,但**调用通道按部署形态区分**,由父 skill `alibabacloud-dataphin-skills` 的 §4.1 环境自动判定(endpoint / AK 前缀 / 探测,运行时推断,不询问类型)结果决定: > - **A `public-cloud`(公共云)→ 默认用 CLI**:`aliyun dataphin-public <命令>`(下文各命令),默认 endpoint + `aliyun configure` 主/子账号 AK。 > - **B `standalone`(独立部署 / POC)→ 默认直接调 OpenAPI,不走 CLI**:独立部署环境下 `aliyun dataphin-public` 对 HTTPS endpoint 会直接报 `dial tcp ... connect: bad file descriptor`(Go CLI 已知网络层 bug,`curl` 能通、CLI 不通)。**遇到该环境不要再尝试/重试 CLI**,直接用阿里云 Python SDK(RPC 风格)调 OpenAPI,自签证书需关闭校验(`verify=False` / `ignore_ssl`)。 > - **Action 名(★POC 实测坑)**:真实 OpenAPI Action 名 = **对应 CLI kebab 命令的 PascalCase**(如 `list-quality-watches`→`ListQualityWatches`、`upsert-quality-rule`→`UpsertQualityRule`、`get-quality-watch-by-object-id`→`GetQualityWatchByObjectId`)。**不要猜、也不要沿用文档里可能残留的旧名**——`PagedQueryQualityWatches`/`SaveQualityWatch`/`RemoveQualityRules` 这类是旧裸 OpenAPI 命名,POC 直调会报 `Unknown API`。**拿不准就先用 `aliyun dataphin-public <command> --cli-dry-run` 导出真实 Action 名与参数再调**。参数名 kebab-case → camelCase(`--watch-type`→`WatchType`),`--tenant-id`→`OpTenantId`;复杂对象(`--table-info`/`--validate-condition-list` 等)作为 JSON string/list 传同名 camelCase 参数,值语义一致。 > - **Version / endpoint / 凭证**:`Version` 以环境实测为准(POC 独立部署实测 `2023-06-30`);endpoint、AK/SK 从 profile / 环境变量获取。 > - **Python SDK 骨架 + 签名要点(★POC 实测坑)**:POC standalone 的 OpenAPI **要求全部业务参数放在 query string 里参与签名**;而 `aliyunsdkcore` 默认会把参数塞进 request body,body 参数不进签名串 → 始终 `SignatureDoesNotMatch`。**所有业务参数一律用 `add_query_param` 进 query string,禁止用 body(`add_body_params`)**;若用 SDK 仍签名不过,改为**手动签名 + query string 传参**(实测这样 `ListQualityWatches` 才能正常返回)。 > ```python > from aliyunsdkcore.client import AcsClient > from aliyunsdkcore.request import CommonRequest > import json, os > client = AcsClient(AK, SK, "cn-shanghai") # regionId 占位即可 > # UA 可观测(Principle 9):SKILL_SESSION_ID 由 Agent 执行时内联注入(继承自父 skill) > _sid = os.environ.get("SKILL_SESSION_ID", "") > client.set_user_agent("AlibabaCloud-Agent-Skills/configure-quality-rule" + ("/" + _sid if _sid else "")) > req = CommonRequest() > req.set_domain(ENDPOINT) # 如 dataphin-openapi.poc.lydaas.com,不带 https:// > req.set_version("2023-06-30") # 以环境实测为准 > req.set_action_name("ListQualityWatches") # 真实 Action = CLI list-quality-watches 的 PascalCase;拿不准用 --cli-dry-run 导出 > req.set_method("POST"); req.set_protocol_type("https") > # ★所有业务参数必须用 add_query_param 进 query string 参与签名,禁用 body(add_body_params),否则 SignatureDoesNotMatch > req.add_query_param("OpTenantId", TENANT_ID) # --tenant-id → OpTenantId > req.add_query_param("Name", KEYWORD); req.add_query_param("PageNo", 1); req.add_query_param("PageSize", 100) > # 自签证书:对底层 requests/urllib3 关闭校验(verify=False / urllib3.disable_warnings) > resp = client.do_action_with_exception(req) > data = json.loads(resp) > ``` > > **SDK 仍报 `SignatureDoesNotMatch`(把参数落到 body)→ 手动签名**:把公共参数(`Action`/`Version`/`Format=JSON`/`AccessKeyId`/`SignatureMethod=HMAC-SHA1`/`SignatureVersion=1.0`/`SignatureNonce`/`Timestamp`)与全部业务参数一起放进 query,按 key 字典序排序拼成规范化 query 串,做 RPC 签名(`StringToSign = "POST&" + %2F + "&" + URLEncode(排序后query串)`,HMAC-SHA1 密钥为 `AccessKeySecret + "&"`,结果 base64 作 `Signature`),再把含 `Signature` 的完整 query string 发出(`requests`,`verify=False`)。 > - 环境(公共云 A / 独立部署 B)由父 §4.1 运行时自动判定,据此选通道,**不询问用户类型**。两套通道均带可观测标识:CLI 用 `--user-agent`;OpenAPI 直调把相同 UA 放进 header(如 `User-Agent`)。
4. Authentication
> **Pre-check: Alibaba Cloud Credentials Required** > > **Security Rules:** > - **NEVER** read, echo, or print AK/SK values > - **NEVER** ask the user to input AK/SK directly in the conversation or command line > - **NEVER** use `aliyun configure set` with literal credential values > - **ONLY** use `aliyun configure list` to check credential status >
Read more
name: configure-quality-rule description: |- 通过 Dataphin OpenAPI 完成数据质量规则的全生命周期管理:创建监控对象、配置质量规则、设置调度与告警、试跑验证、启停规则、查看执行结果。 当用户场景涉及为某张表/字段配置质量校验、设置质量调度或告警、试跑质量规则、查看质量结果时进入。 触发场景: - 「给 X 表 Y 字段配非空/唯一/值域/枚举校验」 - 「质量规则要不要试跑 / 质量试跑失败排查」 - 「质量规则挂调度 / 质量告警通知负责人」 触发词:质量监控、质量规则、数据质量校验、质量告警、质量试跑、质量调度、监控对象、validateCondition、upsert-quality-rule。 关键限制 / 类型分支:监控对象类型必须先确认;监控对象名称不可让用户填写;templateId 必须用 list-quality-templates 实测获取;模板级 formProperties 必填项以界面和模板定义为准;validateCondition 无后端默认必须显式传;分区表试跑必须钉单分区;归档模式/计分方式/质量分权重 OpenAPI 不可配。
配置数据质量规则(创建 → 调度告警 → 试跑 → 监控)
1. Scenario Description
通过 Dataphin OpenAPI 完成一条质量规则从「监控对象 → 规则 → 调度/告警 → 试跑 → 启停 → 看板」的完整闭环。
> **核心原则**:本 skill 通过 OpenAPI 配置,但目的是让用户在**界面上看到的结果与手工配置一致、且能正常运行**。因此: > 1. **必填项以界面为准**,不能因 API 允许省略就擅自省略——先与用户确认(见 §6)。 > 2. **监控对象类型必须先确认**:`TABLE` / `DATASOURCE_TABLE` / `DATASOURCE` / `INDEX` / `REALTIME_LOGICAL_TABLE` 会决定对象定位方式、创建参数、可用模板和调度边界;不能仅凭对象名猜类型。 > 3. **监控对象名称(WatchName/tableName)不是用户配置项**,禁止让用户填写或选择;由 skill 根据目标对象元数据自动生成/回查校验。 > 4. **模板级必填项以模板和界面为准**,不能因为 `SaveQualityRule.formProperties` 顶层标为非必填就传空;例如 `TABLE_SCHEMA_CHECK`/2600 必须先选校验表并传 `dataSourceTable`。 > 5. **API 无法指定的项**(异常归档表、计分方式、质量分权重)必须**主动向用户说明默认值**。 > 7. **规则模版的必填项都不能为空**:`template-config-catalog.json` 中 `required=true` 的配置项必须全部有值。处理方式二选一: > - **有合理默认值** → 自动补上(如 `timeTolerance` 默认 `>0天 且 <1天`,`validateCondition` 默认 `ERROR_NUMBER=0`) > - **无合理默认值** → 必须询问用户(如 `validateField` 校验字段、`doubleTableCompareTable` 比较表、`customSql` 自定义SQL) > - **CLI 无法安全传值** → 创建规则后主动告知用户需到界面手工补充 > 8. **调度、告警由独立命令实现**,创建规则前必须**分别询问是否需要**,不默认配也不默认跳过。
**Architecture**:`Dataphin Tenant + QualityWatch(监控对象) + QualityRule(规则) + QualitySchedule(调度) + QualityAlert(告警)`。
2. Installation
> 仅**公共云(A)走 CLI** 时需要安装插件;**独立部署(B)直调 OpenAPI(见 §3 执行通道)无需安装 CLI 插件**。
aliyun plugin install --names aliyun-cli-dataphin-public
(详见 [`references/cli-installation-guide.md`](references/cli-installation-guide.md))
3. Environment Variables
> 凭证与环境变量由父 skill `alibabacloud-dataphin-skills` 统一声明并预检(父 §3 + §4 Authentication + §8 Step 0,先于路由到本 skill 执行);本 skill 不重复声明。
> **执行通道(按父 §4.1 自动判定的环境选择,★重要)**:本 skill 的 OpenAPI Action 与参数语义两套环境一致,但**调用通道按部署形态区分**,由父 skill `alibabacloud-dataphin-skills` 的 §4.1 环境自动判定(endpoint / AK 前缀 / 探测,运行时推断,不询问类型)结果决定: > - **A `public-cloud`(公共云)→ 默认用 CLI**:`aliyun dataphin-public <命令>`(下文各命令),默认 endpoint + `aliyun configure` 主/子账号 AK。 > - **B `standalone`(独立部署 / POC)→ 默认直接调 OpenAPI,不走 CLI**:独立部署环境下 `aliyun dataphin-public` 对 HTTPS endpoint 会直接报 `dial tcp ... connect: bad file descriptor`(Go CLI 已知网络层 bug,`curl` 能通、CLI 不通)。**遇到该环境不要再尝试/重试 CLI**,直接用阿里云 Python SDK(RPC 风格)调 OpenAPI,自签证书需关闭校验(`verify=False` / `ignore_ssl`)。 > - **Action 名(★POC 实测坑)**:真实 OpenAPI Action 名 = **对应 CLI kebab 命令的 PascalCase**(如 `list-quality-watches`→`ListQualityWatches`、`upsert-quality-rule`→`UpsertQualityRule`、`get-quality-watch-by-object-id`→`GetQualityWatchByObjectId`)。**不要猜、也不要沿用文档里可能残留的旧名**——`PagedQueryQualityWatches`/`SaveQualityWatch`/`RemoveQualityRules` 这类是旧裸 OpenAPI 命名,POC 直调会报 `Unknown API`。**拿不准就先用 `aliyun dataphin-public <command> --cli-dry-run` 导出真实 Action 名与参数再调**。参数名 kebab-case → camelCase(`--watch-type`→`WatchType`),`--tenant-id`→`OpTenantId`;复杂对象(`--table-info`/`--validate-condition-list` 等)作为 JSON string/list 传同名 camelCase 参数,值语义一致。 > - **Version / endpoint / 凭证**:`Version` 以环境实测为准(POC 独立部署实测 `2023-06-30`);endpoint、AK/SK 从 profile / 环境变量获取。 > - **Python SDK 骨架 + 签名要点(★POC 实测坑)**:POC standalone 的 OpenAPI **要求全部业务参数放在 query string 里参与签名**;而 `aliyunsdkcore` 默认会把参数塞进 request body,body 参数不进签名串 → 始终 `SignatureDoesNotMatch`。**所有业务参数一律用 `add_query_param` 进 query string,禁止用 body(`add_body_params`)**;若用 SDK 仍签名不过,改为**手动签名 + query string 传参**(实测这样 `ListQualityWatches` 才能正常返回)。 > ```python > from aliyunsdkcore.client import AcsClient > from aliyunsdkcore.request import CommonRequest > import json, os > client = AcsClient(AK, SK, "cn-shanghai") # regionId 占位即可 > # UA 可观测(Principle 9):SKILL_SESSION_ID 由 Agent 执行时内联注入(继承自父 skill) > _sid = os.environ.get("SKILL_SESSION_ID", "") > client.set_user_agent("AlibabaCloud-Agent-Skills/configure-quality-rule" + ("/" + _sid if _sid else "")) > req = CommonRequest() > req.set_domain(ENDPOINT) # 如 dataphin-openapi.poc.lydaas.com,不带 https:// > req.set_version("2023-06-30") # 以环境实测为准 > req.set_action_name("ListQualityWatches") # 真实 Action = CLI list-quality-watches 的 PascalCase;拿不准用 --cli-dry-run 导出 > req.set_method("POST"); req.set_protocol_type("https") > # ★所有业务参数必须用 add_query_param 进 query string 参与签名,禁用 body(add_body_params),否则 SignatureDoesNotMatch > req.add_query_param("OpTenantId", TENANT_ID) # --tenant-id → OpTenantId > req.add_query_param("Name", KEYWORD); req.add_query_param("PageNo", 1); req.add_query_param("PageSize", 100) > # 自签证书:对底层 requests/urllib3 关闭校验(verify=False / urllib3.disable_warnings) > resp = client.do_action_with_exception(req) > data = json.loads(resp) > ``` > > **SDK 仍报 `SignatureDoesNotMatch`(把参数落到 body)→ 手动签名**:把公共参数(`Action`/`Version`/`Format=JSON`/`AccessKeyId`/`SignatureMethod=HMAC-SHA1`/`SignatureVersion=1.0`/`SignatureNonce`/`Timestamp`)与全部业务参数一起放进 query,按 key 字典序排序拼成规范化 query 串,做 RPC 签名(`StringToSign = "POST&" + %2F + "&" + URLEncode(排序后query串)`,HMAC-SHA1 密钥为 `AccessKeySecret + "&"`,结果 base64 作 `Signature`),再把含 `Signature` 的完整 query string 发出(`requests`,`verify=False`)。 > - 环境(公共云 A / 独立部署 B)由父 §4.1 运行时自动判定,据此选通道,**不询问用户类型**。两套通道均带可观测标识:CLI 用 `--user-agent`;OpenAPI 直调把相同 UA 放进 header(如 `User-Agent`)。
4. Authentication
> **Pre-check: Alibaba Cloud Credentials Required** > > **Security Rules:** > - **NEVER** read, echo, or print AK/SK values > - **NEVER** ask the user to input AK/SK directly in the conversation or command line > - **NEVER** use `aliyun configure set` with literal credential values > - **ONLY** use `aliyun configure list` to check credential status >
Official Alibaba Cloud Agent Skills collection, providing AI agents with rich Alibaba Cloud product capabilities and general-purpose tooling.
Other skills on alibabacloud-aiops-skills.
- /alibabacloud-agentbay-aio-skills
Execute code in a secure cloud sandbox via AgentBay SDK. Use this skill whenever users request to run, execute, or evaluate code (Python, JavaScript, R, Java), including plotting charts, running scripts, or viewing code output. Covers requests like "run this code", "execute
Open skill - /alibabacloud-agentloop-dataset
Operate Alibaba Cloud AgentLoop Dataset resources with aliyun CLI and the AgentLoop API version 2026-05-20. Use when requests concern AgentLoop datasets, data rows, Dataset schemas, embedding fields, semantic search, ExecuteQuery, AgentSpace data, 数据集, 数据写入, 数据查询, 语义检索, or ask
Open skill - /alibabacloud-agentloop-evaluation
Orchestrate AgentLoop evaluation workflows through the Aliyun CLI plugin with safe previews, saved evaluator and evaluator-skill management, one-shot sample tests, trace or dataset batch runs, polling, and result inspection. Analyze evaluation quality and low-score cases from
Open skill - /alibabacloud-agentloop-experience
Proactively use AgentLoop Recall to retrieve prior Alibaba Cloud AgentLoop experience through the bundled SearchContext CLI whenever the user asks or implies that prior work may help. Trigger for requests to check, search, recall, retrieve, look up, review, consult, reference,
Open skill - /alibabacloud-agentloop-management
AgentLoop APM接入 / AI可观测接入 / 应用监控接入 / 自研探针 / 探针安装. Use for Python aliyun-bootstrap (aliyun-instrument), Java AliyunJavaAgent, Golang instgo, Node.js cms_node_sdk, PHP/.NET OpenTelemetry, ack-onepilot, LicenseKey, AgentLoop workspace agentloop-*. Also for LangChain, Dify,
Open skill - /alibabacloud-avatar-video
Use Alibaba Cloud DashScope API and LingMou to generate AI video and speech. Seven capabilities — (1) LivePortrait talking-head (image + audio → video, two-step), (2) EMO talking-head, (3) AA/AnimateAnyone full-body animation (three-step), (4) T2I text-to-image (Wan 2.x, default
Open skill

