Csv processor
Your all-in-one skills-as-a-service platform to manage your skills, auto-generate skills and use agent skills as simple as calling an API.
npx -y skills add ChronoAIProject/Ornn --skill csv-processorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 19 stars19 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
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.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
1.8 KB, as published. Nobody here has run it
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):
{
"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
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.