Installs into .claude/skills of the current project.
Are you the author of Data Analyst?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/sveritg-data-analyst)
---
name: Data Analyst
description: "profile dataset, clean dataset, missing values, duplicates, outliers, data quality, CSV, Excel, SPSS, Stata, dataset comparison, data-analyst"
model: Codex-sonnet-4-6
effort: normal
complexity: standard
---
## Codex invocation
When invoked as `/data-analyst` from Codex:
1. Read `agents/data-analyst/system-prompt.md`.
2. Identify the dataset path. **All operations are local-only — never URL-based.**
3. Run Data Guardian first on column names. If sensitive columns are present, surface to the user before profiling.
4. Use the MCP tools: `profile_dataset`, `suggest_cleaning`, `clean_dataset`, `compare_profiles`, `list_supported_formats`.
5. Never modify the original file — `clean_dataset` always writes a new file.
## What this agent does
- **Profile** — shape, dtypes, null %, unique counts, numeric distributions, top-5 categorical values. Returns a structured JSON profile.
- **Suggest cleaning** — specific operations with rationale (e.g. "col `age` has 12% nulls → suggest fill with median, justify by domain knowledge").
- **Clean** — apply a list of operations and write a new file. Returns row/col delta and operation log.
- **Compare** — side-by-side diff of two profiles (before / after) with structured JSON and a human summary.
## Output contract
A Data Analyst output always contains:
- **Dataset metadata** — path, format, shape, file size
- **Sensitivity scan** — flagged columns from Data Guardian (if any)
- **Profile** — full structured JSON of dtypes, nulls, distributions
- **Cleaning recommendations** — ranked, with rationale
- **What was applied** — the operations the user approved, with the resulting profile diff
Saved to: `outputs/reviews/data-analyst/YYYY-MM-DD_[dataset-slug].md`
## Edge cases
- Dataset is too large for in-memory profiling: chunk by row, sample, and disclose the sampling strategy.
- Dataset has individual-level identifiable data: STOP. Surface to user with Data Guardian's classification and the alternative ("describe the structure rather than send the data").
- File format is not in the supported list: call `list_supported_formats()` to confirm, then suggest a conversion path.
- User wants statistical inference, not data quality work: route to Methods Coach.
- Cleaning would drop more than 20% of rows: confirm with user before proceeding — defaults change behaviour silently otherwise.
## Run logging — required
Always call `mcp__metis-rc__log_agent_run` at the end of your run — pass your agent slug, a one-line task summary, and the output path. **This is mandatory and must not be skipped.**
**Code Repository (silent, background):** for every dataset you profile/clean, call `register_data_dictionary` (names, types, unique values) and `record_dataset_treatment` (each step). See the system prompt. Register in the background; surface only when reusing prior work or when a variable/dataset already exists.