Chdb Datastore
vemetric/vemetric
A skill your agent uses when the user has tabular data (pandas DataFrame, parquet, csv, Arrow, json) and wants to filter, group, aggregate, join, or speed up slow pandas.
An overview of the python package for running the GaMMA earthquake phase association algorithm.
$ npx skills add benchflow-ai/skillsbench --skill gamma-phase-associator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install benchflow-ai/skillsbench gamma-phase-associator --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/benchflow-ai/skillsbench.git skills-src && mkdir -p .claude/skills && cp -r skills-src/tasks/earthquake-phase-association/environment/skills/gamma-phase-associator .claude/skills/gamma-phase-associator && 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 "gamma-phase-associator" agent skill from https://github.com/benchflow-ai/skillsbench/tree/main/tasks/earthquake-phase-association/environment/skills/gamma-phase-associator into .claude/skills/gamma-phase-associator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamma-phase-associator", 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/benchflow-ai/skillsbench/tree/main/tasks/earthquake-phase-association/environment/skills/gamma-phase-associatorType 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 benchflow-ai/skillsbench --skill gamma-phase-associator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install benchflow-ai/skillsbench gamma-phase-associator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/benchflow-ai/skillsbench.git skills-src && mkdir -p .agents/skills && cp -r skills-src/tasks/earthquake-phase-association/environment/skills/gamma-phase-associator .agents/skills/gamma-phase-associator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gamma-phase-associator" agent skill from https://github.com/benchflow-ai/skillsbench/tree/main/tasks/earthquake-phase-association/environment/skills/gamma-phase-associator into .agents/skills/gamma-phase-associator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamma-phase-associator", 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 benchflow-ai/skillsbench --skill gamma-phase-associator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install benchflow-ai/skillsbench gamma-phase-associator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/benchflow-ai/skillsbench.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/tasks/earthquake-phase-association/environment/skills/gamma-phase-associator .cursor/skills/gamma-phase-associator && 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 "gamma-phase-associator" agent skill from https://github.com/benchflow-ai/skillsbench/tree/main/tasks/earthquake-phase-association/environment/skills/gamma-phase-associator into .cursor/skills/gamma-phase-associator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamma-phase-associator", 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/benchflow-ai/skillsbench.git --path tasks/earthquake-phase-association/environment/skills/gamma-phase-associator--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 benchflow-ai/skillsbench --skill gamma-phase-associator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install benchflow-ai/skillsbench gamma-phase-associator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/benchflow-ai/skillsbench.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/tasks/earthquake-phase-association/environment/skills/gamma-phase-associator .gemini/skills/gamma-phase-associator && 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 "gamma-phase-associator" agent skill from https://github.com/benchflow-ai/skillsbench/tree/main/tasks/earthquake-phase-association/environment/skills/gamma-phase-associator into .gemini/skills/gamma-phase-associator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamma-phase-associator", 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 benchflow-ai/skillsbench gamma-phase-associatorInstalls 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 benchflow-ai/skillsbench --skill gamma-phase-associator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/benchflow-ai/skillsbench.git skills-src && mkdir -p .github/skills && cp -r skills-src/tasks/earthquake-phase-association/environment/skills/gamma-phase-associator .github/skills/gamma-phase-associator && 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 "gamma-phase-associator" agent skill from https://github.com/benchflow-ai/skillsbench/tree/main/tasks/earthquake-phase-association/environment/skills/gamma-phase-associator into .github/skills/gamma-phase-associator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamma-phase-associator", 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 benchflow-ai/skillsbench --skill gamma-phase-associator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install benchflow-ai/skillsbench gamma-phase-associator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/benchflow-ai/skillsbench.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/tasks/earthquake-phase-association/environment/skills/gamma-phase-associator .opencode/skills/gamma-phase-associator && 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 "gamma-phase-associator" agent skill from https://github.com/benchflow-ai/skillsbench/tree/main/tasks/earthquake-phase-association/environment/skills/gamma-phase-associator into .opencode/skills/gamma-phase-associator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gamma-phase-associator", 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.
gamma-phase-associatorAn overview of the python package for running the GaMMA earthquake phase association algorithm.
Gamma Phase Associator is an agent skill from benchflow-ai/skillsbench. An overview of the python package for running the GaMMA earthquake phase association algorithm. The algorithm expects phase picks data and station data as input and produces (through unsupervised clustering) earthquake events with source information like earthquake location, origin time and magnitude. The skill explains commonly used functions and the expected input/output format.
Its SKILL.md is about 2.5k 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 Data & Analytics, covering DataFrames. It works with Python. The repository describes itself as: SkillsBench evaluates how well skills work and how effective agents are at using them. The licence is Apache-2.0.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9a1f4dd. 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.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom 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.
Gamma Phase Associator loads about 2.5k tokens when it runs. Until then it costs about 102 tokens; SKILL.md has 969 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 benchflow-ai/skillsbench at commit 9a1f4dd, republished under its Apache-2.0 licence (© benchflow-ai). 969 words, ~2,527 tokens.
.claude/skills/gamma-phase-associator/SKILL.md (or your agent's skills folder).GaMMA is an earthquake phase association algorithm that treats association as an unsupervised clustering problem. It uses multivariate Gaussian distribution to model the collection of phase picks of an event, and uses Expectation-Maximization to carry out pick assignment and estimate source parameters i.e., earthquake location, origin time, and magnitude.
GaMMA is a python library implementing the algorithm. For the input earthquake traces, this library assumes P/S wave picks have already been extracted. We provide documentation of its core API.
Zhu, W., McBrearty, I. W., Mousavi, S. M., Ellsworth, W. L., & Beroza, G. C. (2022). Earthquake phase association using a Bayesian Gaussian mixture model. Journal of Geophysical Research: Solid Earth, 127(5).
The skill is a derivative of the repo https://github.com/AI4EPS/GaMMA
pip install git+https://github.com/wayneweiqiang/GaMMA.git
associationdef association(picks, stations, config, event_idx0=0, method="BGMM", **kwargs)Associates seismic phase picks (P and S waves) to earthquake events using Bayesian or standard Gaussian Mixture Models. It clusters picks based on arrival time and amplitude information, then fits GMMs to estimate earthquake locations, times, and magnitudes.
| Parameter | Type | Default | Description |
|---|---|---|---|
picks | DataFrame | required | Seismic phase pick data |
stations | DataFrame | required | Station metadata with locations |
config | dict | required | Configuration parameters |
event_idx0 | int | 0 | Starting event index for numbering |
method | str | "BGMM" | "BGMM" (Bayesian) or "GMM" (standard) |
picks DataFrame| Column | Type | Description | Example |
|---|---|---|---|
id | str | Station identifier (must match stations) | network.station. or network.station.location.channel |
timestamp | datetime/str | Pick arrival time (ISO format or datetime) | "2019-07-04T22:00:06.084" |
type | str | Phase type: "p" or "s" (lowercase) | "p" |
prob | float | Pick probability/weight (0-1) | 0.94 |
amp | float | Amplitude in m/s (required if use_amplitude=True) | 0.000017 |
Notes:
amp == 0 or amp == -1 are filtered when use_amplitude=Truestations DataFrame| Column | Type | Description | Example |
|---|---|---|---|
id | str | Station identifier | "CI.CCC..BH" |
x(km) | float | X coordinate in km (projected) | -35.6 |
y(km) | float | Y coordinate in km (projected) | 45.2 |
z(km) | float | Z coordinate (elevation, typically negative) | -0.67 |
Notes:
pyproj package)id column must match the id values in the picks DataFrame (e.g., network.station. or network.station.location.channel)id, identical attribute are collapsed to a single value and conflicting metadata are preseved as a sorted list.| Key | Type | Description | Example |
|---|---|---|---|
dims | list[str] | Location dimensions to solve for | ["x(km)", "y(km)", "z(km)"] |
min_picks_per_eq | int | Minimum picks required per earthquake | 5 |
max_sigma11 | float | Maximum allowed time residual in seconds | 2.0 |
use_amplitude | bool | Whether to use amplitude in clustering | True |
bfgs_bounds | tuple | Bounds for BFGS optimization | ((-35, 92), (-128, 78), (0, 21), (None, None)) |
oversample_factor | float | Factor for oversampling initial GMM components | 5.0 for BGMM, 1.0 for GMM |
Notes on dims:
["x(km)", "y(km)", "z(km)"], ["x(km)", "y(km)"], or ["x(km)"]Notes on bfgs_bounds:
((x_min, x_max), (y_min, y_max), (z_min, z_max), (None, None))| Key | Type | Default | Description |
|---|---|---|---|
vel | dict | {"p": 6.0, "s": 3.47} | Uniform velocity model (km/s) |
eikonal | dict/None | None | 1D velocity model for travel times |
| Key | Type | Default | Description |
|---|---|---|---|
use_dbscan | bool | True | Enable DBSCAN pre-clustering |
dbscan_eps | float | 25 | Max time between picks (seconds) |
dbscan_min_samples | int | 3 | Min samples in DBSCAN neighborhood |
dbscan_min_cluster_size | int | 500 | Min cluster size for hierarchical splitting |
dbscan_max_time_space_ratio | float | 10 | Max time/space ratio for splitting |
dbscan_eps is obtained from estimate_eps Function| Key | Type | Default | Description |
|-----|------|-------------|
| max_sigma22 | float | 1.0 | Max phase amplitude residual in log scale (required if use_amplitude=True) |
| max_sigma12 | float | 1.0 | Max covariance |
| max_sigma11 | float | 2.0 | Max phase time residual (s) |
| min_p_picks_per_eq | int | 0 | Min P-phase picks per event |
| min_s_picks_per_eq | int | 0 |Min S-phase picks per event |
| min_stations | int | 5 |Min unique stations per event |
| Key | Type | Default | Description |
|---|---|---|---|
covariance_prior | list[float] | auto | Prior for covariance [time, amp] |
ncpu | int | auto | Number of CPUs for parallel processing |
Returns a tuple (events, assignments):
events (list[dict])List of dictionaries, each representing an associated earthquake:
| Key | Type | Description |
|---|---|---|
time | str | Origin time (ISO 8601 with milliseconds) |
magnitude | float | Estimated magnitude (999 if use_amplitude=False) |
sigma_time | float | Time uncertainty (seconds) |
sigma_amp | float | Amplitude uncertainty (log10 scale) |
cov_time_amp | float | Time-amplitude covariance |
gamma_score | float | Association quality score |
num_picks | int | Total picks assigned |
num_p_picks | int | P-phase picks assigned |
num_s_picks | int | S-phase picks assigned |
event_index | int | Unique event index |
x(km) | float | X coordinate of hypocenter |
y(km) | float | Y coordinate of hypocenter |
z(km) | float | Z coordinate (depth) |
assignments (list[tuple])List of tuples (pick_index, event_index, gamma_score):
pick_index: Index in the original picks DataFrameevent_index: Associated event indexgamma_score: Probability/confidence of assignmentestimate_eps Function Documentationdef estimate_eps(stations, vp, sigma=2.0)Estimates an appropriate DBSCAN epsilon (eps) parameter for clustering seismic phase picks based on station spacing. The eps parameter controls the maximum time distance between picks that should be considered neighbors in the DBSCAN clustering algorithm.
| Parameter | Type | Default | Description |
|---|---|---|---|
stations | DataFrame | required | Station metadata with 3D coordinates |
vp | float | required | P-wave velocity in km/s |
sigma | float | 2.0 | Number of standard deviations above the mean |
stations DataFrame| Column | Type | Description | Example |
|---|---|---|---|
x(km) | float | X coordinate in km | -35.6 |
y(km) | float | Y coordinate in km | 45.2 |
z(km) | float | Z coordinate in km | -0.67 |
| Type | Description |
|---|---|
| float | Epsilon value in seconds for use with DBSCAN clustering |
from gamma.utils import estimate_eps
# Assuming stations DataFrame is already prepared with x(km), y(km), z(km) columns
vp = 6.0 # P-wave velocity in km/s
# Estimate eps automatically based on station spacing
eps = estimate_eps(stations, vp, sigma=2.0)
# Use in config
config = {
"use_dbscan": True,
"dbscan_eps": eps, # or use estimate_eps(stations, config["vel"]["p"])
"dbscan_min_samples": 3,
# ... other config options
}from gamma.utils import association, estimate_eps
# Automatic eps estimation
config["dbscan_eps"] = estimate_eps(stations, config["vel"]["p"])
# Or manual override (common in practice)
config["dbscan_eps"] = 15 # secondsThe output is typically used with these config parameters:
config["dbscan_eps"] = estimate_eps(stations, config["vel"]["p"])
config["dbscan_min_samples"] = 3
config["dbscan_min_cluster_size"] = 500
config["dbscan_max_time_space_ratio"] = 10© benchflow-ai, Apache-2.0. 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 tasks/earthquake-phase-association/environment/skills/gamma-phase-associator of benchflow-ai/skillsbench.
Open the folder on GitHubat commit 9a1f4dd
Gamma Phase Associator 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 |
|---|---|---|---|---|---|---|
| Gamma Phase Associator this skillbenchflow-ai/skillsbench | 1.8k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| Chdb Datastorevemetric/vemetric | 395 | 2 repos | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Polar Python SDKpolarsource/polar | 10k | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| CSV Data Summarizercoffeefuelbump/csv-data-summarizer-claude-skill | 468 | 2 repos | ~1.4k | Automated safety check: Pass | None | |
| Pandas ProJeffallan/claude-skills | 12k | 1 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Python Executorcortega26/chile-hub | 113 | 2 repos | ~1.5k | Automated safety check: Pass | MIT |
vemetric/vemetric
A skill your agent uses when the user has tabular data (pandas DataFrame, parquet, csv, Arrow, json) and wants to filter, group, aggregate, join, or speed up slow pandas.
polarsource/polar
Integrate Polar billing in server-side Python applications using the versioned Polar and PolarAsync clients.
coffeefuelbump/csv-data-summarizer-claude-skill
Analyzes CSV files, generates summary stats, and plots quick visualizations using Python and pandas.
Jeffallan/claude-skills
Handles pandas DataFrame work: cleaning, merging, groupby aggregation, pivots, time-series resampling and memory tuning, with checks on dtypes, shapes and nulls.
cortega26/chile-hub
Execute Python code in a safe sandboxed environment via [inference.sh](https://inference.sh).
retentioneering/retentioneering-tools
Analyze event logs, clickstreams, user paths, product funnels, retention, behavioral segments, transition graphs, step matrices, sequence patterns, and customer journeys using Retentioneering.
benchflow-ai/skillsbench
This skill should be used when working on Lean 4 formalization projects to maintain persistent memory of successful proof patterns, failed approaches, project conventions, and user preferences…
benchflow-ai/skillsbench
World-class data engineering skill for building scalable data pipelines, ETL/ELT systems, real-time streaming, and data infrastructure.
benchflow-ai/skillsbench
AC branch pi-model power flow equations (P/Q and |S|) with transformer tap ratio and phase shift, matching acopf-math-model.md and MATPOWER branch fields.
benchflow-ai/skillsbench
Civilization 6 district mechanics library. An agent skill from benchflow-ai/skillsbench.
benchflow-ai/skillsbench
Build deterministic, verifiable data visualizations with D3.js (v6).
benchflow-ai/skillsbench
DC power flow analysis for power systems. An agent skill from benchflow-ai/skillsbench.
Works with
Categories
An overview of the python package for running the GaMMA earthquake phase association algorithm. Gamma Phase Associator is an agent skill from benchflow-ai/skillsbench. An overview of the python package for running the GaMMA earthquake phase association algorithm.
Gamma Phase Associator fits situations like: tasks that involve DataFrames.
Run `npx skills add benchflow-ai/skillsbench --skill gamma-phase-associator -a claude-code`. Or copy the skill folder (tasks/earthquake-phase-association/environment/skills/gamma-phase-associator in benchflow-ai/skillsbench) into .claude/skills/gamma-phase-associator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add benchflow-ai/skillsbench --skill gamma-phase-associator -a codex`. Or copy the skill folder (tasks/earthquake-phase-association/environment/skills/gamma-phase-associator in benchflow-ai/skillsbench) into .agents/skills/gamma-phase-associator 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 benchflow-ai/skillsbench --skill gamma-phase-associator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gamma-phase-associator, .gemini/skills/gamma-phase-associator, .github/skills/gamma-phase-associator and .opencode/skills/gamma-phase-associator in your project.
Going by SKILL.md and its folder, Gamma Phase Associator needs the command-line tools its instructions call (pip). Our summary lists: Python 3.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. 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.
Gamma Phase Associator is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 10k 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 Gamma Phase Associator: Chdb Datastore (vemetric/vemetric, 395 stars), Polar Python SDK (polarsource/polar, 10k stars), CSV Data Summarizer (coffeefuelbump/csv-data-summarizer-claude-skill, 468 stars) and Pandas Pro (Jeffallan/claude-skills, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
benchflow-ai (a GitHub organization) maintains it in benchflow-ai/skillsbench, which has 1,835 GitHub stars. The repository holds 189 skills in this directory. The repository was last updated on July 23, 2026.
Source: benchflow-ai/skillsbench on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.