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.
What this skill does
# 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. ```bash # 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. ```bash # 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 c
Related in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.