What Could Break
sickn33/agentic-awesome-skills
Find what a change breaks outside its own diff, then prove the one fact that makes it safe by running real code.
Break LLM name defaults with external entropy. An agent skill from jwynia/agent-skills.
$ npx skills add jwynia/agent-skills --skill character-naming -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jwynia/agent-skills character-naming --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/creative/fiction/character/character-naming .claude/skills/character-naming && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "character-naming" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/character-naming into .claude/skills/character-naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "character-naming", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/character-namingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jwynia/agent-skills --skill character-naming -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jwynia/agent-skills character-naming --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/creative/fiction/character/character-naming .agents/skills/character-naming && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "character-naming" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/character-naming into .agents/skills/character-naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "character-naming", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jwynia/agent-skills --skill character-naming -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jwynia/agent-skills character-naming --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/creative/fiction/character/character-naming .cursor/skills/character-naming && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "character-naming" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/character-naming into .cursor/skills/character-naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "character-naming", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jwynia/agent-skills.git --path skills/creative/fiction/character/character-naming--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jwynia/agent-skills --skill character-naming -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jwynia/agent-skills character-naming --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/creative/fiction/character/character-naming .gemini/skills/character-naming && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "character-naming" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/character-naming into .gemini/skills/character-naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "character-naming", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jwynia/agent-skills character-namingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jwynia/agent-skills --skill character-naming -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/creative/fiction/character/character-naming .github/skills/character-naming && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "character-naming" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/character-naming into .github/skills/character-naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "character-naming", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jwynia/agent-skills --skill character-naming -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jwynia/agent-skills character-naming --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jwynia/agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/creative/fiction/character/character-naming .opencode/skills/character-naming && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "character-naming" agent skill from https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/character/character-naming into .opencode/skills/character-naming/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "character-naming", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
character-namingBreak LLM name defaults with external entropy. An agent skill from jwynia/agent-skills.
Character Naming is an agent skill from jwynia/agent-skills. 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.
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 63 other files, including scripts (for example `data/_meta.json`, `data/cultures/anglo-given-female.json` and `data/cultures/anglo-given-male.json`).
The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e02ec7e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/, which the agent can run.
Shell commands in SKILL.md call:
denoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Character Naming loads about 3.6k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 1,531 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from jwynia/agent-skills at commit e02ec7e, republished under its MIT licence (© jwynia). 1,531 words, ~3,559 tokens.
.claude/skills/character-naming/SKILL.md (or your agent's skills folder). This skill also uses 61 other files; get the full folder from GitHub.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.jsonOptions:
--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 suggestProblem: 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 5User: "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 20User: "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 topWhen 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 20For evaluating specific name choices across all four layers (sound, meaning, cultural, functional):
For expanding starter-tier lists to production tier:
© jwynia, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 61 other files (scripts) in skills/creative/fiction/character/character-naming of jwynia/agent-skills.
Open the folder on GitHubat commit e02ec7e
Character Naming next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Character Naming this skilljwynia/agent-skills | 170 | — | ~3.6k | Automated safety check: Pass | MIT | |
| What Could Breaksickn33/agentic-awesome-skills | 47k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Git Branch Namingmakeplane/plane | 61k | — | ~594 | Automated safety check: Pass | AGPL-3.0 | |
| Naming Conventionsthedaviddias/Front-End-Checklist | 74k | — | ~481 | Automated safety check: Pass | MIT | |
| Button Namethedaviddias/Front-End-Checklist | 74k | — | ~488 | Automated safety check: Pass | MIT | |
| Select Namethedaviddias/Front-End-Checklist | 74k | — | ~451 | Automated safety check: Pass | MIT |
sickn33/agentic-awesome-skills
Find what a change breaks outside its own diff, then prove the one fact that makes it safe by running real code.
makeplane/plane
Names a new Git branch with a type prefix, the lowercased work item ID and a short kebab-case description, so the ID can be extracted later from the branch name.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing stylesheets, component styles, and responsive behavior related to Use consistent CSS naming conventions.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing rendered HTML, interactive components, or design-system patterns related to Provide accessible names for buttons.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing rendered HTML, interactive components, or design-system patterns related to Provide accessible names for select elements.
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing content pages for citation quality, suggesting authoritative sources to link for factual claims, or reviewing whether a page's external link attributes…
jwynia/agent-skills
Diagnose devcontainer configuration problems and guide development environment setup.
jwynia/agent-skills
Create distinctive, production-grade frontend interfaces with high design quality.
jwynia/agent-skills
Orchestrate agile development workflows for Gitea repositories using the tea CLI.
jwynia/agent-skills
Generate game assets using AI image generation APIs (DALL-E, Replicate, fal.ai) and prepare them for Godot.
jwynia/agent-skills
Develop AI agents, tools, and workflows with Mastra v1 Beta and Hono servers.
jwynia/agent-skills
Create and manipulate PowerPoint PPTX files programmatically.
Break LLM name defaults with external entropy. An agent skill from jwynia/agent-skills. Character Naming is an agent skill from jwynia/agent-skills. Break LLM name defaults with external entropy.
Character Naming fits situations like: character names cluster around statistical medians (Chen; cast has collision risks; fantasy cultures need phonologically consistent naming.
Run `npx skills add jwynia/agent-skills --skill character-naming -a claude-code`. Or copy the skill folder (skills/creative/fiction/character/character-naming in jwynia/agent-skills) into .claude/skills/character-naming in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jwynia/agent-skills --skill character-naming -a codex`. Or copy the skill folder (skills/creative/fiction/character/character-naming in jwynia/agent-skills) into .agents/skills/character-naming in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jwynia/agent-skills --skill character-naming -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/character-naming, .gemini/skills/character-naming, .github/skills/character-naming and .opencode/skills/character-naming in your project.
Going by SKILL.md and its folder, Character Naming needs the command-line tools its instructions call (deno).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Character Naming is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Character Naming: What Could Break (sickn33/agentic-awesome-skills, 47k stars), Git Branch Naming (makeplane/plane, 61k stars), Naming Conventions (thedaviddias/Front-End-Checklist, 74k stars) and Button Name (thedaviddias/Front-End-Checklist, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jwynia (a GitHub user) maintains it in jwynia/agent-skills, which has 170 GitHub stars. The repository holds 111 skills in this directory. The repository was last updated on February 24, 2026.
Source: jwynia/agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.