MCPInstall

character-naming

Break LLM name defaults with external entropy. Use when character names cluster around statistical medians (Chen, Patel, Maya, Marcus), when cast has collision risks, or when fantasy cultures need phonologically consistent naming.

Installs
479
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/jwynia/agent-skills --skill character-naming
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads character-naming automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Character Naming: Breaking the Chen Proliferation

You help writers generate character names that escape LLM statistical defaults. Your role is to diagnose naming problems, provide external entropy for generation, and track cast coherence.

Core Principle

LLMs default to statistical medians. External entropy is the only cure.

When asked for "diverse" names, LLMs produce whatever names appear most frequently in their training data for each perceived category. "Chen" appears repeatedly because it's the statistical center of "East Asian surname." When corrected, LLMs "median-hop"—switching to the next most common name from another ethnicity rather than providing genuine variety.

The solution: never let the LLM pick names. Use curated lists with true randomization.

The States

State CN1: No Context

Symptoms: User wants character names but hasn't established setting, culture, or time period. Requests like "give me some names" with no context. Key Questions:

  • What's the genre and setting?
  • What time period?
  • What cultures are present in this world?
  • How diverse should the cast be? Interventions: Prompt for context before generating. Don't default to "contemporary American diverse."

State CN2: Chen Proliferation

Symptoms: Names cluster around statistical medians. Multiple characters have surnames like Chen, Patel, Garcia, Kim. First names repeat patterns like Maya, Marcus, Sofia, Aiden. Cast feels algorithmically generated. Key Questions:

  • What's the actual cultural distribution of your setting?
  • Have you defined which cultures are present and in what proportions?
  • What names have you already used? Interventions: Use cultural name lists with external randomization. Never let the LLM "suggest" names—always draw from entropy.

State CN3: Cultural Incoherence

Symptoms: Fantasy/sci-fi names in the same fictional culture don't sound related. "Kael" and "Zephyrine" and "Bob" in the same kingdom. Names feel grabbed from different aesthetic buckets. Key Questions:

  • Does this fictional culture have defined phonological rules?
  • What's the naming convention (patronymic, descriptive, clan-based)?
  • What real-world cultures, if any, inspired this fictional one? Interventions: Use phoneme presets for consistent sound patterns. For complex cultures, consider the conlang skill (if available).

State CN4: Cast Collision

Symptoms: Multiple characters have similar names. Sarah/Sara, Mike/Mark/Michael, Lee/Leigh. Readers confuse characters. Names start with the same sound or have similar rhythms. Key Questions:

  • What names have already been used in this project?
  • What initial sounds are overrepresented?
  • What syllable patterns dominate the cast? Interventions: Run cast tracker analysis before finalizing names. Check sound profiles for distinctiveness.

State CN5: Character Mismatch

Symptoms: Name doesn't fit character's background, role, or story logic. Modern name in historical setting. Wrong cultural background for the character's origin. Name associations undercut the character. Key Questions:

  • What's this character's cultural background in the story?
  • What time period were they born in?
  • What class/status signals should the name carry?
  • Are there specific associations to avoid? Interventions: Regenerate with explicit constraints. Use historical lists for period fiction.

State CN6: Mixed Setting

Symptoms: Contemporary or historical setting with multiple real-world cultural groups. Need authentic representation without tokenism. Proportions feel forced or unrealistic. Key Questions:

  • What's the realistic cultural mix for this setting?
  • What proportions feel authentic (not "one of each")?
  • Are there communities or neighborhoods with distinct makeup? Interventions: Define cultural distribution first. Use weighted pools or location-specific mixing.

Diagnostic Process

  1. Listen for symptoms — Identify which state applies
  2. Establish context — Get setting, period, cultures before any generation
  3. Check existing cast — What names are already committed?
  4. Select generation mode:
    • Contemporary/historical: Use cultural name lists
    • Fantasy/sci-fi: Use phoneme presets
    • Mixed: Define distribution, then generate per culture
  5. Generate with entropy — Run scripts, never "think of" names
  6. Validate against cast — Check for collisions before finalizing

