add-city
Use when adding a new city (site) or a new Land (provider) to the viewer, or when bringing an existing site's data up to date with a new edition.
SKILL.md.claude/skills/add-city/SKILL.md
GitHubAdding a city
Decisions behind this: ADR 0037 (sites, providers, what is committed), ADR 0012 (sources and stand-ins), ADR 0005 (CRS).
A city in a Land that is already covered
sites/<id>.ts: name, label, tiles (the first is the spawn), viewpoints, optional smaller OSM extract, street-tree register (treeCadastre, its field mapping inpipeline/bake/cadastre.py),dataLayerswhere the city publishes a feed. Register it insites/index.ts.bun run fetch <id>(add--lscwhere the provider reads a laser scan), thenbun run bake <id> --jobs N, thenbun run site <id>to see what is missing.bun run osm-coverage <id>lists the built things OSM maps there that no bake draws and nobody decided about (a cable car, a lift up a cliff): decide each inpipeline/bake/coverage.py's ledger, drawn, planned or left out with its reason, before the city ships.bun run devand walk it; take real-GPU plates (SHOTS_SITE=<id> bun run shots) at its viewpoints and landmarks.bun run docs:matrix(its test fails otherwise).- Committing its
data/<id>/is the maintainer's decision (size;.gitignoreun-ignores each committed site by name). Ask before.
A new Land
- A
Providerinsites/providers.ts: EPSG, licence and credit, portal, OSM extract, open products, thelandthe start page names. - An adapter
pipeline/bake/providers/<id>.pywith at leastdgm,dom,dop,lod2anddlm(flight,lscwhere the Land has them), returning the provider's own files; the common code clips them to 2 km tiles. - Licence and credit in the guide's licence table (both languages) and
in
NOTICE. - Where the Land lacks a product, the stand-ins of ADR 0012 apply; the matrix marks them.
Never
- A per-site look switch; derive the look from the city's data.
- Raw downloads in git, or a fetch inside the build.