Skip to content
Back to skills

Analytics

ASecurity

Flexible data science analytics for any dataset. Auto-discovers schema, recommends charts, exports to create-figure. Works with JSONL, JSON, CSV from any source.

  • 6 stars
  • 0 votes
  • 0 copies
  • 6 views
  • Added September 11, 2026
datapythongobashapi

Works with

  • api

Security analysis

A100/100

Pro scans all 9 files and shows the line behind each finding

Scanned September 11, 2026

npx -y skills add grahama1970/agent-skills --skill analytics --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Analytics?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Analytics
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/grahama1970-analytics/badge)](https://www.skillsdirectory.com/skills/grahama1970-analytics)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: analytics
description: >
  Flexible data science analytics for any dataset.
  Auto-discovers schema, recommends charts, exports to create-figure.
  Works with JSONL, JSON, CSV from any source.
allowed-tools: Bash, Read
triggers:
  - analyze data
  - analyze dataset
  - show insights
  - describe data
  - what's in this data
  - data exploration
  - EDA
  - schema discovery
  - chart recommendations
  - visualize this data
metadata:
  short-description: Schema discovery + chart recommendations for any data

provides:
  - analytics
composes:
  - create-figure
  - task-monitor
  - agentic-evals
disciplines:
  - data-engineering
  - content-creation
---

# Analytics Skill

Flexible data science analytics that works with **any dataset**. Auto-discovers schema, recommends visualizations, and exports in create-figure format.

## Quick Start (Any Dataset)

```bash
cd .pi/skills/analytics

# Step 1: Discover what's in the data
./run.sh describe data.jsonl

# Step 2: See recommendations and generate chart
./run.sh chart data.jsonl --name distribution_channel -o chart.json

# Step 3: Render with create-figure
cd .agent/skills/create-figure
./run.sh metrics -i /path/to/chart.json --type bar -o chart.pdf
```

## The Seamless Pipeline

```
Any Data (JSONL/JSON/CSV)
         │
         ▼
┌─────────────────────────────────┐
│     analytics describe          │  ← Discovers schema, recommends charts
│  "5 categorical, 2 numerical,   │
│   1 temporal column detected"   │
│  Recommendations:               │
│   - distribution_channel (bar)  │
│   - trend_by_date (line)        │
│   - heatmap_hour_x_day          │
└─────────────────────────────────┘
         │
         ▼
┌─────────────────────────────────┐
│     analytics chart/group-by    │  ← Generates chart data in create-figure format
│  --name distribution_channel    │
│  -o chart.json                  │
└─────────────────────────────────┘
         │
         ▼
┌─────────────────────────────────┐
│     create-figure metrics       │  ← Renders publication-quality PDF/PNG
│  -i chart.json --type bar       │
│  -o channel_distribution.pdf    │
└─────────────────────────────────┘
```

## Commands

### Discovery (Start Here)

| Command | Description |
|---------|-------------|
| `describe <file>` | Discover schema, detect column types, recommend charts |

```bash
./run.sh describe sales.jsonl
# Output:
# Columns: date (temporal), product (categorical), amount (numerical), region (categorical)
# Recommendations:
#   1. distribution_product - Distribution of product
#   2. distribution_region - Distribution of region
#   3. trend_by_date - Count over date
#   4. heatmap_product_x_region - product vs region
```

### Flexible Analysis

| Command | Description |
|---------|-------------|
| `group-by <file>` | Group by any column with aggregation |
| `stats <file>` | Numerical statistics and correlations |
| `chart <file>` | Generate chart spec for create-figure |

```bash
# Group by any column
./run.sh group-by data.jsonl --by channel --for-figure -o by_channel.json
./run.sh group-by data.jsonl --by category --agg price --func sum

# Numerical stats
./run.sh stats data.jsonl --columns revenue,cost,profit

# Generate chart from recommendation
./run.sh chart data.jsonl --name distribution_channel -o chart.json
```

### Timestamped Data (ingest-* outputs)

| Command | Description |
|---------|-------------|
| `insights <file>` | Full analysis summary (trends, sessions, patterns) |
| `trends <file>` | Viewing trends with rolling averages |
| `sessions <file>` | Session detection and binge analysis |
| `time-patterns <file>` | Hour/day distribution |
| `evolution <file>` | How preferences change over time |

### Output

| Command | Description |
|---------|-------------|
| `export <file>` | Batch export all standard charts |
| `report <file>` | Horus-style narrative report |

## Supported Formats

| Format | Extension | Auto-Detection |
|--------|-----------|----------------|
| JSONL | `.jsonl` | Line-delimited JSON |
| JSON | `.json` | Array or `{data: [...]}` |
| CSV | `.csv` | Comma-separated |

## Column Type Detection

The `describe` command auto-detects:

| Type | Detection Logic | Recommended Charts |
|------|-----------------|-------------------|
| **temporal** | datetime64, date-like strings | line, area, heatmap (time axis) |
| **numerical** | int64, float64 | histogram, scatter, stats |
| **categorical** | low cardinality (≤20 unique) | bar, pie, heatmap |
| **boolean** | bool dtype | pie (true/false) |
| **text** | high cardinality strings | word cloud, top-N |

## Chart Recommendations

Based on column types, analytics recommends:

| Data Pattern | Chart Type | create-figure Command |
|--------------|------------|----------------------|
| 1 categorical | bar, pie | `metrics --type bar` |
| 1 temporal | line | `training-curves` |
| 2 categorical | heatmap | `heatmap` |
| temporal + categorical | heatmap | `heatmap` |
| 2+ numerical | correlation matrix | `heatmap` |
| 1 numerical | histogram | `metrics --type bar` |

## Agent Workflow

For a project agent to analyze any dataset and visualize:

```python
# 1. Discover schema
result = run("./run.sh describe data.jsonl --json")
recommendations = result["recommendations"]

# 2. Pick first recommendation
chart_name = recommendations[0]["name"]
cmd = recommendations[0]["create_figure_cmd"]

# 3. Generate chart data
run(f"./run.sh chart data.jsonl --name {chart_name} -o chart.json")

# 4. Render
run(f"cd .agent/skills/create-figure && ./run.sh {cmd} -i chart.json -o chart.pdf")
```

## Examples

### E-commerce Sales Data

```bash
# Data: orders.jsonl with date, product, category, amount, region

./run.sh describe orders.jsonl
# → Recommends: distribution_category, distribution_region, trend_by_date

./run.sh group-by orders.jsonl --by category --agg amount --func sum --for-figure -o revenue_by_category.json
# → {"metrics": {"Electronics": 45000, "Clothing": 32000, ...}}

cd .agent/skills/create-figure
./run.sh metrics -i revenue_by_category.json --type bar -o revenue.pdf
```

### YouTube History (ingest-yt-history)

```bash
# Use specialized timestamped commands
./run.sh insights ~/.pi/ingest-yt-history/history.jsonl
./run.sh export ~/.pi/ingest-yt-history/history.jsonl -o ./charts --for-figure

cd .agent/skills/create-figure
./run.sh heatmap -i charts/heatmap.json -o viewing_heatmap.pdf
```

### API Response Data

```bash
# Data: api_logs.json with endpoint, status_code, response_time, user_id

./run.sh describe api_logs.json
./run.sh stats api_logs.json --columns response_time
# → mean=245.3ms, std=89.2ms, p50=220ms, p99=450ms

./run.sh group-by api_logs.json --by endpoint --agg response_time --func mean --for-figure -o latency.json
```

## Dependencies

```toml
# pyproject.toml
dependencies = [
    "pandas>=2.0.0",
    "typer>=0.9.0",
    "rich>=13.0.0",
]
```

## Integration with Horus

```bash
# Horus narrative style
./run.sh insights ~/.pi/ingest-yt-history/history.jsonl --horus

# Output:
# "Your viewing patterns reveal a nocturnal tendency toward melancholic content.
#  Peak activity occurs in the twilight hours, with music consumption intensifying
#  during introspective night sessions..."
```

## Common Mistakes

```bash
# WRONG: Call stats directly on unknown dataset
./run.sh stats data.jsonl --columns revenue,cost
# → Fails on non-numeric columns ("USD 1000" is text, not number)
# RIGHT: Always run describe first
./run.sh describe data.jsonl
# → Shows column types, recommends correct chart commands

# WRONG: Pick chart type manually without describe recommendation
./run.sh group-by data.jsonl --by date --agg views | ./run.sh metrics --type pie
# → Pie chart for time-series data is useless
# RIGHT: Use describe's recommended create-figure command

# WRONG: Assume JSONL schema matches expectations
# → Fields renamed, nulls present, types mixed
# RIGHT: describe auto-detects all of this
```

Files in this skill

  • SKILL.md8.2 KB
  • fixtures/agentic_eval.json487 B
  • memory_integration.py6.2 KB
  • pyproject.toml471 B
  • run.sh4.1 KB
  • sanity.sh1.8 KB
  • src/__init__.py71 B
  • src/cli.py27.6 KB
  • src/insights.py25.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.