configs/hermes/default/skills/data-science/local-columnar-data-inspection/SKILL.md
Inspect local columnar/partitioned datasets (Parquet, SQLite staging/workspace DBs, JSONL metadata exports) to answer data-availability, earliest/latest timestamp, schema, and provenance questions without assuming labels are obvious.
npx skillsauth add poorrican/dotfiles local-columnar-data-inspectionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when the user asks what data exists in a local directory, especially for compacted/uncompacted Parquet, consolidated exports, partitioned filesystem datasets, or metadata snapshots. Typical questions: "what is the earliest data we have?", "is X covered?", "which partitions contain Y?", "what rows/schemas are in this export?"
Start from the user's target scope, not filename guesses.
*.sqlite, *.duckdb, profiles/stats JSON, README) as well as Parquet files.Identify authoritative metadata first.
file:path?mode=ro) to discover tables, columns, row counts, row_source values, and candidate filters.Build broad-but-controlled domain filters.
NBA can appear inside unrelated strings (...BNBA..., artist names, WNBA). Use exact series prefixes or exclusions when needed.Verify data timestamps from the actual data files when asked about earliest/latest data.
open_time/close_time answers market availability; Parquet column stats answer actual data coverage.end_ts, ts, timestamp, time, or other *_ts fields.scripts/parquet_footer_min_ts.py.Report the path and interpretation.
open_time, close_time) or Parquet stats (end_ts min/max).import sqlite3
con = sqlite3.connect('file:/path/to/workspace.sqlite?mode=ro', uri=True)
con.row_factory = sqlite3.Row
print(con.execute("select name,type from sqlite_master where type in ('table','view')").fetchall())
print(con.execute('pragma table_info(source_rows)').fetchall())
where category = 'Sports'
and row_source like 'kairos%'
and (
upper(coalesce(series_ticker,'')) glob 'KXNBA*'
or upper(coalesce(series_ticker,'')) in ('KXCOACHOUTNBA','KXNEXTCOACHOUTNBA')
)
and upper(coalesce(series_ticker,'')) not glob 'KXWNBA*'
Adjust the prefix/synonyms to the domain; the lesson is to use structured columns first, then text fields only with exclusions.
references/kairos-consolidated-parquet.md — session example: finding earliest NBA-related data in consolidated kairos-collector/Kalshi parquet exports.scripts/parquet_footer_min_ts.py — dependency-free Parquet footer/statistics scanner for Unix timestamp columns.NBA matching can include unrelated strings; basketball matching can include college basketball or WNBA.pyarrow, duckdb, or parquet-tools is a local setup fact; use an alternate inspection path or install only when allowed.content-media
Create, read, edit .pptx decks, slides, notes, templates.
content-media
Create, read, edit .pptx decks, slides, notes, templates.
documentation
Extract text from PDFs/scans (pymupdf, marker-pdf).
documentation
Extract text from PDFs/scans (pymupdf, marker-pdf).