xiaohongshu
xiaohongshu
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.
Full skill instructions
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.
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.
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:
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:
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:
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:
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:
Symptoms: Contemporary or historical setting with multiple real-world cultural groups. Need authentic representation without tokenism. Proportions feel forced or unrealistic. Key Questions:
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 JSONManages 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
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.
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.
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.
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.
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.
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.
Located in data/cultures/. All cultures have production-tier lists (~100 items each) with surnames, given (combined), given-male, and given-female variants:
| Culture | Description |
|---|---|
chinese | East Asian - Mandarin Chinese, common and regional surnames |
anglo | English/British/American spanning UK and US traditions |
hispanic | Spanish/Latin American with regional variety |
west-african | Yoruba, Akan, Igbo, and other West African traditions |
south-asian | Hindu, Muslim, Sikh, and regional Indian traditions |
korean | Traditional and modern Korean names |
japanese | Traditional and modern Japanese names |
vietnamese | Traditional Vietnamese naming conventions |
arabic | Arabic names from various Middle Eastern regions |
eastern-european | Russian, Polish, Ukrainian, and Slavic traditions |
jewish | Ashkenazi, Sephardic, Hebrew, Yiddish, and anglicized |
filipino | Spanish-derived, indigenous Filipino, and modern names |
Located in data/mixed-pools/:
contemporary-american.json — Weighted mix for modern US settingsLocated in data/phoneme-presets/:
elvish-like.json — Flowing, vowel-heavy, diphthongsharsh-fantasy.json — Guttural, consonant-heavy, hard stopsneutral.json — Balanced, pronounceable, general-purposeUser: "I need names for characters in my Chicago crime novel."
Your approach:
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
User: "I need names for my elvish kingdom."
Your approach:
Script usage:
deno run --allow-read scripts/character-name.ts --fantasy elvish-like --syllables 2-3 --count 20
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
When working on a project, save cast tracking to:
context/output-config.md for preferred output location{project-root}/cast-tracker.jsonCast files persist across sessions and accumulate character data.
These skills enhance character-naming but are not required:
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
For evaluating specific name choices across all four layers (sound, meaning, cultural, functional):
For expanding starter-tier lists to production tier:
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience