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.
Files changed (217) hide show
  1. package/AGENT_CONTEXT.md +191 -0
  2. package/CATALOG.md +329 -0
  3. package/LICENSE +692 -0
  4. package/README.md +347 -0
  5. package/bin/install.mjs +168 -0
  6. package/docs/comparison-with-alternatives.md +38 -0
  7. package/docs/global-examples-index.md +103 -0
  8. package/docs/repository-statistics.md +101 -0
  9. package/docs/theoretical-foundations.md +188 -0
  10. package/environment.yaml +106 -0
  11. package/examples/community/arctic_tundra_vegetation_example.md +247 -0
  12. package/examples/community/bird_landuse_example.md +63 -0
  13. package/examples/community/phytoplankton_reservoir_example.md +60 -0
  14. package/examples/community/reef_fish_indopacific_example.md +221 -0
  15. package/examples/impact/baci_road_example.md +57 -0
  16. package/examples/impact/ecosystem_services_atlantic_forest.md +83 -0
  17. package/examples/impact/forest_loss_borneo_timeseries_example.md +225 -0
  18. package/examples/occupancy/puma_camera_example.md +61 -0
  19. package/examples/occupancy/snow_leopard_himalayas_example.md +204 -0
  20. package/examples/reproducible/whittaker_biome_sdm_example.md +406 -0
  21. package/examples/sdm/anteater_cerrado_example.md +69 -0
  22. package/examples/sdm/jaguar_amazon_example.md +80 -0
  23. package/examples/sdm/koala_climate_change_example.md +170 -0
  24. package/examples/sdm/wolf_recolonization_europe_example.md +193 -0
  25. package/package.json +43 -0
  26. package/renv.lock +194 -0
  27. package/skills/SKILL_INDEX.json +1020 -0
  28. package/skills/acoustic-monitoring/SKILL.md +163 -0
  29. package/skills/acoustic-monitoring/examples/example-prompts.md +100 -0
  30. package/skills/acoustic-monitoring/examples/temperate_forest_birds_example.md +285 -0
  31. package/skills/acoustic-monitoring/resources/acoustic-indices-reference.md +93 -0
  32. package/skills/acoustic-monitoring/resources/soundscape-ecology-guide.md +90 -0
  33. package/skills/acoustic-monitoring/resources/species-id-tools-comparison.md +89 -0
  34. package/skills/acoustic-monitoring/scripts/batch_species_detection.py +360 -0
  35. package/skills/acoustic-monitoring/scripts/compute_acoustic_indices.R +235 -0
  36. package/skills/acoustic-monitoring/scripts/compute_acoustic_indices.py +374 -0
  37. package/skills/biostatistics-workbench/SKILL.md +140 -0
  38. package/skills/biostatistics-workbench/examples/example-prompts.md +39 -0
  39. package/skills/biostatistics-workbench/resources/effect-size-reference.md +81 -0
  40. package/skills/biostatistics-workbench/resources/glm-family-link-reference.md +47 -0
  41. package/skills/biostatistics-workbench/resources/test-selection-guide.md +93 -0
  42. package/skills/biostatistics-workbench/scripts/glm_pipeline.R +78 -0
  43. package/skills/biostatistics-workbench/scripts/glm_pipeline.py +210 -0
  44. package/skills/camera-trap-processing/SKILL.md +159 -0
  45. package/skills/camera-trap-processing/examples/example-prompts.md +103 -0
  46. package/skills/camera-trap-processing/examples/leopard_serengeti_example.md +231 -0
  47. package/skills/camera-trap-processing/resources/activity-patterns-reference.md +113 -0
  48. package/skills/camera-trap-processing/resources/camtrapR-workflow-guide.md +130 -0
  49. package/skills/camera-trap-processing/resources/detection-event-definition-guide.md +89 -0
  50. package/skills/camera-trap-processing/scripts/estimate_activity.R +169 -0
  51. package/skills/camera-trap-processing/scripts/process_camtrap_data.R +179 -0
  52. package/skills/camera-trap-processing/scripts/process_camtrap_data.py +192 -0
  53. package/skills/community-ecology-ordination/SKILL.md +133 -0
  54. package/skills/community-ecology-ordination/examples/example-prompts.md +35 -0
  55. package/skills/community-ecology-ordination/resources/dissimilarity-metric-guide.md +53 -0
  56. package/skills/community-ecology-ordination/resources/nmds-interpretation-guide.md +104 -0
  57. package/skills/community-ecology-ordination/scripts/__pycache__/community_analysis.cpython-311.pyc +0 -0
  58. package/skills/community-ecology-ordination/scripts/community_analysis.R +143 -0
  59. package/skills/community-ecology-ordination/scripts/community_analysis.py +231 -0
  60. package/skills/ecological-data-foundation/SKILL.md +129 -0
  61. package/skills/ecological-data-foundation/examples/example-prompts.md +40 -0
  62. package/skills/ecological-data-foundation/resources/coordinate-cleaning-flags.md +66 -0
  63. package/skills/ecological-data-foundation/resources/darwin-core-glossary.md +91 -0
  64. package/skills/ecological-data-foundation/resources/data-citation-guide.md +265 -0
  65. package/skills/ecological-data-foundation/resources/gbif-data-citation-guide.md +193 -0
  66. package/skills/ecological-data-foundation/resources/qa-checklist.md +83 -0
  67. package/skills/ecological-data-foundation/scripts/__pycache__/clean_occurrences.cpython-311.pyc +0 -0
  68. package/skills/ecological-data-foundation/scripts/__pycache__/download_from_ebird.cpython-311.pyc +0 -0
  69. package/skills/ecological-data-foundation/scripts/__pycache__/download_from_inat.cpython-311.pyc +0 -0
  70. package/skills/ecological-data-foundation/scripts/__pycache__/download_from_iucn.cpython-311.pyc +0 -0
  71. package/skills/ecological-data-foundation/scripts/__pycache__/download_from_obis.cpython-311.pyc +0 -0
  72. package/skills/ecological-data-foundation/scripts/clean_occurrences.R +230 -0
  73. package/skills/ecological-data-foundation/scripts/clean_occurrences.py +268 -0
  74. package/skills/ecological-data-foundation/scripts/download_from_ebird.R +251 -0
  75. package/skills/ecological-data-foundation/scripts/download_from_ebird.py +364 -0
  76. package/skills/ecological-data-foundation/scripts/download_from_gbif.R +315 -0
  77. package/skills/ecological-data-foundation/scripts/download_from_gbif.py +407 -0
  78. package/skills/ecological-data-foundation/scripts/download_from_inat.R +238 -0
  79. package/skills/ecological-data-foundation/scripts/download_from_inat.py +304 -0
  80. package/skills/ecological-data-foundation/scripts/download_from_iucn.R +273 -0
  81. package/skills/ecological-data-foundation/scripts/download_from_iucn.py +344 -0
  82. package/skills/ecological-data-foundation/scripts/download_from_obis.R +248 -0
  83. package/skills/ecological-data-foundation/scripts/download_from_obis.py +318 -0
  84. package/skills/ecological-impact-assessment/SKILL.md +123 -0
  85. package/skills/ecological-impact-assessment/examples/example-prompts.md +32 -0
  86. package/skills/ecological-impact-assessment/resources/baci-design-guide.md +55 -0
  87. package/skills/ecological-impact-assessment/resources/fragmentation-metrics-reference.md +86 -0
  88. package/skills/ecological-impact-assessment/resources/pressure-index-template.md +78 -0
  89. package/skills/ecological-impact-assessment/resources/study-design-guide.md +168 -0
  90. package/skills/ecological-impact-assessment/scripts/baci_analysis.R +161 -0
  91. package/skills/ecological-impact-assessment/scripts/fragmentation_analysis.py +141 -0
  92. package/skills/ecological-impact-assessment/scripts/power_analysis_baci.R +274 -0
  93. package/skills/ecosystem-services-assessment/SKILL.md +125 -0
  94. package/skills/ecosystem-services-assessment/examples/example-prompts.md +24 -0
  95. package/skills/ecosystem-services-assessment/resources/es-indicator-reference.md +45 -0
  96. package/skills/ecosystem-services-assessment/resources/invest-parameter-guide.md +86 -0
  97. package/skills/ecosystem-services-assessment/resources/rusle-coefficients.md +88 -0
  98. package/skills/ecosystem-services-assessment/scripts/__pycache__/compute_es.cpython-311.pyc +0 -0
  99. package/skills/ecosystem-services-assessment/scripts/compute_es.py +189 -0
  100. package/skills/ecosystem-services-assessment/scripts/tradeoff_analysis.R +161 -0
  101. package/skills/environmental-time-series/SKILL.md +125 -0
  102. package/skills/environmental-time-series/examples/example-prompts.md +33 -0
  103. package/skills/environmental-time-series/resources/anomaly-indices-reference.md +88 -0
  104. package/skills/environmental-time-series/resources/bfast-parameter-guide.md +69 -0
  105. package/skills/environmental-time-series/scripts/__pycache__/recovery_trajectory.cpython-311.pyc +0 -0
  106. package/skills/environmental-time-series/scripts/__pycache__/trend_analysis.cpython-311.pyc +0 -0
  107. package/skills/environmental-time-series/scripts/recovery_trajectory.R +305 -0
  108. package/skills/environmental-time-series/scripts/recovery_trajectory.py +178 -0
  109. package/skills/environmental-time-series/scripts/trend_analysis.R +192 -0
  110. package/skills/environmental-time-series/scripts/trend_analysis.py +184 -0
  111. package/skills/geoprocessing-for-ecology/SKILL.md +123 -0
  112. package/skills/geoprocessing-for-ecology/examples/example-prompts.md +32 -0
  113. package/skills/geoprocessing-for-ecology/resources/crs-reference.md +62 -0
  114. package/skills/geoprocessing-for-ecology/resources/global-predictor-sources.md +331 -0
  115. package/skills/geoprocessing-for-ecology/resources/resampling-methods.md +57 -0
  116. package/skills/geoprocessing-for-ecology/scripts/__pycache__/download_predictors.cpython-311.pyc +0 -0
  117. package/skills/geoprocessing-for-ecology/scripts/download_predictors.R +239 -0
  118. package/skills/geoprocessing-for-ecology/scripts/download_predictors.py +379 -0
  119. package/skills/geoprocessing-for-ecology/scripts/stack_and_extract.R +224 -0
  120. package/skills/geoprocessing-for-ecology/scripts/stack_and_extract.py +172 -0
  121. package/skills/landscape-connectivity/SKILL.md +170 -0
  122. package/skills/landscape-connectivity/examples/example-prompts.md +96 -0
  123. package/skills/landscape-connectivity/examples/jaguar_mesoamerica_corridor_example.md +271 -0
  124. package/skills/landscape-connectivity/resources/circuitscape-parameter-guide.md +155 -0
  125. package/skills/landscape-connectivity/resources/graph-theory-for-ecology.md +134 -0
  126. package/skills/landscape-connectivity/resources/resistance-surface-guide.md +141 -0
  127. package/skills/landscape-connectivity/scripts/connectivity_analysis.py +387 -0
  128. package/skills/landscape-connectivity/scripts/connectivity_metrics.R +274 -0
  129. package/skills/landscape-connectivity/scripts/resistance_surface.R +239 -0
  130. package/skills/model-validation-and-uncertainty/SKILL.md +131 -0
  131. package/skills/model-validation-and-uncertainty/examples/example-prompts.md +30 -0
  132. package/skills/model-validation-and-uncertainty/resources/extrapolation-risk-guide.md +236 -0
  133. package/skills/model-validation-and-uncertainty/resources/metric-selection-guide.md +52 -0
  134. package/skills/model-validation-and-uncertainty/resources/threshold-selection-guide.md +64 -0
  135. package/skills/model-validation-and-uncertainty/scripts/__pycache__/validate_model.cpython-311.pyc +0 -0
  136. package/skills/model-validation-and-uncertainty/scripts/extrapolation_risk.R +315 -0
  137. package/skills/model-validation-and-uncertainty/scripts/validate_model.py +226 -0
  138. package/skills/model-validation-and-uncertainty/scripts/validate_sdm.R +162 -0
  139. package/skills/occupancy-and-detection/SKILL.md +126 -0
  140. package/skills/occupancy-and-detection/examples/example-prompts.md +33 -0
  141. package/skills/occupancy-and-detection/resources/detection-history-format.md +100 -0
  142. package/skills/occupancy-and-detection/resources/occupancy-study-design.md +47 -0
  143. package/skills/occupancy-and-detection/scripts/__pycache__/occupancy_analysis.cpython-311.pyc +0 -0
  144. package/skills/occupancy-and-detection/scripts/occupancy_analysis.R +160 -0
  145. package/skills/occupancy-and-detection/scripts/occupancy_analysis.py +159 -0
  146. package/skills/population-viability-analysis/SKILL.md +161 -0
  147. package/skills/population-viability-analysis/examples/african_elephant_pva_example.md +266 -0
  148. package/skills/population-viability-analysis/examples/example-prompts.md +95 -0
  149. package/skills/population-viability-analysis/resources/extinction-risk-thresholds.md +128 -0
  150. package/skills/population-viability-analysis/resources/matrix-model-guide.md +139 -0
  151. package/skills/population-viability-analysis/resources/sensitivity-elasticity-reference.md +182 -0
  152. package/skills/population-viability-analysis/scripts/matrix_pva.R +258 -0
  153. package/skills/population-viability-analysis/scripts/pva_analysis.py +442 -0
  154. package/skills/population-viability-analysis/scripts/stochastic_pva.R +353 -0
  155. package/skills/predictive-modeling-best-practices/SKILL.md +136 -0
  156. package/skills/predictive-modeling-best-practices/examples/example-prompts.md +58 -0
  157. package/skills/predictive-modeling-best-practices/resources/collinearity-decision-tree.md +65 -0
  158. package/skills/predictive-modeling-best-practices/resources/sampling-bias-correction.md +267 -0
  159. package/skills/predictive-modeling-best-practices/resources/spatial-cv-guide.md +73 -0
  160. package/skills/predictive-modeling-best-practices/scripts/__pycache__/spatial_cv.cpython-311.pyc +0 -0
  161. package/skills/predictive-modeling-best-practices/scripts/collinearity_check.R +112 -0
  162. package/skills/predictive-modeling-best-practices/scripts/spatial_cv.py +182 -0
  163. package/skills/reproducible-ecology-pipeline/SKILL.md +139 -0
  164. package/skills/reproducible-ecology-pipeline/examples/example-prompts.md +35 -0
  165. package/skills/reproducible-ecology-pipeline/resources/directory-structure-template.md +94 -0
  166. package/skills/reproducible-ecology-pipeline/resources/params-yaml-template.yaml +84 -0
  167. package/skills/reproducible-ecology-pipeline/resources/reproducibility-checklist-template.md +66 -0
  168. package/skills/reproducible-ecology-pipeline/scripts/generate_file_manifest.py +110 -0
  169. package/skills/reproducible-ecology-pipeline/scripts/init_project.sh +53 -0
  170. package/skills/spatial-prioritization/SKILL.md +162 -0
  171. package/skills/spatial-prioritization/examples/biodiversity_hotspot_prioritization_example.md +289 -0
  172. package/skills/spatial-prioritization/examples/example-prompts.md +93 -0
  173. package/skills/spatial-prioritization/resources/cost-surface-reference.md +130 -0
  174. package/skills/spatial-prioritization/resources/marxan-vs-prioritizr-comparison.md +125 -0
  175. package/skills/spatial-prioritization/resources/prioritizr-formulation-guide.md +188 -0
  176. package/skills/spatial-prioritization/resources/representation-targets-guide.md +186 -0
  177. package/skills/spatial-prioritization/scripts/prioritization_sensitivity.R +320 -0
  178. package/skills/spatial-prioritization/scripts/run_prioritization.R +336 -0
  179. package/skills/species-distribution-modeling/SKILL.md +139 -0
  180. package/skills/species-distribution-modeling/examples/example-prompts.md +36 -0
  181. package/skills/species-distribution-modeling/resources/algorithm-comparison.md +25 -0
  182. package/skills/species-distribution-modeling/resources/calibration-area-guide.md +71 -0
  183. package/skills/species-distribution-modeling/resources/climate-scenario-preparation.md +170 -0
  184. package/skills/species-distribution-modeling/resources/maxent-calibration-guide.md +211 -0
  185. package/skills/species-distribution-modeling/resources/sdm-checklist.md +37 -0
  186. package/skills/species-distribution-modeling/scripts/predict_distribution.R +236 -0
  187. package/skills/species-distribution-modeling/scripts/predict_distribution.py +286 -0
  188. package/skills/species-distribution-modeling/scripts/prepare_future_layers.R +351 -0
  189. package/skills/species-distribution-modeling/scripts/project_scenarios.R +220 -0
  190. package/skills/species-distribution-modeling/scripts/run_ensemble_sdm.R +99 -0
  191. package/skills/species-distribution-modeling/scripts/sdm_pipeline.py +318 -0
  192. package/skills/species-distribution-modeling/scripts/tune_maxnet.R +344 -0
  193. package/templates/SKILL_TEMPLATE.md +225 -0
  194. package/templates/checklists/data-submission-checklist.md +38 -0
  195. package/templates/checklists/post-analysis-checklist.md +55 -0
  196. package/templates/checklists/pre-analysis-checklist.md +31 -0
  197. package/templates/prompts/debug-skill.md +47 -0
  198. package/templates/prompts/invoke-skill.md +34 -0
  199. package/templates/prompts/invoke-workflow.md +45 -0
  200. package/templates/reports/technical-report-template.md +80 -0
  201. package/templates/scripts/logger_setup.R +79 -0
  202. package/templates/scripts/logger_setup.py +119 -0
  203. package/templates/scripts/params_loader.R +28 -0
  204. package/templates/scripts/params_loader.py +38 -0
  205. package/workflows/analyze-community-structure/WORKFLOW.md +72 -0
  206. package/workflows/analyze-environmental-change/WORKFLOW.md +73 -0
  207. package/workflows/assess-ecological-impact/WORKFLOW.md +75 -0
  208. package/workflows/assess-ecosystem-services/WORKFLOW.md +68 -0
  209. package/workflows/assess-landscape-connectivity/WORKFLOW.md +84 -0
  210. package/workflows/build-fire-risk-map/WORKFLOW.md +79 -0
  211. package/workflows/produce-technical-report/WORKFLOW.md +113 -0
  212. package/workflows/run-camera-trap-occupancy/WORKFLOW.md +87 -0
  213. package/workflows/run-conservation-prioritization/WORKFLOW.md +89 -0
  214. package/workflows/run-multispecies-screening/WORKFLOW.md +197 -0
  215. package/workflows/run-occupancy-analysis/WORKFLOW.md +74 -0
  216. package/workflows/run-population-viability/WORKFLOW.md +90 -0
  217. package/workflows/run-sdm-study/WORKFLOW.md +99 -0
@@ -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 |