一键导入
eda-analysis
Run 6-phase exploratory data analysis on a new dataset — ingest, profile, univariate, correlations, leakage gate, feature proposals
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Run 6-phase exploratory data analysis on a new dataset — ingest, profile, univariate, correlations, leakage gate, feature proposals
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Scaffold and run batch scoring jobs (CronJob + Parquet output) that reuse the service's model + feature-engineering code without opening the live API
Root-cause a performance alert using sliced metrics + ground-truth
Review cloud costs against budget and identify optimization opportunities
Debug ML inference issues — latency spikes, wrong predictions, event loop blocking
Deploy ML service to EKS with Kustomize overlays and IRSA
Deploy ML service to GKE with Kustomize overlays and Workload Identity
| name | eda-analysis |
| description | Run 6-phase exploratory data analysis on a new dataset — ingest, profile, univariate, correlations, leakage gate, feature proposals |
| allowed-tools | ["Read","Write","Edit","Grep","Glob","Bash(python:*)","Bash(dvc:*)","Bash(jupyter:*)"] |
| when_to_use | Use when given a new dataset (data/raw/*.csv|parquet) before any training happens. Examples: 'explore this customer churn dataset', 'do EDA on the fraud transactions data', 'analyze the new loan applications CSV'. |
| argument-hint | <dataset-path> [service-slug] |
| arguments | ["dataset-path","service-slug"] |
| authorization_mode | {"ingest_profile":"AUTO","univariate_correlations":"AUTO","leakage_gate":"AUTO","propose_features":"AUTO","propose_schema":"AUTO","escalation_triggers":[{"leakage_detected":"STOP"},{"target_metric_over_99":"STOP"},{"missing_target_column":"CONSULT"},{"data_outside_data_raw":"STOP"}]} |
Guides the agent through a 6-phase EDA pipeline that produces artifacts consumed by
training (features.py), schema generation (schemas.py), and drift detection in production
(baseline_distributions.parquet).
$dataset-path: Path to raw data (e.g., data/raw/transactions.csv)$service-slug: Optional — the snake_case service name the EDA belongs toComplete EDA with all 6 artifacts produced, leakage audit passing (or explicitly resolved),
and feature_catalog.yaml ready for features.py consumption.
templates/eda/eda_pipeline.py is available (copied by new-service.sh)data/raw/ (NEVER read from production paths — invariant D-13)pip install -r eda/requirements.txtTrigger: Agent-DataValidator. Raw file arrives in data/raw/.
chardet (non-ASCII datasets are common)pandas.read_csv / read_parquetdf.columns = df.columns.str.lower().str.replace(r'\W+', '_', regex=True)dvc add data/raw/<file> if not already trackedOutput: data/processed/dataset_clean.parquet, eda/reports/00_ingest_report.md
Success criteria: File loads, all columns are snake_case, DVC hash recorded.
Trigger: Agent-EDAProfiler. Clean dataset available.
Output: eda/reports/01_profile.html (ydata-profiling or lightweight), canonical eda/artifacts/schema_ranges.json
Success criteria: Profile report generated. schema_ranges.json enumerates every column with inferred dtype and observed range.
Trigger: Agent-EDAProfiler. Critical phase — feeds drift detection.
Output: eda/reports/02_univariate.html, eda/artifacts/baseline_distributions.parquet
Success criteria: baseline_distributions.parquet exists with quantile bins for each feature. This file is the source of truth for drift detection in production. Missing = D-15 violation.
Trigger: Agent-EDAProfiler.
Output: eda/reports/03_correlations.html, eda/artifacts/03_feature_ranking_initial.csv
Success criteria: Ranking CSV produced with top 20 features by target correlation. Multicollinearity groups identified.
Trigger: Agent-DataValidator. This phase can BLOCK the pipeline.
Output: canonical eda/artifacts/leakage_report.json plus human-readable eda/reports/04_leakage_audit.md
Success criteria:
BLOCKED_FEATURES: [] → continue to phase 5/incident workflow with severity P2. Engineer must:
Trigger: Agent-MLTrainer + Agent-EDAProfiler (collaborative).
Based on phases 2–3, propose transformations with documented rationale:
Output: eda/artifacts/feature_catalog.yaml
Success criteria: Every proposal has a rationale field citing specific EDA findings (e.g., "skew=2.3 → boxcox stabilizes variance"). Invariant D-16 enforced.
Trigger: Agent-DocumentationAI + Agent-DataValidator.
eda/reports/eda_summary.md with key findings (for ADR)src/{service}/schema_proposal.py — Pandera DataFrameModel with observed ranges
(Engineer REVIEWS and copies to schemas.py. Never auto-overwrite.)baseline_distributions.parquet is DVC-tracked and referenced from drift CronJob configOutput: eda/reports/eda_summary.md, src/{service}/schema_proposal.py, ADR entry
Success criteria:
eda_summary.md produced with measurable findingsschema_proposal.py has ranges derived from observed data (D-14 enforced)baseline_distributions.parquet (closes the loop)BLOCKED_FEATURES is an automatic P2 incidentschemas.py — produce schema_proposal.py for human reviewbaseline_distributions.parquet via DVC before closing EDA phase.html/.png reports in eda/reports/ stay out of git (see .gitignore)EDA is complete when ALL of these pass:
leakage_report.json shows blocked_features: []baseline_distributions.parquet is DVC-trackedfeature_catalog.yaml has rationale on every entryschema_proposal.py exists with observed rangeseda_summary.md ready for ADR citationbaseline_distributions.parquet