ecological-agent-skills 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT_CONTEXT.md +191 -0
- package/CATALOG.md +329 -0
- package/LICENSE +692 -0
- package/README.md +347 -0
- package/bin/install.mjs +168 -0
- package/docs/comparison-with-alternatives.md +38 -0
- package/docs/global-examples-index.md +103 -0
- package/docs/repository-statistics.md +101 -0
- package/docs/theoretical-foundations.md +188 -0
- package/environment.yaml +106 -0
- package/examples/community/arctic_tundra_vegetation_example.md +247 -0
- package/examples/community/bird_landuse_example.md +63 -0
- package/examples/community/phytoplankton_reservoir_example.md +60 -0
- package/examples/community/reef_fish_indopacific_example.md +221 -0
- package/examples/impact/baci_road_example.md +57 -0
- package/examples/impact/ecosystem_services_atlantic_forest.md +83 -0
- package/examples/impact/forest_loss_borneo_timeseries_example.md +225 -0
- package/examples/occupancy/puma_camera_example.md +61 -0
- package/examples/occupancy/snow_leopard_himalayas_example.md +204 -0
- package/examples/reproducible/whittaker_biome_sdm_example.md +406 -0
- package/examples/sdm/anteater_cerrado_example.md +69 -0
- package/examples/sdm/jaguar_amazon_example.md +80 -0
- package/examples/sdm/koala_climate_change_example.md +170 -0
- package/examples/sdm/wolf_recolonization_europe_example.md +193 -0
- package/package.json +43 -0
- package/renv.lock +194 -0
- package/skills/SKILL_INDEX.json +1020 -0
- package/skills/acoustic-monitoring/SKILL.md +163 -0
- package/skills/acoustic-monitoring/examples/example-prompts.md +100 -0
- package/skills/acoustic-monitoring/examples/temperate_forest_birds_example.md +285 -0
- package/skills/acoustic-monitoring/resources/acoustic-indices-reference.md +93 -0
- package/skills/acoustic-monitoring/resources/soundscape-ecology-guide.md +90 -0
- package/skills/acoustic-monitoring/resources/species-id-tools-comparison.md +89 -0
- package/skills/acoustic-monitoring/scripts/batch_species_detection.py +360 -0
- package/skills/acoustic-monitoring/scripts/compute_acoustic_indices.R +235 -0
- package/skills/acoustic-monitoring/scripts/compute_acoustic_indices.py +374 -0
- package/skills/biostatistics-workbench/SKILL.md +140 -0
- package/skills/biostatistics-workbench/examples/example-prompts.md +39 -0
- package/skills/biostatistics-workbench/resources/effect-size-reference.md +81 -0
- package/skills/biostatistics-workbench/resources/glm-family-link-reference.md +47 -0
- package/skills/biostatistics-workbench/resources/test-selection-guide.md +93 -0
- package/skills/biostatistics-workbench/scripts/glm_pipeline.R +78 -0
- package/skills/biostatistics-workbench/scripts/glm_pipeline.py +210 -0
- package/skills/camera-trap-processing/SKILL.md +159 -0
- package/skills/camera-trap-processing/examples/example-prompts.md +103 -0
- package/skills/camera-trap-processing/examples/leopard_serengeti_example.md +231 -0
- package/skills/camera-trap-processing/resources/activity-patterns-reference.md +113 -0
- package/skills/camera-trap-processing/resources/camtrapR-workflow-guide.md +130 -0
- package/skills/camera-trap-processing/resources/detection-event-definition-guide.md +89 -0
- package/skills/camera-trap-processing/scripts/estimate_activity.R +169 -0
- package/skills/camera-trap-processing/scripts/process_camtrap_data.R +179 -0
- package/skills/camera-trap-processing/scripts/process_camtrap_data.py +192 -0
- package/skills/community-ecology-ordination/SKILL.md +133 -0
- package/skills/community-ecology-ordination/examples/example-prompts.md +35 -0
- package/skills/community-ecology-ordination/resources/dissimilarity-metric-guide.md +53 -0
- package/skills/community-ecology-ordination/resources/nmds-interpretation-guide.md +104 -0
- package/skills/community-ecology-ordination/scripts/__pycache__/community_analysis.cpython-311.pyc +0 -0
- package/skills/community-ecology-ordination/scripts/community_analysis.R +143 -0
- package/skills/community-ecology-ordination/scripts/community_analysis.py +231 -0
- package/skills/ecological-data-foundation/SKILL.md +129 -0
- package/skills/ecological-data-foundation/examples/example-prompts.md +40 -0
- package/skills/ecological-data-foundation/resources/coordinate-cleaning-flags.md +66 -0
- package/skills/ecological-data-foundation/resources/darwin-core-glossary.md +91 -0
- package/skills/ecological-data-foundation/resources/data-citation-guide.md +265 -0
- package/skills/ecological-data-foundation/resources/gbif-data-citation-guide.md +193 -0
- package/skills/ecological-data-foundation/resources/qa-checklist.md +83 -0
- package/skills/ecological-data-foundation/scripts/__pycache__/clean_occurrences.cpython-311.pyc +0 -0
- package/skills/ecological-data-foundation/scripts/__pycache__/download_from_ebird.cpython-311.pyc +0 -0
- package/skills/ecological-data-foundation/scripts/__pycache__/download_from_inat.cpython-311.pyc +0 -0
- package/skills/ecological-data-foundation/scripts/__pycache__/download_from_iucn.cpython-311.pyc +0 -0
- package/skills/ecological-data-foundation/scripts/__pycache__/download_from_obis.cpython-311.pyc +0 -0
- package/skills/ecological-data-foundation/scripts/clean_occurrences.R +230 -0
- package/skills/ecological-data-foundation/scripts/clean_occurrences.py +268 -0
- package/skills/ecological-data-foundation/scripts/download_from_ebird.R +251 -0
- package/skills/ecological-data-foundation/scripts/download_from_ebird.py +364 -0
- package/skills/ecological-data-foundation/scripts/download_from_gbif.R +315 -0
- package/skills/ecological-data-foundation/scripts/download_from_gbif.py +407 -0
- package/skills/ecological-data-foundation/scripts/download_from_inat.R +238 -0
- package/skills/ecological-data-foundation/scripts/download_from_inat.py +304 -0
- package/skills/ecological-data-foundation/scripts/download_from_iucn.R +273 -0
- package/skills/ecological-data-foundation/scripts/download_from_iucn.py +344 -0
- package/skills/ecological-data-foundation/scripts/download_from_obis.R +248 -0
- package/skills/ecological-data-foundation/scripts/download_from_obis.py +318 -0
- package/skills/ecological-impact-assessment/SKILL.md +123 -0
- package/skills/ecological-impact-assessment/examples/example-prompts.md +32 -0
- package/skills/ecological-impact-assessment/resources/baci-design-guide.md +55 -0
- package/skills/ecological-impact-assessment/resources/fragmentation-metrics-reference.md +86 -0
- package/skills/ecological-impact-assessment/resources/pressure-index-template.md +78 -0
- package/skills/ecological-impact-assessment/resources/study-design-guide.md +168 -0
- package/skills/ecological-impact-assessment/scripts/baci_analysis.R +161 -0
- package/skills/ecological-impact-assessment/scripts/fragmentation_analysis.py +141 -0
- package/skills/ecological-impact-assessment/scripts/power_analysis_baci.R +274 -0
- package/skills/ecosystem-services-assessment/SKILL.md +125 -0
- package/skills/ecosystem-services-assessment/examples/example-prompts.md +24 -0
- package/skills/ecosystem-services-assessment/resources/es-indicator-reference.md +45 -0
- package/skills/ecosystem-services-assessment/resources/invest-parameter-guide.md +86 -0
- package/skills/ecosystem-services-assessment/resources/rusle-coefficients.md +88 -0
- package/skills/ecosystem-services-assessment/scripts/__pycache__/compute_es.cpython-311.pyc +0 -0
- package/skills/ecosystem-services-assessment/scripts/compute_es.py +189 -0
- package/skills/ecosystem-services-assessment/scripts/tradeoff_analysis.R +161 -0
- package/skills/environmental-time-series/SKILL.md +125 -0
- package/skills/environmental-time-series/examples/example-prompts.md +33 -0
- package/skills/environmental-time-series/resources/anomaly-indices-reference.md +88 -0
- package/skills/environmental-time-series/resources/bfast-parameter-guide.md +69 -0
- package/skills/environmental-time-series/scripts/__pycache__/recovery_trajectory.cpython-311.pyc +0 -0
- package/skills/environmental-time-series/scripts/__pycache__/trend_analysis.cpython-311.pyc +0 -0
- package/skills/environmental-time-series/scripts/recovery_trajectory.R +305 -0
- package/skills/environmental-time-series/scripts/recovery_trajectory.py +178 -0
- package/skills/environmental-time-series/scripts/trend_analysis.R +192 -0
- package/skills/environmental-time-series/scripts/trend_analysis.py +184 -0
- package/skills/geoprocessing-for-ecology/SKILL.md +123 -0
- package/skills/geoprocessing-for-ecology/examples/example-prompts.md +32 -0
- package/skills/geoprocessing-for-ecology/resources/crs-reference.md +62 -0
- package/skills/geoprocessing-for-ecology/resources/global-predictor-sources.md +331 -0
- package/skills/geoprocessing-for-ecology/resources/resampling-methods.md +57 -0
- package/skills/geoprocessing-for-ecology/scripts/__pycache__/download_predictors.cpython-311.pyc +0 -0
- package/skills/geoprocessing-for-ecology/scripts/download_predictors.R +239 -0
- package/skills/geoprocessing-for-ecology/scripts/download_predictors.py +379 -0
- package/skills/geoprocessing-for-ecology/scripts/stack_and_extract.R +224 -0
- package/skills/geoprocessing-for-ecology/scripts/stack_and_extract.py +172 -0
- package/skills/landscape-connectivity/SKILL.md +170 -0
- package/skills/landscape-connectivity/examples/example-prompts.md +96 -0
- package/skills/landscape-connectivity/examples/jaguar_mesoamerica_corridor_example.md +271 -0
- package/skills/landscape-connectivity/resources/circuitscape-parameter-guide.md +155 -0
- package/skills/landscape-connectivity/resources/graph-theory-for-ecology.md +134 -0
- package/skills/landscape-connectivity/resources/resistance-surface-guide.md +141 -0
- package/skills/landscape-connectivity/scripts/connectivity_analysis.py +387 -0
- package/skills/landscape-connectivity/scripts/connectivity_metrics.R +274 -0
- package/skills/landscape-connectivity/scripts/resistance_surface.R +239 -0
- package/skills/model-validation-and-uncertainty/SKILL.md +131 -0
- package/skills/model-validation-and-uncertainty/examples/example-prompts.md +30 -0
- package/skills/model-validation-and-uncertainty/resources/extrapolation-risk-guide.md +236 -0
- package/skills/model-validation-and-uncertainty/resources/metric-selection-guide.md +52 -0
- package/skills/model-validation-and-uncertainty/resources/threshold-selection-guide.md +64 -0
- package/skills/model-validation-and-uncertainty/scripts/__pycache__/validate_model.cpython-311.pyc +0 -0
- package/skills/model-validation-and-uncertainty/scripts/extrapolation_risk.R +315 -0
- package/skills/model-validation-and-uncertainty/scripts/validate_model.py +226 -0
- package/skills/model-validation-and-uncertainty/scripts/validate_sdm.R +162 -0
- package/skills/occupancy-and-detection/SKILL.md +126 -0
- package/skills/occupancy-and-detection/examples/example-prompts.md +33 -0
- package/skills/occupancy-and-detection/resources/detection-history-format.md +100 -0
- package/skills/occupancy-and-detection/resources/occupancy-study-design.md +47 -0
- package/skills/occupancy-and-detection/scripts/__pycache__/occupancy_analysis.cpython-311.pyc +0 -0
- package/skills/occupancy-and-detection/scripts/occupancy_analysis.R +160 -0
- package/skills/occupancy-and-detection/scripts/occupancy_analysis.py +159 -0
- package/skills/population-viability-analysis/SKILL.md +161 -0
- package/skills/population-viability-analysis/examples/african_elephant_pva_example.md +266 -0
- package/skills/population-viability-analysis/examples/example-prompts.md +95 -0
- package/skills/population-viability-analysis/resources/extinction-risk-thresholds.md +128 -0
- package/skills/population-viability-analysis/resources/matrix-model-guide.md +139 -0
- package/skills/population-viability-analysis/resources/sensitivity-elasticity-reference.md +182 -0
- package/skills/population-viability-analysis/scripts/matrix_pva.R +258 -0
- package/skills/population-viability-analysis/scripts/pva_analysis.py +442 -0
- package/skills/population-viability-analysis/scripts/stochastic_pva.R +353 -0
- package/skills/predictive-modeling-best-practices/SKILL.md +136 -0
- package/skills/predictive-modeling-best-practices/examples/example-prompts.md +58 -0
- package/skills/predictive-modeling-best-practices/resources/collinearity-decision-tree.md +65 -0
- package/skills/predictive-modeling-best-practices/resources/sampling-bias-correction.md +267 -0
- package/skills/predictive-modeling-best-practices/resources/spatial-cv-guide.md +73 -0
- package/skills/predictive-modeling-best-practices/scripts/__pycache__/spatial_cv.cpython-311.pyc +0 -0
- package/skills/predictive-modeling-best-practices/scripts/collinearity_check.R +112 -0
- package/skills/predictive-modeling-best-practices/scripts/spatial_cv.py +182 -0
- package/skills/reproducible-ecology-pipeline/SKILL.md +139 -0
- package/skills/reproducible-ecology-pipeline/examples/example-prompts.md +35 -0
- package/skills/reproducible-ecology-pipeline/resources/directory-structure-template.md +94 -0
- package/skills/reproducible-ecology-pipeline/resources/params-yaml-template.yaml +84 -0
- package/skills/reproducible-ecology-pipeline/resources/reproducibility-checklist-template.md +66 -0
- package/skills/reproducible-ecology-pipeline/scripts/generate_file_manifest.py +110 -0
- package/skills/reproducible-ecology-pipeline/scripts/init_project.sh +53 -0
- package/skills/spatial-prioritization/SKILL.md +162 -0
- package/skills/spatial-prioritization/examples/biodiversity_hotspot_prioritization_example.md +289 -0
- package/skills/spatial-prioritization/examples/example-prompts.md +93 -0
- package/skills/spatial-prioritization/resources/cost-surface-reference.md +130 -0
- package/skills/spatial-prioritization/resources/marxan-vs-prioritizr-comparison.md +125 -0
- package/skills/spatial-prioritization/resources/prioritizr-formulation-guide.md +188 -0
- package/skills/spatial-prioritization/resources/representation-targets-guide.md +186 -0
- package/skills/spatial-prioritization/scripts/prioritization_sensitivity.R +320 -0
- package/skills/spatial-prioritization/scripts/run_prioritization.R +336 -0
- package/skills/species-distribution-modeling/SKILL.md +139 -0
- package/skills/species-distribution-modeling/examples/example-prompts.md +36 -0
- package/skills/species-distribution-modeling/resources/algorithm-comparison.md +25 -0
- package/skills/species-distribution-modeling/resources/calibration-area-guide.md +71 -0
- package/skills/species-distribution-modeling/resources/climate-scenario-preparation.md +170 -0
- package/skills/species-distribution-modeling/resources/maxent-calibration-guide.md +211 -0
- package/skills/species-distribution-modeling/resources/sdm-checklist.md +37 -0
- package/skills/species-distribution-modeling/scripts/predict_distribution.R +236 -0
- package/skills/species-distribution-modeling/scripts/predict_distribution.py +286 -0
- package/skills/species-distribution-modeling/scripts/prepare_future_layers.R +351 -0
- package/skills/species-distribution-modeling/scripts/project_scenarios.R +220 -0
- package/skills/species-distribution-modeling/scripts/run_ensemble_sdm.R +99 -0
- package/skills/species-distribution-modeling/scripts/sdm_pipeline.py +318 -0
- package/skills/species-distribution-modeling/scripts/tune_maxnet.R +344 -0
- package/templates/SKILL_TEMPLATE.md +225 -0
- package/templates/checklists/data-submission-checklist.md +38 -0
- package/templates/checklists/post-analysis-checklist.md +55 -0
- package/templates/checklists/pre-analysis-checklist.md +31 -0
- package/templates/prompts/debug-skill.md +47 -0
- package/templates/prompts/invoke-skill.md +34 -0
- package/templates/prompts/invoke-workflow.md +45 -0
- package/templates/reports/technical-report-template.md +80 -0
- package/templates/scripts/logger_setup.R +79 -0
- package/templates/scripts/logger_setup.py +119 -0
- package/templates/scripts/params_loader.R +28 -0
- package/templates/scripts/params_loader.py +38 -0
- package/workflows/analyze-community-structure/WORKFLOW.md +72 -0
- package/workflows/analyze-environmental-change/WORKFLOW.md +73 -0
- package/workflows/assess-ecological-impact/WORKFLOW.md +75 -0
- package/workflows/assess-ecosystem-services/WORKFLOW.md +68 -0
- package/workflows/assess-landscape-connectivity/WORKFLOW.md +84 -0
- package/workflows/build-fire-risk-map/WORKFLOW.md +79 -0
- package/workflows/produce-technical-report/WORKFLOW.md +113 -0
- package/workflows/run-camera-trap-occupancy/WORKFLOW.md +87 -0
- package/workflows/run-conservation-prioritization/WORKFLOW.md +89 -0
- package/workflows/run-multispecies-screening/WORKFLOW.md +197 -0
- package/workflows/run-occupancy-analysis/WORKFLOW.md +74 -0
- package/workflows/run-population-viability/WORKFLOW.md +90 -0
- package/workflows/run-sdm-study/WORKFLOW.md +99 -0
package/AGENT_CONTEXT.md
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# AGENT_CONTEXT.md
|
|
2
|
+
|
|
3
|
+
This file is written for AI agents, not humans.
|
|
4
|
+
Read this file first before performing any task in this repository.
|
|
5
|
+
Do not skip sections. Every rule here is enforced at runtime.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. How to Use This Repository
|
|
10
|
+
|
|
11
|
+
This repository is a modular skill library for quantitative ecology.
|
|
12
|
+
It is structured for use by AI agents operating within agent frameworks
|
|
13
|
+
(Claude Code, Gemini CLI, GitHub Copilot, Cursor, or any compatible system).
|
|
14
|
+
|
|
15
|
+
**Skills** are self-contained analysis modules. Each skill:
|
|
16
|
+
- Lives at `skills/<skill-id>/`
|
|
17
|
+
- Is described by `skills/<skill-id>/SKILL.md`
|
|
18
|
+
- Contains scripts in `scripts/`, reference material in `resources/`, and
|
|
19
|
+
worked examples in `examples/`
|
|
20
|
+
|
|
21
|
+
**Workflows** are ordered sequences of skills for complete project pipelines.
|
|
22
|
+
Each workflow lives at `workflows/<workflow-id>/WORKFLOW.md`.
|
|
23
|
+
|
|
24
|
+
**Rules — read before invoking any skill:**
|
|
25
|
+
|
|
26
|
+
1. Read `skills/SKILL_INDEX.json` first to identify the correct skill for the task.
|
|
27
|
+
Do not rely on skill names alone; use `trigger_keywords` and `domain` fields.
|
|
28
|
+
2. Read the full `SKILL.md` of the selected skill before executing any step.
|
|
29
|
+
Do not skip to the scripts.
|
|
30
|
+
3. Check `min_inputs` in the skill index. If a required input is missing, request it
|
|
31
|
+
from the user before proceeding.
|
|
32
|
+
4. After completing each analytical step, write decisions to `decision_log.md` as
|
|
33
|
+
required by the `reproducible-ecology-pipeline` skill.
|
|
34
|
+
5. Validate outputs listed in `primary_outputs` before marking a skill as complete.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 2. Canonical Invocation Order by Project Type
|
|
39
|
+
|
|
40
|
+
| Project Type | Step 1 | Step 2 | Step 3 | Step 4 | Step 5 |
|
|
41
|
+
|---|---|---|---|---|---|
|
|
42
|
+
| **SDM — complete** | ecological-data-foundation | geoprocessing-for-ecology | predictive-modeling-best-practices | species-distribution-modeling | model-validation-and-uncertainty |
|
|
43
|
+
| **SDM — projection only** | geoprocessing-for-ecology | species-distribution-modeling | model-validation-and-uncertainty | — | — |
|
|
44
|
+
| **Ecological impact (BACI)** | ecological-data-foundation | ecological-impact-assessment | biostatistics-workbench | model-validation-and-uncertainty | reproducible-ecology-pipeline |
|
|
45
|
+
| **Community analysis** | ecological-data-foundation | community-ecology-ordination | biostatistics-workbench | reproducible-ecology-pipeline | — |
|
|
46
|
+
| **Occupancy and detection** | ecological-data-foundation | occupancy-and-detection | biostatistics-workbench | reproducible-ecology-pipeline | — |
|
|
47
|
+
| **Environmental time series** | ecological-data-foundation | environmental-time-series | biostatistics-workbench | reproducible-ecology-pipeline | — |
|
|
48
|
+
| **Ecosystem services** | ecological-data-foundation | geoprocessing-for-ecology | ecosystem-services-assessment | model-validation-and-uncertainty | reproducible-ecology-pipeline |
|
|
49
|
+
| **Multispecies screening** | ecological-data-foundation | geoprocessing-for-ecology | species-distribution-modeling (loop) | model-validation-and-uncertainty | reproducible-ecology-pipeline |
|
|
50
|
+
|
|
51
|
+
For multispecies projects always read `workflows/run-multispecies-screening/WORKFLOW.md`
|
|
52
|
+
before starting. It contains the priority classification logic.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 3. Disambiguation Rules for Overlapping Skills
|
|
57
|
+
|
|
58
|
+
Apply exactly one rule per ambiguous situation. Do not invoke two skills for the
|
|
59
|
+
same analytical question.
|
|
60
|
+
|
|
61
|
+
### biostatistics-workbench vs community-ecology-ordination
|
|
62
|
+
- Use **biostatistics-workbench** when the question involves a single response variable
|
|
63
|
+
(abundance, richness, biomass) and one or more predictors.
|
|
64
|
+
- Use **community-ecology-ordination** when the question involves species composition
|
|
65
|
+
across multiple sites (a species × site matrix is the primary input).
|
|
66
|
+
|
|
67
|
+
### ecological-data-foundation vs geoprocessing-for-ecology
|
|
68
|
+
- Use **ecological-data-foundation** for cleaning, deduplicating, validating, and
|
|
69
|
+
standardising occurrence records or survey tables.
|
|
70
|
+
- Use **geoprocessing-for-ecology** for spatial operations on rasters and vectors:
|
|
71
|
+
reprojection, masking, stacking, buffer creation, spatial extraction.
|
|
72
|
+
- If the task involves occurrence records AND spatial extraction, invoke
|
|
73
|
+
ecological-data-foundation first, then geoprocessing-for-ecology.
|
|
74
|
+
|
|
75
|
+
### model-validation-and-uncertainty vs predictive-modeling-best-practices
|
|
76
|
+
- Use **predictive-modeling-best-practices** BEFORE fitting any model:
|
|
77
|
+
predictor selection, collinearity reduction, CV strategy design, bias correction.
|
|
78
|
+
- Use **model-validation-and-uncertainty** AFTER fitting any model:
|
|
79
|
+
performance metrics, calibration, uncertainty quantification, extrapolation risk.
|
|
80
|
+
- Never reverse this order.
|
|
81
|
+
|
|
82
|
+
### ecological-impact-assessment vs biostatistics-workbench
|
|
83
|
+
- Use **ecological-impact-assessment** when the data has explicit temporal structure
|
|
84
|
+
(before/after) and spatial structure (control/impact sites), or when computing
|
|
85
|
+
landscape fragmentation or pressure indices.
|
|
86
|
+
- Use **biostatistics-workbench** for statistical comparisons that do not involve
|
|
87
|
+
a BACI design or landscape metrics.
|
|
88
|
+
|
|
89
|
+
### species-distribution-modeling vs occupancy-and-detection
|
|
90
|
+
- Use **species-distribution-modeling** when the goal is a spatial suitability surface
|
|
91
|
+
using presence-only or presence-absence records and environmental predictors.
|
|
92
|
+
- Use **occupancy-and-detection** when the goal is to estimate occupancy probability (ψ)
|
|
93
|
+
and detection probability (p) using replicated-visit detection history data.
|
|
94
|
+
|
|
95
|
+
### ecological-data-foundation vs reproducible-ecology-pipeline
|
|
96
|
+
- Use **ecological-data-foundation** for data cleaning and QA at the start of the pipeline.
|
|
97
|
+
- Use **reproducible-ecology-pipeline** for logging decisions, generating file manifests,
|
|
98
|
+
and ensuring auditability — invoke at the end of each major analytical phase.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 4. When NOT to Invoke Any Skill
|
|
103
|
+
|
|
104
|
+
Do not invoke any skill for the following situations. Answer directly.
|
|
105
|
+
|
|
106
|
+
- **Conceptual questions about methods**: "What is MaxEnt?", "How does NMDS work?"
|
|
107
|
+
→ Explain directly. No skill invocation.
|
|
108
|
+
- **Interpretation of already-computed results**: "What does an AUC of 0.75 mean for
|
|
109
|
+
my model?" → Interpret directly. Do not re-run scripts.
|
|
110
|
+
- **Code review of existing scripts**: "Is this R script correct?" → Review and respond
|
|
111
|
+
directly. Do not re-execute the script.
|
|
112
|
+
- **n < 10 records for any modelling task**: Do not invoke any modelling skill.
|
|
113
|
+
Communicate the limitation to the user explicitly. Suggest options (literature review,
|
|
114
|
+
expert knowledge, qualitative assessment).
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 5. Minimum Sample Size Requirements
|
|
119
|
+
|
|
120
|
+
If the available n is below the minimum absolute threshold, do not proceed with modelling.
|
|
121
|
+
State the limitation, explain why modelling is unreliable, and suggest alternatives.
|
|
122
|
+
|
|
123
|
+
| Analysis Type | n minimum (absolute) | n recommended | Action if below minimum |
|
|
124
|
+
|---|---|---|---|
|
|
125
|
+
| SDM (MaxEnt/ensemble) | 10 occurrences | ≥ 30 | Do not fit model; suggest literature-based range map |
|
|
126
|
+
| Occupancy model (single-season) | 15 sites | ≥ 30 sites, ≥ 3 visits | Do not fit model; use naive occupancy with explicit caveat |
|
|
127
|
+
| BACI (mixed model) | 5 control + 5 impact sites, ≥ 3 time periods | ≥ 10 per group | Report power deficit; fit model with explicit uncertainty caveat |
|
|
128
|
+
| Community ordination (NMDS/PERMANOVA) | 5 sites | ≥ 10 sites | Reduce dimensionality; note low power |
|
|
129
|
+
| GLM (single predictor) | 20 observations | ≥ 50 | Fit with caution; report wide CIs explicitly |
|
|
130
|
+
| PVA (population viability) | 5 years of count data | ≥ 10 years | Do not run stochastic PVA; use deterministic model only |
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 6. Scaling Between Simple and Complex Projects
|
|
135
|
+
|
|
136
|
+
Apply the appropriate routing based on project complexity:
|
|
137
|
+
|
|
138
|
+
**Simple project** (1 species, 1 analysis, no pipeline):
|
|
139
|
+
→ Invoke the single relevant skill directly.
|
|
140
|
+
→ Example: "Clean this occurrence CSV" → ecological-data-foundation only.
|
|
141
|
+
|
|
142
|
+
**Medium project** (1 species, full analytical pipeline):
|
|
143
|
+
→ Follow the canonical invocation order from Section 2.
|
|
144
|
+
→ Read the corresponding workflow WORKFLOW.md before starting.
|
|
145
|
+
→ Example: Complete SDM → read `workflows/run-sdm-study/WORKFLOW.md`.
|
|
146
|
+
|
|
147
|
+
**Complex project** (multiple species, multiple analyses, or iterative pipeline):
|
|
148
|
+
→ Read `workflows/run-multispecies-screening/WORKFLOW.md` first.
|
|
149
|
+
→ Use `future::plan(multisession)` in R for species-level parallelisation.
|
|
150
|
+
→ Prioritise species using the High/Medium/Low classification defined in that workflow.
|
|
151
|
+
→ Do not proceed to projection for Medium or Low priority species until High priority
|
|
152
|
+
species have passed model validation.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 7. File Conventions of This Repository
|
|
157
|
+
|
|
158
|
+
### Where to put input data
|
|
159
|
+
- Place raw input files in `data/raw/` (create if absent).
|
|
160
|
+
- Place cleaned, analysis-ready files in `data/processed/`.
|
|
161
|
+
- GBIF downloads go in `data/raw/gbif/`.
|
|
162
|
+
|
|
163
|
+
### Where to write outputs
|
|
164
|
+
- Model outputs: `outputs/<skill-id>/` (create per skill, per species if needed).
|
|
165
|
+
- Reports: `outputs/reports/`.
|
|
166
|
+
- Figures: `outputs/figures/`.
|
|
167
|
+
- Logs: `outputs/logs/`.
|
|
168
|
+
|
|
169
|
+
### Naming conventions
|
|
170
|
+
- Occurrence files: `occurrences_<species-slug>_<source>_<YYYYMMDD>.csv`
|
|
171
|
+
- Raster outputs: `<variable>_<species-slug>_<scenario>_<year>.tif`
|
|
172
|
+
- Reports: `<skill-id>_report_<YYYYMMDD>.md`
|
|
173
|
+
- Follow `snake_case` for all file names. No spaces.
|
|
174
|
+
|
|
175
|
+
### Recording decisions
|
|
176
|
+
After each analytical step, append to `decision_log.md` at the project root:
|
|
177
|
+
```
|
|
178
|
+
## [YYYY-MM-DD] <Skill ID> — <brief description>
|
|
179
|
+
- Decision: <what was decided>
|
|
180
|
+
- Rationale: <why>
|
|
181
|
+
- Alternatives considered: <what else was evaluated>
|
|
182
|
+
- Output files: <list of files generated>
|
|
183
|
+
```
|
|
184
|
+
If `decision_log.md` does not exist, create it before appending.
|
|
185
|
+
|
|
186
|
+
### Checking the skill index
|
|
187
|
+
Before invoking any skill, execute this lookup:
|
|
188
|
+
1. Open `skills/SKILL_INDEX.json`.
|
|
189
|
+
2. Search `trigger_keywords` for terms matching the user request.
|
|
190
|
+
3. Check `depends_on_skills` — all dependencies must have been completed first.
|
|
191
|
+
4. Check `decision_points` — verify n thresholds and quality gates before proceeding.
|
package/CATALOG.md
ADDED
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
# Skill Catalog — ecological-agent-skills
|
|
2
|
+
|
|
3
|
+
A quick-reference index for all 17 skills. Each row summarises the skill's domain, when to invoke it, expected inputs, expected outputs, and which workflows depend on it.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Index
|
|
8
|
+
|
|
9
|
+
| # | Skill | Domain | Phase |
|
|
10
|
+
|---|-------|--------|-------|
|
|
11
|
+
| 1 | [ecological-data-foundation](#1-ecological-data-foundation) | Data management | 1 |
|
|
12
|
+
| 2 | [geoprocessing-for-ecology](#2-geoprocessing-for-ecology) | Spatial analysis | 1 |
|
|
13
|
+
| 3 | [biostatistics-workbench](#3-biostatistics-workbench) | Statistics | 1 |
|
|
14
|
+
| 4 | [predictive-modeling-best-practices](#4-predictive-modeling-best-practices) | ML / modeling | 1 |
|
|
15
|
+
| 5 | [model-validation-and-uncertainty](#5-model-validation-and-uncertainty) | Evaluation | 2 |
|
|
16
|
+
| 6 | [species-distribution-modeling](#6-species-distribution-modeling) | SDM / ENM | 2 |
|
|
17
|
+
| 7 | [occupancy-and-detection](#7-occupancy-and-detection) | Occupancy models | 3 |
|
|
18
|
+
| 8 | [community-ecology-ordination](#8-community-ecology-ordination) | Community ecology | 3 |
|
|
19
|
+
| 9 | [ecological-impact-assessment](#9-ecological-impact-assessment) | Impact & pressure | 2 |
|
|
20
|
+
| 10 | [environmental-time-series](#10-environmental-time-series) | Time series | 2 |
|
|
21
|
+
| 11 | [ecosystem-services-assessment](#11-ecosystem-services-assessment) | ES valuation | 3 |
|
|
22
|
+
| 12 | [reproducible-ecology-pipeline](#12-reproducible-ecology-pipeline) | Reproducibility | 1 |
|
|
23
|
+
| 13 | [camera-trap-processing](#13-camera-trap-processing) | Camera traps / wildlife monitoring | 4 |
|
|
24
|
+
| 14 | [acoustic-monitoring](#14-acoustic-monitoring) | Bioacoustics / soundscape ecology | 4 |
|
|
25
|
+
| 15 | [landscape-connectivity](#15-landscape-connectivity) | Landscape connectivity / corridors | 4 |
|
|
26
|
+
| 16 | [population-viability-analysis](#16-population-viability-analysis) | Population viability / extinction risk | 4 |
|
|
27
|
+
| 17 | [spatial-prioritization](#17-spatial-prioritization) | Conservation planning / reserve design | 4 |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Skill Details
|
|
32
|
+
|
|
33
|
+
### 1. ecological-data-foundation
|
|
34
|
+
**Domain:** Data ingestion, cleaning, schema validation, metadata, initial QA
|
|
35
|
+
**When to use:** At the start of any quantitative ecology project, before spatial operations or modeling.
|
|
36
|
+
**Inputs:** Raw occurrence records, field survey tables, environmental rasters, sensor exports, CSV/XLSX/GDB files
|
|
37
|
+
**Outputs:** Cleaned, validated dataset; QA report; metadata record; standardised schema
|
|
38
|
+
**Used by workflows:** all
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
### 2. geoprocessing-for-ecology
|
|
43
|
+
**Domain:** Coordinate reference systems, raster/vector operations, spatial extraction
|
|
44
|
+
**When to use:** Whenever spatial data needs to be reprojected, clipped, buffered, intersected, or used to extract environmental values.
|
|
45
|
+
**Inputs:** Shapefiles, GeoTIFFs, occurrence points, study area polygon
|
|
46
|
+
**Outputs:** Reprojected/masked layers, extracted raster values, spatial join tables, buffer polygons
|
|
47
|
+
**Used by workflows:** run-sdm-study, assess-ecological-impact, build-fire-risk-map, analyze-environmental-change, assess-ecosystem-services
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
### 3. biostatistics-workbench
|
|
52
|
+
**Domain:** Hypothesis testing, GLM/GLMM, assumption checking, effect size, confidence intervals
|
|
53
|
+
**When to use:** For inferential statistics, model selection between statistical models, or validating assumptions of any test.
|
|
54
|
+
**Inputs:** Tabular ecological data, response and predictor variables
|
|
55
|
+
**Outputs:** Test statistics, p-values, effect sizes, model comparison tables, assumption diagnostics
|
|
56
|
+
**Used by workflows:** assess-ecological-impact, analyze-community-structure, run-occupancy-analysis, assess-ecosystem-services
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
### 4. predictive-modeling-best-practices
|
|
61
|
+
**Domain:** Train/test split, cross-validation, hyperparameter tuning, collinearity, overfitting, data leakage
|
|
62
|
+
**When to use:** Before fitting any machine learning or algorithmic model (SDM, random forest, BRT, etc.).
|
|
63
|
+
**Inputs:** Feature matrix, target variable, candidate model list
|
|
64
|
+
**Outputs:** CV strategy, tuning results, collinearity report, leakage audit
|
|
65
|
+
**Used by workflows:** run-sdm-study, build-fire-risk-map
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### 5. model-validation-and-uncertainty
|
|
70
|
+
**Domain:** Performance metrics, calibration, sensitivity analysis, external validation, uncertainty quantification
|
|
71
|
+
**When to use:** After any model is fitted; always required before reporting results.
|
|
72
|
+
**Inputs:** Model object, validation dataset, predictions
|
|
73
|
+
**Outputs:** AUC/TSS/RMSE/etc., calibration plots, sensitivity report, uncertainty maps/intervals
|
|
74
|
+
**Used by workflows:** run-sdm-study, assess-ecological-impact, analyze-community-structure, build-fire-risk-map, run-occupancy-analysis
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### 6. species-distribution-modeling
|
|
79
|
+
**Domain:** SDM/ENM full pipeline (MaxEnt, BRT, ensemble, projection)
|
|
80
|
+
**When to use:** To model the potential or realised distribution of one or more species.
|
|
81
|
+
**Inputs:** Cleaned occurrence records, environmental predictor stack, study area extent
|
|
82
|
+
**Outputs:** Suitability map, variable importance, model ensemble, projection under scenarios
|
|
83
|
+
**Used by workflows:** run-sdm-study
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### 7. occupancy-and-detection
|
|
88
|
+
**Domain:** Single-season and dynamic occupancy models, imperfect detection, replicate surveys
|
|
89
|
+
**When to use:** When detection is imperfect and the goal is to estimate occupancy probability separately from detection probability.
|
|
90
|
+
**Inputs:** Detection/non-detection matrix, site covariates, observation covariates
|
|
91
|
+
**Outputs:** Occupancy estimates (ψ), detection estimates (p), covariate effects, AIC table
|
|
92
|
+
**Used by workflows:** run-occupancy-analysis
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### 8. community-ecology-ordination
|
|
97
|
+
**Domain:** NMDS, PCA, PCoA, diversity indices, cluster analysis, community composition
|
|
98
|
+
**When to use:** For multivariate analysis of species assemblages, beta diversity, or community structure comparisons.
|
|
99
|
+
**Inputs:** Species × site matrix, environmental metadata
|
|
100
|
+
**Outputs:** Ordination plots, stress/eigenvalues, diversity metrics, cluster dendrograms, PERMANOVA results
|
|
101
|
+
**Used by workflows:** analyze-community-structure
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
### 9. ecological-impact-assessment
|
|
106
|
+
**Domain:** BACI design, before/after analysis, landscape fragmentation, anthropogenic pressure synthesis
|
|
107
|
+
**When to use:** To quantify the effect of a disturbance, land-use change, or management intervention on ecological indicators.
|
|
108
|
+
**Inputs:** Pre/post datasets, control/impact site data, pressure layers
|
|
109
|
+
**Outputs:** Impact magnitude estimates, fragmentation metrics, pressure index, synthesis narrative
|
|
110
|
+
**Used by workflows:** assess-ecological-impact, build-fire-risk-map, analyze-environmental-change
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
### 10. environmental-time-series
|
|
115
|
+
**Domain:** Trend detection, seasonality decomposition, breakpoint analysis, anomaly detection, recovery trajectories
|
|
116
|
+
**When to use:** For any temporal ecological signal: NDVI, temperature, rainfall, species abundance index, etc.
|
|
117
|
+
**Inputs:** Time-indexed environmental or ecological variable (tabular or raster stack)
|
|
118
|
+
**Outputs:** Trend estimate, seasonal component, breakpoint dates, anomaly flags, recovery rate
|
|
119
|
+
**Used by workflows:** build-fire-risk-map, analyze-environmental-change
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### 11. ecosystem-services-assessment
|
|
124
|
+
**Domain:** ES indicators, provisioning/regulating/cultural service quantification, trade-off analysis
|
|
125
|
+
**When to use:** To evaluate and spatially represent ecosystem services across a landscape.
|
|
126
|
+
**Inputs:** Land cover map, biophysical data, socioeconomic layers, study area
|
|
127
|
+
**Outputs:** ES indicator maps, trade-off matrix, summary table by land cover class
|
|
128
|
+
**Used by workflows:** assess-ecosystem-services
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
### 12. reproducible-ecology-pipeline
|
|
133
|
+
**Domain:** Provenance tracking, parameter logging, decision audit, reproducibility checklist
|
|
134
|
+
**When to use:** Throughout every project; mandatory before any publication or technical report.
|
|
135
|
+
**Inputs:** Any intermediate or final analytical outputs, code, model parameters
|
|
136
|
+
**Outputs:** Reproducibility checklist, parameter manifest, decision log, audit trail
|
|
137
|
+
**Used by workflows:** all
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
### 13. camera-trap-processing
|
|
142
|
+
**Domain:** Camera trap data processing, detection events, diel activity patterns, temporal overlap
|
|
143
|
+
**When to use:** When processing camera trap image records into structured detection data, computing activity patterns, or generating detection histories for occupancy modeling.
|
|
144
|
+
**Inputs:** Image directory, camera station metadata (GPS, deployment dates), species list, independence threshold (default 30 min)
|
|
145
|
+
**Outputs:** Record table (CSV), detection history matrix, camera operation summary, trap effort table, activity overlap plots
|
|
146
|
+
**Used by workflows:** (standalone; feeds into occupancy-and-detection)
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
### 14. acoustic-monitoring
|
|
151
|
+
**Domain:** Passive acoustic monitoring, soundscape indices (ACI, NDSI, ADI), automated species detection
|
|
152
|
+
**When to use:** When processing audio recordings from AudioMoth, SM4, or similar recorders to compute soundscape indices or detect species via BirdNET or similar classifiers.
|
|
153
|
+
**Inputs:** Audio directory (WAV/FLAC), recording metadata, species list (optional), location coordinates
|
|
154
|
+
**Outputs:** Acoustic indices time series (CSV), detection list with confidence scores, species accumulation curve, soundscape heatmap
|
|
155
|
+
**Used by workflows:** (standalone; pairs with environmental-time-series)
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
### 15. landscape-connectivity
|
|
160
|
+
**Domain:** Habitat connectivity, resistance surfaces, graph-theoretic metrics (IIC, dPC), corridor identification
|
|
161
|
+
**When to use:** To assess landscape connectivity for a focal species, identify wildlife corridors, rank patches by importance, or detect pinchpoints using Circuitscape or graph-based approaches.
|
|
162
|
+
**Inputs:** Habitat patch layer, dispersal distance (m), land cover raster, resistance value table
|
|
163
|
+
**Outputs:** Patch importance metrics (CSV), resistance surface (TIF), connectivity graph plot, pinchpoint map
|
|
164
|
+
**Used by workflows:** (standalone; depends on geoprocessing-for-ecology)
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
### 16. population-viability-analysis
|
|
169
|
+
**Domain:** Matrix population models (Leslie/Lefkovitch), stochastic PVA, extinction risk, IUCN Criterion E
|
|
170
|
+
**When to use:** To project population trajectories, estimate extinction probability, compute lambda/elasticity/sensitivity, or assess a species against IUCN Criterion E quantitative thresholds.
|
|
171
|
+
**Inputs:** Vital rates (survival, fecundity per stage/age), initial population size, time horizon, quasi-extinction threshold
|
|
172
|
+
**Outputs:** Lambda summary, sensitivity/elasticity matrices, stochastic PVA trajectories, extinction probability curve, IUCN Criterion E classification
|
|
173
|
+
**Used by workflows:** (standalone; depends on biostatistics-workbench)
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
### 17. spatial-prioritization
|
|
178
|
+
**Domain:** Systematic conservation planning, prioritizr (ILP), Marxan, Zonation, protected area network design
|
|
179
|
+
**When to use:** To identify priority areas for conservation, design reserve networks with representation targets, calibrate boundary length modifier (BLM), or evaluate existing protected area coverage.
|
|
180
|
+
**Inputs:** Planning unit raster, species/feature distribution rasters, representation targets, cost layer, locked-in/out areas
|
|
181
|
+
**Outputs:** Optimal solution map (TIF), feature representation table, cost summary, irreplaceability map, BLM calibration curve, portfolio frequency map
|
|
182
|
+
**Used by workflows:** (standalone; depends on species-distribution-modeling, ecosystem-services-assessment)
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Workflow × Skill Matrix
|
|
187
|
+
|
|
188
|
+
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
|
|
189
|
+
|--|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
|
|
190
|
+
| run-sdm-study | ✓ | ✓ | | ✓ | ✓ | ✓ | | | | | | ✓ | | | | | |
|
|
191
|
+
| assess-ecological-impact | ✓ | ✓ | ✓ | | ✓ | | | | ✓ | | | ✓ | | | | | |
|
|
192
|
+
| analyze-community-structure | ✓ | | ✓ | | ✓ | | | ✓ | | | | ✓ | | | | | |
|
|
193
|
+
| build-fire-risk-map | ✓ | ✓ | | ✓ | ✓ | | | | ✓ | ✓ | | | | | | | |
|
|
194
|
+
| run-occupancy-analysis | ✓ | | ✓ | | ✓ | | ✓ | | | | | ✓ | ✓ | | | | |
|
|
195
|
+
| analyze-environmental-change | ✓ | ✓ | | | | | | | ✓ | ✓ | | ✓ | | ✓ | | | |
|
|
196
|
+
| assess-ecosystem-services | ✓ | ✓ | ✓ | | | | | | | | ✓ | ✓ | | | | | ✓ |
|
|
197
|
+
| produce-technical-report | | | | | | | | | | | | ✓ | | | | | |
|
|
198
|
+
| run-multispecies-screening | ✓ | ✓ | | ✓ | ✓ | ✓ | | | | | | | | | | | |
|
|
199
|
+
| run-camera-trap-occupancy | ✓ | | | | ✓ | | ✓ | | | | | ✓ | ✓ | | | | |
|
|
200
|
+
| assess-landscape-connectivity | ✓ | ✓ | | | ✓ | | | | | | | ✓ | | | ✓ | | |
|
|
201
|
+
| run-population-viability | ✓ | | ✓ | | ✓ | | | | | | | ✓ | | | | ✓ | |
|
|
202
|
+
| run-conservation-prioritization | ✓ | ✓ | | | | ✓ | | | | | | ✓ | | | | | ✓ |
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## New Resources Added in v1.1.0
|
|
207
|
+
|
|
208
|
+
### skills/species-distribution-modeling/
|
|
209
|
+
| File | Description |
|
|
210
|
+
|---|---|
|
|
211
|
+
| `resources/maxent-calibration-guide.md` | RM × FC grid, OR_AICc criterion, kuenm vs ENMeval comparison |
|
|
212
|
+
| `resources/climate-scenario-preparation.md` | CHELSA/WorldClim sources, SSPs, mandatory preparation pipeline |
|
|
213
|
+
| `scripts/tune_maxnet.R` | ENMeval calibration grid search (35 models), OR_AICc selection, best_maxnet.rds |
|
|
214
|
+
| `scripts/prepare_future_layers.R` | Reproject, crop, compareGeom, layer-name verification for future stacks |
|
|
215
|
+
|
|
216
|
+
### skills/predictive-modeling-best-practices/
|
|
217
|
+
| File | Description |
|
|
218
|
+
|---|---|
|
|
219
|
+
| `resources/sampling-bias-correction.md` | Target-group background, KDE weighting, environmental filtering, decision table |
|
|
220
|
+
|
|
221
|
+
### skills/model-validation-and-uncertainty/
|
|
222
|
+
| File | Description |
|
|
223
|
+
|---|---|
|
|
224
|
+
| `resources/extrapolation-risk-guide.md` | MOP, ExDet (NT1/NT2), MESS — comparison table, thresholds, masking protocol |
|
|
225
|
+
| `scripts/extrapolation_risk.R` | MOP + MESS computation, summary CSV, extrapolation plots, severity warnings |
|
|
226
|
+
|
|
227
|
+
### skills/ecological-data-foundation/
|
|
228
|
+
| File | Description |
|
|
229
|
+
|---|---|
|
|
230
|
+
| `resources/gbif-data-citation-guide.md` | DOI retrieval, occ_search vs occ_download, ODMAP O4 reporting |
|
|
231
|
+
| `scripts/download_from_gbif.R` | Single + batch GBIF download with DOI, rgbif, filters, metadata |
|
|
232
|
+
| `scripts/download_from_gbif.py` | Python equivalent via pygbif |
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Advanced Skills (v2.0.0)
|
|
237
|
+
|
|
238
|
+
### skills/camera-trap-processing/
|
|
239
|
+
| File | Description |
|
|
240
|
+
|---|---|
|
|
241
|
+
| `SKILL.md` | Skill manifest (skill_version: 1.0.0) |
|
|
242
|
+
| `resources/detection-event-definition-guide.md` | Independence threshold by taxon, RAI sensitivity table, decision_log format |
|
|
243
|
+
| `resources/camtrapR-workflow-guide.md` | camtrapR directory structure, recordTable, detectionHistory, cameraOperation |
|
|
244
|
+
| `resources/activity-patterns-reference.md` | Dhat estimators, overlap interpretation, circular statistics, min sample sizes |
|
|
245
|
+
| `scripts/process_camtrap_data.R` | Full camtrapR pipeline: recordTable → detectionHistory → trap effort |
|
|
246
|
+
| `scripts/estimate_activity.R` | Diel activity curves, Dhat4 bootstrap CI, circular stats, overlap plots |
|
|
247
|
+
| `scripts/process_camtrap_data.py` | Pure Python CSV-based summary and detection timeline (no camtrapR dependency) |
|
|
248
|
+
| `examples/example-prompts.md` | 5 prompt scenarios |
|
|
249
|
+
| `examples/leopard_serengeti_example.md` | Full walkthrough: leopard diel activity, temporal overlap, occupancy modelling |
|
|
250
|
+
|
|
251
|
+
### skills/acoustic-monitoring/
|
|
252
|
+
| File | Description |
|
|
253
|
+
|---|---|
|
|
254
|
+
| `SKILL.md` | Skill manifest (skill_version: 1.0.0) |
|
|
255
|
+
| `resources/acoustic-indices-reference.md` | ACI, BI, NDSI, H, ADI, AEI comparison table, noise sensitivity, soundecology R code |
|
|
256
|
+
| `resources/species-id-tools-comparison.md` | BirdNET vs RavenPro vs others, confidence score table, validation protocol |
|
|
257
|
+
| `resources/soundscape-ecology-guide.md` | NDSI biophony/anthrophony framework, diel control model, rarefaction |
|
|
258
|
+
| `scripts/compute_acoustic_indices.R` | Batch ACI/BI/NDSI/H/ADI/AEI computation, heatmap output, soundecology |
|
|
259
|
+
| `scripts/batch_species_detection.py` | BirdNET batch detection, confidence filtering, species accumulation |
|
|
260
|
+
| `scripts/compute_acoustic_indices.py` | Python ACI/BI/NDSI/H implementation with librosa, matplotlib heatmap |
|
|
261
|
+
| `examples/example-prompts.md` | 5 prompt scenarios |
|
|
262
|
+
| `examples/temperate_forest_birds_example.md` | Full walkthrough: AudioMoth, BirdNET, mixed-effects model, habitat comparison |
|
|
263
|
+
|
|
264
|
+
### skills/landscape-connectivity/
|
|
265
|
+
| File | Description |
|
|
266
|
+
|---|---|
|
|
267
|
+
| `SKILL.md` | Skill manifest (skill_version: 1.0.0) |
|
|
268
|
+
| `resources/graph-theory-for-ecology.md` | IIC, PC, dIIC, dPC, BC — formulas, R code, interpretation table |
|
|
269
|
+
| `resources/resistance-surface-guide.md` | Resistance value tables, reclassification R code, multi-layer combination |
|
|
270
|
+
| `resources/circuitscape-parameter-guide.md` | INI configuration, R wrapper, pinchpoint extraction, pitfalls |
|
|
271
|
+
| `scripts/connectivity_metrics.R` | IIC, PC, dIIC, dPC, betweenness centrality, graph visualisation |
|
|
272
|
+
| `scripts/resistance_surface.R` | LC reclassification + optional slope + road-proximity resistance layers |
|
|
273
|
+
| `scripts/connectivity_analysis.py` | networkx IIC/PC/dPC, pairwise least-cost paths, matplotlib network plot |
|
|
274
|
+
| `examples/example-prompts.md` | 5 prompt scenarios |
|
|
275
|
+
| `examples/jaguar_mesoamerica_corridor_example.md` | Full walkthrough: MBC corridor analysis, Circuitscape, scenario analysis |
|
|
276
|
+
|
|
277
|
+
### skills/population-viability-analysis/
|
|
278
|
+
| File | Description |
|
|
279
|
+
|---|---|
|
|
280
|
+
| `SKILL.md` | Skill manifest (skill_version: 1.0.0) |
|
|
281
|
+
| `resources/matrix-model-guide.md` | Leslie vs Lefkovitch, R code for λ/sensitivity/elasticity, uncertainty |
|
|
282
|
+
| `resources/extinction-risk-thresholds.md` | IUCN Criterion E table, 50/500 rule, CV thresholds, stochastic guidance |
|
|
283
|
+
| `resources/sensitivity-elasticity-reference.md` | LTRE, prospective vs retrospective, stochastic elasticity, taxon patterns |
|
|
284
|
+
| `scripts/matrix_pva.R` | Deterministic λ, elasticity heatmap, CV check, projection plot |
|
|
285
|
+
| `scripts/stochastic_pva.R` | Monte Carlo PVA, Beta/Lognormal draws, IUCN Criterion E, MTE |
|
|
286
|
+
| `scripts/pva_analysis.py` | Python λ/sensitivity/elasticity + stochastic PVA, IUCN classification |
|
|
287
|
+
| `examples/example-prompts.md` | 5 prompt scenarios |
|
|
288
|
+
| `examples/african_elephant_pva_example.md` | Full walkthrough: Lefkovitch model, elasticity, drought scenario, poaching threshold |
|
|
289
|
+
|
|
290
|
+
### skills/spatial-prioritization/
|
|
291
|
+
| File | Description |
|
|
292
|
+
|---|---|
|
|
293
|
+
| `SKILL.md` | Skill manifest (skill_version: 1.0.0) |
|
|
294
|
+
| `resources/prioritizr-formulation-guide.md` | Problem types, BLM calibration, HiGHS solver, irreplaceability, pitfalls |
|
|
295
|
+
| `resources/marxan-vs-prioritizr-comparison.md` | Tool comparison table, when to use each, irreplaceability comparison |
|
|
296
|
+
| `resources/cost-surface-reference.md` | Opportunity cost construction, normalisation, locked-in/out, pitfalls |
|
|
297
|
+
| `resources/representation-targets-guide.md` | 30×30, IUCN-based, log-linear targets, weights, shortfall curves |
|
|
298
|
+
| `scripts/run_prioritization.R` | Min-set or max-coverage ILP, BLM, locked constraints, irreplaceability output |
|
|
299
|
+
| `scripts/prioritization_sensitivity.R` | BLM calibration, target sensitivity, cost scenarios, portfolio frequency |
|
|
300
|
+
| `examples/example-prompts.md` | 5 prompt scenarios |
|
|
301
|
+
| `examples/biodiversity_hotspot_prioritization_example.md` | Full walkthrough: Atlantic Forest 85 species, 30% targets, sensitivity |
|
|
302
|
+
|
|
303
|
+
### workflows/
|
|
304
|
+
| File | Description |
|
|
305
|
+
|---|---|
|
|
306
|
+
| `run-multispecies-screening/WORKFLOW.md` | 9th workflow — rapid multi-species SDM screening with priority classification |
|
|
307
|
+
| All 8 existing WORKFLOWs | Added `## Decision Points` section with condition → diagnosis → action tables |
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## Documentation (v2.3.0)
|
|
312
|
+
|
|
313
|
+
| File | Description |
|
|
314
|
+
|---|---|
|
|
315
|
+
| `docs/theoretical-foundations.md` | Citable justifications for 10 methodological decisions: spatial CV, ensemble, partial ROC, M delimitation, Bray-Curtis, MESH, IIC/PC, OR10, RM calibration, BACI random effects |
|
|
316
|
+
| `docs/global-examples-index.md` | Inventory of all 14 worked examples with coverage analysis (6 continents, 9 biomes, 7 taxonomic groups, 11 analysis types) |
|
|
317
|
+
| `docs/comparison-with-alternatives.md` | Objective comparison vs. Wallace, SDMtoolbox, biomod2, kuenm, ENMTML, Zonation, Vortex |
|
|
318
|
+
|
|
319
|
+
## New Examples (v2.3.0)
|
|
320
|
+
|
|
321
|
+
| File | Species / System | Region | Analysis |
|
|
322
|
+
|---|---|---|---|
|
|
323
|
+
| `examples/sdm/wolf_recolonization_europe_example.md` | *Canis lupus* | Western Europe | SDM + recolonization + conflict |
|
|
324
|
+
| `examples/sdm/koala_climate_change_example.md` | *Phascolarctos cinereus* | Eastern Australia | SDM + future SSP + MOP |
|
|
325
|
+
| `examples/community/reef_fish_indopacific_example.md` | Reef fish (987 spp.) | Indo-Pacific | Beta diversity + PERMANOVA |
|
|
326
|
+
| `examples/community/arctic_tundra_vegetation_example.md` | Tundra vegetation | Greenland / Canada | NDVI time series + community shift |
|
|
327
|
+
| `examples/occupancy/snow_leopard_himalayas_example.md` | *Panthera uncia* | Central Himalayas | Occupancy + camera trap |
|
|
328
|
+
| `examples/impact/forest_loss_borneo_timeseries_example.md` | Tropical forest | Borneo | BFAST + MESH + BACI |
|
|
329
|
+
| `examples/reproducible/whittaker_biome_sdm_example.md` | *Vulpes vulpes* | Holarctic | Fully reproducible SDM pipeline |
|