AgentStack
SKILL verified MIT Self-run

Csv Data Analyzer

skill-kirkruglov-claude-skills-kit-csv-data-analyzer · by KirKruglov

Analyze CSV files with business data through a dialogue-based flow — no code, no Python, no plugins. Profiles dataset structure, asks what you want to understand, then delivers numbered insights and a plain-language interpretation. Use when analyzing sales exports, task lists, survey results, CRM data, or any CSV file. Triggers: 'analyze my CSV', 'analyze this CSV file', 'help me understand this…

No reviews yet
0 installs
14 views
0.0% view→install

Install

$ agentstack add skill-kirkruglov-claude-skills-kit-csv-data-analyzer

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Csv Data Analyzer? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

CSV Data Analyzer

This skill analyzes CSV files with business data for non-technical users through a conversational question flow — without code, formulas, or external tools. Claude reads the CSV directly, profiles its structure, asks one clarifying question about your goal, and delivers numbered insights with a plain-language interpretation.

Input:

  • A CSV file accessible in the Cowork workspace (uploaded or in the selected folder)

Output:

  • Markdown response with: dataset profile, numbered key insights, data snapshot table, plain-language interpretation, and follow-up suggestions

Language Detection

Detect the user's language from their message:

  • If Russian (or contains Cyrillic): respond in Russian
  • If English (or other Latin-script language): respond in English
  • If ambiguous: respond in the language of the trigger phrase used

Instructions

Step 1: Locate and Read the CSV File

  1. Identify the CSV file from the user's message
  • If a file path or filename is provided: use it directly
  • If no path given: look for a CSV file in the Cowork workspace folder
  • If no CSV file found: stop and report — "I don't see a CSV file. Please upload the file or confirm it's in your selected Cowork folder, then try again."
  1. Read the file content as plain text
  • If the file cannot be parsed as CSV (binary, corrupted, wrong format): stop and report — "This file doesn't appear to be a valid CSV. Please check the file format and try again."

Step 2: Profile the Dataset

  1. Count rows and columns (exclude the header row from row count)
  • If only 1 row exists (header only, no data): stop and report — "This CSV has no data rows — only headers. Please check the file and try again with a populated dataset."
  1. Identify column names from the first row
  • If no header row detected (all rows look like data rows): assign generic names Column 1, Column 2, … and note: "I couldn't detect column headers — I'll use generic names."
  1. Infer data type for each column: numeric, text, date, or boolean
  • If a column contains mixed types (numbers and text): note the inconsistency; treat column as text; recommend cleaning before numeric analysis
  1. Check for empty/null cells per column
  • If a column has >30% empty cells: flag it as sparse and exclude from numeric analysis; include in profile with a note
  1. If file has >500 rows: use a representative sample (first 200 rows + last 50 rows); note the sampling and warn — "File has {N} rows — analysis is based on a sample. Results may not reflect the full dataset."

Step 3: Present Profile and Ask Clarifying Question

  1. Output a brief dataset profile (2–3 lines):
  • Row count, column count, column names with types, notable issues (sparse columns, mixed types, date range if detected)
  1. Ask one focused clarifying question:
  • "What would you like to understand — summary statistics, trends over time, top/bottom items, comparisons between groups, or something else?"
  • Do not proceed to analysis until user answers

Step 4: Perform Analysis

Based on the user's answer, select the appropriate analysis mode:

  • Summary statistics: min, max, average, median for numeric columns; value counts for text columns; date range if dates present
  • Trends over time: group by date column; show values per period (day/week/month); identify direction (increasing/decreasing/flat)
  • Top/bottom items: sort by a numeric column; show top 5 and bottom 5; calculate gap between them
  • Comparisons between groups: group by a categorical column; aggregate a numeric column per group; highlight largest/smallest group
  • Custom goal: if user's answer doesn't match the above modes, ask one follow-up to clarify which column(s) to focus on

Edge Case — Ambiguous column reference: If the user's goal involves a concept not directly named in the column headers (e.g., "show me churn" but no "churn" column), ask: "Which column represents [concept] in your data?" before proceeding.

Perform analysis using natural-language reasoning. No code execution required.

Step 5: Format and Output Results

  1. Output results using the Output Format structure (see below)
  2. Populate Key Insights with 3–5 numbered findings in plain language
  3. Include a Data Snapshot table: top 5–10 rows or the aggregated result (whichever is more informative)
  4. Write Interpretation: 2–3 sentences explaining what the numbers mean in business terms

Step 6: Offer Follow-Up Directions

  1. Ask: "Anything else you'd like to explore in this data?"
  2. Offer 2–3 concrete follow-up directions based on what was found (e.g., "Drill into the top-performing group", "Compare this period vs. last period", "Find outliers in [column]")
  3. If user confirms done: close with a one-line summary of the session findings

Output Format

### Dataset Profile
- **Rows:** {N}  |  **Columns:** {M}
- **Columns:** {col1 (numeric)}, {col2 (text)}, {col3 (date)}, …
- **Notable:** {any sparse columns, mixed types, date range, or sampling note}

### Key Insights
1. [Most significant finding — plain language, 1–2 sentences]
2. [Second finding]
3. [Third finding]
4. [Fourth finding, if applicable]
5. [Fifth finding, if applicable]

### Data Snapshot
| {Col1} | {Col2} | {Col3} |
|--------|--------|--------|
| …      | …      | …      |
*(Top 5–10 rows or aggregated result)*

### Interpretation
[2–3 sentences explaining what these numbers mean for the user's context — written for a business audience, not a data audience]

---
**What would you like to explore next?**
- [Follow-up direction 1]
- [Follow-up direction 2]
- [Follow-up direction 3]

Negative Cases

  • No CSV file: Stop with message — "I don't see a CSV file. Please upload the file or confirm it's in your selected Cowork folder, then try again."
  • Invalid file format: Stop with message — "This file doesn't appear to be a valid CSV. Please check the file format and try again."
  • Empty dataset (header only): Stop with message — "This CSV has no data rows — only headers. Please check the file and try again with a populated dataset."
  • Request for charts or visual output: Explain — "I can't generate charts in this mode, but I can give you a detailed text summary and a data table you can paste into Excel or Sheets to visualize."

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.