carto-arcgis-migration
carto-arcgis-migration
A single skill that takes an ArcGIS Portal / AGOL endpoint and lands its content in CARTO. Three phases, run in order, sharing one source of truth — MIGRATION_MANIFEST.md in the working directory:
- Discover — enumerate items, classify, write the manifest. See
references/discover.md. - Migrate data — Hosted Feature Layers + Hosted Tables → CARTO tables (Datasets section of the manifest). See
references/migrate-data.md. - Migrate maps — Web Maps + simple Dashboard / Web Experience / Web Mapping Application entries → CARTO Builder maps (Web Maps + Apps sections of the manifest). See
references/migrate-maps.md.
The manifest accumulates state — every phase updates entries from pending → in-progress → done / skipped / failed. Re-runs are idempotent: done entries are skipped; failed entries are retried.
Access path — CLI-native. Migration is a bulk, scripted, disk-state workflow (manifest files on disk, Python extraction, batch
cartoruns). Run it where a real shell exists (Claude Code, Codex, Antigravity, etc.); it does not run on MCP-only chat hosts (Claude.ai, ChatGPT), which have no filesystem or Python. The CARTO-side read checks it makes — table-exists probes, column/geometry introspection, imports — do have MCP equivalents (execute_query,explore_datadescribe,import_data), but the overall batch loop, the manifest ledger, and ArcGIS extraction are CLI-only, so the skill drives thecartoCLI throughout. Seecarto-basics/references/access-paths.mdfor the routing model.
Prerequisites
- The
carto-skillsplugin (this catalog). The migration phases delegate CARTO-side mechanics — imports, queries, map authoring — tocarto-import-export-data,carto-query-datawarehouse,carto-explore-datawarehouse, andcarto-create-builder-maps. - Authenticated
cartoCLI (carto auth login) with at least one connection incarto connections list --json. - Access to an ArcGIS Portal / AGOL endpoint, plus credentials (or anonymous for fully public AGOL).
- Python with
geopandas+pyarrowfor GeoParquet extraction in the data phase.sqlglotis required by the maps phase for Arcade-to-SQL validation.