Naming things
Systematic methodology for naming projects, products, tools, skills, features, companies, bands, or anything else that needs a name. Based on the Phil Karlton principle that naming things is one of the two hardest problems. Use this skill when the user asks to name something, brainstorm names, pick a name, evaluate name candidates, rename something, or when they're stuck choosing between options. Also trigger when the user says things like "what should I call this," "I need a name for," "help me name," "this needs a better name," or "I hate this name." Works for technical names (APIs, skills, repos), creative names (brands, projects, albums), and everything in between. Also useful for naming variables, functions, teams, events, newsletters, podcasts, pets, or anything where the label matters.From its SKILL.md
npx -y skills add davidmashburn/naming-things-skill --skill naming-thingsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
12.0 KB, ~2.7k tokens by cl100k_base, as published. Nobody here has run it
Naming Things
"There are only two hard things in Computer Science: cache invalidation and naming things." — Phil Karlton
What This Skill Does
Provides a structured, iterative process for generating, scoring, and selecting names. Treats naming as a design problem, not a creative lightning bolt. The process is:
- Define what the name needs to do (the brief)
- Generate candidates in bulk (quantity over quality, initially)
- Score every candidate against a custom rubric
- Cut the bottom half
- Run connotation search on survivors (unintended meanings, clashes, associations)
- Generate more candidates informed by what scored well
- Repeat until convergence
- Stress test the winner
Important: Anti-Sycophancy
Read references/scoring-ethics.md before scoring ANY user-submitted candidate.
The core rule: apply the same rubric to the user's ideas as to your own.
If you would strike through your own version, strike through theirs.
Honest scoring is the service. Flattery is the failure mode.
Step 1: The Brief
Before generating anything, establish the naming constraints. Ask the user (or infer from context) these questions:
Required:
- What is the thing? (one sentence)
- Who is the audience? (developers, consumers, internal team, general public)
- What tone? (playful, professional, technical, poetic, irreverent, neutral)
Optional but useful:
- Are there names you already like? (establishes aesthetic direction)
- Are there names you hate? (establishes boundaries)
- Must it be a real word, or can it be coined/portmanteau/mashup?
- Any length constraints? (CLI tools need short names; products can be longer)
- Does it need to work as a URL/filename/package name?
- Is there a domain or metaphor world to draw from? (nautical, mining, cooking, etc.)
- What languages/cultures will encounter this name?
- Will the name appear in a logo, UI, CLI, conversation, or all of the above?
Capture the answers. These become the scoring rubric dimensions.
Step 2: Build the Rubric
Every naming project gets a custom rubric. The dimensions depend on the brief. Here is the starter template — adapt it to the specific project:
Positive Dimensions (score 0 to max)
| Dimension | Typical Max | What It Measures |
|---|---|---|
| Clarity | 3 | Can you guess what it does / is from the name alone? |
| Memorability | 3 | Will you remember it tomorrow without looking it up? |
| Tone fit | 2 | Does it match the requested tone? |
| Distinctiveness | 2 | Would you confuse it with something else that exists? |
| Domain resonance | 2 | Does it connect to the subject's world? |
Negative Dimensions (score 0 to -max)
| Dimension | Typical Min | What It Measures |
|---|---|---|
| Cringe | -3 | Does it try too hard? Bumper sticker energy? |
| Inappropriate | -3 | Unintended meanings? Cultural landmines? Double entendres? |
| Overused | -2 | Is this name already taken / a cliché? |
Custom Dimensions
Add dimensions specific to the project. Examples by category:
Technical tools (CLIs, APIs, libraries):
- Greppability (0-2): Is it unique enough to search for?
- Typeability (0-2): Can you type it without looking it up? No camelCase traps?
- Namespace-safe (0-1): Does it collide with existing packages on npm/PyPI/crates?
Consumer products (apps, brands, companies):
- Speakability (0-2): Can you say it on a podcast without spelling it?
- Logo-ability (0-2): Can you visualize a mark or icon for it?
- URL-able (0-1): Is the .com available or affordable?
Creative projects (albums, books, games, events):
- Intrigue (0-2): Does it make you want to know more?
- Resonance (0-2): Does it evoke the right feeling?
- Shelf test (0-1): Would you pick it up in a bookstore based on title alone?
Internal naming (teams, features, projects):
- Self-documenting (0-3): Does the name explain itself to new hires?
- Acronym-safe (0-1): Does the abbreviation spell something unfortunate?
- Extendability (0-2): Can sub-features/sub-teams use the same naming scheme?
Present the rubric to the user before scoring. Let them adjust dimensions and weights. The rubric is a design decision, not a given.
Step 3: Generate Candidates (Round 1)
Generate a first-round set sized to the brief. Use 12-20 candidates for a
focused rename, and 30+ candidates for a broad brand or product brainstorm.
Use the strategies in references/strategy-guide.md. The eight strategies are:
- Literal — Direct description ("File Finder," "Syntax Checker")
- Metaphor — Borrow from adjacent domain ("Lighthouse," "Anvil," "Loom")
- Reference — Cultural/literary/scientific allusion ("Rosetta," "Babel")
- Portmanteau — Blend two words ("Brunch," "Twilio"). Flag for cringe.
- Reclamation — Recontextualize a common word ("Notion," "Rust," "Slack")
- Compound fracture — Re-parse a compound ("Pivot Table," "Fault Line")
- Sound-first — Phonetics before semantics ("Stripe," "Vercel")
- Negation/inversion — Name what it isn't ("Unsplash," "Neverinstall")
Don't self-edit during generation. Get enough volume first. Bad ideas in round 1 inform good ideas in round 2.
Step 4: Score Everything
Score every candidate, including user submissions, against the rubric. Calculate gross (sum of positives) and net (gross + negatives).
Present as a table. If the host supports richer UI, include:
- All dimension scores (color-coded: green for high, red for low)
- Gross and net totals
- Hover/tooltip notes explaining the score rationale
- Sorting by any column
- Filtering by minimum net score
If the host is plain chat, keep the same information in a static table or compact bullets rather than pretending interactive controls exist.
Cut the bottom half. Show what was cut and why.
Step 5: Connotation Search
This step is critical and must not be skipped. Before advancing survivors,
systematically check each one for unintended meanings, name clashes, and
cultural risks. Read references/connotation-search.md for the full procedure.
5a: Name Collision Search
For each surviving name, search:
"[name]"— Is it already a product, company, band, project?"[name]" [your domain]— Collision in the same space?"[name]" site:github.com/site:npmjs.com/site:pypi.org/ relevant package registries — Taken in ecosystem registries?"[name]" trademark— Registered or well-known marks?[name].com— Domain availability or obvious collision.
If a name collides with something well-known in the same domain, it's disqualified unless the user explicitly accepts the collision. Record in a new Collision column (0 = clear, -1 = minor overlap, -2 = same domain, -3 = famous/trademarked).
5b: Unintended Meaning Audit
For each survivor, systematically check:
- Phonetic neighbors: What does it sound like said fast? What rhymes?
- Abbreviation/acronym: What do the initials spell?
- Substring scan: Does it contain an embedded word you didn't intend? ("Therapist" → "the rapist." "Pen Island" → penisland.)
- Slang check: Search
[name] urban dictionaryand[name] slang. - Cross-language check: Search
[name] meaningin major languages relevant to the audience (Spanish, French, German, Mandarin, Japanese, Arabic, Hindi at minimum for global products). - Visual parsing: Write it in ALL CAPS, camelCase, lowercase, and URL form. Does it parse differently? (MEGAFLICKS, megaFlicks, megaflicks.com)
- Historical check: Was this name associated with something notorious?
- Generational gap: Would a 20-year-old and a 60-year-old read it the same way?
5c: Positive Connotation Discovery
Connotation search isn't only defensive. It can also surface good associations you didn't plan — etymologies, cultural resonances, visual metaphors. Record these. They may become part of the name's story.
5d: Update Scores
After connotation search, update the scoring table:
- Add Collision column if any clashes were found
- Revise Inappropriate scores based on new associations
- Add notes explaining what was found
- Disqualify names with fatal collisions or meanings
- Names that survive clean get a trust mark in the table
Step 6: Generate Round 2
After scoring and connotation-checking round 1, analyze:
- Which strategies produced the highest-scoring names?
- Which dimensions are hardest to satisfy simultaneously?
- What does the top cluster have in common?
- What connotation risks appeared? (Avoid similar patterns in round 2.)
Generate a second round sized to what you learned from round 1. For focused briefs, 10-15 more candidates is enough; for broad brand searches, go up to 30 if the first round did not already produce strong options. Bias toward strategies and patterns that worked. If the shortlist is already strong, stop instead of forcing a second round. Score, cut bottom half, run connotation search on new survivors. Merge all survivors.
Step 7: The Final Table
Present a combined leaderboard of all survivors across all rounds. Offer views:
- Top 10: The shortlist
- All survivors: Everything above the cut line
- By round: See what each generation produced
- Sort by any dimension: Surface hidden gems
- Connotation-clean only: Filter to names with zero connotation issues
Step 8: Discuss and Decide
The table doesn't make the decision — the user does. But the table gives them structured information instead of vibes. Common discussion moves:
- "I like X's score but Y's feel — can we combine them?"
- "Everything scores low on [dimension] — should we drop that dimension?"
- "The top 3 are tied — what breaks the tie?"
- "Go deeper on [metaphor world] — 15 more from that vein"
- "Run deeper connotation search on just the top 3"
- "I want to test [specific name] — what does it mean in Portuguese?"
Support all of these. The process is iterative.
Step 9: Stress Test the Winner
Before finalizing, run the winner through:
-
Say it out loud. Say it fast three times. Say "Have you tried [name]?" Say "I work on [name]." Say "[name] is down." All comfortable?
-
The explain test. Can you explain why it's called that in one sentence? If the backstory requires a paragraph, the name might be too clever.
-
The Monday morning test. Imagine typing this name every day for a year. In your terminal, your Slack, your git log. Still like it?
-
The meeting test. "Let's discuss the [name] rollout." Does it sound right in a room of executives? In a standup? In a customer call?
-
The new hire test. Someone joins in 6 months and sees this name in a directory. Do they have any idea what it is without a glossary?
-
Final connotation sweep. Run Step 5 one more time, more aggressively. More languages, social media handles, trademark databases. Try to break it. If you can't break it, it's ready.
Reference Files
references/scoring-ethics.md— Anti-sycophancy rules for scoring user candidatesreferences/strategy-guide.md— Detailed guide to each generation strategy with examplesreferences/connotation-search.md— Full connotation search procedure with checklist
What ships with it: 3 files
17.0 KB alongside SKILL.md
references/
- connotation-search.md6.8 KB
- scoring-ethics.md2.1 KB
- strategy-guide.md8.2 KB