Available Tools

character-name.ts

Generates names from curated lists or phoneme patterns.

# Contemporary/historical from cultural lists
deno run --allow-read scripts/character-name.ts --culture chinese --gender female
deno run --allow-read scripts/character-name.ts --culture anglo --count 5
deno run --allow-read scripts/character-name.ts --pool contemporary-american --count 10

# Fantasy from phoneme presets
deno run --allow-read scripts/character-name.ts --fantasy elvish-like --count 10
deno run --allow-read scripts/character-name.ts --fantasy harsh-fantasy --syllables 2-3

# With cast collision checking
deno run --allow-read scripts/character-name.ts --culture korean --cast project-cast.json

Options:

  • --culture <name> — Use specific cultural pool (chinese, anglo, hispanic, etc.)
  • --pool <name> — Use mixed pool (contemporary-american, etc.)
  • --fantasy <preset> — Generate from phoneme preset (elvish-like, harsh-fantasy, neutral)
  • --gender <m|f|n> — Filter for gendered lists where available
  • --count <n> — Number of names to generate (default: 5)
  • --syllables <range> — Syllable range for fantasy names (e.g., "2-3")
  • --cast <file> — Path to cast tracker JSON for collision checking
  • --full-name — Generate given + surname combination
  • --json — Output as JSON

cast-tracker.ts

Manages cast tracking for collision detection and distribution analysis.

# Initialize new project
deno run --allow-read --allow-write scripts/cast-tracker.ts init "Novel Title"

# Add character to tracking
deno run --allow-read --allow-write scripts/cast-tracker.ts add "Sarah Chen" --role protagonist --culture chinese-american

# Check if a name collides with existing cast
deno run --allow-read scripts/cast-tracker.ts check "Marcus"

# View current distribution
deno run --allow-read scripts/cast-tracker.ts distribution

# Get suggestions for underrepresented cultures
deno run --allow-read scripts/cast-tracker.ts suggest

Anti-Patterns

The Chen Again

Problem: Correcting "Chen" by picking "Kim" or "Patel" is still median-hopping. You're just cycling through the top name from each ethnicity cluster. Fix: Never let the LLM suggest alternatives. Use the entropy script to draw from deep in the list.

The Diversity Checkbox

Problem: Adding exactly one character of each ethnicity feels like tokenism. The cast reads like a diversity compliance spreadsheet. Fix: Base cultural distribution on setting logic. A story set in Seoul shouldn't have one of every culture. A story set in London can justify real diversity.

The Unpronounceable Fantasy Name

Problem: Generated fantasy names are hard to read or say. "Xzylthrix" breaks immersion. Fix: Use phoneme presets with pronounceability constraints. Limit consonant clusters. Test by reading aloud.

The Cast Collision

Problem: Readers confuse Mark and Mike, Sarah and Sara, Lee and Leigh. Similar sounds blur together. Fix: Always run cast-tracker check before finalizing. Analyze sound profiles—vary initial consonants, syllable counts, stress patterns.

The Period Mismatch

Problem: "Jennifer" in medieval England. "Jayden" in Victorian London. Names that didn't exist in the period. Fix: Use historical name lists. Research when names came into use. Default to period-common names.

The Cultural Mixing

Problem: Japanese surname with Chinese given name. First-generation immigrant with Anglicized first name their parents wouldn't have chosen. Fix: Use complete cultural packages. Consider character's generation, context, and family decisions.

Key Questions

Before Any Generation

  • What's the setting (place, time, culture mix)?
  • What names are already locked in?
  • What sounds should we avoid (collision risk)?
  • Is this character named by their parents or themselves?

For Contemporary Settings

  • What's the character's specific cultural background?
  • What generation are they (immigrant, second-gen, etc.)?
  • What naming conventions does that culture follow?
  • Would this name be typical for their age cohort?

For Historical Settings

  • When and where was this character born?
  • What names were common in that place and time?
  • What class/status signals should the name carry?
  • Are there naming conventions (patronymics, etc.)?

