openclaw fix beginner 5 minutes

Why Your OpenClaw Skill Works in Text But Not as a Slash Command

Naming things is famously one of the two hard problems in computer science. Turns out naming them with the wrong character is also a problem, just a faster one to hit.

You named your new skill aatt-tweet. Clean, readable, makes sense as a folder name. Then you invoke /aatt_tweet in Discord and Obi says he doesn’t have it.

He’s not wrong. He just can’t find it.

The Problem

OpenClaw’s nativeSkills: "auto" setting registers workspace skills as Discord native slash commands. When a user invokes /aatt_tweet, Discord sends the string aatt_tweet (underscore) to OpenClaw’s routing layer.

OpenClaw looks for a skill with a matching name: field. If your skill’s frontmatter says name: aatt-tweet (hyphen), nothing matches. The agent responds as if the skill doesn’t exist — because from its perspective, it doesn’t.

Discord sends:  aatt_tweet
Skill name is:  aatt-tweet
Result:         no match → "I don't have that skill"

Why This Happens

Discord’s slash command specification doesn’t allow hyphens in command names. When OpenClaw registers native skills, it normalizes the name: field to comply. But the internal routing still does an exact-string lookup against the name: field in your SKILL.md frontmatter — so if the stored name has a hyphen and Discord sends an underscore, the lookup fails.

The file watcher sees the folder name. The router uses the frontmatter name:. Both need to match what Discord will actually send.

The Fix

Two changes, both required:

1. Rename the skill folder (hyphen → underscore):

mv workspace/skills/aatt-tweet workspace/skills/aatt_tweet

2. Update the name: field in SKILL.md frontmatter:

# Before
name: aatt-tweet

# After
name: aatt_tweet

No restart needed. OpenClaw’s file watcher picks up the change and re-registers the command.

Verify it loaded:

openclaw skills list

Key Takeaway

Any multi-word OpenClaw skill meant for Discord must use underscores — not hyphens — in both the folder name and the name: field in SKILL.md. Discord’s slash command spec doesn’t support hyphens, and OpenClaw routes on an exact match against the frontmatter name. Pick the right separator once and you never think about it again.

FAQ

Why does my OpenClaw skill work as a text command but not a Discord slash command?

Discord sends slash command names with underscores. If your skill folder or name field uses hyphens, OpenClaw can't match the incoming command and returns 'I don't have that skill.' Rename both to underscores.

What characters are valid in OpenClaw skill names for Discord slash commands?

Use only lowercase letters, numbers, and underscores. Discord slash commands do not support hyphens in command names.

Do I need to restart OpenClaw after renaming a skill folder?

No. OpenClaw uses a file watcher and hot-reloads skill changes. Rename the folder and the name field in SKILL.md frontmatter, and the new command registers automatically.