agentskills.codes
AU

Variable and function naming discipline: domain vocabulary over generic words, verb semantics, scope-proportional length, and the specific naming anti-patterns Claude defaults to. Corrects generic names, naming bankruptcy words, and inconsistent verb prefixes. Use when writing new code, naming varia

Install

mkdir -p .claude/skills/auto-naming && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16975" && unzip -o skill.zip -d .claude/skills/auto-naming && rm skill.zip

Installs to .claude/skills/auto-naming

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Variable and function naming discipline: domain vocabulary over generic words, verb semantics, scope-proportional length, and the specific naming anti-patterns Claude defaults to. Corrects generic names, naming bankruptcy words, and inconsistent verb prefixes. Use when writing new code, naming variables/functions/types, or reviewing naming quality. Triggers: naming, name, rename, variable name, function name, refactor names, naming convention, domain language, ubiquitous language.
485 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)

About this skill

Naming — What Claude Gets Wrong

Your names are acceptable but rarely great. You default to naming things by their structural role (result, data, response) instead of their domain meaning. This skill fixes that.

The Core Rule

Name by what it IS in the domain, not what it IS in the code.

// You write:
let result = db.query(...).await?;
let data = response.json().await?;
let items = fetch_all().await?;

// Senior writes:
let sentinel_reports = db.query(...).await?;
let price_history = response.json().await?;
let pending_alerts = fetch_all().await?;

Generic Names You Default To — Stop Using These

GenericName by domain meaning instead
resultconsensus_outcome, parsed_config, matched_users
datasentinel_report, price_candle, whale_transfer
responseuser_profile, alert_details (name by content, not transport)
items / listpending_jobs, active_sentinels, failed_evaluations
value / valthreshold, confidence_score, strike_price
temp / tmpName what it temporarily holds: unsorted_scores
input / outputraw_html / parsed_tokens
infoMerge into the noun: UserInfoUser or UserProfile

Function Verb Semantics

Each verb implies different things about performance, side effects, and failure modes. Use the right one.

VerbImpliesFailure
getCheap accessor, O(1), possibly cachedInfallible or panics
fetchRemote/external source, I/O, networkReturns Result, can fail
findSearches a collection, absence is normalReturns Option
loadReads from storage, deserializesReturns Result
queryStructured lookup (SQL, API)Returns collection
compute / calculateDerives via computation, no I/OUsually infallible
build / createConstructs a new instanceReturns the new thing
parseText/bytes → structured dataReturns Result
resolveAmbiguous reference → concrete valueCan fail
ensureIdempotent guarantee (create if missing)Usually infallible
validateChecks correctness, no mutationReturns bool or Result
emit / send / dispatchPushes data outwardFire-and-forget or Result

Your specific failure: You use get, fetch, load, and retrieve interchangeably. get_user_from_database() should be fetch_user(). fetch_name() for a field accessor should be name() or get_name().

Scope-Proportional Length

Variables: Longer names for wider scopes.

  • Loop body: i, u, e — fine
  • Single function: user, count, path — fine
  • Module/struct field: active_subscription_count, unprocessed_reports — fully specific

Functions: Shorter names for wider scopes (inverse).

  • Public API: push, send, save, close
  • Private helper: normalize_whale_alert_timestamp, calculate_weighted_consensus_score

Boolean Naming

Always phrase as a yes/no question that reads naturally in if:

PrefixSemanticsExample
is_Current stateis_active, is_connected
has_Possessionhas_permission, has_children
can_Capabilitycan_edit, can_retry
should_Policy/recommendationshould_notify, should_escalate
needs_Requirementneeds_review, needs_migration

Always positive form. is_valid not is_not_valid. Negating a negative (!is_not_valid) is cognitive poison.

For function params: include_archived: bool reads better than is_archived: bool — name by what the caller is choosing.

Naming Bankruptcy Words — Never Use These for Classes/Modules

Manager, Handler, Processor, Service, Helper, Utils, Data, Info, Base, Common, Core, Engine, System

These words mean nothing. Name by what the thing actually does:

  • UserManagerUserRepository, UserAuthenticator, UserRegistration
  • DataProcessorSentinelReportAggregator, WhaleAlertNormalizer
  • Utils → Break into specific modules: formatting, validation, parsing

Collection and Map Naming

  • Plural for collections: users, reports, alerts
  • Qualified when filtered: active_users, pending_alerts
  • Maps by key-to-value: price_by_symbol, reports_by_sentinel
  • Never: map, dict, lookup, cache as the full name

Domain Vocabulary

When a codebase has established terms, use them. Don't introduce synonyms.

  • If the codebase says sentinel, don't write crawler
  • If it says debate, don't write analysis
  • If it says alert, don't write notification

Grep the codebase for existing terminology before naming new things.

Naming Reveals Design Problems

If you can't name it, the design is wrong:

  • Can't name without "And"? It does too much — split it
  • Need "Manager"? Unclear responsibility — narrow the scope
  • Two things with similar names? (UserData / UserInfo) Duplicated concept — merge or differentiate
  • Named by implementation? (string_array, filtered_list) Name by meaning: tags, active_subscriptions

Don't Encode Types in Names

# You write:          # Senior writes:
user_dict = ...       user = ...
config_map = ...      config = ...
name_str = ...        name = ...
items_list = ...      items = ...

The type system handles types. Names handle meaning.

Search skills

Search the agent skills registry