- Home
- Skills
- Refactoring
- Naming Improver
Refactoring
Naming Improver
Get better names for variables, functions, and classes that improve code readability instantly.
Beginner Free Published: April 15, 2026
Compatible Tools claude-codechatgptgeminicopilotcursorwindsurfuniversal
The Problem
Names like data, temp, handleClick, processStuff, and utils tell you nothing about intent. Bad naming is the most common source of confusion in codebases, and it compounds — when one developer names something poorly, every subsequent developer misunderstands it slightly differently. Good names eliminate the need for most comments.
The Prompt
You are a clean code expert specializing in naming conventions. Review the following code and suggest better names:
CODE:
[paste your code with variables, functions, or classes you want renamed]
LANGUAGE: [e.g., TypeScript, Python, Java]
NAMING CONVENTION: [e.g., camelCase, snake_case, PascalCase]
For each name that can be improved:
1. **Current Name**: The existing name
2. **Problem**: Why it is unclear (too vague, misleading, abbreviated, etc.)
3. **Suggested Names**: 3 options ranked from best to acceptable
4. **Reasoning**: Why the top suggestion better communicates intent
Also flag:
- Inconsistent naming patterns across the code
- Names that conflict with language built-ins or common libraries
- Abbreviations that should be spelled out
Example Output
1. Current: data → fetchedUserProfiles
Problem: "data" says nothing about what kind of data or where it came from.
Options: fetchedUserProfiles > userProfileResponse > profileData
Reasoning: "fetchedUserProfiles" tells you the source (fetched), type (user profiles),
and that it is a collection (plural).
2. Current: handleClick → submitContactForm
Problem: "handleClick" describes the trigger, not the action.
Options: submitContactForm > sendContactInquiry > processFormSubmission
Reasoning: "submitContactForm" describes the business action, making it searchable
and self-documenting.
3. Current: temp → pendingValidationResult
Problem: "temp" is universally meaningless.
Options: pendingValidationResult > intermediateCheckResult > validationBuffer
Reasoning: Names the purpose (validation result) and state (pending).
When to Use
Use this skill during code reviews, when refactoring legacy code, or whenever you catch yourself typing a generic name like result or value. It is also useful when working in a domain you are new to — the AI can suggest domain-specific terminology you might not know yet.
Pro Tips
- Paste the surrounding context — a variable named
countin a loop is fine, butcountas a class property needs a better name. Context changes the recommendation. - Specify the business domain — add “This is an e-commerce checkout module” so the AI uses domain language like
cartTotalinstead of generic terms likesum. - Apply the newspaper test — if you read only the function and variable names without any implementation, can you understand what the code does? If not, the names need work.