用途:把一份脏表格数据(CSV/TSV/parquet/Excel/JSON)自主清理到可辩护的最干净状态,无需运行中人工介入。目标是一份检查清单,而非分数。
主要能力:先做结构确认(分隔符/编码/表头解析正确、单一整洁表、类型合理),再进行契约合成——把观察到的每个异常编译成确定性二元检查(required、type、range、regex、categories、跨列规则、key、rows.unique、可选 outlier),每项检查只报告违规计数,没有加权浮点。随后进入修复循环:剖析表格、按优先级(严重度、违规数)选最差的开检查、写一个纯 pandas 变换、应用生成候选版本、重新剖析,仅当目标检查违规严格下降且无其他检查回归、无护栏触发时才保留。
使用方式:交互式解析绑定(artifact、contract、retention_floor 默认 0.95、protected_columns、impute_cap 默认 0.20、analysis_cmd 默认 python3、sandbox_root 默认 ./sandbox、gate/budget 默认 iterations/30)。若工作目录存在 loop.run.yaml 则加载确认;否则推断各绑定值并让用户确认,写入 loop.run.yaml。契约是唯一需用户明确批准的决定,确认后循环自主运行。剖析与变换代码通过 analysis_cmd 在用户环境运行,可用 pandas;辅助代码优先标准库,重依赖用 try/except ImportError 探测或经同意安装固定版本。
适用场景:需要把脏表自主清理到推断并确认的契约、每个缺陷都是确定性检查的场景。不适用于对已干净数据集的开放式探索、诊断单个已知异常、或对照来源核查外部声明。
限制:原始 artifact 只读,v0 为副本,所有工作写入 sandbox_root/tcl/。不得静默增行、伪造键或凭空造值;插补须标记为合成、记录并受 impute_cap 限制。违反保留下限、丢弃受保护列或超插补上限的候选一律回退。检查是确定性计数而非 LLM 判断,确认的契约是“正确”的唯一权威,运行中不得静默更改。每次迭代只做一个变换。无法在护栏内修复的检查记为残留并如实报告,绝不为清检查而伪造或置空必填数据。停止条件:全部通过、全部残留、或预算耗尽。输出 cleaned.<ext>、可重放的 pipeline.py、ledger.tsv 与 report.md。检查清单衡量的是格式良好与自洽,而非真实准确性。