versa/skills/versatiles-fonts/SKILL.md
VersaTiles SDF font glyphs for MapLibre GL JS. 10 font families (Fira Sans, Lato, Libre Baskerville, Merriweather Sans, Noto Sans, Nunito, Open Sans, PT Sans, Roboto, Source Sans 3) bundled locally from versatiles-org/versatiles-fonts GitHub releases. Installed so the notebook's shortbread MapLibre cell renders labels without hitting tiles.versatiles.org as a runtime font CDN. Re-exported by the versatiles-frontend layer's http.server at /fonts/. MUST be invoked before building, deploying, or troubleshooting the versatiles-fonts layer.
npx skillsauth add overthinkos/overthink-plugins versatiles-fontsInstall 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 |
| Build deps | curl, jq |
| Install path | /opt/versatiles-fonts/ |
| Re-exported at | /opt/versatiles-frontend/fonts/ (by the versatiles-frontend layer) |
versatiles-org/versatiles-fonts releases a fonts.tar.gz containing
all 10 font families pre-rendered as SDF (signed distance field) PBFs
that MapLibre GL JS can fetch via its standard glyph URL template:
{glyphs}/{fontstack}/{range}.pbf
The directory layout inside the tarball (verified at install time):
versatiles-fonts/
├── Fira Sans Regular/
│ ├── 0-255.pbf
│ ├── 256-511.pbf
│ └── ...
├── Noto Sans Regular/
│ ├── 0-255.pbf
│ └── ...
├── Roboto Regular/
│ └── ...
└── ...
The notebook's shortbread cell patches the style's glyphs URL:
style.glyphs = 'http://127.0.0.1:28002/fonts/{fontstack}/{range}.pbf';
MapLibre substitutes {fontstack} (e.g. Noto Sans Regular) and
{range} (e.g. 0-255) when fetching each glyph range as the user
pans/zooms. The versatiles-frontend http.server serves the files
directly — no special URL rewriting needed.
Build-scope:
versatiles-fonts-bundle-present — at least one *.pbf glyph file exists under /opt/versatiles-fonts/versatiles-fonts-noto-sans — Noto Sans Regular family is present (sanity check that the tarball wasn't a partial variant)/ov-versa:versa — image composing this layer/ov-versa:versatiles-style — sibling MapLibre style generator; the generated styles reference the glyph URL pattern this layer provides/ov-versa:versatiles-frontend — re-exports this bundle at /fonts//ov-versa:maplibre-versatiles-styler — UI control that lets users switch between font families exposed by this layer/ov-versa:notebook-osm — the shortbread MapLibre cell that patches style.glyphs to point at this layer's bundledevelopment
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.