CtrlK
BlogDocsLog inGet started
Tessl Logo

evilissimo/naming-things

Reviews and improves **names** in code — variables, functions, classes, modules, parameters — for clarity, intent, and consistency with language/team conventions. Triggers when asked to review names, rename things, improve code readability, clean up confusing code, or when examining code with generic/vague names like "data", "info", "manager", "temp", "util". Does NOT trigger for general code review unrelated to naming, architecture design, debugging, or performance optimization. Identifies naming anti-patterns (generic names, misleading names, type-encoding, abbreviations), suggests role-based names that reveal intent, checks consistency with project/domain vocabulary, and flags misalignment with language culture.

91

1.05x
Quality

90%

Does it follow best practices?

Impact

94%

1.05x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

python.mdreferences/

Python Naming Conventions

Based on PEP 8 — the official Python style guide.

Convention Table

ThingConventionExample
Variablesnake_caseuser_name, total_count
Function / methodsnake_casecalculate_total(), get_user()
ClassPascalCaseCustomerOrder, HttpClient
Modulesnake_caseorder_processing.py
Packagesnake_case (no hyphens)my_package/
ConstantSCREAMING_SNAKE_CASEMAX_RETRY_COUNT, DEFAULT_TIMEOUT
Private (by convention)Prefix __internal_helper()
Name-mangled (class-private)Prefix ____private_method()
"Magic" / dunder__dunder____init__, __str__

Key Points

  • Avoid single-letter names except for: loop counters (i, j, k), coordinates (x, y), mathematical indices (n, m)
  • Don't use Hungarian notation — Python has dynamic types, strName is noise
  • Boolean variables: use is_, has_, can_ prefixes: is_active, has_permission, can_edit
  • Functions should be verbs: save_record(), not record_saving()
  • Classes should be nouns: Customer, not CustomerManagement
  • Exceptions should end in Error unless they're truly exceptional: ValidationError, NotFoundError
  • Avoid names that shadow built-ins: don't name variables list, dict, str, int, file, type, id
  • Double-underscore name mangling (__private) is for subclass safety, not general privacy — prefer single _

Common Offenses

BadGoodReason
val / valsvalue / valuesUnnecessarily abbreviated
dataorders, users, resultsToo generic — what data?
do_stuff()process_payment(), send_email()Hides what it does
tempscratch_dir, buffer, workspaceName by role, not lifespan
handler, manager, controllerPaymentHandler, SessionManager, OrderControllerOK for well-known patterns (keep the role)
lambda x: x[0]give x a meaningful name in the contextDestructuring helps readability

SKILL.md

tile.json