{"id":16767,"plugin_id":"plugins_6a68c8b958b88191b2bfeae31847c8da","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:13:46.270Z","digest":"7836eb9e2d10d92da895935cf7eeaa28d73a9fafb0493571a5e14f05fa2736c9","against":null,"payload":{"description":"Automate controlled local ArcGIS Pro and ArcPy workflows through arcgis-mcp-bridge: inspect .aprx projects and file geodatabases, run geoprocessing, projection, raster, network, spatial-statistics, editing, symbology, and layout export with path and mutation guards. Use when the user explicitly names ArcGIS Pro, ArcPy, .aprx, .gdb, Esri geoprocessing, muend/arcgis-mcp-bridge, its health_check, PathGuard, or confirmation gates, or sketch-to-GIS extraction. Do not trigger for ArcGIS Online or Enterprise administration, QGIS or PyQGIS, generic open-source GIS, or live GUI control of an already-open ArcGIS Pro session.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":217},{"relative_path":"references/authoritative-sources.md","size_in_bytes":1612},{"relative_path":"references/runtime-and-licensing.md","size_in_bytes":4000},{"relative_path":"references/safety-and-validation.md","size_in_bytes":4955},{"relative_path":"references/tool-routing.md","size_in_bytes":5644}],"name":"arcgis-pro-automation","skill_md_contents":"---\nname: arcgis-pro-automation\ndescription: >-\n  Automate controlled local ArcGIS Pro and ArcPy workflows through\n  arcgis-mcp-bridge: inspect .aprx projects and file geodatabases, run\n  geoprocessing, projection, raster, network, spatial-statistics, editing,\n  symbology, and layout export with path and mutation guards. Use when the\n  user explicitly names ArcGIS Pro, ArcPy, .aprx, .gdb, Esri geoprocessing,\n  muend/arcgis-mcp-bridge, its health_check, PathGuard, or confirmation\n  gates, or sketch-to-GIS extraction. Do not trigger for ArcGIS Online or\n  Enterprise administration, QGIS or PyQGIS, generic open-source GIS, or\n  live GUI control of an already-open ArcGIS Pro session.\nlicense: MIT\nmetadata:\n  author: Muhammed Enes Duran\n---\n\n# ArcGIS Pro Automation\n\nOperate saved ArcGIS Pro projects and local GIS datasets through the guarded\n`arcgis-mcp-bridge` tool surface. Treat the bridge as an execution backend,\nnot as permission to mutate data or claim a result that was never observed.\n\n## Establish the boundary\n\n- Require Windows, a licensed ArcGIS Pro installation, and a bridge worker\n  interpreter that can import ArcPy for real geoprocessing.\n- Use the bridge for local, headless, repeatable ArcPy work. It does not drive\n  the visible ArcGIS Pro UI and does not administer ArcGIS Online or Enterprise.\n- If the bridge tools are not callable, provide setup or a dry execution plan.\n  Never simulate tool output or imply that an `.aprx` or `.gdb` changed.\n- Use the schemas exposed by the connected MCP server. Tool names may be host-\n  namespaced; match the semantic catalog name and never invent parameters.\n- Keep every read and write inside the configured allowed roots. Use absolute\n  paths and a dedicated scratch geodatabase for intermediate outputs.\n\nRead [runtime and licensing](references/runtime-and-licensing.md) before the\nfirst execution or whenever setup, extension availability, or worker failures\nare in scope.\n\n## Execute the workflow\n\n1. **Define the contract.** Identify inputs, intended output artifacts, CRS and\n   units, whether a saved `.aprx` must change, and which operations create,\n   overwrite, append, or edit data.\n2. **Preflight.** Call `health_check` first. Inspect its worker interpreter,\n   allowed roots, scratch GDB, timeout, and concurrency. Because this call does\n   not import ArcPy, follow it with a non-mutating ArcPy-backed request such as\n   `get_spatial_reference`, `describe_dataset`, or `list_layers` before treating\n   the runtime as execution-ready.\n3. **Inspect before acting.** Read dataset descriptions, counts, fields, CRS,\n   extents, project maps/layers, and required extension licenses. Resolve datum\n   transformations, units, and output naming before analysis.\n4. **Plan exact tools.** Select the smallest declarative sequence from\n   [tool routing](references/tool-routing.md). Separate read-only inspection,\n   new-output creation, and in-place mutation. Prefer new outputs and working\n   copies over edits to source data.\n5. **Authorize mutations.** Read [safety and validation](references/safety-and-validation.md)\n   before any write. Set `confirm=true` only when the user's request clearly\n   authorizes the exact mutating operation and target. Treat `overwrite=true`\n   as a separate explicit decision. Stop on ambiguous target, scope, or intent.\n6. **Execute incrementally.** Run one dependent step at a time; preserve returned\n   output paths and geoprocessing messages. Parallelize only independent jobs\n   when license seats, memory, and `max_workers` are known to support them.\n7. **Verify independently.** Re-open outputs and test the relevant invariants:\n   existence, count, geometry validity, CRS and units, raster statistics and\n   NoData, network solve status, project contents, or exported layout dimensions.\n   A success status alone is not evidence of a correct GIS result.\n\n## Route domain method and execution separately\n\nUse this skill for the ArcGIS execution layer. Pair it with the relevant domain\nskill when method choice or scientific validity is substantive:\n\n- DEM, slope, drainage, or viewsheds → `terrain-hydrology`\n- routing, service areas, OD, or facilities → `network-accessibility-analysis`\n- Moran's I, Gi*, kernel density, or spatial inference → `spatial-statistics`\n- raster/imagery preprocessing and interpretation → `remote-sensing-analysis`\n- map design before `.aprx` styling or layout export → `cartography-geoviz`\n- multi-stage cross-domain delivery → `geoai-orchestrator`\n\nDo not activate ArcGIS automation merely because an open format can be read by\nArcGIS. A GeoPackage, GeoJSON, raster, or `.gdb` request that explicitly chooses\nGDAL, GeoPandas, QGIS, PostGIS, or another runtime belongs to that specialist.\n\n## Handle failures without bypasses\n\n- `validation`: correct the payload against the live schema; do not relax types.\n- `security`: move or copy only with user authorization; never broaden allowed\n  roots merely to make a call pass.\n- `license`: report the unavailable base or extension license. Use an alternative\n  only when it is methodologically equivalent and disclose the change.\n- `geoprocessing`: preserve ArcPy messages, inspect inputs/environment, and retry\n  only after a concrete correction. Never retry an in-place mutation blindly.\n- `internal` or worker crash: preserve the error boundary and stop claiming state.\n\n## Deliver evidence\n\nReport the tool sequence, inspected inputs, exact output paths, mutations and\nauthorization basis, relevant ArcPy messages, verification results, license and\nruntime constraints, and unresolved limitations. For current tool or platform\nclaims, consult [the authoritative source registry](references/authoritative-sources.md)\nand record the checked date.\n\n## Execution contract\n\n- **Workflow:** establish the local ArcGIS boundary; preflight server and ArcPy separately; inspect data and project state; plan exact tools; authorize writes; execute incrementally; reopen and verify outputs.\n- **Decision rules:** use the bridge only for explicit local ArcGIS Pro or ArcPy work, pair it with domain-method skills when needed, prefer new outputs, and reserve confirmation and overwrite flags for clearly authorized targets.\n- **Verification protocol:** reconcile counts, geometry, CRS and units, raster or network diagnostics, `.aprx` contents, exported artifacts, returned paths, and geoprocessing messages against the stated success criteria.\n- **Failure modes:** stop for absent bridge tools, failed ArcPy preflight, unknown CRS or datum transform, paths outside allowed roots, missing licenses, ambiguous mutation scope, worker crashes, or unverified output state.\n- **Deliverables:** reproducible tool plan and calls, exact inputs and outputs, mutation record, ArcPy messages, validation evidence, runtime and license provenance, and limitations.\n- **Source freshness:** consult [the authoritative source registry](references/authoritative-sources.md) before applying bridge, ArcPy, licensing, or platform rules and record the checked date.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}