Domain-Focused Naming

Rename classes and functions to domain-focused identifiers without implementation details.

41|27|Updated Oct 6, 2025
One-click install
npx skills add https://github.com/obra/clank --skill domain-focused-naming-obra
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Domain-Focused Naming
Source: https://github.com/obra/clank/tree/main/skills/coding/naming-by-domain
Command: npx skills add https://github.com/obra/clank --skill domain-focused-naming-obra

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill eliminates confusing code names that expose implementation details or reference historical changes, making codebases harder to understand and maintain.

Core Features & Use Cases

  • Implementation-Free Naming: Remove library names, protocols, and technical details from class and function names.
  • Temporal Context Elimination: Avoid "New", "Improved", "Legacy" and other time-based references.
  • Use Case: When reviewing a class named "ZodValidator", use this Skill to rename it to simply "Validator" - focusing on what it does rather than how it does it.

Quick Start

Review the naming of this function and suggest domain-focused alternatives that describe what it does rather than implementation details.

Frequently Asked Questions about Domain-Focused Naming

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I improve code readability by using better naming conventions?

Domain-focused naming improves readability by describing what code does rather than exposing implementation details. Remove technical specifics like library names, protocols, and pattern references—rename "ZodValidator" to "Validator"—so names reflect business intent and remain stable across refactors.

Why should I avoid implementation details in class and function names?

Implementation-detail names create maintenance debt when underlying technology changes. Names tied to how code works rather than what it does force renames during refactors and obscure intent. Domain-focused names survive implementation swaps and communicate purpose directly to readers.

How do I eliminate temporal references like 'New' and 'Legacy' from code names?

Temporal references like "New", "Improved", and "Legacy" become meaningless over time and clutter codebases with historical context. Replace them with stable, domain-aligned names that describe function or responsibility instead, ensuring names remain relevant across project lifecycles.

When should I refactor names during code review?

Refactor names during review when they expose implementation choices, reference patterns, or contain temporal markers that don't reflect domain meaning. Domain-focused naming prevents confusion, improves maintainability, and makes intent clear to future readers without requiring context about how something was built.

What naming patterns should I avoid across variables, functions, and modules?

Avoid names that leak implementation—library names, protocol references, technical abbreviations—and temporal markers that lose meaning over time. Enforce domain-aligned naming across variables, functions, classes, modules, and APIs so all identifiers describe what code does, not how it achieves it.