Install any skill in seconds. Free to start, no credit card required.
Get Started Free →brycewang-stanford/species-distribution-guide
Species distribution modeling with MaxEnt, SDM methods, and GBIF data
Passed 20 of 23 test cases with the skill, and 15 of 23 without it.
and 5 more in the full report
5 fixed15 passed either way3 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 5 test cases the skill fixed. Same model, same prompt, with and without the skill.
When running the MaxEnt Java executable (maxent.jar) via command line, what flags specify the input sample CSV file, the environmental raster layers directory, and the output folder?
| Checked | Without skill | With skill |
|---|---|---|
| Uses CLI flag -s to specify species occurrence samples file. | Missed | Passed |
| Uses CLI flag -e to specify environmental layers directory. | Missed | Passed |
| Uses CLI flag -o to specify model output directory. | Missed | Passed |
The instructions your model reads when the skill loads.
A skill for building and evaluating species distribution models (SDMs), covering occurrence data acquisition from biodiversity databases, environmental predictor preparation, model fitting with MaxEnt and ensemble methods, model evaluation, and projection under climate change scenarios.
The Global Biodiversity Information Facility (GBIF) is the primary source of species occurrence records:
from pygbif import occurrences, species
def download_occurrences(species_name: str, country: str = None,
limit: int = 5000,
has_coordinate: bool = True) -> dict:
"""
Download species occurrence records from GBIF.
species_name: scientific name (e.g., 'Panthera tigris')
Returns cleaned occurrence records with coordinates.
"""
# Get GBIF species key
name_result = species.name_backbone(name=species_name)
if "usageKey" not in name_result:
return {"error": f"Species not found: {species_name}"}
species_key = name_result["usageKey"]
# Search occurrences
params = {
"taxonKey": species_key,
"hasCoordinate": has_coordinate,
"hasGeospatialIssue": False,
"limit": limit,
}
if country:
params["country"] = country
results = occurrences.search(**params)
test cases passed, vs 15 / 23 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.