If a custom OpenClaw skill doesn’t show up in openclaw skills list and the agent can’t see it either, the SKILL.md frontmatter is likely the culprit. OpenClaw fails silently, so the debugging feedback is minimal.

Two things must be right. First, any name or description containing a colon must be wrapped in double quotes, otherwise YAML interprets the colon as a key-value separator and the parse fails. Second, the frontmatter must include an openclaw metadata block declaring the emoji icon and any required binaries or environment variables. Without it, OpenClaw won’t register the skill at all.

A working example:

---
name: weather
description: "Get current weather and forecasts via wttr.in or Open-Meteo. Use when: user asks about weather, temperature, or forecasts for any location."
metadata: { "openclaw": { "emoji": "🌤️", "requires": { "bins": ["python3"] } } }
---

The metadata schema is documented in the OpenClaw skills reference. The required fields depend on what the skill needs: bins for executables, envs for environment variables.

OpenClaw skills documentation