Using Geoscience Skills
Meta-skill for discovering, routing, and composing the geoscience skills library.
This skill maps user intent to domain skills, workflow skills, slash commands, and agents.
Domain Routing Table
Match user intent keywords to the appropriate domain skill.
| Keywords / Triggers |
Skill |
Domain |
| SEG-Y, seismic traces, trace headers, inline, crossline |
segyio |
Seismic I/O |
| waveform, earthquake, FDSN, seismogram, miniSEED |
obspy |
Seismology |
| surface wave, dispersion, Rayleigh, Love wave |
disba |
Seismology |
| LAS, well logs, wireline, borehole curves |
lasio |
Well Logs |
| DLIS, RP66, array logs, modern well data |
dlisio |
Well Logs |
| well analysis, curve QC, multi-well, despike |
welly |
Well Logs |
| petrophysics, Sw, porosity, formation evaluation |
petropy |
Petrophysics |
| lithology, stratigraphy, striplog, facies log |
striplog |
Stratigraphy |
| 3D model, geology, implicit surface, faults |
gempy |
3D Modelling |
| fold modelling, structural frame, Loop3D |
loopstructural |
3D Modelling |
| GIS, spatial data prep, borehole to GemPy |
gemgis |
GIS Preprocessing |
| inversion, DC resistivity, magnetics, gravity, EM |
simpeg |
Inversion |
| ERT, SRT, IP, near-surface inversion |
pygimli |
Inversion |
| PDE, wave equation, finite differences, stencil |
devito |
Simulation |
| linear operator, inverse problem, sparsity |
pylops |
Inverse Problems |
| gravity, magnetic, Bouguer, upward continuation |
harmonica |
Potential Fields |
| AVO, Zoeppritz, Gassmann, fluid substitution, wavelet |
bruges |
Rock Physics |
| gridding, interpolation, spatial, Verde |
verde |
Spatial Analysis |
| variogram, kriging, GSLIB, geostatistics |
geostatspy |
Geostatistics |
| variogram fitting, scikit-learn style geostat |
scikit-gstat |
Geostatistics |
| groundwater, time series, pumping test |
pastas |
Hydrology |
| landscape, erosion, surface processes, DEM |
landlab |
Surface Processes |
| stereonet, strike, dip, poles, structural |
mplstereonet |
Structural Geology |
| geochemistry, REE, spider diagram, ternary |
pyrolite |
Geochemistry |
| GPR, ground-penetrating radar, radargram |
gprpy |
Near-Surface |
| magnetotellurics, MT, impedance tensor |
mtpy |
Near-Surface |
| NetCDF, xarray, multi-dimensional, climate |
xarray |
Data Formats |
| 3D visualization, mesh, VTK, point cloud |
pyvista |
Visualization |
| data download, sample data, cache, fetch |
pooch |
Utilities |
Workflow Skills
Workflow skills chain multiple domain skills into end-to-end pipelines.
| Workflow |
Slash Command |
Skill Chain |
| Seismic Interpretation |
/seismic-workflow |
segyio -> obspy -> bruges -> disba -> pyvista |
| Well Log Evaluation |
/well-analysis |
lasio/dlisio -> welly -> petropy -> striplog -> pyvista |
| Geological Modelling |
/model-3d |
gemgis -> gempy/loopstructural -> pyvista |
| Geophysical Inversion |
/inversion-workflow |
simpeg/pygimli -> verde -> pyvista |
| Rock Physics & AVO |
/rock-physics |
lasio/welly -> bruges -> segyio |
Available Agents
| Agent |
Purpose |
Typical Trigger |
data-qc-reviewer |
Automated data quality checks across formats |
"QC my data", "check data quality" |
geoscience-mentor |
Guided explanations of geoscience concepts and methods |
"explain", "teach me", "what is" |
All 29 Domain Skills by Category
Seismic and Seismology
segyio -- SEG-Y file I/O, trace and header access
obspy -- seismological waveform processing, FDSN services
disba -- surface wave dispersion (Rayleigh, Love)
Well Log Analysis
lasio -- LAS file reading and writing
dlisio -- DLIS/RP66 binary well log parsing
welly -- well data analysis, curve QC, multi-well projects
petropy -- petrophysical analysis, formation evaluation
striplog -- lithological and stratigraphic log display
3D Geological Modelling
gempy -- implicit 3D geological modelling
loopstructural -- 3D modelling with fold and fault support
gemgis -- spatial data preprocessing for GemPy
Geophysical Inversion
simpeg -- multi-method geophysical inversion framework
pygimli -- ERT, SRT, IP inversion with simple API
devito -- symbolic PDE solver for wave propagation
pylops -- linear operators for inverse problems
Potential Fields and Rock Physics
harmonica -- gravity and magnetic data processing
bruges -- AVO, Gassmann, wavelets, elastic moduli
Spatial Analysis and Geostatistics
verde -- spatial gridding and interpolation
geostatspy -- variograms, kriging (GSLIB-style)
scikit-gstat -- geostatistics with scikit-learn API
Hydrology and Surface Processes
pastas -- groundwater time series modelling
landlab -- landscape evolution modelling
Structural Geology and Geochemistry
mplstereonet -- stereonet plots for orientation data
pyrolite -- geochemical analysis and diagrams
Near-Surface Geophysics
gprpy -- GPR data processing
mtpy -- magnetotelluric data analysis
Data Formats and Visualization
xarray -- NetCDF, multi-dimensional labeled arrays
pyvista -- 3D mesh visualization and analysis
pooch -- data file fetching and caching
Skill Composition Rules
Chain skills when a task spans multiple stages of a geoscience workflow.
Composition Patterns
Data Loading -> Processing -> Modelling -> Visualization
1. Always start with a data I/O skill (segyio, lasio, dlisio, xarray)
2. Use processing skills for QC and transformation (welly, obspy, verde)
3. Apply domain modelling (bruges, gempy, simpeg, pygimli)
4. Finish with visualization (pyvista, matplotlib via domain skill)
When to Chain vs Use Standalone
| Scenario |
Approach |
| Single file format question |
Standalone domain skill |
| End-to-end analysis pipeline |
Workflow skill to orchestrate |
| Data QC across formats |
data-qc-reviewer agent |
| Concept explanation |
geoscience-mentor agent |
| Multi-library code generation |
Chain domain skills in order |
Dependency Awareness
When composing skills, respect data flow:
# Correct: segyio loads, obspy processes, bruges models
import segyio
import obspy
from bruges.reflection import zoeppritz
# Load with segyio
with segyio.open('seismic.sgy') as f:
data = f.trace[:]
# Process with obspy (convert to Stream if needed)
# Model with bruges
Rpp = zoeppritz(vp1, vs1, rho1, vp2, vs2, rho2, theta)
When to Use This Skill
This is the discovery and routing skill. Use it when:
- Starting a new geoscience coding session and unsure which library to use
- A user request spans multiple geoscience domains
- You need to find the right slash command or workflow for a task
- Composing multiple domain skills into a pipeline
- Looking up which skill handles a specific file format or analysis type
This skill does not perform any analysis itself. It directs to the appropriate
domain skill, workflow skill, or agent for execution.
Quick Decision Tree
User wants to...
|
+-- Load/write a file? --> Check format:
| SEG-Y -> segyio LAS -> lasio DLIS -> dlisio
| NetCDF -> xarray VTK -> pyvista
|
+-- Process signals? --> obspy (seismology), welly (well logs)
|
+-- Build a model?
| 3D geology -> gempy or loopstructural
| Rock physics -> bruges
| Inversion -> simpeg or pygimli
|
+-- Visualize results? --> pyvista (3D), matplotlib (2D via domain skill)
|
+-- Run a full pipeline? --> Use workflow skills above
1---2name: using-geoscience-skills3description: Foundation skill for the geoscience skills library. Routes user intent to the correct domain skills, slash commands, and workflow skills. Loaded automatically at session start via SessionStart hook.4license: MIT5---6
7# Using Geoscience Skills
8
9Meta-skill for discovering, routing, and composing the geoscience skills library.
10This skill maps user intent to domain skills, workflow skills, slash commands, and agents.
11
12## Domain Routing Table
13
14Match user intent keywords to the appropriate domain skill.
15
16| Keywords / Triggers | Skill | Domain |
17|---------------------|-------|--------|
18| SEG-Y, seismic traces, trace headers, inline, crossline | `segyio` | Seismic I/O |
19| waveform, earthquake, FDSN, seismogram, miniSEED | `obspy` | Seismology |
20| surface wave, dispersion, Rayleigh, Love wave | `disba` | Seismology |
21| LAS, well logs, wireline, borehole curves | `lasio` | Well Logs |
22| DLIS, RP66, array logs, modern well data | `dlisio` | Well Logs |
23| well analysis, curve QC, multi-well, despike | `welly` | Well Logs |
24| petrophysics, Sw, porosity, formation evaluation | `petropy` | Petrophysics |
25| lithology, stratigraphy, striplog, facies log | `striplog` | Stratigraphy |
26| 3D model, geology, implicit surface, faults | `gempy` | 3D Modelling |
27| fold modelling, structural frame, Loop3D | `loopstructural` | 3D Modelling |
28| GIS, spatial data prep, borehole to GemPy | `gemgis` | GIS Preprocessing |
29| inversion, DC resistivity, magnetics, gravity, EM | `simpeg` | Inversion |
30| ERT, SRT, IP, near-surface inversion | `pygimli` | Inversion |
31| PDE, wave equation, finite differences, stencil | `devito` | Simulation |
32| linear operator, inverse problem, sparsity | `pylops` | Inverse Problems |
33| gravity, magnetic, Bouguer, upward continuation | `harmonica` | Potential Fields |
34| AVO, Zoeppritz, Gassmann, fluid substitution, wavelet | `bruges` | Rock Physics |
35| gridding, interpolation, spatial, Verde | `verde` | Spatial Analysis |
36| variogram, kriging, GSLIB, geostatistics | `geostatspy` | Geostatistics |
37| variogram fitting, scikit-learn style geostat | `scikit-gstat` | Geostatistics |
38| groundwater, time series, pumping test | `pastas` | Hydrology |
39| landscape, erosion, surface processes, DEM | `landlab` | Surface Processes |
40| stereonet, strike, dip, poles, structural | `mplstereonet` | Structural Geology |
41| geochemistry, REE, spider diagram, ternary | `pyrolite` | Geochemistry |
42| GPR, ground-penetrating radar, radargram | `gprpy` | Near-Surface |
43| magnetotellurics, MT, impedance tensor | `mtpy` | Near-Surface |
44| NetCDF, xarray, multi-dimensional, climate | `xarray` | Data Formats |
45| 3D visualization, mesh, VTK, point cloud | `pyvista` | Visualization |
46| data download, sample data, cache, fetch | `pooch` | Utilities |
47
48## Workflow Skills
49
50Workflow skills chain multiple domain skills into end-to-end pipelines.
51
52| Workflow | Slash Command | Skill Chain |
53|----------|---------------|-------------|
54| Seismic Interpretation | `/seismic-workflow` | segyio -> obspy -> bruges -> disba -> pyvista |
55| Well Log Evaluation | `/well-analysis` | lasio/dlisio -> welly -> petropy -> striplog -> pyvista |
56| Geological Modelling | `/model-3d` | gemgis -> gempy/loopstructural -> pyvista |
57| Geophysical Inversion | `/inversion-workflow` | simpeg/pygimli -> verde -> pyvista |
58| Rock Physics & AVO | `/rock-physics` | lasio/welly -> bruges -> segyio |
59
60## Available Agents
61
62| Agent | Purpose | Typical Trigger |
63|-------|---------|-----------------|
64| `data-qc-reviewer` | Automated data quality checks across formats | "QC my data", "check data quality" |
65| `geoscience-mentor` | Guided explanations of geoscience concepts and methods | "explain", "teach me", "what is" |
66
67## All 29 Domain Skills by Category
68
69### Seismic and Seismology
70- `segyio` -- SEG-Y file I/O, trace and header access
71- `obspy` -- seismological waveform processing, FDSN services
72- `disba` -- surface wave dispersion (Rayleigh, Love)
73
74### Well Log Analysis
75- `lasio` -- LAS file reading and writing
76- `dlisio` -- DLIS/RP66 binary well log parsing
77- `welly` -- well data analysis, curve QC, multi-well projects
78- `petropy` -- petrophysical analysis, formation evaluation
79- `striplog` -- lithological and stratigraphic log display
80
81### 3D Geological Modelling
82- `gempy` -- implicit 3D geological modelling
83- `loopstructural` -- 3D modelling with fold and fault support
84- `gemgis` -- spatial data preprocessing for GemPy
85
86### Geophysical Inversion
87- `simpeg` -- multi-method geophysical inversion framework
88- `pygimli` -- ERT, SRT, IP inversion with simple API
89- `devito` -- symbolic PDE solver for wave propagation
90- `pylops` -- linear operators for inverse problems
91
92### Potential Fields and Rock Physics
93- `harmonica` -- gravity and magnetic data processing
94- `bruges` -- AVO, Gassmann, wavelets, elastic moduli
95
96### Spatial Analysis and Geostatistics
97- `verde` -- spatial gridding and interpolation
98- `geostatspy` -- variograms, kriging (GSLIB-style)
99- `scikit-gstat` -- geostatistics with scikit-learn API
100
101### Hydrology and Surface Processes
102- `pastas` -- groundwater time series modelling
103- `landlab` -- landscape evolution modelling
104
105### Structural Geology and Geochemistry
106- `mplstereonet` -- stereonet plots for orientation data
107- `pyrolite` -- geochemical analysis and diagrams
108
109### Near-Surface Geophysics
110- `gprpy` -- GPR data processing
111- `mtpy` -- magnetotelluric data analysis
112
113### Data Formats and Visualization
114- `xarray` -- NetCDF, multi-dimensional labeled arrays
115- `pyvista` -- 3D mesh visualization and analysis
116- `pooch` -- data file fetching and caching
117
118## Skill Composition Rules
119
120Chain skills when a task spans multiple stages of a geoscience workflow.
121
122### Composition Patterns
123
124```text
125Data Loading -> Processing -> Modelling -> Visualization
126
1271. Always start with a data I/O skill (segyio, lasio, dlisio, xarray)
1282. Use processing skills for QC and transformation (welly, obspy, verde)
1293. Apply domain modelling (bruges, gempy, simpeg, pygimli)
1304. Finish with visualization (pyvista, matplotlib via domain skill)
131```
132
133### When to Chain vs Use Standalone
134
135| Scenario | Approach |
136|----------|----------|
137| Single file format question | Standalone domain skill |
138| End-to-end analysis pipeline | Workflow skill to orchestrate |
139| Data QC across formats | `data-qc-reviewer` agent |
140| Concept explanation | `geoscience-mentor` agent |
141| Multi-library code generation | Chain domain skills in order |
142
143### Dependency Awareness
144
145When composing skills, respect data flow:
146
147```python
148# Correct: segyio loads, obspy processes, bruges models
149import segyio
150import obspy
151from bruges.reflection import zoeppritz
152
153# Load with segyio
154with segyio.open('seismic.sgy') as f:
155 data = f.trace[:]
156
157# Process with obspy (convert to Stream if needed)
158# Model with bruges
159Rpp = zoeppritz(vp1, vs1, rho1, vp2, vs2, rho2, theta)
160```
161
162## When to Use This Skill
163
164This is the **discovery and routing** skill. Use it when:
165
166- Starting a new geoscience coding session and unsure which library to use
167- A user request spans multiple geoscience domains
168- You need to find the right slash command or workflow for a task
169- Composing multiple domain skills into a pipeline
170- Looking up which skill handles a specific file format or analysis type
171
172This skill does not perform any analysis itself. It directs to the appropriate
173domain skill, workflow skill, or agent for execution.
174
175## Quick Decision Tree
176
177```text
178User wants to...
179 |
180 +-- Load/write a file? --> Check format:
181 | SEG-Y -> segyio LAS -> lasio DLIS -> dlisio
182 | NetCDF -> xarray VTK -> pyvista
183 |
184 +-- Process signals? --> obspy (seismology), welly (well logs)
185 |
186 +-- Build a model?
187 | 3D geology -> gempy or loopstructural
188 | Rock physics -> bruges
189 | Inversion -> simpeg or pygimli
190 |
191 +-- Visualize results? --> pyvista (3D), matplotlib (2D via domain skill)
192 |
193 +-- Run a full pipeline? --> Use workflow skills above
194```