GeoSQL: 지리공간 데이터를 위한 클로드/코덱스 스킬

Geosql: A Claude/Codex skill for geospatial data

요약

데이터 과학자와 분석가를 위해 개발된 GeoSQL은 PostGIS, BigQuery, Snowflake, Wherobots 등에서 지리공간 데이터를 처리할 수 있도록 클로드, 코덱스, 깃허브 코파일럿에 기능을 추가하는 도구다. SaaS 계정이 필요 없으며 100% 로컬 또는 자체 호스팅으로 작동하고, 지도를 루프에 포함시켜 지리공간 작업 성능을 최대 4배 향상시킨다. 에이전트는 웨어하우스 메타데이터를 탐색해 스키마를 추측하지 않고 정확한 공간 SQL을 작성하며, 빅쿼리에서는 모든 쿼리를 먼저 드라이런(dry-run)하여 10GiB 청구 한도를 넘지 않도록 비용을 통제한다. 또한 렌더링된 지도 이미지를 보고 기하학 오류를 스스로 교정하는 피드백 루프를 통해, 텍스트만으로는 놓치기 쉬운 다각형 경계 오인이나 중복 집계 같은 실수를 잡아낸다.

본문 기반 요약
원문 보기 HN 토론

전체 번역

Claude, Codex, GitHub Copilot 스킬 – PostGIS, BigQuery, Snowflake, Wherobots에서 지리공간 데이터를 다루는 데이터 과학자와 분석가를 위한 도구입니다.
참고: SaaS 계정이 필요하지 않습니다. 100% 로컬 또는 자체 호스팅 방식으로 작동합니다.
지도를 활용한 지리공간 작업에서 4배 향상된 성능을 제공합니다.

Python (대화형 모드):

pip install geosql && geosql

지원되는 에이전트에 직접 설치:

geosql install claude
geosql install codex
geosql install copilot

또는 Claude Code에서:

/plugin marketplace add dekart-xyz/geosql
/plugin install geosql

geosql install copilot 실행 후, VS Code Copilot 또는 Copilot CLI에서 다음과 같은 프롬프트로 GeoSQL을 사용할 수 있습니다:

/geosql Show EV charger density along major roads and render a map

GeoSQL은 선택적으로 Dekart를 사용합니다. Dekart는 PostGIS, BigQuery, Snowflake용 커넥터를 갖춘 오픈소스 Kepler.gl 백엔드입니다.
Dekart는 단일 Docker 명령어로 로컬에서 실행하거나, 자체 인프라에 자체 호스팅하거나, Dekart Cloud를 사용할 수 있습니다.

로컬에서 Dekart 실행 (이 단계를 건너뛰면 Dekart Cloud 사용):

docker run -p 8080:8080 dekartxyz/dekart

Dekart CLI 설치:

pip install dekart && dekart init

CLI 및 dekart 프롬프트에 따라 PostGIS, BigQuery, Snowflake 또는 Wherobots 데이터베이스에 연결하세요.

부동산 분석:

/geosql Show buildings with low school accessibility in Ottawa, render as a map

입지 선정:

/geosql Find the top 10 locations for Sporting Goods Store in Seattle based on POI co-location and distance to the nearest competitor. Create a map.

전기차 충전 인프라:

/geosql create map EV charger density along major Romanian roads, highlighting how many charging stations are within 5 km of each motorway, trunk, or primary road segment.

GeoSQL은 지도가 포함된 에이전트 루프를 실행합니다.

탐색(Discovery)
이 스킬은 스키마를 추측하는 대신 웨어하우스 메타데이터(테이블, 컬럼, 타입)를 탐색합니다.
BigQuery 및 Snowflake의 Overture Maps 공유 데이터와 PostGIS, BigQuery, Snowflake, Wherobots의 프라이빗 테이블에서 작동합니다.

SQL
에이전트는 엔진에 맞는 적절한 함수(ST_INTERSECTS, ST_DISTANCE, H3, 파티션 프루닝을 위한 bbox 오버랩 등)를 사용하여 공간 SQL을 작성합니다.

비용 확인(Cost check)
BigQuery에서는 모든 쿼리가 먼저 dry-run되어 스캔될 바이트를 추정합니다.
기본적으로 10GiB 청구 상한이 적용됩니다.
예산 초과 쿼리는 실행되지 않고 더 저렴하게 재작성됩니다(bbox 축소, H3 해상도 낮춤, 필터 추가).

형상 검증(Geometry validation)
에이전트는 전체 면적(폴리곤) 또는 전체 길이(라인)를 sanity check로 계산하고, 도메인 지식과 교차 검증합니다.

지도 피드백(Map feedback)
가능한 경우, 에이전트는 Dekart를 통해 결과를 렌더링하고, 렌더링된 이미지를 확인한 후 텍스트 전용 루프에서 놓칠 수 있는 형상 오류를 수정합니다.
이 루프가 바로 4배 성능 향상을 가져오는 핵심입니다.

이 스킬은 로컬 CLI 인증(bq, snow, dekart)을 사용하므로, 웨어하우스 자격 증명이 에이전트로 전송되지 않습니다.

GeoSQL은 evals/ 디렉토리 아래에 재현 가능한 평가 스위트를 포함합니다.
각 케이스는 단순히 "에이전트가 답변했는가"가 아니라, 특정 동작(비용 가드레일, 검증 단계, 올바른 결과)을 검증합니다.

포함된 스위트의 현재 결과:

| 케이스 | 검증 항목 수 | 통과율 |
|---|---|---|
| london-boroughs | 4 | 100% |
| berlin-create-map | 3 | 100% |
| paris-boundaries | 1 | 100% |
| 합계 | 8 | 100% |

평균: 턴당 3,085 토큰, 턴당 72초 소요.

위의 4배 성능 향상 차트는 동일한 작업 세트를 지도 포함 루프와 미포함 루프로 비교한 결과입니다.
지도가 없으면 에이전트의 텍스트 전용 검증이 형상 관련 오류(동네 폴리곤을 도시권 경계로 오인, 중복 피처 이중 계산, 좌표 참조 시스템에서 잘못된 조인 키 선택 등)를 놓칩니다.
렌더링된 지도를 도구 호출로 추가하면 에이전트가 이러한 실수를 인지하고 스스로 수정할 수 있습니다.

직접 평가 스위트 실행:

python evals/run.py

설정 방법 및 새 케이스 추가 방법은 evals/RUNBOOK.md를 참조하세요.
새 평가 케이스를 포함한 PR은 언제나 환영합니다.