maplibre-cartography
Cartographic principles for MapLibre GL JS — label and symbol legibility on imagery vs. vector basemaps, figure-ground for point…
How to turn a working session into a MapLibre agent skill — you researched something MapLibre's docs did not cover, got it wrong before you got it right, shipped it, and the session is about to end. Covers what to capture while the context is still live, how to separate the
$ npx -y skills add maplibre/maplibre-agent-skills --skill maplibre-skill-authoring --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/maplibre-skill-authoringContext preview
The summary Claude sees to decide when to auto-load this skill.
How to turn a working session into a MapLibre agent skill — you researched something MapLibre's docs did not cover, got it wrong before you got it right, shipped it, and the session is about to end. Covers what to capture while the context is still live, how to separate the
name: maplibre-skill-authoring description: How to turn a working session into a MapLibre agent skill — you researched something MapLibre's docs did not cover, got it wrong before you got it right, shipped it, and the session is about to end. Covers what to capture while the context is still live, how to separate the durable claim from the project it came from, and where to hand it off. Use at the end of a MapLibre task that took real research, or when asked to capture one as a skill. status: process
The most valuable input to [maplibre-agent-skills](https://github.com/maplibre/maplibre-agent-skills) is a session where an agent got a MapLibre answer wrong, went and found the right one, and shipped working code. That session holds something no later reconstruction can recover: **the wrong answer that came first.** It is the evidence that a skill is warranted at all, and it exists only until the context ends.
This skill is about that harvest. It does not restate how to contribute — [`AGENTS.md`](https://github.com/maplibre/maplibre-agent-skills/blob/main/AGENTS.md) has the agent-specific rules and [`CONTRIBUTING.md`](https://github.com/maplibre/maplibre-agent-skills/blob/main/CONTRIBUTING.md) has the lanes and the four-step order for writing a new skill. Read those for the handoff; read this before the session ends, because after that most of what follows is unrecoverable.
Do this while the session is still open. Four things, in a scratch file:
1. **The wrong first answer, verbatim.** What you asserted, wrote, or would have written before you checked. This is the baseline hypothesis, and it is the only artifact here that cannot be reconstructed afterward — once the correct answer is in context, the model will not produce the wrong one again on request. A skill earns its place only where a model fails without it, so this is what makes the eval writable. 2. **The primary sources you actually opened.** URLs, not recollections: the style spec page, the GL JS docs page, the PR or issue, the CHANGELOG entry. A citation reconstructed later from memory is a guess wearing a link. 3. **The correct claim, in one or two sentences.** Written as a rule, not as a narrative of what you did. 4. **Versions and the minimal reproduction.** Which MapLibre version, which SDK (GL JS and Native diverge), and the smallest style or code that shows the behavior.
Everything above is entangled with the codebase it came from. The test for each line: **would this be true in someone else's project?**
One session's failure buys **one test and one section** — usually an addition to a skill that already exists. Check [Available Skills](https://github.com/maplibre/maplibre-agent-skills#available-skills) and the [open issues](https://github.com/maplibre/maplibre-agent-skills/issues) before assuming you have a new one.
A new skill is warranted only when the claim has no home: not a subtopic of a shipped skill, and not one an existing skill should own. Prefer adding a section, then a pointer between skills, then a new skill last.
Turn the captured artifacts into an eval before writing content, and write it from what happened rather than from what you intend to say:
Mechanics, provider setup, and the baseline run are in [`evals/README.md`](https://github.com/maplibre/maplibre-agent-skills/blob/main/evals/README.md).
You are drafting a proposal, not a verified skill, and saying so is part of the handoff. State which claims you verified against a primary source and which you could not. If you cannot run the eval — no API keys, or you are working outside a clone of the repo — say that plainly rather than omitting it, and leave the pull request and its description to the human who will answer for them in review.
A failure report carrying artifacts 1, 2, and 4 is a complete contribution on its own. It is worth more than a draft skill with no evidence behind it.
Curated guidance for AI assistants building MapLibre applications — covering ecosystem and open-source best practices. Agent skills are markdown files that AI coding assistants read as context.
Cartographic principles for MapLibre GL JS — label and symbol legibility on imagery vs. vector basemaps, figure-ground for point…
Configuring fonts and glyphs for MapLibre GL JS and MapLibre Native — the style's `glyphs` URL, self-hosting or generating font…
Migrating from Mapbox GL JS to MapLibre GL JS — package and import changes, removing the access token, choosing tile sources,…
Serverless vector and raster tiles with PMTiles for MapLibre GL JS — single-file format, HTTP range requests, hosting on…
The step-by-step procedure for running this repo's Promptfoo evals with a generator and a judge over provider APIs. Use when…
Getting a MapLibre GL JS source to actually render — TileJSON `url` versus hand-wired `tiles` templates, matching `source-layer`…