carto-arcgis-migration について
carto-arcgis-migrationは、ArcGIS PortalまたはAGOLのコンテンツをCARTOへ移すコマンドライン中心のスキルです。マニフェストで探索・データ・マップの各段階と項目の状態を管理し、中断後に再開できます。
主な機能
- 01ポータル項目の発見と分類
- 02ホストレイヤーとテーブルの移行
- 03Webマップと簡易アプリの移行
- 04マニフェストによる段階管理
- 05完了項目を除外し失敗項目を再試行
活用シーン
- 01移行前にArcGIS Portalを調査
- 02ホストデータをCARTOのテーブルへ移行
- 03マップと対応する簡易アプリを移行
- 04項目の失敗後にバッチ処理を再開
MCP 対応
移行全体はコマンドライン中心で、MCPのみのチャット環境では実行できません。CARTO側の一部の確認やインポートにはMCPの代替手段がありますが、ArcGISからの抽出とマニフェストを使う一括処理にはCLIを使用します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cartodb/ agent-skills --skill carto-arcgis-migrationインストール後、Claude Code で/carto-arcgis-migrationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/discover.mdmigrate-data.mdmigrate-maps.mdreferences/discover/app-routing-rubric.mdextraction-tools.mditem-types.mdmanifest-format.mdreferences/migrate-data/extraction-recipes.mdimport-flow.mdlessons.mdmanifest-update-protocol.mdreferences/migrate-maps/app-absorption.mdarcade-translation.mdbasemap-mapping.mdcim-symbols.mddataset-config.mdlessons.mdmapconfig-defaults.mdmarker-upload.mdpopup-mapping.mdrenderer-mapping.md詳細
carto-arcgis-migration
ArcGIS Portal/AGOL のエンドポイントを受け取り、そのコンテンツを CARTO に移行する単一のスキルです。3 つのフェーズを順番に実行し、作業ディレクトリにある唯一の信頼できる情報源 MIGRATION_MANIFEST.md を共有します。
- 検出 — アイテムを列挙して分類し、マニフェストに記録します。詳細は
references/discover.mdを参照してください。 - データの移行 — Hosted Feature Layer と Hosted Table を CARTO のテーブルに移行します(マニフェストの Datasets セクション)。詳細は
references/migrate-data.mdを参照してください。 - マップの移行 — Web Map と、シンプルな Dashboard/Web Experience/Web Mapping Application のエントリを CARTO Builder のマップに移行します(マニフェストの Web Maps + Apps セクション)。詳細は
references/migrate-maps.mdを参照してください。
マニフェストには状態が蓄積され、各フェーズでエントリが pending → in-progress → done/skipped/failed と更新されます。再実行は冪等です。done のエントリはスキップされ、failed のエントリは再試行されます。
アクセス方法 — CLI ネイティブ。 この移行は、ファイル上のマニフェスト、Python による抽出、
cartoの一括実行を伴う、バッチ処理とディスク上の状態管理を中心としたワークフローです。実際のシェルが利用できる環境(Claude Code、Codex、Antigravity など)で実行してください。ファイルシステムや Python がない MCP のみのチャットホスト(Claude.ai、ChatGPT)では実行できません。CARTO 側で行う読み取りチェック(テーブルの存在確認、列/ジオメトリの調査、インポート)には MCP による代替手段(execute_query、explore_dataの describe、import_data)がありますが、全体のバッチループ、マニフェストの台帳、ArcGIS からの抽出は CLI 専用のため、このスキルでは一貫してcartoCLI を使用します。ルーティングモデルについてはcarto-basics/references/access-paths.mdを参照してください。
前提条件
carto-skillsプラグイン(このカタログ)。移行フェーズでは、インポート、クエリ、マップ作成など、CARTO 側の処理をcarto-import-export-data、carto-query-datawarehouse、carto-explore-datawarehouse、carto-create-builder-mapsに委任します。- 認証済みの
cartoCLI(carto auth login)と、carto connections list --jsonに表示される接続が少なくとも 1 つあること。 - ArcGIS Portal/AGOL のエンドポイントへのアクセスと認証情報(または、完全に公開された AGOL にアクセスする場合は匿名アクセス)。
- データフェーズで GeoParquet を抽出するための
geopandas+pyarrowを備えた Python。マップフェーズで Arcade から SQL への変換を検証するにはsqlglotが必要です。
ユーザーのリクエストに応じたルーティング
ユーザーの依頼内容に基づいてフェーズを選択します。
| ユーザーのリクエスト | フェーズ |
|---|---|
| 「ArcGIS Portal を移行して」「Portal の内容を教えて」、またはアイテムを指定せず Portal/AGOL の URL を提示 | 検出(references/discover.md) |
| 「データセットを移行して」「すべてのデータを移行して」、または Hosted Feature Layer/Hosted Table を指定 | データの移行(references/migrate-data.md) |
| 「マップを移行して」「シンプルなアプリを移行して」、または Web Map/シンプルなアプリのタイトルを指定 | マップの移行(references/migrate-maps.md) |
| 「移行をすべて実行して」 | 3 つのフェーズを順番に実行し、各フェーズの後にユーザーの確認を待ちます |
ユーザーが単一のアイテムを指定した場合は、該当フェーズの対象をそのエントリに絞ります。
実行順序が重要です
- migrate- フェーズの前に検出を実行します。* マニフェストが唯一の信頼できる情報源であり、データフェーズとマップフェーズは、マニフェストがないと開始できません。
- マップの移行より先にデータを移行します。 Web Map とシンプルなアプリは、Datasets エントリで解決された
Target FQNに依存します。Web Map のレイヤーが未移行のデータセットを参照している場合、その Web Map はfailed(Failure: depends-on-unmigrated-data)としてマークされます。マップフェーズは migrate-data を自動実行しません。これは、ユーザーが未解決の差分を明確に把握できるようにするためです。
常時適用されるルール(スキル全体)
- すべての
carto呼び出しで--jsonを渡し、すべての ArcGIS REST 呼び出しで&f=jsonを渡してください。 - 検出中に移行しないでください。検出で書き込むのはマニフェストのみです。ユーザーが確認してから、migrate-* フェーズを実行してください。
- 状態が遷移するたびにマニフェストを更新してください。バッチの途中でクラッシュしても、マニフェストにはディスク上の実際の状態を反映させてください。
- アイテムごとの失敗でバッチを中断しないでください。ただし、CARTO の認証期限切れは例外です(
--jsonの 401/403 を解析し、処理中のアイテムには手を加えずにバッチを停止し、ユーザーにcarto auth loginを実行してから再呼び出しするよう依頼してください)。 - 冪等性。
doneのエントリは何も通知せずにスキップします。failedのエントリは再試行します(migrate-dataでは--overwriteを使用し、migrate-mapsではタイトルとタグを事前確認します)。 - 移行したすべてのマップに
From ArcGISタグを付け、プライバシー設定はデフォルト(プライベート)のままにしてください。このタグは、冪等性の事前確認と顧客側でのフィルタリングに使う唯一のシグナルです。 - 作業を進めながら、学んだことを
SESSION_LESSONS.mdに記録し、バッチの最後に提示してください。キャッシュされたスキルファイルは決して自動編集しないでください。実行時に参照するファイルは読み取り専用です。メンテナーが上流の変更を統合します。 - 移行コードを書く前に、該当する
references/*.mdを確認してください。レンダラーのマッピング、ポップアップ/Arcade/ベースマップの変換、データセット設定の要件、「現場で得られた教訓」はすべてそこに記載されています。文書化済みの注意点を再発見するのは、ユーザーの時間の無駄です。CARTO プラットフォームの仕組み(carto import、carto sql query、carto maps *、carto connections *)については、フラグを推測せず、対応する carto-skill のテスト済みレシピに任せてください。