📦 deps(thirdparty): update snapshots
This commit is contained in:
@@ -0,0 +1,369 @@
|
||||
# Command Namespacing Reference
|
||||
|
||||
Complete guide to organizing slash commands with directories and namespaces.
|
||||
|
||||
## Overview
|
||||
|
||||
Commands can be organized in subdirectories to group related functionality. The directory structure becomes the namespace.
|
||||
|
||||
```
|
||||
.claude/commands/
|
||||
+-- frontend/
|
||||
| +-- component.md # /component (project:frontend)
|
||||
| +-- styling.md # /styling (project:frontend)
|
||||
+-- backend/
|
||||
| +-- api.md # /api (project:backend)
|
||||
+-- review.md # /review (project)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## How Namespacing Works
|
||||
|
||||
### Display in /help
|
||||
|
||||
Commands show their namespace in parentheses:
|
||||
|
||||
```
|
||||
Available commands:
|
||||
/component Create React component (project:frontend)
|
||||
/styling Check styling guidelines (project:frontend)
|
||||
/api Create API endpoint (project:backend)
|
||||
/review Review code changes (project)
|
||||
```
|
||||
|
||||
### Invocation
|
||||
|
||||
Commands can be invoked with or without namespace:
|
||||
|
||||
```bash
|
||||
# Direct (command name only)
|
||||
/component Button
|
||||
|
||||
# With namespace
|
||||
/frontend/component Button
|
||||
```
|
||||
|
||||
Both work. Use direct for brevity, namespace for clarity when names overlap.
|
||||
|
||||
---
|
||||
|
||||
## Directory Structure
|
||||
|
||||
### Single Level
|
||||
|
||||
```
|
||||
.claude/commands/
|
||||
+-- git/
|
||||
| +-- commit.md # /commit (project:git)
|
||||
| +-- branch.md # /branch (project:git)
|
||||
| +-- sync.md # /sync (project:git)
|
||||
```
|
||||
|
||||
### Multiple Namespaces
|
||||
|
||||
```
|
||||
.claude/commands/
|
||||
+-- frontend/
|
||||
| +-- component.md
|
||||
| +-- test.md
|
||||
+-- backend/
|
||||
| +-- endpoint.md
|
||||
| +-- test.md # Different from frontend/test.md
|
||||
+-- deploy/
|
||||
| +-- staging.md
|
||||
| +-- production.md
|
||||
```
|
||||
|
||||
### Mixed (Root + Namespaced)
|
||||
|
||||
```
|
||||
.claude/commands/
|
||||
+-- review.md # Root level: /review
|
||||
+-- commit.md # Root level: /commit
|
||||
+-- git/
|
||||
| +-- sync.md # Namespaced: /sync (project:git)
|
||||
+-- test/
|
||||
| +-- unit.md # Namespaced: /unit (project:test)
|
||||
| +-- e2e.md # Namespaced: /e2e (project:test)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Naming Collisions
|
||||
|
||||
### Same Name in Different Namespaces
|
||||
|
||||
When multiple commands have the same name:
|
||||
|
||||
```
|
||||
.claude/commands/
|
||||
+-- frontend/
|
||||
| +-- build.md # /build (project:frontend)
|
||||
+-- backend/
|
||||
| +-- build.md # /build (project:backend)
|
||||
```
|
||||
|
||||
**Invocation**:
|
||||
- `/build` - Ambiguous, may prompt for clarification
|
||||
- `/frontend/build` - Explicit
|
||||
- `/backend/build` - Explicit
|
||||
|
||||
### Resolution Priority
|
||||
|
||||
1. Root commands (`.claude/commands/name.md`)
|
||||
2. First alphabetically by namespace
|
||||
3. User prompted if ambiguous
|
||||
|
||||
**Best practice**: Use unique names or explicit namespaces to avoid ambiguity.
|
||||
|
||||
---
|
||||
|
||||
## Organizational Patterns
|
||||
|
||||
### By Domain
|
||||
|
||||
Group by functional area:
|
||||
|
||||
```
|
||||
.claude/commands/
|
||||
+-- auth/
|
||||
| +-- login.md
|
||||
| +-- session.md
|
||||
| +-- permissions.md
|
||||
+-- data/
|
||||
| +-- migrate.md
|
||||
| +-- seed.md
|
||||
| +-- backup.md
|
||||
+-- api/
|
||||
| +-- endpoint.md
|
||||
| +-- client.md
|
||||
```
|
||||
|
||||
### By Workflow
|
||||
|
||||
Group by development stage:
|
||||
|
||||
```
|
||||
.claude/commands/
|
||||
+-- setup/
|
||||
| +-- init.md
|
||||
| +-- config.md
|
||||
+-- develop/
|
||||
| +-- feature.md
|
||||
| +-- fix.md
|
||||
+-- review/
|
||||
| +-- pr.md
|
||||
| +-- security.md
|
||||
+-- deploy/
|
||||
| +-- staging.md
|
||||
| +-- production.md
|
||||
```
|
||||
|
||||
### By Team
|
||||
|
||||
Group by team ownership:
|
||||
|
||||
```
|
||||
.claude/commands/
|
||||
+-- platform/
|
||||
| +-- infra.md
|
||||
| +-- deploy.md
|
||||
+-- frontend/
|
||||
| +-- component.md
|
||||
| +-- story.md
|
||||
+-- backend/
|
||||
| +-- api.md
|
||||
| +-- migration.md
|
||||
```
|
||||
|
||||
### By Command Type
|
||||
|
||||
Group by command category:
|
||||
|
||||
```
|
||||
.claude/commands/
|
||||
+-- tools/
|
||||
| +-- lint.md
|
||||
| +-- format.md
|
||||
| +-- test.md
|
||||
+-- workflows/
|
||||
| +-- feature.md
|
||||
| +-- release.md
|
||||
+-- analysis/
|
||||
| +-- review.md
|
||||
| +-- audit.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Scope Interaction
|
||||
|
||||
### Project Namespaces
|
||||
|
||||
Project commands (`.claude/commands/`) show:
|
||||
|
||||
```
|
||||
/command (project:namespace)
|
||||
```
|
||||
|
||||
### Personal Namespaces
|
||||
|
||||
Personal commands (`~/.claude/commands/`) show:
|
||||
|
||||
```
|
||||
/command (user:namespace)
|
||||
```
|
||||
|
||||
### Plugin Namespaces
|
||||
|
||||
Plugin commands show:
|
||||
|
||||
```
|
||||
/command (plugin-name:namespace)
|
||||
```
|
||||
|
||||
### Priority
|
||||
|
||||
When same-named commands exist:
|
||||
1. Plugin commands
|
||||
2. Project commands (override personal)
|
||||
3. Personal commands (fallback)
|
||||
|
||||
---
|
||||
|
||||
## Best Practices
|
||||
|
||||
### 1. Consistent Structure
|
||||
|
||||
Choose one organizational pattern and stick with it:
|
||||
|
||||
```
|
||||
# Good: Consistent by domain
|
||||
frontend/
|
||||
backend/
|
||||
deploy/
|
||||
|
||||
# Bad: Mixed patterns
|
||||
frontend/
|
||||
deploy-staging/
|
||||
api-commands/
|
||||
```
|
||||
|
||||
### 2. Shallow Nesting
|
||||
|
||||
Keep to one level of directories:
|
||||
|
||||
```
|
||||
# Good
|
||||
.claude/commands/frontend/component.md
|
||||
|
||||
# Avoid
|
||||
.claude/commands/frontend/react/components/button.md
|
||||
```
|
||||
|
||||
### 3. Descriptive Names
|
||||
|
||||
Make namespaces self-explanatory:
|
||||
|
||||
```
|
||||
# Good
|
||||
git/
|
||||
test/
|
||||
deploy/
|
||||
|
||||
# Avoid
|
||||
g/
|
||||
t/
|
||||
d/
|
||||
```
|
||||
|
||||
### 4. README in Directories
|
||||
|
||||
Document namespace purpose:
|
||||
|
||||
```
|
||||
.claude/commands/
|
||||
+-- frontend/
|
||||
| +-- README.md # Explains frontend commands
|
||||
| +-- component.md
|
||||
| +-- styling.md
|
||||
```
|
||||
|
||||
### 5. Group Related Commands
|
||||
|
||||
Keep tightly related commands together:
|
||||
|
||||
```
|
||||
# Good: Git operations together
|
||||
git/
|
||||
+-- commit.md
|
||||
+-- branch.md
|
||||
+-- sync.md
|
||||
|
||||
# Avoid: Scattered
|
||||
commands/
|
||||
+-- git-commit.md
|
||||
+-- git-branch.md
|
||||
+-- other-stuff.md
|
||||
+-- git-sync.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Examples
|
||||
|
||||
### Monorepo Structure
|
||||
|
||||
```
|
||||
.claude/commands/
|
||||
+-- packages/
|
||||
| +-- core/
|
||||
| | +-- build.md
|
||||
| | +-- test.md
|
||||
| +-- web/
|
||||
| | +-- build.md
|
||||
| | +-- dev.md
|
||||
| +-- api/
|
||||
| +-- build.md
|
||||
| +-- deploy.md
|
||||
+-- shared/
|
||||
+-- lint.md
|
||||
+-- format.md
|
||||
```
|
||||
|
||||
### Full-Stack App
|
||||
|
||||
```
|
||||
.claude/commands/
|
||||
+-- client/
|
||||
| +-- component.md
|
||||
| +-- page.md
|
||||
| +-- story.md
|
||||
+-- server/
|
||||
| +-- endpoint.md
|
||||
| +-- middleware.md
|
||||
| +-- migration.md
|
||||
+-- ops/
|
||||
| +-- deploy.md
|
||||
| +-- rollback.md
|
||||
| +-- monitor.md
|
||||
+-- review.md
|
||||
+-- test.md
|
||||
```
|
||||
|
||||
### Open Source Project
|
||||
|
||||
```
|
||||
.claude/commands/
|
||||
+-- contribute/
|
||||
| +-- setup.md
|
||||
| +-- pr.md
|
||||
| +-- issue.md
|
||||
+-- maintain/
|
||||
| +-- release.md
|
||||
| +-- changelog.md
|
||||
+-- docs/
|
||||
| +-- api.md
|
||||
| +-- readme.md
|
||||
```
|
||||
Reference in New Issue
Block a user