Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/adityawrk/analytics-with-claude-code/edanpx skills add adityawrk/analytics-with-claude-code --skill edagit clone --depth 1 https://github.com/adityawrk/analytics-with-claude-codeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/adityawrk/analytics-with-claude-code/eda)<a href="https://agentmods.dev/skills/adityawrk/analytics-with-claude-code/eda"><img src="https://agentmods.dev/badge/skills/adityawrk/analytics-with-claude-code/eda.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00067 | $0.02316 |
| Opus 5 | $0.00034 | $0.01158 |
| Sonnet 5 | $0.00013 | $0.00463 |
| Haiku 4.5 | $0.00007 | $0.00232 |
Grade A, and why
eda scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 218 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Exploratory Data Analysis (EDA)
You are an expert data analyst performing a thorough exploratory data analysis. Follow every section below systematically. Do not skip sections. Adapt your approach based on whether the input is a file (CSV, Parquet, JSON) or a database table.
Step 0: Environment Setup
import pandas as pd
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import seaborn as sns
from datetime import datetime
import warnings
warnings.filterwarnings('ignore')
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', 100)
pd.set_option('display.float_format', lambda x: f'{x:.4f}')
sns.set_style('whitegrid')
Step 1: Data Ingestion
- If the user provides a file path, load it with the appropriate reader:
- CSV:
pd.read_csv(path, low_memory=False) - Parquet:
pd.read_parquet(path) - JSON:
pd.read_json(path) - Excel:
pd.read_excel(path)
- CSV:
- If the user provides a SQL table or query, connect using the credentials or connection string they provide, then load via
pd.read_sql(). - If the dataset has more than 5 million rows, sample 1 million rows for profiling but note the full row count. Use
df.sample(n=1_000_000, random_state=42)and clearly state that profiling is based on a sample. - Immediately print: row count, column count, memory usage (
df.memory_usage(deep=True).sum() / 1024**2in MB).
Step 2: Schema Overview
Produce a table with one row per column containing:
| Column | Dtype | Non-Null Count | Null % | Unique Count | Sample Values (up to 5) |
|---|
schema = pd.DataFrame({
'dtype': df.dtypes,
'non_null': df.notnull().sum(),
'null_pct': (df.isnull().sum() / len(df) * 100).round(2),
'unique': df.nunique(),
'sample_values': [df[col].dropna().unique()[:5].tolist() for col in df.columns]
})
print(schema.to_markdown())
Classify each column into one of these types:
- Numeric continuous (float, high cardinality int)
- Numeric discrete (low cardinality int, ordinal)
- Categorical (string/object with < 50 unique values)
- High-cardinality categorical (string/object with >= 50 unique values)
- DateTime
- Boolean
- Identifier / Primary Key (unique or near-unique, often named
id,uuid,key) - Free text (long strings, high uniqueness)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 218 lines · 67 tokens per session scan A 84a19a27cf07
eda is a skill published in the GitHub repository adityawrk/analytics-with-claude-code (5 stars, last pushed 6mo ago), licensed MIT. It adds 67 tokens to every session and 2,316 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
pr-verify
Verify a Docglow change actually works before submitting or merging a PR. Runs the conformance suite, then a behavioral verification pass (flag matrix, artifact-join spot checks, pipeline contract sweep, payload budget). Use when reviewing a PR, self-reviewing a branch before opening a PR, or when asked to "verify…
developing-incremental-models
Develops and troubleshoots dbt incremental models. Use when working with incremental materialization for: (1) Creating new incremental models (choosing strategy, uniquekey, partition) (2) Task mentions "incremental", "append", "merge", "upsert", or "late arriving data" (3) Troubleshooting incremental failures (merge…
altimate-code
Delegates dbt and warehouse work to altimate-code, a specialized CLI agent with 100+ purpose-built data tools. USE THIS SKILL FIRST whenever the task mentions or implies: warehouse access (Snowflake, BigQuery, Redshift, Databricks, Postgres, MySQL, DuckDB), column-level lineage, downstream-impact analysis, dbt builds…
documenting-dbt-models
Documents dbt models and columns in schema.yml. Use when working with dbt documentation for: (1) Adding model descriptions or column definitions to schema.yml (2) Task mentions "document", "describe", "description", "dbt docs", or "schema.yml" (3) Explaining business context, grain, meaning of data, or business rules…
refactoring-dbt-models
Safely refactors dbt models with downstream impact analysis. Use when restructuring dbt models for: (1) Task mentions "refactor", "restructure", "extract", "split", "break into", or "reorganize" (2) Extracting CTEs to intermediate models or creating macros (3) Modifying model logic that has downstream consumers (4)…
creating-dbt-models
Creates dbt models following project conventions. Use when working with dbt models for: (1) Creating new models (any layer - discovers project's naming conventions first) (2) Task mentions "create", "build", "add", "write", "new", or "implement" with model, table, or SQL (3) Modifying existing model logic, columns…