decision-labs/geobase-skills/geobase-worker-overture-import
Claude Code and agent skill by decision-labs/geobase-skills
- community
Checking that the SKILL.md file is still in the repository.
Create and validate Overture Maps import worker jobs (overtureImportArea). Triggers on Overture import, Overture buildings, overturemaps layers, segment/streets/water/place when OSM coverage is thin.
Install
npx vskill@latest install decision-labs/geobase-skills/geobase-worker-overture-importSKILL.md
Worker: Overture Maps Import
When to use this skill
- Import Overture Maps layers into a Geobase project via
overtureImportArea - Fill gaps when OSM building (or other) coverage is thin — e.g. geobase-kblock workspaces
- Select specific Overture types (
building,segment,water,place, …) - Not for OSM (
@geobase-worker-osm-import) or local file import (@geobase-project-db-data-import)
Authoritative worker spec: apps/worker/specs/OVERTURE_IMPORT.md in the Geobase monorepo. OpenAPI: worker GET /ui / GET /doc.
Secrets (human in the loop)
Worker HTTP needs `GEOBASE_SERVICE_ROLE_KEY`. Agents cannot obtain it. Ask the user to put it in a gitignored `.env.secrets`. Do not paste keys in chat. See @geobase → Secrets (human in the loop).
The worker process also needs `GEOBASE_PROJECT_DB_URI` (project Postgres) in its environment — that is how features are written.
Required inputs
@geobase→ private-beta / Studio path if CLI unavailableproject_refGEOBASE_SERVICE_ROLE_KEYin local secrets- Payload JSON:
areaName(required)aoiGeoJson—PolygonorMultiPolygon, WGS84, closed ringstablePrefix(optional; defaults toareaName)mode—replace(default) |union- layers: prefer `types`; or `topics`; omit both →
buildingonly theme— accepted for osmImportArea/kblock drop-in; ignored
Layer selection
Resolution order: types → topics → default ["building"].
Overture types → output tables
types value | Table | |
|---|---|---|
building | {prefix}_buildings | |
building_part | {prefix}_building_parts | |
segment | {prefix}_streets | |
connector | {prefix}_connectors | |
water | {prefix}_water | |
land | {prefix}_land | |
land_use | {prefix}_land_use | |
land_cover | {prefix}_land_cover | |
place | {prefix}_places | |
address | {prefix}_addresses | |
infrastructure | {prefix}_infrastructure | |
bathymetry | {prefix}_bathymetry | |
division | {prefix}_divisions | |
division_area | {prefix}_division_areas | |
division_boundary | {prefix}_division_boundaries |
Topic aliases (when types omitted)
| Alias | Maps to | |
|---|---|---|
kblock / buildings | building | |
streets / roads | segment | |
water | water | |
places / pois | place | |
land | land | |
addresses | address | |
boundaries | division_boundary |
Raw Overture type names are also valid inside topics.
Output columns
area_id (bigint PK), geom (typed 4326), tags (jsonb, includes overture_type), source = overture.
Size guards (fail fast)
| Env | Default | Meaning | |
|---|---|---|---|
OVERTURE_MAX_BBOX_AREA_SQ_DEG | 1.0 | Max AOI bbox area | |
OVERTURE_MAX_FEATURES_PER_TYPE | 50000 | Max features per type | |
OVERTURE_MAX_FEATURES_TOTAL | 100000 | Max across selected types | |
OVERTURE_PYTHON_TIMEOUT_MS | 1800000 | Python subprocess timeout |
Prefer small AOIs. Reproject shapefiles to EPSG:4326 before submit (source CRS mistakes are common).
Procedure
- Session / project:
geobase-cli whoami,geobase-cli projects refs(or Studioproject_ref). - Env:
geobase-cli projects env <ref> --persona web --format dotenvfor non-secrets; user sources.env.secretsfor service role. - Validate AOI:
- WGS84 lon/lat (not UTM meters)
- closed rings; Polygon or MultiPolygon
- Validate
tablePrefix: prefer^[a-z][a-z0-9_]{0,62}$(same hygiene as OSM skill). Worker also accepts^[a-zA-Z_][a-zA-Z0-9_]*$. - Collision check: ensure
{prefix}_{suffix}tables for selected types do not already exist (or user approvedmode: replace). - Prefer explicit
typesfor clarity. Start with one type (e.g.building) on first run. - Submit:
POST https://${GEOBASE_PROJECT_REF}.geobase.app/worker/jobs/overtureImportArea- headers:
apikey+Authorization: Bearer= service role;Content-Type: application/json - Studio proxy (when available):
POST /api/projects/{ref}/jobs/overtureImportArea
- Poll:
GET .../worker/jobs/overtureImportArea/<job_id>— 5s then backoff (10s / 20s / 30s). - On
success: check metadatatypes,layers([{type,table,inserted}]), row counts,source=overture.
Example payload
(kblock drop-in: same shape as osmImportArea with theme/topics: ["kblock"] → buildings only.)
Submit rule (mandatory)
Only submit when AOI CRS is WGS84, prefix/collision checks passed, and layer selection matches user intent. Never silently enlarge the AOI or add heavy types (land_cover, bathymetry, divisions) without approval.
Failure handling
- Auth → refresh service role in
.env.secrets - Schema / unknown type → fix
types/topicsagainst the table above - Size-guard errors → shrink AOI, fewer types, or raise env limits with user approval
- Wrong CRS / empty results → reproject AOI to WGS84; confirm bbox on a map
- Missing Python deps on local worker →
pip install -r apps/worker/tasks/requirements-overture.txt(nooverturemaps[geopandas]) - Preserve failed
job_idand truncatedresultfor debugging
Related skills
@geobase-worker-osm-import— OpenStreetMap import (shortbread topics)@geobase-project-db-data-import— local files via ogr2ogr@geobase— secrets, project ref, routing
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/geobase-worker-overture-import/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/decision-labs/geobase-skills/geobase-worker-overture-import)