evolutionary-naming

star 57

Use when refactoring code with poor names, when asked to improve naming, or when a user struggles to name a class/method/variable. Symptoms include -Manager/-Util suffixes, single-letter variables, process/handle/do verbs, primitive obsession, god methods with multiple responsibilities. Two modes — audit (broad scan, list opportunities) and improve (walk one specific identifier through the process).

kawasima By kawasima schedule Updated 6/2/2026

name: evolutionary-naming description: Use when refactoring code with poor names, when asked to improve naming, or when a user struggles to name a class/method/variable. Symptoms include -Manager/-Util suffixes, single-letter variables, process/handle/do verbs, primitive obsession, god methods with multiple responsibilities. Two modes — audit (broad scan, list opportunities) and improve (walk one specific identifier through the process). allowed-tools: Read, Grep, Glob

Evolutionary Naming

Overview

Naming is a process, not a single step. Names evolve through 7 progressive steps grouped into 3 phases. Match the depth of work to the user's actual story — don't run the full pipeline every time.

This skill is advisory. It reads code and proposes renames, transitions, and the commit message you'd write for each — it does not edit files or run git. The user applies the changes. Phrase every transition as a proposal, and suggest the commit message they would use, rather than claiming the rename is done.

Based on Arlo Belshee's "Naming as a Process" (CC BY 3.0). Updated edition: digdeeproots.com.

The Three Phases

Phase Steps Nature
Phase 1: Insight → Name Missing → Nonsense → Honest → Honest and Complete Universal. Pure naming. No structural change. Safe to walk continuously.
Phase 2: Name → Structure Honest and Complete → Does the Right Thing Codebase-specific. Requires structural refactoring. Ask permission.
Phase 3: Combine for Design Does the Right Thing → Intent → Domain Abstraction Requires reading call sites and domain context. Ask permission.

Choose Your Mode

This skill operates in two modes. Pick the one that matches the user's request.

User signal Mode File
Specific identifier named ("d を改善", "DocumentManager をどうにか", "this method") improve-mode improve-mode.md
One clear target inside a code block + "リファクタリング" / "改善" improve-mode improve-mode.md
"全体の命名を見直したい", "改善余地ある?", "命名レビュー", "scan", "audit", "リストだけほしい" audit-mode audit-mode.md
Audit followup: "X だけ直して" after audit output improve-mode (target = X) improve-mode.md
Ambiguous (large code paste, no specific target, no "全体" language) Ask the user: "全体を監査しますか、特定の識別子を改善しますか?"

Mode = audit: Read audit-mode.md. Produce a structured table of all naming opportunities. Do not execute changes.

Mode = improve: Read improve-mode.md. Walk one identifier through phase transitions. Pause at phase boundaries.

Both modes share diagnostic criteria, transition mechanics, and red flags from reference.md.

When to Stop

How far to walk depends on the user's depth signal. The canonical signal → stop-at table lives in reference.md ("Depth Signals — How Far to Walk"); both modes read from it.

"You take the minimum steps to get the name to meet your need for the current story." — leaving names incomplete for colleagues to extend is a feature, not a flaw.

Files in This Skill

  • SKILL.md — this file. Router and overview.
  • reference.md — shared 7-step diagnosis table, transitions, red flags, applesauce/probably_/AndStuff guidance.
  • audit-mode.md — exhaustive scan workflow + output template.
  • improve-mode.md — interactive single-target workflow + pause protocol.

Read the mode file you selected, plus reference.md for diagnosis details.

Install via CLI
npx skills add https://github.com/kawasima/evolutionary-naming --skill evolutionary-naming
Repository Details
star Stars 57
call_split Forks 2
navigation Branch main
article Path SKILL.md
More from Creator