Data Cleanup
sgharlow/claude-code-recipes
Clean and standardize messy tabular data (CSV, spreadsheet paste, system exports) into an analysis-ready dataset — consistent dates and names, typed columns, duplicates identified, missing values…
Load, explore, clean, and analyze CSV data with statistical summaries
$ npx skills add wentorai/research-plugins --skill csv-data-analyzer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install wentorai/research-plugins csv-data-analyzer --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/wentorai/research-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/analysis/wrangling/csv-data-analyzer .claude/skills/csv-data-analyzer && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "csv-data-analyzer" agent skill from https://github.com/wentorai/research-plugins/tree/main/skills/analysis/wrangling/csv-data-analyzer into .claude/skills/csv-data-analyzer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csv-data-analyzer", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/wentorai/research-plugins/tree/main/skills/analysis/wrangling/csv-data-analyzerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add wentorai/research-plugins --skill csv-data-analyzer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install wentorai/research-plugins csv-data-analyzer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wentorai/research-plugins.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/analysis/wrangling/csv-data-analyzer .agents/skills/csv-data-analyzer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "csv-data-analyzer" agent skill from https://github.com/wentorai/research-plugins/tree/main/skills/analysis/wrangling/csv-data-analyzer into .agents/skills/csv-data-analyzer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csv-data-analyzer", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add wentorai/research-plugins --skill csv-data-analyzer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install wentorai/research-plugins csv-data-analyzer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wentorai/research-plugins.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/analysis/wrangling/csv-data-analyzer .cursor/skills/csv-data-analyzer && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "csv-data-analyzer" agent skill from https://github.com/wentorai/research-plugins/tree/main/skills/analysis/wrangling/csv-data-analyzer into .cursor/skills/csv-data-analyzer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csv-data-analyzer", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/wentorai/research-plugins.git --path skills/analysis/wrangling/csv-data-analyzer--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add wentorai/research-plugins --skill csv-data-analyzer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install wentorai/research-plugins csv-data-analyzer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wentorai/research-plugins.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/analysis/wrangling/csv-data-analyzer .gemini/skills/csv-data-analyzer && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "csv-data-analyzer" agent skill from https://github.com/wentorai/research-plugins/tree/main/skills/analysis/wrangling/csv-data-analyzer into .gemini/skills/csv-data-analyzer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csv-data-analyzer", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install wentorai/research-plugins csv-data-analyzerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add wentorai/research-plugins --skill csv-data-analyzer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/wentorai/research-plugins.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/analysis/wrangling/csv-data-analyzer .github/skills/csv-data-analyzer && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "csv-data-analyzer" agent skill from https://github.com/wentorai/research-plugins/tree/main/skills/analysis/wrangling/csv-data-analyzer into .github/skills/csv-data-analyzer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csv-data-analyzer", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add wentorai/research-plugins --skill csv-data-analyzer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install wentorai/research-plugins csv-data-analyzer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wentorai/research-plugins.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/analysis/wrangling/csv-data-analyzer .opencode/skills/csv-data-analyzer && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "csv-data-analyzer" agent skill from https://github.com/wentorai/research-plugins/tree/main/skills/analysis/wrangling/csv-data-analyzer into .opencode/skills/csv-data-analyzer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csv-data-analyzer", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
csv-data-analyzerLoad, explore, clean, and analyze CSV data with statistical summaries
CSV Data Analyzer is an agent skill from wentorai/research-plugins. Load, explore, clean, and analyze CSV data with statistical summaries
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Documents & Office, covering CSV and tabular files. The repository describes itself as: 350+ academic research skills, MCP configs, and plugins for Research-Claw and AI agents. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit bf44b3c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
CSV Data Analyzer loads about 1.7k tokens when it runs. Until then it costs about 22 tokens; SKILL.md has 362 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from wentorai/research-plugins at commit bf44b3c, republished under its MIT licence (© wentorai). 362 words, ~1,731 tokens.
.claude/skills/csv-data-analyzer/SKILL.md (or your agent's skills folder).A comprehensive skill for loading, exploring, cleaning, and analyzing CSV datasets within research workflows. Designed for researchers who need to quickly understand the structure, quality, and statistical properties of tabular data before conducting deeper analysis.
Research datasets commonly arrive as CSV files from instrument exports, survey platforms, government repositories, and collaborator handoffs. This skill provides a structured approach to the entire CSV analysis pipeline: ingestion, profiling, quality assessment, cleaning, transformation, and summary statistics. It emphasizes reproducibility by generating audit logs of every transformation applied to the raw data.
The skill supports datasets of varying complexity, from single-table survey results to multi-file longitudinal study exports with hundreds of columns. It works with standard Python data science libraries (pandas, numpy, scipy) and produces outputs suitable for inclusion in methods sections and supplementary materials.
import pandas as pd
import numpy as np
def load_and_profile_csv(filepath: str, encoding: str = 'utf-8') -> dict:
"""
Load a CSV file and generate an initial data profile.
Handles common encoding issues and delimiter detection.
"""
# Try multiple encodings if default fails
encodings = [encoding, 'latin-1', 'utf-8-sig', 'cp1252']
df = None
for enc in encodings:
try:
df = pd.read_csv(filepath, encoding=enc, low_memory=False)
break
except (UnicodeDecodeError, pd.errors.ParserError):
continue
if df is None:
raise ValueError(f"Could not parse {filepath} with any supported encoding")
profile = {
'rows': len(df),
'columns': len(df.columns),
'memory_mb': df.memory_usage(deep=True).sum() / 1e6,
'dtypes': df.dtypes.value_counts().to_dict(),
'missing_pct': (df.isnull().sum() / len(df) * 100).to_dict(),
'duplicates': df.duplicated().sum(),
'column_names': df.columns.tolist()
}
return df, profiledef infer_semantic_types(df: pd.DataFrame) -> dict:
"""
Infer semantic column types beyond pandas dtypes.
Detects dates, identifiers, categorical, continuous, and text columns.
"""
semantic_types = {}
for col in df.columns:
nunique = df[col].nunique()
ratio = nunique / len(df) if len(df) > 0 else 0
if ratio > 0.95 and df[col].dtype == 'object':
semantic_types[col] = 'identifier'
elif nunique <= 20 and df[col].dtype in ['object', 'int64']:
semantic_types[col] = 'categorical'
elif df[col].dtype in ['float64', 'int64']:
semantic_types[col] = 'continuous'
elif pd.to_datetime(df[col], errors='coerce').notna().mean() > 0.8:
semantic_types[col] = 'datetime'
else:
semantic_types[col] = 'text'
return semantic_typesdef clean_column_names(df: pd.DataFrame) -> pd.DataFrame:
"""Standardize column names to snake_case."""
import re
df.columns = [
re.sub(r'[^a-z0-9]+', '_', col.lower().strip()).strip('_')
for col in df.columns
]
return df
def assess_missingness(df: pd.DataFrame) -> pd.DataFrame:
"""Generate a missingness report for each column."""
report = pd.DataFrame({
'missing_count': df.isnull().sum(),
'missing_pct': (df.isnull().sum() / len(df) * 100).round(2),
'dtype': df.dtypes
})
report['action'] = report['missing_pct'].apply(
lambda x: 'drop' if x > 60 else ('impute' if x > 0 else 'ok')
)
return report.sort_values('missing_pct', ascending=False)def generate_statistical_summary(df: pd.DataFrame) -> dict:
"""
Generate comprehensive descriptive statistics for all columns.
Includes measures of central tendency, dispersion, and distribution shape.
"""
numeric_cols = df.select_dtypes(include=[np.number])
summary = {
'numeric': numeric_cols.describe().T.assign(
skewness=numeric_cols.skew(),
kurtosis=numeric_cols.kurtosis(),
iqr=numeric_cols.quantile(0.75) - numeric_cols.quantile(0.25),
cv=numeric_cols.std() / numeric_cols.mean() # coefficient of variation
),
'categorical': {
col: df[col].value_counts().head(10).to_dict()
for col in df.select_dtypes(include=['object']).columns
},
'correlations': numeric_cols.corr().round(3)
}
return summary| Test | Use Case | Function |
|---|---|---|
| Shapiro-Wilk | Normality test (n < 5000) | scipy.stats.shapiro() |
| D'Agostino-Pearson | Normality test (n >= 5000) | scipy.stats.normaltest() |
| Kolmogorov-Smirnov | Compare to any distribution | scipy.stats.kstest() |
| Levene's test | Homogeneity of variance | scipy.stats.levene() |
data_v2_cleaned.csv).random_state parameters consistently for any stochastic operations.© wentorai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/analysis/wrangling/csv-data-analyzer of wentorai/research-plugins.
Open the folder on GitHubat commit bf44b3c
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in wentorai/research-plugins, which our catalogue first saw on October 7, 2026.
CSV Data Analyzer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| CSV Data Analyzer this skillwentorai/research-plugins | 298 | 1 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Data Cleanupsgharlow/claude-code-recipes | 388 | — | ~566 | Automated safety check: Pass | Custom licence | |
| Sn Da Image CaptionMichaelYang-lyx/AIDABench | 111 | 1 repos | ~2k | Automated safety check: Pass | None | |
| Douban Skilldaymade/claude-code-skills | 1.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Champion Trackergooseworks-ai/goose-skills | 1.2k | 1 repos | ~1.1k | Automated safety check: Notes | MIT | |
| Tabular Cleanupgaasher/Agent-Loop-Skills | 174 | — | ~4k | Automated safety check: Pass | MIT |
sgharlow/claude-code-recipes
Clean and standardize messy tabular data (CSV, spreadsheet paste, system exports) into an analysis-ready dataset — consistent dates and names, typed columns, duplicates identified, missing values…
MichaelYang-lyx/AIDABench
图片理解与数据提取 skill。当图片文件(.png/.jpg/.jpeg/.gif/.webp/.bmp)是主要输入且用户需要理解、提取数据或分析图片内容时使用。提供预配置的 caption 脚本(scripts/caption.py),通过 vision 模型将图片转为文本描述,无需额外配置 API Key。覆盖:(1) 通过 scripts/caption.py…
daymade/claude-code-skills
Export and sync Douban (豆瓣) book/movie/music/game collections to local CSV files via Frodo API.
gooseworks-ai/goose-skills
Track product champions for job changes and qualify their new companies against ICP.
gaasher/Agent-Loop-Skills
A skill your agent uses when the user has a messy tabular data dump (CSV/TSV/parquet/Excel/JSON) and wants it iteratively cleaned to an inferred data contract — a checklist of deterministic…
aipoch/medical-research-skills
Generate leave-one-out sensitivity analysis plots for meta-analysis.
wentorai/research-plugins
Craft structured research abstracts that maximize clarity and journal acceptance
wentorai/research-plugins
Manage academic citations across BibTeX, APA, MLA, and Chicago formats
wentorai/research-plugins
Summarize academic papers with structured extraction of key elements
wentorai/research-plugins
Evidence-based study techniques for academic learning and retention
wentorai/research-plugins
Adjust writing tone and register for academic audiences and venues
wentorai/research-plugins
Academic translation, post-editing, and Chinglish correction guide
Categories
Load, explore, clean, and analyze CSV data with statistical summaries. CSV Data Analyzer is an agent skill from wentorai/research-plugins.
CSV Data Analyzer fits situations like: tasks that involve CSV and tabular files.
Run `npx skills add wentorai/research-plugins --skill csv-data-analyzer -a claude-code`. Or copy the skill folder (skills/analysis/wrangling/csv-data-analyzer in wentorai/research-plugins) into .claude/skills/csv-data-analyzer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add wentorai/research-plugins --skill csv-data-analyzer -a codex`. Or copy the skill folder (skills/analysis/wrangling/csv-data-analyzer in wentorai/research-plugins) into .agents/skills/csv-data-analyzer in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add wentorai/research-plugins --skill csv-data-analyzer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/csv-data-analyzer, .gemini/skills/csv-data-analyzer, .github/skills/csv-data-analyzer and .opencode/skills/csv-data-analyzer in your project.
SKILL.md names no scripts, command-line tools or credentials: CSV Data Analyzer is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
CSV Data Analyzer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with CSV Data Analyzer: Data Cleanup (sgharlow/claude-code-recipes, 388 stars), Sn Da Image Caption (MichaelYang-lyx/AIDABench, 111 stars), Douban Skill (daymade/claude-code-skills, 1.4k stars) and Champion Tracker (gooseworks-ai/goose-skills, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
wentorai (a GitHub user) maintains it in wentorai/research-plugins, which has 298 GitHub stars. The repository holds 428 skills in this directory. The repository was last updated on June 19, 2026.
Source: wentorai/research-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.