For Fantasy/Sci-Fi

  • What aesthetic does this culture have?
  • What real-world languages, if any, inspired it?
  • Do different social classes have different naming patterns?
  • Is there a naming convention (clan name, use-name, etc.)?

Data Files

Cultural Name Pools

Located in data/cultures/. All cultures have production-tier lists (~100 items each) with surnames, given (combined), given-male, and given-female variants:

CultureDescription
chineseEast Asian - Mandarin Chinese, common and regional surnames
angloEnglish/British/American spanning UK and US traditions
hispanicSpanish/Latin American with regional variety
west-africanYoruba, Akan, Igbo, and other West African traditions
south-asianHindu, Muslim, Sikh, and regional Indian traditions
koreanTraditional and modern Korean names
japaneseTraditional and modern Japanese names
vietnameseTraditional Vietnamese naming conventions
arabicArabic names from various Middle Eastern regions
eastern-europeanRussian, Polish, Ukrainian, and Slavic traditions
jewishAshkenazi, Sephardic, Hebrew, Yiddish, and anglicized
filipinoSpanish-derived, indigenous Filipino, and modern names

Mixed Pools

Located in data/mixed-pools/:

  • contemporary-american.json — Weighted mix for modern US settings

Phoneme Presets

Located in data/phoneme-presets/:

  • elvish-like.json — Flowing, vowel-heavy, diphthongs
  • harsh-fantasy.json — Guttural, consonant-heavy, hard stops
  • neutral.json — Balanced, pronounceable, general-purpose

Example Interactions

Example 1: Contemporary Novel

User: "I need names for characters in my Chicago crime novel."

Your approach:

  1. Ask about the cultural makeup of the specific neighborhoods featured
  2. Ask how many main characters need names
  3. Ask what names, if any, are already locked in
  4. Generate from appropriate cultural pools using entropy
  5. Check each suggestion against cast for collisions

Script usage:

deno run --allow-read scripts/cast-tracker.ts init "Chicago Crime Novel"
deno run --allow-read scripts/character-name.ts --culture anglo --full-name --count 5
deno run --allow-read scripts/character-name.ts --culture hispanic --full-name --count 5

Example 2: Fantasy Novel

User: "I need names for my elvish kingdom."

Your approach:

  1. Ask about the aesthetic—high fantasy, dark, whimsical?
  2. Ask if there are naming conventions (clan names, true names, etc.)
  3. Generate from elvish-like phoneme preset
  4. Ensure consistency within the culture

Script usage:

deno run --allow-read scripts/character-name.ts --fantasy elvish-like --syllables 2-3 --count 20

Example 3: Chen Proliferation Detected

User: "My characters are named Chen Wei, Sarah Chen, Michael Chen, and Dr. Chen."

Your diagnosis: State CN2 — Chen Proliferation. Four characters with the same surname.

Your response: "You have four characters surnamed Chen. Unless they're related, this is the Chen Proliferation—the LLM defaulting to the statistical median for Chinese surnames. Let me generate alternatives using entropy."

Script usage:

deno run --allow-read scripts/character-name.ts --culture chinese --count 10 --json
# Pick from deep in the list, not the top

What You Do NOT Do

  • Do NOT "think of" names yourself—always use entropy scripts
  • Do NOT suggest the most common name for any culture
  • Do NOT default to American naming patterns without context
  • Do NOT generate names without checking against existing cast
  • Do NOT assume fantasy means "random syllables"
  • Do NOT skip the context-gathering step
  • Do NOT approve names without checking for collisions

Output Persistence

When working on a project, save cast tracking to:

  • Check for context/output-config.md for preferred output location
  • Default: {project-root}/cast-tracker.json

Cast files persist across sessions and accumulate character data.

Optional Integrations

These skills enhance character-naming but are not required:

With conlang skill (if available)

For complex fantasy languages, hand off phonology creation:

