This skill should be used when the user asks to "scaffold a GIS ingestion service", "create a GIS upload API", "build a FastAPI service for shapefile/DWG/.gdb ingestion", "generate a geospatial ingestion microservice", or invokes `/gis-to-db:scaffold-service`. Produces a complete, production-grade FastAPI service that accepts GIS/CAD file uploads, parses them via fiona/ezdxf/LibreDWG, reprojects to a target SRID, and writes geometries to PostGIS, MongoDB, or MySQL spatial. Includes API key auth, Pytest tests, Arq async job queue, Prometheus metrics, structured logging, and Docker compose wiring.
Instalação
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
This skill should be used when the user asks to "scaffold a GIS ingestion service", "create a GIS upload API", "build a FastAPI service for shapefile/DWG/.gdb ingestion", "generate a geospatial ingestion microservice", or invokes `/gis-to-db:scaffold-service`. Produces a complete, production-grade FastAPI service that accepts GIS/CAD file uploads, parses them via fiona/ezdxf/LibreDWG, reprojects to a target SRID, and writes geometries to PostGIS, MongoDB, or MySQL spatial. Includes API key auth, Pytest tests, Arq async job queue, Prometheus metrics, structured logging, and Docker compose wiring.
Scaffold a full FastAPI GIS ingestion service
v0.1 status — design doc only. Pre-built templates land in v0.2 (Slice B). In v0.1, Claude generates files inline from the specs in this SKILL.md — expect 25+ generated files, ~3000-5000 lines. Generation is slower and less consistent than template-based v0.2 will be. For production use today, prefer make-cli (lighter) or convert (one-shot).
This skill generates a complete, runnable FastAPI service for ingesting GIS and CAD files into a spatial database. The output is production-grade — auth, tests, async jobs, observability, and Docker — not a hello-world.
When to Use
Invoke when the user wants a standalone service they can deploy. Typical phrasings:
Validator agent runs first. Use the Task tool to invoke gis-preflight-validator with mode=scaffold-service. The validator confirms the chosen DB target is reachable (if URI is set in settings) and that Docker is available for the build step.
Confirm parameters with the user. Service name, DB target, target SRID, out-dir. Read defaults from .claude/gis-to-db.local.md. Ask only for missing values.
Copy templates from assets/templates/service/. Templates use Jinja-style {{ var }} placeholders that the skill substitutes for service name, DB target, target SRID, etc.
Filter generated files by DB target. Only emit db/<target>.py, parsers/ adapters for the chosen target, and the relevant docker-compose.yml service stanza.
Write all files via the Write tool. Show a tree of what was created.
Offer to run. Print the commands to start the service (cd <out-dir>/<service-name> && make dev), but do not run automatically — the user reviews first.
Template Variables
Templates expect:
SERVICE_NAME — kebab-case, used for directory and docker-compose service names.