| name | data-auditor-cleaner |
| description | Map contest attachments to subquestions, audit and clean raw data, and emit one reusable data profile with quality, coverage, imbalance, concentration, and method-readiness evidence for downstream risk screening. |
Purpose
Create traceable cleaned data and one reusable profile. Do not repeat the same data inspection separately for every candidate method.
Preconditions
- Problem parse and subquestion IDs exist.
- Raw files are available under
workspace/data_raw/ or the workspace's documented legacy raw-data path.
- Required outputs and known field needs are available.
Stop rather than fabricate a missing attachment, unit, field meaning, or label.
Workflow
-
Map attachments before cleaning.
- List each attachment with name, size, sheet names, headers, and a small preview.
- Map it to Qx or mark it shared.
- Ask the user only when two mappings remain materially plausible.
-
Preserve raw data.
- Treat raw files as read-only.
- Record hashes or stable file metadata when practical.
- Write cleaned copies under
workspace/data_clean/.
-
Audit structure and semantics.
- Rows, columns, keys, types, units, categories, time granularity, and encoding.
- Missing values, duplicates, impossible values, outliers, discontinuities, and leakage risks.
- Field-to-subquestion and field-to-required-output mapping.
-
Compute reusable risk-profile statistics.
- Effective sample size and rows usable per Qx.
- Missingness by field and row.
- Numeric distribution summaries and extreme-value rates.
- Category/class counts, imbalance ratios, rare levels, and cardinality.
- Time coverage, gaps, sampling interval, and chronological split constraints.
- Correlation/redundancy warnings where relevant.
- Target or score concentration indicators when a target exists.
- Record facts; do not convert them into a final method verdict.
-
Plan and apply cleaning.
- Separate safe normalization of representation from assumption-bearing imputations or removals.
- Explain and record every assumption-bearing operation.
- Keep reproducible cleaning code only when transformations are nontrivial.
-
Assess readiness per Qx.
ready, ready_with_warnings, or blocked.
- Name missing fields and risks precisely.
- Hand the profile to
method-selector for method-specific risk probes.
Canonical Outputs
workspace/data/data_report.md
workspace/data/data_profile.json
workspace/data_clean/<cleaned files>
workspace/code/scripts/<cleaning script> # only when needed
Accept legacy workspace/data/data_clean/ as an input/output location during migration.
Data Profile Contract
data_profile.json contains:
{
"schema_version": 1,
"raw_files": [],
"attachment_mapping": [],
"fields": [],
"quality": {
"missingness": {},
"duplicates": {},
"impossible_values": {},
"outliers": {}
},
"coverage": {
"rows": 0,
"effective_sample_size": null,
"time_range":
Use null with an explanation when a field is not applicable; do not invent a value to fill the schema.
Rules
- Do not select the model.
- Do not overwrite raw data.
- Do not silently delete, impute, winsorize, rescale, or recode.
- Do not produce decorative EDA.
- Reuse one profile downstream instead of regenerating statistics.
- Store detailed row-level change logs only when changes occurred; successful no-op checks need only summary counts.
Verification
- Attachment mapping is unambiguous or human-confirmed.
- Raw files remain untouched.
- Cleaned files trace to raw sources and transformation rules.
- Profile includes effective sample size, imbalance/cardinality, and concentration evidence when applicable.
- Readiness is reported per subquestion.
- Downstream handoff points to paths rather than pasting the full report.