Awesome-omni-skill annotating-csv
Annotates CSV rows using OpenAI by applying a prompt to each row and adding a new column with AI-generated results. Use when the user wants to classify, extract, summarize, or add AI-generated annotations to CSV data. Triggers on mentions of CSV annotation, row-by-row AI processing, bulk classification, or adding AI columns to spreadsheet data.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ai-agents/annotating-csv" ~/.claude/skills/diegosouzapw-awesome-omni-skill-annotating-csv && rm -rf "$T"
manifest:
skills/ai-agents/annotating-csv/SKILL.mdsafety · automated scan (medium risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
- pip install
- references .env files
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content
CSV Annotation with OpenAI
Adds AI-generated annotations to CSV files by processing each row with a prompt.
Quick Start
uv run annotate-csv.py "Classify sentiment as positive/negative/neutral" reviews.csv
Output:
reviews_annotated.csv with new annotation column.
Dependencies install automatically on first run.
Core Usage
uv run annotate-csv.py <prompt> <csv_file> [options]
| Option | Description | Default |
|---|---|---|
| Output file path | |
| Annotation column name | |
| Columns to use ( or comma-separated) | |
| OpenAI model | |
| Parallel workers | |
| Column for progress display | - |
Prompt Sources
Prompts can be inline or from a file:
# Inline prompt python annotate-csv.py "Extract the main topic" data.csv # From file (for complex prompts) python annotate-csv.py prompt.txt data.csv
Common Patterns
Classification:
python annotate-csv.py "Classify sentiment: positive, negative, or neutral" feedback.csv -c sentiment
Extraction:
python annotate-csv.py "Extract the product name mentioned" reviews.csv -c product --context "review_text"
Summarization:
python annotate-csv.py "Summarize in one sentence" articles.csv -c summary
See EXAMPLES.md for more patterns and prompt templates.
Environment Setup
Requires
OPENAI_API_KEY in .env file:
OPENAI_API_KEY=sk-...
Run with uv (recommended):
uv run annotate-csv.py "Your prompt" data.csv
Or install dependencies first:
uv pip install -r requirements.txt python annotate-csv.py "Your prompt" data.csv
Workflow
- Preview data: Check CSV structure and columns
- Choose context: Decide which columns the AI needs to see
- Write prompt: Be specific about expected output format
- Test on subset: Try on a few rows first if large dataset
- Run full annotation: Process the complete file
- Validate results: Spot-check annotation quality
Writing Effective Prompts
- Be explicit about output format (single word, phrase, sentence)
- List valid categories for classification tasks
- Specify what to do with ambiguous cases
- Keep prompts focused on one task
See PROMPTS.md for prompt-writing guidance.
Troubleshooting
| Issue | Solution |
|---|---|
| API key error | Check file has |
| Column not found | Verify column names match CSV exactly |
| Rate limits | Reduce to 5 or lower |
| Empty annotations | Check context columns have data |