# Csv Processor

> Read a CSV file from disk, compute per-column min/mean/max for every numeric column, emit the result as JSON. Stdlib-only Python; no pandas, no numpy. Demonstrates the simplest possible "give me a file path, get back structured analysis" skill — a deliberate baseline for any skill that processes tabular data locally without an LLM in the loop.

- **Type:** Skill
- **Install:** `agentstack add skill-chronoaiproject-ornn-csv-processor`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [ChronoAIProject](https://agentstack.voostack.com/s/chronoaiproject)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [ChronoAIProject](https://github.com/ChronoAIProject)
- **Source:** https://github.com/ChronoAIProject/Ornn/tree/develop/examples/csv-processor
- **Website:** https://ornn.chrono-ai.fun

## Install

```sh
agentstack add skill-chronoaiproject-ornn-csv-processor
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# csv-processor

A deterministic, network-free skill — the easiest case. Useful as a control when debugging the agent ↔ skill plumbing: if this fails, the failure is in the runner, not the skill.

## Contract

**Input** (single CLI argument):

```
python src/main.py /path/to/data.csv
```

The script reads `argv[1]` as a filesystem path. CSV must have a header row.

**Output** (stdout, JSON):

```json
{
  "rowCount": 1234,
  "columns": {
    "price": { "min": 1.23, "mean": 42.0, "max": 999.99, "count": 1234 },
    "quantity": { "min": 0, "mean": 7.5, "max": 100, "count": 1230 }
  }
}
```

Only numeric columns appear under `columns`. `count` is the number of cells that parsed successfully (numeric); non-numeric / blank cells are skipped.

**Errors** — written to stderr as `{"error": "..."}` and exit code `1`.

## Run locally

```bash
cd examples/csv-processor
python src/main.py sample.csv
```

A `sample.csv` is bundled so the example runs out of the box.

## Adapt this

- **Different aggregations** — add median, p95, stddev; same shape, more keys per column.
- **Streaming** — for huge files, replace the in-memory accumulation with a running-mean update; one extra variable per column, same output shape.
- **Source other than disk** — accept a URL or stdin instead of `argv[1]`. The aggregation core doesn't care.

## Source & license

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

- **Author:** [ChronoAIProject](https://github.com/ChronoAIProject)
- **Source:** [ChronoAIProject/Ornn](https://github.com/ChronoAIProject/Ornn)
- **License:** Apache-2.0
- **Homepage:** https://ornn.chrono-ai.fun

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

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-chronoaiproject-ornn-csv-processor
- Seller: https://agentstack.voostack.com/s/chronoaiproject
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
