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

criteria.jsonevals/scenario-3/

{
  "context": "Tests whether the agent applies Go naming culture, package/API conventions, anti-stutter checks, and compatibility guidance.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Package name",
      "description": "Replaces the generic util package with a short lowercase domain-specific package name.",
      "max_score": 10
    },
    {
      "name": "Export semantics",
      "description": "Uses PascalCase only for exported Go names and camelCase/mixedCaps for unexported names as appropriate.",
      "max_score": 8
    },
    {
      "name": "No self receiver",
      "description": "Replaces this with a short consistent Go receiver name.",
      "max_score": 8
    },
    {
      "name": "Interface naming",
      "description": "Renames the interface without an I prefix and uses an er-style or descriptive interface name appropriate to its methods.",
      "max_score": 10
    },
    {
      "name": "Avoid Get",
      "description": "Renames GetData to a name that reflects parsing/splitting rather than an accessor Get prefix.",
      "max_score": 10
    },
    {
      "name": "Avoid Manager",
      "description": "Addresses the vague DataManager name with a role-specific type name or removes unnecessary type ceremony.",
      "max_score": 8
    },
    {
      "name": "Local names",
      "description": "Replaces s, res, item, str, d, out, and flag with clearer role-based names where their scope warrants it.",
      "max_score": 12
    },
    {
      "name": "Boolean wrapper",
      "description": "Identifies that a boolean parameter such as flag may deserve a clearer name or wrapper function.",
      "max_score": 7
    },
    {
      "name": "No stutter",
      "description": "Avoids redundant package/type/function stutter in proposed public API names.",
      "max_score": 8
    },
    {
      "name": "Domain language",
      "description": "Uses consistent allowlist/token/input terminology in replacements.",
      "max_score": 9
    },
    {
      "name": "Compatibility plan",
      "description": "Mentions deprecation or migration considerations for changing exported Go API names.",
      "max_score": 10
    }
  ]
}

evals

SKILL.md

tile.json