MCPInstall

maplibre-skill-authoring

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.

Installs
166
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/maplibre/maplibre-agent-skills --skill maplibre-skill-authoring
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads maplibre-skill-authoring automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Authoring a Skill From a Session

The most valuable input to 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 has the agent-specific rules and 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.

When to Use This Skill

  • A MapLibre task just took real research: docs, source, a CHANGELOG, an issue thread
  • The first approach was wrong, or right for Mapbox GL JS and wrong for MapLibre
  • A version boundary, gotcha, or failure mode turned up that the docs do not state plainly
  • Someone asks to capture the session as a skill

Capture first, decide later

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.

Separate the claim from the project

Everything above is entangled with the codebase it came from. The test for each line: would this be true in someone else's project?

  • Cut project names, file paths, internal architecture, and business logic. If a code sample only makes sense with your app around it, rewrite it against a bare map.
  • Keep the version boundary. "Broken before X, works after" is judgment; "it works" is not.
  • Keep the reason the wrong answer was plausible. That is what makes the skill catch the next agent, and it is usually a Mapbox GL JS habit or a stale training-data assumption.
  • Nothing private ships. Anonymize the report; the failure travels, your employer's code does not.

Size it before you write it

One session's failure buys one test and one section — usually an addition to a skill that already exists. Check Available Skills and the open 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.

Write the eval from the session, not from the draft

Turn the captured artifacts into an eval before writing content, and write it from what happened rather than from what you intend to say:

  • The prompt is the question the session actually started with, stripped of the project.
  • The rubric encodes the correct claim (artifact 3), phrased so it would grade a stranger's answer — not so it matches your draft's wording.
  • The icontains tripwire is the name the wrong answer invented (artifact 1), asserted as not-icontains, plus the real name asserted as icontains. A session that hallucinated an API name hands you the sharpest tripwire you will ever write.

Mechanics, provider setup, and the baseline run are in evals/README.md.

Hand it off honestly

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.

Do not

  • Don't paste the transcript. A session is the source material, not the deliverable.
  • Don't cite a source you did not open. Reconstructed references are the most common way a confidently wrong claim gets through review.
  • Don't report an eval result you did not run, and don't invent the API keys to run one.
  • Don't promote a project quirk to a skill. If the fix depended on your build setup, it is not MapLibre judgment.
  • Don't skip the baseline because the answer feels obviously missing. The model may already get it right, and that finding is a result worth reporting, not a dead end.

Related Skills

  • maplibre-mapbox-migration — the frequent source of a plausible wrong first answer, where a Mapbox GL JS habit carries over.

References


This skill is a snapshot. Where a primary source contradicts it — the References above, MapLibre's current documentation, or what MapLibre does when you run it — that source wins. Follow it, then report the disagreement, citing the source and your MapLibre version: editing your installed copy helps no one else and is overwritten on the next update.

FAQ

What does the maplibre-skill-authoring skill do?

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.

How do I install maplibre-skill-authoring?

Run npx skills add https://github.com/maplibre/maplibre-agent-skills --skill maplibre-skill-authoring in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/maplibre-skill-authoring/ (personal) or .claude/skills/maplibre-skill-authoring/ (project).

Which AI agents can use maplibre-skill-authoring?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is maplibre-skill-authoring safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains maplibre-skill-authoring?

It is published by maplibre in maplibre/maplibre-agent-skills. It has 166 recorded installs.

More from maplibre/maplibre-agent-skills

View all →

maplibre-tile-sources

maplibre/maplibre-agent-skills

Choosing what form your data needs for MapLibre GL JS — GeoJSON read straight from a file versus vector or raster tiles, the feature-count and file-size thresholds where each stops working, and how a basemap and your own data combine as separate sources. Use when deciding which source type a dataset needs, not when hosting or configuring one.

Data & Databases994 installs

maplibre-pmtiles-patterns

maplibre/maplibre-agent-skills

Serverless vector and raster tiles with PMTiles for MapLibre GL JS — single-file format, HTTP range requests, hosting on S3/R2/GitHub Pages, generating with Planetiler or tippecanoe, and the pmtiles protocol. Use when you need no tile server or want to host tiles from static storage.

Backend & APIs766 installs

maplibre-mapbox-migration

maplibre/maplibre-agent-skills

Migrating from Mapbox GL JS to MapLibre GL JS — package and import changes, removing the access token, choosing tile sources, plugin equivalents, and what you gain or give up. Use when moving an existing Mapbox map to MapLibre.

maplibre-cartography

maplibre/maplibre-agent-skills

Open the skill to read its SKILL.md instructions.

AI & Agents422 installs

maplibre-source-wiring

maplibre/maplibre-agent-skills

Getting a MapLibre GL JS source to actually render — TileJSON url versus hand-wired tiles templates, matching source-layer names to the tile schema, layer order and inserting below labels, promoteId and the feature ids that feature state needs, and the CORS and glyph failures behind a blank map. Use when a source is configured but nothing is drawing, or when setFeatureState does nothing.

AI & Agents262 installs

maplibre-fonts-glyphs

maplibre/maplibre-agent-skills

Open the skill to read its SKILL.md instructions.

AI & Agents238 installs

Popular ai & agents skills

View category →

google-agents-cli-publish

google/agents-cli

This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).

AI & Agents513.9K installs

google-agents-cli-eval

google/agents-cli

This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).

AI & Agents513.5K installs

skill-creator

anthropics/skills

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.

OfficialAI & Agents416.4K installs

codex-pet

prime-skills/runcomfy-agent-skills

Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.

AI & Agents402.1K installs

full-output-enforcement

leonxlnx/taste-skill

Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.

AI & Agents401K installs

executing-plans

obra/superpowers

Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available

AI & Agents245.7K installs