Skip to content

claude-plugin-naming

Plugin names should use kebab-case

Formerly known as plugin-naming. The legacy name still works in configs, --rule/--skip-rule, suppression comments, and baselines.

Severity warning (auto)
Autofix -
Since v0.1.0
Repo Types marketplace, single-plugin
Category Claude Code

Why

Plugin names appear in command identifiers (plugin:command) and configuration files. A name that uses uppercase, underscores, or spaces breaks conventions and may cause lookup failures in case-sensitive systems.

Examples

Bad:

{"name": "My_Plugin"}

Good:

{"name": "my-plugin"}

How to fix

Rename the plugin to use kebab-case in plugin.json and rename the plugin directory to match.

Codex plugins

This is a Claude-format convention. A directory claimed only by OpenAI Codex — a .codex-plugin/plugin.json, or a local-source listing in a Codex catalog, with no .claude-plugin marker or Claude marketplace listing — is exempt: codex-plugin-json-valid already checks the manifest name for that ecosystem, and a second directory-name report would double up. A dual-manifest directory keeps this check, and the ecosystem-neutral content and security rules read every plugin's files regardless of provenance.

Configuration

rules:
  claude-plugin-naming:
    enabled: auto  # true | false | auto
    severity: warning

Run skillsaw explain claude-plugin-naming to see this documentation and the rule's effective configuration in your terminal.