AgentSkillsCN

expand-name-mappings

指导 muslimname 中非穆斯林姓名映射的扩展工作。适用于为各国、各地区或各语言添加新姓名;按文化背景查询热门姓名;或对姓名映射、分类体系及语言文字进行校验与完善。

SKILL.md
--- frontmatter
name: expand-name-mappings
description: Guides expansion of non-Muslim name mappings in muslimname. Use when adding names for countries, regions, or languages; looking up popular names by culture; or validating name mappings, categories, and language scripts.

Expand Name Mappings

When to Use

  • Adding names for a new country or language
  • Looking up popular names by region/culture
  • Checking language, script, or category for a name
  • Validating mappings before commit

Quick Workflow

  1. Identify target — Which language/region? (e.g. Polish, Greek, Dutch)
  2. Look up names — Use docs/NAME_LOOKUP_GUIDE.md and Wikipedia "List of most popular given names"
  3. Pick category — Use reference.md for language → category mapping
  4. Add mappings — Follow format in src/data/nameMapping.ts, avoid duplicate keys
  5. Validate — Run npm run build, check slugs exist

Key Files

  • Mappings: src/data/nameMapping.tschristianToMuslimNameMapping, categories, westernNameVariants, chineseCharToPinyin
  • Slugs: src/data/names.tsnamesDatabase, findNameBySlug
  • Aliases: src/data/slugAliases.ts
  • Guide: docs/NAME_LOOKUP_GUIDE.md
  • UI: src/pages/WesternNamesPage.tsx — add new categories to filter/stats if adding a language group

Entry Format

ts
"keyname": {
  muslimNames: ["slug1", "slug2"],
  meaning: "Original meaning",
  connection: "Bridge to Islamic tradition",
  originalScript?: "字",  // CJK only
  category: "language-male" | "language-female"
}
  • Keys: lowercase, no diacritics (normalize José → jose)
  • No duplicate keys in the object
  • Prefer muslimNames slugs that exist in namesDatabase

Language & Script Checks

LanguageKey formatScript / notes
ChinesePinyin (wei, ming)Add originalScript and chineseCharToPinyin entry
KoreanRomanized, no hyphen (minjun not min-jun)
JapaneseRomanized (hiroshi, sakura)
Portuguese/SpanishAdd diacritic variant if common (joão, josé)normalizeDiacritics handles lookup
RussianTransliteration (aleksandr, dmitry)
HebrewUse hebrewOrigin if biblical

New Language Group

  1. Add category to NameMappingCategory in nameMapping.ts
  2. Add names with new category
  3. Add category to WesternNamesPage.tsx categories array and stats
  4. Add badge emoji in Badge replace chain if desired

Validation

  • npm run build — must pass, no duplicate key errors
  • findNameBySlug(slug) — muslimNames should resolve where possible
  • New categories must exist in NameMappingCategory type