Agent skill
naming-conventions
Naming conventions for Claude Code plugin components -- plugins (tier prefixes: kb-*, dx-*, int-*), skills, commands, agents, argument hints, and descriptions. Use when creating, renaming, or auditing any plugin component to ensure correct naming patterns, description quality, and context budget optimization.
Install this agent skill to your Project
npx add-skill https://github.com/nathanvale/side-quest-marketplace/tree/main/plugins/cortex-engineering/skills/naming-conventions
SKILL.md
Naming Conventions
Knowledge base for naming Claude Code plugin components correctly. Names serve humans (typing, recall), descriptions serve Claude (routing, auto-discovery), and each component type has a natural part of speech.
The Naming Taxonomy
Every component type has a natural part of speech. Consistency within a type creates a predictable mental model.
| Entity | Case | Part of Speech | Length | Examples |
|---|---|---|---|---|
| Plugin (core) | kebab-case | Noun/noun-compound | 1-3 words | cortex-engineering, git-workflow |
| Plugin (knowledge bank) | kb- + kebab-case |
Prefix + tool noun | 2-3 words | kb-mpe, kb-obsidian, kb-tailwind |
| Plugin (dev experience) | dx- + kebab-case |
Prefix + tool noun | 2-3 words | dx-biome, dx-eslint |
| Plugin (integration) | int- + kebab-case |
Prefix + service noun | 2-3 words | int-firecrawl, int-rclone |
| Skill (action) | kebab-case | Verb or verb-phrase | 1-3 words | research, deploy-staging |
| Skill (knowledge) | kebab-case | Noun or noun-compound | 1-3 words | api-conventions, frontmatter |
| Command | kebab-case | Verb (imperative) | 1-2 words | deploy, fix-issue |
| Agent | kebab-case | Role-noun | 1-3 words | debugger, code-reviewer |
| argument-hint | POSIX brackets | Descriptive noun | <30 chars | <topic>, [format] |
Plugin Tier Prefixes
Plugins use a tier prefix to signal their lifecycle and purpose. Pick the tier first -- it determines the name prefix.
| Tier | Prefix | When to use | Skill pattern |
|---|---|---|---|
| Core | none | Foundational workflow plugins (skills, commands, agents, hooks) | Mixed action + knowledge skills |
| Knowledge bank | kb- |
Reference knowledge for a specific tool or framework | Single user-invocable: false skill with routing table hub |
| Developer experience | dx- |
Dev tooling (linters, formatters, test runners) | May have hooks and commands |
| Integration | int- |
External service wrappers (APIs, CLIs, cloud services) | May have MCP tools |
The tier prefix is part of the published plugin name and is an API contract (renaming = semver-major). For kb-* plugins, the skill name is the tool noun without the prefix -- e.g., plugin kb-mpe has skill mpe, making the fully qualified name kb-mpe:mpe.
Naming Patterns by Use Case
| Pattern | When to use | Examples |
|---|---|---|
| verb-noun | Action skills/commands (dominant) | fix-issue, explain-code, deploy-staging |
| noun-noun | Reference/knowledge content | api-conventions, legacy-system-context |
| single verb | High-frequency universal actions | simplify, batch, deploy |
| adjective-noun | Specialized variants | deep-research, safe-reader |
| platform-task | Domain-scoped tools | youtube-research, spam-check |
Invocation Control Changes Naming Strategy
- User-invoked skills/commands (
disable-model-invocation: true): optimize for human recall -- verb-noun, memorable, typable - Auto-triggered skills: description is primary, name can be shorter/compressed
- Commands: always user-invoked, so typeability is the top priority
The Five Rules of Plugin Hierarchy Coherence
Rule 1: Never repeat the plugin name in component names.
The namespace already provides scope. cortex-engineering:frontmatter not cortex-engineering:cortex-engineering-frontmatter.
Rule 2: Match skill names to their command counterparts.
If /research delegates to a skill, the skill should also be named research, not producing-research-documents.
Rule 3: Use the description for AI routing, not the name. The name is for humans (typing, remembering). The description is for Claude (routing, auto-discovery). Don't try to make the name do both jobs.
Rule 4: Maintain part-of-speech consistency within a type. Commands should all be verbs. Agents should all be role-nouns. Knowledge skills should all be nouns. Action skills should all be verbs.
Rule 5: Treat published names as API contracts.
Plugin names are in marketplace.json. Skill names become /slash-commands. Agent names appear in permission rules. Renaming any of these is a semver-major change.
Name Anti-Patterns
| Anti-Pattern | Why It Fails | Fix |
|---|---|---|
Overly generic: check, process |
Too broad, fails both recall and discovery | Add domain context: spam-check |
Ambiguous siblings: update vs upgrade |
Users can't remember which is which | Use distinct verbs with clear boundaries |
Plugin name repeated: cortex:cortex-research |
Namespace stuttering | Drop prefix: cortex:research |
| Abbreviation conflicts | Prefix collision in autocomplete | Use full, distinctive words |
Too long: code-review-and-security-analysis-agent |
Untypable, exceeds mental model | 1-3 words max |
Missing domain context: check vs spam-check |
Ambiguous across workflows | Front-load the domain |
Agent Naming
Use role-nouns, not action-verbs. Agents are persistent entities with identity.
- Good:
code-reviewer,debugger,beat-reporter,formatter - Bad:
review-code(verb-object -- that's a task),reviewing(gerund -- ambiguous)
The builder-validator pattern is the dominant architectural naming idiom. The names map directly to enforced tool restrictions. Naming is enforcement.
SKILL.md name vs Directory Name
When the name field differs from the directory name, the name field wins for /slash-command invocation. Keep them matching for maximum predictability. The description handles the verbose explanation.
Namespace Strategy
- Global skills (
~/.claude/skills/): broader names, cross-project relevance - Project skills (
.claude/skills/): more specialized, project context baked in - Plugin skills: auto-namespaced via
plugin:skill, so the skill name itself can be shorter
Technical Constraints
- Lowercase letters, numbers, hyphens only
- Maximum 64 characters
- The
namefield directly becomes the/slash-commandinvocation - Same-name collisions resolve by priority: enterprise > personal > project
Reference Files
For detailed guidance on specific topics:
- description-writing.md -- The WHAT+WHEN+WHEN NOT pattern, pushy language, activation rates, and length optimization
- argument-hints.md -- POSIX conventions, length limits, and examples
- budget-strategy.md -- 2% context budget, skill count limits, and description length tradeoffs
Source Research
Full research document: docs/research/2026-03-01-naming-conventions-claude-code-plugins.md
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
cli-mcp-decision
Decide whether a workflow should use CLI skills, MCP, or a hybrid approach. Use when planning agentic tooling, writing ADRs, or evaluating migrations between CLI and MCP.
agent-cli
Patterns for building CLIs that serve both humans and AI agents. Covers tri-modal output (JSON/JSONL/human), typed exit codes, structured error contracts, zero-dependency arg parsing, topic-based help, service discovery, field projection, and auto agent-mode detection. Reference implementation: @side-quest/observability CLI. Use when: building a CLI, adding a command, CLI output format, agent-friendly CLI, machine-readable output, JSON CLI contract, exit codes, --json flag, NDJSON streaming, how should my CLI work with agents, CLI design patterns.
explain-codebase
Generate an engaging, deep-dive explanation document (FOR_[NAME].md) that explains a codebase or domain in plain language with analogies, lessons learned, and practical wisdom.
vscode-bookmarks
Create and manage VS Code Bookmarks extension labeled bookmarks in .vscode/bookmarks.json. Use when the user wants to add navigation bookmarks to a codebase, trace data flows through code, mark important code locations, or set up labeled waypoints for code walkthroughs. Also use when user says "bookmark", "label this code", "mark this flow", or "add waypoints".
manage-plugins
Add or remove inline plugins from the ccdev function in dotfiles .zshrc
observability
Start, stop, or check status of the Side Quest observability event server. Use when asked to start the server, stop the server, check server status, or manage the observability dashboard lifecycle.
Didn't find tool you were looking for?