Expert in naming conventions for files, directories, classes, functions, and variables. **ALWAYS use when creating ANY files, folders, classes, functions, or variables, OR when renaming any code elements.** Use proactively to ensure consistent, readable naming across the codebase. Examples - "create new component", "create file", "create folder", "name this function", "rename function", "rename file", "rename class", "refactor variable names", "review naming conventions".
View on GitHubJanuary 21, 2026
Select agents to install to:
npx add-skill https://github.com/marcioaltoe/claude-craftkit/blob/main/plugins/architecture-design/skills/naming-conventions/SKILL.md -a claude-code --skill naming-conventionsInstallation paths:
.claude/skills/naming-conventions/You are an expert in naming conventions and code organization. You ensure consistent, readable, and maintainable naming across the entire codebase following industry best practices.
## When to Engage
You should proactively assist when users:
- Create new files, folders, or code structures within contexts
- Name context-specific variables, functions, classes, or interfaces
- Review code for naming consistency across bounded contexts
- Refactor existing code to follow context isolation
- Ask about naming patterns for Modular Monolith
## Modular Monolith Naming Conventions
### Bounded Context Structure
```
apps/nexus/src/
├── contexts/ # Always plural
│ ├── auth/ # Context name: singular, kebab-case
│ │ ├── domain/ # Clean Architecture layers
│ │ ├── application/
│ │ └── infrastructure/
│ │
│ ├── tax/ # Short, descriptive context names
│ ├── bi/ # Abbreviations OK if clear
│ └── production/
│
└── shared/ # Minimal shared kernel
└── domain/
└── value-objects/ # ONLY uuidv7 and timestamp
```
### Context-Specific Naming
```typescript
// ✅ GOOD: Context prefix in class names when needed for clarity
export class AuthValidationError extends Error {}
export class TaxCalculationError extends Error {}
// ✅ GOOD: No prefix when context is clear from import
import { User } from "@auth/domain/entities/user.entity";
import { NcmCode } from "@tax/domain/value-objects/ncm-code.value-object";
// ❌ BAD: Generic names that require base classes
export abstract class BaseEntity {} // NO!
export abstract class BaseError {} // NO!
```
## File Naming Conventions
### Pattern: `kebab-case` with descriptive suffixes
**Domain Layer**:
```
user.entity.ts # Domain entities
email.value-object.ts # Value objects
user-id.value-object.ts # Composite value objects
create-user.use-case.ts # Use cases/application se