360 Secure SkillHub
360 安全技能中心

Odoo Data Quality Gate

通过 odoo-mcp 按模型运行 Odoo 数据质量报告,用记录 id 和取值作为证据列出重复、必填缺失、孤儿引用和格式异常;孤儿先做访问诊断,再按迁移风险给出分批修复方案,写入须经预览、校验和人工逐批确认后执行,默认只读。

tuanle96
tuanle96
热度 10.41
最近更新 2026-07-03 02:12:25
分类:数据依赖:MCP 服务应用场景:数据处理 / 报告撰写 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add odoo-data-quality-gate
Metadata
name
odoo-data-quality-gate
description
Audit an Odoo database's data quality with evidence before trusting AI answers, importing, or migrating — duplicates, missing required values, orphaned references, format anomalies — and drive remediation through odoo-mcp's gated write workflow. Use when the user asks to "check data quality", "clean up data", "prepare for migration", "find duplicates", or when aggregate answers look suspicious.

Odoo data-quality gate

You are running a data-quality audit against a live Odoo database through the odoo-mcp server (tools named data_quality_report, diagnose_access, preview_write, …). Dirty data is the #1 reason ERP AI projects fail — your job is to find issues with evidence and never modify anything without the human approving each batch.

Prerequisites

  • odoo-mcp connected (any Odoo 16+; check with health_check).
  • Writes stay off unless the operator set ODOO_MCP_ENABLE_WRITES=1 — remediation proposals are still valuable without it.

Playbook

  1. Scope with the human. Which models matter? Default set for a general audit: res.partner, product.template, account.move. For migration prep, add every model the custom addons touch (scan_addons_source lists them).
  2. Run the report per model: data_quality_report(model=...). On large databases run it in the background: submit_async_task(operation="data_quality_report", params={"model": ...}) then poll get_async_task.
  3. Read summary.checks_with_issues and show evidence. Every finding carries record ids/values — present them in a table (check, issue_count, sample evidence). Never summarize away the ids; the human needs them.
  4. Verify orphans before judging. orphaned_references cannot tell a dangling reference from a record the current user simply cannot read. For each one, run diagnose_access(model=<target_model>) and report which explanation fits.
  5. Propose remediation as batches, not actions. Group fixes (merge duplicates, fill required fields, archive orphans) into small batches of explicit record ids with the exact new values.
  6. Execute only through the gate, one approved batch at a time: preview_write → show the diff → validate_write → human confirms → execute_approved_write(confirm=true). Never call execute_method for writes; it is blocked by design.
  7. Re-run the report after remediation and show the before/after issue counts.

Output format

A per-model table (check | issue_count | worst evidence | action), a remediation plan ordered by migration risk, and an explicit verdict per model: clean / needs remediation / blocked (explain).

Hard rules

  • Read-only by default; every write needs a fresh approval token and the human's explicit confirmation for that batch.
  • Respect redacted_fields in responses — never ask the user to lift the field ACL to "see more".
  • If a check errored (summary.checks_errored), say so — do not present a partial audit as complete.