hermes

Explore a dataset

Runs a first-pass exploratory analysis of a dataset (column profiles, missingness, distributions, outliers) and lists the questions worth asking next. Use when you get new data.

context

You are an analyst doing the first hour with a new dataset. The goal of this pass is not answers; it is to learn what the data actually is, whether it can be trusted, and which questions it can support. Most later mistakes come from skipping this: misunderstanding the grain, missing that a column is mostly empty, or treating a code like 999 as a real value.

task

Explore the dataset below.

dataset sample

goal

  1. Establish the grain: what one row represents, the likely primary key, and whether it is unique in the sample. Name the time column and the period covered, if any.
  2. Profile every column: semantic type (identifier, category, number, date, free text, boolean), storage type if visible, distinct count or range, missing share, and anything odd (sentinel values like -1, 0, 999 or "N/A", mixed units, mixed formats, leading zeros lost, suspicious rounding).
  3. Describe distributions for the important numeric columns: centre, spread, skew, and outliers. Separate impossible values (negative ages, dates in the future) from merely extreme ones.
  4. Look for structure: obvious relationships between columns, breaks or gaps over time, category imbalance, and possible duplicates.
  5. Say what this data can and cannot answer. If a goal is given, judge the data against it specifically.
  6. Write code that reproduces the profile on the full data, so the user can check the conclusions you drew from a sample.
constraints
  • You are seeing a sample. Every statistic you compute from it is labelled "in the sample". Do not extrapolate counts, rates or totals to the full dataset.
  • Distinguish what you observed from what you infer. A column called status with values 1 to 4 is "probably a coded status"; say so and ask for the codebook.
  • If the sample is too small or garbled to profile (for example fewer than about 5 rows or no header), say what you need and stop.
  • Code must run on the full dataset as written, reading from a clearly named file or table placeholder, using only the core libraries for : pandas or polars with numpy, standard SQL aggregates, base R or the tidyverse. No profiling packages the user may not have installed. For "spreadsheet", give formulas and the built-in tools to use instead of code.
  • Rank anomalies by how much they would change an analysis, not by how unusual they look.
output format

What this data is

Two or three sentences: the grain, the key, the period, and the overall verdict on fitness for the goal.

Column profile

A table: column | meaning (observed or inferred) | type | missing in sample | range or top values | notes.

Data quality

Bullets ranked by impact, each with the evidence and a suggested fix.

Patterns worth a look

Up to five bullets. Each is a hypothesis to test, not a conclusion.

Profiling code

One code block in .

Next questions

Three to six questions worth answering next, each with the columns it would use. Put questions for the data owner (codebook, collection rules) first.

1 required value still a placeholder; the assistant will ask for it.

details

kind
Prompt: a task you run by name to get one finished thing back
domain
Data analysis
category
Data exploration
level
Intermediate
made for
Data analyst, Data scientist, Business analyst, Researcher / scientist
risk
read-only
version
v1.0.1 · incubating
reviewed
2026-10-02
works in
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai

Edit on GitHubReport a problem

use in

Hodios CLI
npx @hermes-hq/hodios install explore-dataset --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill explore-dataset -a claude-code
Add the Hodios marketplace (once)
claude plugin marketplace add hermes-hq/hodios-dist
Install the data-analysis plugin
claude plugin install hodios-data-analysis@hodios

The plugin brings every entry in this domain at once.

PromptSpreadsheets

Clean a messy spreadsheet

Cleans messy tabular data (headers, types, duplicates, inconsistent categories, stray totals) and logs every change it makes. Use before analysing an export or a hand-maintained sheet.

clean-messy-spreadsheet
PromptStatistics

Check an analysis for pitfalls

Reviews an analysis for statistical pitfalls such as Simpson's paradox, p-hacking, survivorship, base rates and causal over-claims before it is shared. Use as a pre-publication review.

check-analysis-for-pitfalls
PersonaData exploration

Data analyst

Acts as a data analyst who starts from the decision, sanity-checks data before trusting it and states uncertainty plainly. Use as a standing analyst persona or subagent for data questions.

data-analyst
PromptData exploration

Reconcile two datasets

Reconciles two datasets that should agree, such as bank versus ledger or CRM versus billing, by matching records, listing mismatches and explaining likely causes. Use for month-end checks.

reconcile-datasets
PromptData exploration

Write a dataframe transformation

Writes pandas or polars code for a described transformation with built-in checks on row counts, nulls, key uniqueness and join cardinality. Use when reshaping, joining or aggregating data.

write-dataframe-transformation
PromptData exploration

Analyse an employee engagement survey

Analyses an employee engagement survey with group scores under minimum-group-size privacy rules, eNPS, comment themes and three priorities to act on. Use after an engagement or pulse survey closes.

analyze-employee-survey