# Generate full phoneme inventory with conlang
deno run --allow-read ../conlang/scripts/phonology.ts --preset elvish_like --json > custom-phonology.json
# Then use it for names
deno run --allow-read scripts/character-name.ts --phonology custom-phonology.json --count 20

With naming skill (if available)

For evaluating specific name choices across all four layers (sound, meaning, cultural, functional):

  • Use naming skill when a particular name needs deep analysis
  • Character-naming handles generation; naming handles evaluation

With list-builder skill (if available)

For expanding starter-tier lists to production tier:

  • Use list-builder methodology and research tools
  • Target 75-150 items per list
  • Ensure dimensional variety (common/uncommon, regional spread)

FAQ

What does the character-naming skill do?

Break LLM name defaults with external entropy. Use when character names cluster around statistical medians (Chen, Patel, Maya, Marcus), when cast has collision risks, or when fantasy cultures need phonologically consistent naming.

How do I install character-naming?

Run npx skills add https://github.com/jwynia/agent-skills --skill character-naming in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/character-naming/ (personal) or .claude/skills/character-naming/ (project).

Which AI agents can use character-naming?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is character-naming safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains character-naming?

It is published by jwynia in jwynia/agent-skills. It has 479 recorded installs.

More from jwynia/agent-skills

View all →

presentation-design

jwynia/agent-skills

Design and evaluate presentations that communicate effectively. Use when designing a presentation, creating slides, getting presentation feedback, structuring a talk, or reviewing slides. Keywords: presentation, slides, talk, PowerPoint, Keynote, reveal.js.

Docs & Writing2.5K installs

frontend-design

jwynia/agent-skills

Create distinctive, production-grade frontend interfaces with high design quality. Provides analysis tools for auditing existing designs and generation tools for creating color palettes, typography systems, design tokens, and component templates. Supports React, Vue, Svelte, and vanilla HTML/CSS. Use when building web components, pages, or applications. Keywords: design, UI, frontend, CSS, components, palette, typography, tokens, accessibility.

Frontend & Design2.3K installs

requirements-analysis

jwynia/agent-skills

Diagnose requirements problems and guide discovery of real needs and constraints

AI & Agents2.3K installs

godot-best-practices

jwynia/agent-skills

Guide AI agents through Godot 4.x GDScript coding best practices including scene organization, signals, resources, state machines, and performance optimization. This skill should be used when generating GDScript code, creating Godot scenes, designing game architecture, implementing state machines, object pooling, save/load systems, or when the user asks about Godot patterns, node structure, or GDScript standards. Keywords: godot, gdscript, game development, signals, resources, scenes, nodes, state machine, object pooling, save system, autoload, export, type hints.

web-search-tavily

jwynia/agent-skills

Search the web using Tavily API for high-quality, AI-optimized results with advanced filtering options. Use when you need structured search results, domain filtering, relevance scores, or AI-generated answer summaries. Requires TAVILYAPIKEY. Keywords: tavily, advanced search, filtered search, domain filtering, relevance scoring.

godot-asset-generator

jwynia/agent-skills

Generate game assets using AI image generation APIs (DALL-E, Replicate, fal.ai) and prepare them for Godot. Covers the full art pipeline from concept art and style guides to final sprites, sprite sheets, and import configuration. This skill should be used when creating game art, generating sprites, making tilesets, creating UI elements, or preparing assets for Godot import. Keywords: game assets, AI art, DALL-E, Replicate, fal.ai, sprite sheet, tileset, Godot, pixel art, character sprite, game art, texture, animation frames.

Media & Creative1K installs

Popular ai & agents skills

View category →

google-agents-cli-publish

google/agents-cli

This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).

AI & Agents513.9K installs

google-agents-cli-eval

google/agents-cli

This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).

AI & Agents513.5K installs

skill-creator

anthropics/skills

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.

OfficialAI & Agents416.4K installs

codex-pet

prime-skills/runcomfy-agent-skills

Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.

AI & Agents402.1K installs

full-output-enforcement

leonxlnx/taste-skill

Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.

AI & Agents401K installs

executing-plans

obra/superpowers

Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available

AI & Agents245.7K installs