agentleFS
ExplorerFredaExplorerFreda/fskills/inspect-data/SKILL.md

inspect-data

Skill11 starsChanged 3 months agoApache-2.0View on GitHub

Inspect a data file (JSONL, JSON, Parquet, HDF5, or NetCDF) or a HuggingFace dataset to understand its structure. Usage: /inspect-data <file_path_or_dataset_id> [additional instructions]

The file

Show its rules and text

We split this skill into the rules it gives an agent

13 rules. About 0 are common, 5 are distinctive, and 8 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Before inspecting, run ls -l on the file to get its size.

    line 15
  2. Very specific:

    Read only the first line of the file (use the Read tool with limit: 1, or head -n 1 — never load the entire file).

    line 29
  3. Very specific:

    Run uv run scripts/json_inspector.py <path> [--large] and show the output to the user.

    line 34
  4. Very specific:

    Run uv run scripts/parquet_inspector.py <path> [--large] and show the output.

    line 37
  5. Very specific:

    Run uv run scripts/hdf5_inspector.py <path> [--large] and show the output.

    line 40
  6. Very specific:

    If the dataset has multiple configs, run the script first without --config to see the list, then re-run with one of them.

    line 50
  7. Very specific:

    If the user didn't specify a split, let the script default (it prefers train, then validation, then test).

    line 51
  8. Distinctive:

    If streaming fails (some datasets don't support it), report the error to the user rather than retrying with a full download.

    line 52
  9. Distinctive:

    After the inspection, summarize what you found in plain language (structure, field names, example values).

    line 54
  10. Distinctive:

    If additional instructions were provided, follow them after completing the inspection above.

    line 56
  11. Distinctive:

    Do not modify the data file.

    line 59
  12. Distinctive:

    Do not commit anything.

    line 60
  13. Very specific:

    Use uv run to execute Python code, not bare python or python3.

    line 61

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Inspect a data file or a HuggingFace dataset to understand its structure. The argument is either a local file path or a HuggingFace dataset identifier, optionally followed by additional instructions.

Parse the argument string: the first token is the path or dataset id; everything after is additional instructions (may be empty).

First — decide whether the target is a local file or a HuggingFace dataset:

  • If the argument looks like a dataset id (no file extension and either (a) contains / like allenai/c4, or (b) is a bare name like squad that does not exist as a local path), treat it as a HuggingFace dataset and follow the HuggingFace section below.
  • Otherwise, treat it as a local file and follow the per-extension steps.

Preliminary step for local files — check file size: Before inspecting, run ls -l on the file to get its size. If the file is larger than 100 MB, set a large_file flag and pass --large to the inspection script (which reads only a small sample instead of the full file).

The inspection scripts live in scripts/ next to this skill:

  • scripts/json_inspector.py
  • scripts/parquet_inspector.py
  • scripts/hdf5_inspector.py
  • scripts/nc_inspector.py
  • scripts/hf_inspector.py

Each script uses uv's inline script metadata to pull its own dependencies. Run them with uv run <script> ... (note: no python — inline metadata is only applied when the script itself is the entry point).

Steps based on file extension:

For .jsonl files:

  1. Read only the first line of the file (use the Read tool with limit: 1, or head -n 1 — never load the entire file).
  2. Parse it as JSON.
  3. Report the keys found in that first entry.

For .json files: Run uv run scripts/json_inspector.py <path> [--large] and show the output to the user. The script prints the top-level type, length/keys, and a preview of the first entries (truncated to 200 chars).

For .parquet files: Run uv run scripts/parquet_inspector.py <path> [--large] and show the output. The script prints row/column counts, per-column dtypes with sample values, the first 3 rows, and the first row as a dict (values truncated to 200 chars). In --large mode it uses pyarrow metadata + the first row group only.

For .h5 / .hdf5 files: Run uv run scripts/hdf5_inspector.py <path> [--large] and show the output. The script walks all groups and datasets, prints shapes/dtypes/attrs, and for each dataset previews the first item (or [:3] / [0] slice in --large mode). String values are truncated to 200 chars.

For .nc / .nc4 / .netcdf files: Run uv run scripts/nc_inspector.py <path> [--large] and show the output. The script prints dimensions, coordinate ranges (with step size), per-variable metadata (units, long_name) and statistics. In normal mode it computes full min/max/mean/NaN count over the entire variable. In --large mode it opens the file lazily and computes stats over a single time-step slice only (labeled sample (t=0)), keeping memory usage low for files that can exceed hundreds of MB.

For HuggingFace datasets: Run uv run scripts/hf_inspector.py <dataset_id> [--config CONFIG] [--split SPLIT] [-n N] and show the output. The script uses load_dataset_builder to read metadata without downloading (description, homepage, license, splits with example counts, feature schema) and then streams the first N examples (default 3) from the chosen split. It never downloads the full dataset, so the --large flag is not used.

Guidance for HuggingFace inspection:

  • The --large flag does not apply here.
  • If the dataset has multiple configs, run the script first without --config to see the list, then re-run with one of them.
  • If the user didn't specify a split, let the script default (it prefers train, then validation, then test).
  • If streaming fails (some datasets don't support it), report the error to the user rather than retrying with a full download.

After the inspection, summarize what you found in plain language (structure, field names, example values).

If additional instructions were provided, follow them after completing the inspection above.

Rules:

  • Do not modify the data file.
  • Do not commit anything.
  • Use uv run to execute Python code, not bare python or python3.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.