versa/skills/shortbread/SKILL.md
Shortbread vector-tile schema generation via Tilemaker. The Shortbread schema (https://shortbread-tiles.org) is the de-facto general-purpose OSM vector-tile schema; the layer builds systemed/tilemaker (C++/Lua) from source and bundles the official shortbread-tiles/shortbread-tilemaker Lua + JSON configuration. The notebook's `notebook_osm_shortbread_pipeline` DAG invokes tilemaker on the Monaco PBF to produce `/workspace/tiles/shortbread/monaco-shortbread.pmtiles`, which the versatiles serve service auto-discovers. MUST be invoked before building, deploying, or troubleshooting the shortbread layer.
npx skillsauth add overthinkos/overthink-plugins shortbreadInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Property | Value |
|----------|-------|
| Dependencies | supervisord (transitive; no service of its own) |
| Distros | arch + fedora (tilemaker is source-built) |
| Build deps | git, make, gcc/gcc-c++, lua/lua-devel, sqlite/sqlite-devel, boost+boost-libs/boost-devel, protobuf/protobuf-devel, shapelib/shapelib-devel, zlib-devel (Fedora only — Arch uses zlib-ng-compat) |
| Output dir | /workspace/tiles/shortbread/ (versatiles serve watches this) |
| Tools installed | /usr/local/bin/tilemaker, /opt/shortbread-tilemaker/{config.json,process.lua,...} |
systemed/tilemaker ships no Arch/Fedora package and no GitHub release
binaries. Build from source mirrors the existing tippecanoe pattern in
/ov-versa:osm-tools-layer: shallow clone → make -j$(nproc) →
make install PREFIX=/usr/local. Build duration: ~2-3 minutes on a
warm package cache; binary lands at /usr/local/bin/tilemaker.
shortbread-tiles/shortbread-tilemaker ships:
process.lua — per-feature Lua classifier (decides which OSM tags
go into which vector-tile layer at which zoom)config.json — layer/zoom schema definition consumed by tilemaker
via --configget-shapefiles.sh, build_test_dataset.sh — helper scripts (not
used by the in-pod DAG; bundled for operator reference)The bundle is cloned to /opt/shortbread-tilemaker/ at image-build
time with .git/ removed (image-size reduction).
@task
def tilemaker_convert() -> str:
pbf = "/workspace/tiles/work/monaco.osm.pbf"
out = "/workspace/tiles/shortbread/monaco-shortbread.pmtiles"
subprocess.run([
"tilemaker",
"--input", pbf,
"--output", out,
"--config", "/opt/shortbread-tilemaker/config.json",
"--process", "/opt/shortbread-tilemaker/process.lua",
], check=True)
return out
Tilemaker v3.0+ detects the .pmtiles extension on --output and
produces a PMTiles archive directly (no .mbtiles intermediate).
Monaco-scale runs complete in ~30 seconds.
Build-scope:
tilemaker-installed — tilemaker --version exit 0shortbread-process-lua — /opt/shortbread-tilemaker/process.lua existsshortbread-config-json — /opt/shortbread-tilemaker/config.json existsDeploy-scope:
shortbread-tiles-dir-runtime — /workspace/tiles/shortbread/ exists/ov-versa:versa — image composing this layer/ov-versa:versatiles — the tile-server service that auto-discovers
/workspace/tiles/shortbread/*.pmtiles files/ov-versa:versatiles-style — MapLibre style generator targeting
the Shortbread schema (the notebook's shortbread cell renders the
pipeline output using colorful())/ov-versa:notebook-osm — DAG cell 2 self-authors the
notebook_osm_shortbread_pipeline that drives this layer/ov-versa:osm-tools-layer — sibling tippecanoe pipeline + martin
tile server (parallel infrastructure on port 23000)development
Claude Code multi-agent support in Overthink — sub-agents, dynamic workflows, and agent teams, and how each drives the existing `ov eval` disposable beds to test and verify. MUST be invoked before authoring or invoking an ov sub-agent / dynamic workflow / agent team, wiring agent-lifecycle hooks, or asking "which primitive should drive the R10 beds?".
tools
Mounts a virtiofs share tagged `workspace` at /workspace inside a VM guest via a systemd .mount unit. Use when a kind:vm entity shares a host directory into the guest and you need it auto-mounted (and re-mounted at every boot).
development
MUST be invoked before any work involving: the `kind: android` schema kind, a `target: android` deploy, the `apk:` layer package format (installing Android apps declaratively), AndroidDeployTarget, an in-pod emulator OR a remote/physical adb-endpoint device, or nested `pod → android` deployment. The first-class Android device + app surface that sits above `ov eval adb`/`appium`.
tools
Use when committing, branching, pushing, merging, tagging, creating PRs, or approving/merging PRs with gh — the feat/-branch, R10-gated, never-force-push landing workflow across the main repo + the plugins submodule + image/<distro> submodules. Covers sync-to-upstream, branch/worktree pruning, the fork+PR path for contributors without write access, and cross-repo @github landing order.