character-naming
LLMが生成しがちな統計的に平凡な名前(Chen、Patel、Maya、Marcusなど)からの脱却に使用する。キャスト内で名前が重複・衝突するリスクがある場合や、ファンタジー世界の文化に合った音韻的に一貫した名前が必要な場合に、外部エントロピーを活用してキャラクター名を生成する。
description の原文を見る
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.
SKILL.md 本文
キャラクター命名:Chen増殖問題からの脱却
あなたは、執筆者がLLMの統計的デフォルトから脱却したキャラクター名を生成するのを支援します。命名問題の診断、生成用の外部エントロピーの提供、キャスト一貫性の追跡が役割です。
基本原則
LLMは統計的中央値にデフォルト化する。外部エントロピーだけが唯一の解決策だ。
「多様性のある」名前をLLMにリクエストすると、LLMは訓練データに最頻出するそれぞれのカテゴリの名前を生成します。「Chen」が繰り返されるのは、それが「東アジア系の姓」の統計的中心だからです。修正されると、LLMは「中央値ホップ」を行う—真の多様性を提供するのではなく、別の民族グループから次に一般的な名前に切り替えるだけです。
解決策:LLMに名前を選ばせない。真のランダム化を備えた厳選されたリストを使用します。
状態
状態 CN1:コンテキスト不足
症状: ユーザーはキャラクター名を必要としていますが、設定、文化、時代を確立していません。「名前をいくつかくれ」といったコンテキストなしのリクエスト。 重要な質問:
- ジャンルと設定は何か?
- 時代は?
- この世界にどのような文化が存在するか?
- キャストはどの程度多様であるべきか? 介入方法: 生成する前にコンテキストをプロンプトします。「現代アメリカ系多様性」にデフォルト化しない。
状態 CN2:Chen増殖
症状: 名前が統計的中央値の周りに集約されます。複数のキャラクターがChen、Patel、Garcia、Kimのような姓を持っています。ファーストネームはMaya、Marcus、Sofia、Aidenのようなパターンを繰り返します。キャスト全体がアルゴリズム的に生成された感じです。 重要な質問:
- あなたの設定の実際の文化分布は何か?
- どの文化が存在し、どの程度の割合か定義しているか?
- すでに使用した名前は何か? 介入方法: 外部ランダム化を伴う文化名リストを使用します。LLMに名前を「提案」させない—常にエントロピーから引き出します。
状態 CN3:文化的不一貫性
症状: 同じ架空の文化内のファンタジー/SF名が関連性がないように聞こえます。同じ王国内に「Kael」「Zephyrine」「Bob」があります。名前は異なる審美的バケットから掴まれたように感じます。 重要な質問:
- この架空の文化に定義された音韻規則があるか?
- 命名規則は何か(父称法、記述的、氏族ベース)?
- この架空の文化に影響を与えた現実世界の文化は? 介入方法: 一貫した音パターンのために音素プリセットを使用します。複雑な文化の場合、conlangスキル(利用可能な場合)を検討してください。
状態 CN4:キャスト衝突
症状: 複数のキャラクターが似たような名前を持っています。Sarah/Sara、Mike/Mark/Michael、Lee/Leigh。読者はキャラクターを混同します。名前は同じ音で始まるか、似たようなリズムを持っています。 重要な質問:
- このプロジェクトですでに使用した名前は何か?
- どの初期音が過剰表現されているか?
- キャスト全体でどの音節パターンが支配的か? 介入方法: 名前を最終化する前にキャスト追跡分析を実行します。独別性について音プロファイルを確認します。
状態 CN5:キャラクター不一致
症状: 名前がキャラクターの背景、役割、ストーリー論理に適合しません。歴史的設定内の現代名。キャラクターの起源の間違った文化的背景。名前の関連性がキャラクターを損ないます。 重要な質問:
- このキャラクターの物語内の文化的背景は何か?
- どの時代に生まれたか?
- 名前がどのような階級/ステータス信号を運ぶべきか?
- 避けるべき特定の関連性があるか? 介入方法: 明示的な制約で再生成します。時代小説には歴史的リストを使用します。
状態 CN6:混合設定
症状: 複数の現実世界の文化グループを含む現代または歴史的設定。本物の表現が必要ですが、トークニズムなしで。割合が強制的または非現実的に感じます。 重要な質問:
- この設定の現実的な文化混合は何か?
- どの割合が本物に感じるか(「1つずつ」ではなく)?
- 異なる構成を持つコミュニティまたは近所があるか? 介入方法: 最初に文化分布を定義します。重み付けられたプールまたは場所別混合を使用します。
診断プロセス
- 症状を聞く — どの状態が適用されるかを特定
- コンテキストを確立 — 生成前に設定、時代、文化を取得
- 既存キャストを確認 — すでに確定した名前は何か?
- 生成モードを選択:
- 現代/歴史的:文化名リストを使用
- ファンタジー/SF:音素プリセットを使用
- 混合:分布を定義し、文化ごとに生成
- エントロピーで生成 — スクリプトを実行、名前を「思いつく」ことはしない
- キャストに対して検証 — 最終化前に衝突を確認
利用可能なツール
character-name.ts
厳選されたリストまたは音素パターンから名前を生成します。
# コンテキスト/歴史的:文化リストから
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
# ファンタジー:音素プリセットから
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
# キャスト衝突チェック付き
deno run --allow-read scripts/character-name.ts --culture korean --cast project-cast.json
オプション:
--culture <name>— 特定の文化プール(chinese、anglo、hispanicなど)を使用--pool <name>— 混合プール(contemporary-americanなど)を使用--fantasy <preset>— 音素プリセットから生成(elvish-like、harsh-fantasyなど)--gender <m|f|n>— 利用可能な場合、性別リストでフィルタ--count <n>— 生成する名前の数(デフォルト:5)--syllables <range>— ファンタジー名の音節範囲(例:「2-3」)--cast <file>— 衝突チェック用キャスト追跡JSONへのパス--full-name— ファーストネーム+姓の組み合わせを生成--json— JSONとして出力
cast-tracker.ts
衝突検出と分布分析のためのキャスト追跡を管理します。
# 新規プロジェクトを初期化
deno run --allow-read --allow-write scripts/cast-tracker.ts init "小説のタイトル"
# キャラクターを追跡に追加
deno run --allow-read --allow-write scripts/cast-tracker.ts add "Sarah Chen" --role protagonist --culture chinese-american
# 名前が既存キャストと衝突するかチェック
deno run --allow-read scripts/cast-tracker.ts check "Marcus"
# 現在の分布を表示
deno run --allow-read scripts/cast-tracker.ts distribution
# 未表現の文化に対する提案を取得
deno run --allow-read scripts/cast-tracker.ts suggest
アンチパターン
再びChenuya問題
問題: 「Chen」を修正して「Kim」または「Patel」を選ぶのは、まだ中央値ホップです。各民族クラスタから単にトップの名前をサイクルしているだけです。 修正: LLMに代替案を提案させない。エントロピースクリプトを使用してリストの深くから引き出します。
多様性チェックボックス
問題: 各民族から正確に1人のキャラクターを追加するのはトークニズムに感じます。キャストは多様性コンプライアンススプレッドシートのように読めます。 修正: 文化分布を設定ロジックに基づかせます。ソウルを舞台にしたストーリーはすべての文化を持つべきではありません。ロンドンを舞台にしたストーリーは本物の多様性を正当化できます。
発音不可能なファンタジー名
問題: 生成されたファンタジー名は読んだり言ったりするのが難しいです。「Xzylthrix」は没入感を破ります。 修正: 発音可能性制約のある音素プリセットを使用します。子音クラスタを制限します。声に出して読んでテストします。
キャスト衝突
問題: 読者はMarkとMike、SarahとSara、LeeとLeighを混同します。似た音が一緒にぼやけます。 修正: 最終化する前に常にcast-trackerチェックを実行します。音プロファイルを分析—初期子音、音節数、ストレスパターンを変えます。
時代不一致
問題: 中世イングランドの「Jennifer」。ビクトリア朝ロンドンの「Jayden」。その時代に存在しなかった名前。 修正: 歴史的名前リストを使用します。名前がいつ使用され始めたかを調べます。時代に一般的な名前にデフォルト化します。
文化混合
問題: 日本の姓と中国のファーストネーム。親が選ばなかったであろう英語化されたファーストネームの第一世代移民。 修正: 完全な文化パッケージを使用します。キャラクターの世代、コンテキスト、家族の決定を考慮します。
重要な質問
生成前に
- 設定は何か(場所、時代、文化混合)?
- すでにロックインされた名前は何か?
- どの音を避けるべきか(衝突リスク)?
- このキャラクターは親に名前を付けられているか、それとも自分自身で?
現代設定の場合
- キャラクターの具体的な文化的背景は何か?
- 世代は何か(移民、第二世代など)?
- その文化はどの命名規則に従うか?
- この名前は彼ら年代コーホートで典型的か?
歴史的設定の場合
- このキャラクターはいつどこで生まれたか?
- その場所と時代に何という名前が一般的だったか?
- 名前はどのような階級/ステータス信号を運ぶべきか?
- 命名規則(父称法など)があるか?
ファンタジー/SF設定の場合
- この文化は何を美学としているか?
- それに影響を与えた現実世界の言語は何か(ある場合)?
- 異なる社会階級は異なる命名パターンを持つか?
- 命名規則(氏族名、用名など)があるか?
データファイル
文化名プール
data/cultures/ に配置。すべての文化には本番レベルのリスト(各約100アイテム)があり、姓、givenname(統合)、given-male、given-femaleのバリアントがあります:
| 文化 | 説明 |
|---|---|
chinese | 東アジア - 中国語、一般的および地域姓 |
anglo | 英語/ブリティッシュ/アメリカン、英国およびUS伝統にまたがる |
hispanic | スペイン語/ラテンアメリカ、地域多様性付き |
west-african | ヨルバ、アカン、イボ、その他西アフリカ伝統 |
south-asian | ヒンドゥー、イスラム、シク、地域インド伝統 |
korean | 伝統的および現代韓国名 |
japanese | 伝統的および現代日本名 |
vietnamese | 伝統的ベトナム命名規則 |
arabic | さまざまな中東地域からのアラビア名 |
eastern-european | ロシア、ポーランド、ウクライナ、スラヴ伝統 |
jewish | アシュケナージ、セファルディ、ヘブライ、イディッシュ、英語化 |
filipino | スペイン由来、先住民フィリピン、現代名 |
混合プール
data/mixed-pools/ に配置:
contemporary-american.json— 現代米国設定用重み付け混合
音素プリセット
data/phoneme-presets/ に配置:
elvish-like.json— 流動的、母音豊富、二重母音harsh-fantasy.json— 喉頭音、子音豊富、硬い停止neutral.json— バランス、発音可能、汎用
インタラクション例
例1:現代小説
ユーザー: 「シカゴ犯罪小説のキャラクター名が必要です。」
あなたのアプローチ:
- 特定の近所の文化構成について質問
- 何人のメインキャラクターが名前を必要とするか質問
- すでにロックインされた名前があるか質問
- 適切な文化プールからエントロピーを使用して生成
- 各提案を衝突についてキャストに対して確認
スクリプト用法:
deno run --allow-read --allow-write 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
例2:ファンタジー小説
ユーザー: 「エルフ王国の名前が必要です。」
あなたのアプローチ:
- 審美について質問—ハイファンタジー、暗い、気まぐれ?
- 命名規則があるか質問(氏族名、本当の名前など)
- elvish-likeフォノム素プリセットから生成
- 文化内の一貫性を確保
スクリプト用法:
deno run --allow-read scripts/character-name.ts --fantasy elvish-like --syllables 2-3 --count 20
例3:Chen増殖検出
ユーザー: 「私のキャラクターはChen Wei、Sarah Chen、Michael Chen、Dr. Chenという名前です。」
あなたの診断: 状態CN2—Chen増殖。4人のキャラクターが同じ姓を持っている。
あなたの対応: 「4人のキャラクターがChenという姓を持っています。彼らが関連していない限り、これはChen増殖です—LLMが中国姓の統計的中央値にデフォルト化しています。エントロピーを使用して代替案を生成させてください。」
スクリプト用法:
deno run --allow-read scripts/character-name.ts --culture chinese --count 10 --json
# トップではなくリストの深くから選びます
しないこと
- 自分で名前を「思いつく」—常にエントロピースクリプトを使用してください
- どの文化の最も一般的な名前を提案しない
- コンテキストなしでアメリカの命名パターンにデフォルト化しない
- 既存キャストに対してチェックなしで名前を生成しない
- ファンタジーは「ランダム音節」を意味すると仮定しない
- コンテキスト収集ステップをスキップしない
- 衝突チェックなしで名前を承認しない
出力の永続化
プロジェクトに取り組む場合、キャスト追跡を以下に保存します:
context/output-config.mdで推奨出力場所を確認- デフォルト:
{project-root}/cast-tracker.json
キャストファイルはセッション間で永続化され、キャラクターデータを蓄積します。
オプション統合
これらのスキルはキャラクター命名を強化しますが、必須ではありません:
conlangスキル付き(利用可能な場合)
複雑なファンタジー言語の場合、音韻学作成をオフロード:
# conlangで完全な音素インベントリを生成
deno run --allow-read ../conlang/scripts/phonology.ts --preset elvish_like --json > custom-phonology.json
# それを名前に使用
deno run --allow-read scripts/character-name.ts --phonology custom-phonology.json --count 20
namingスキル付き(利用可能な場合)
すべての4つのレイヤー(音、意味、文化、機能)にわたって特定の名前選択を評価するため:
- 特定の名前が深い分析を必要とする場合、namingスキルを使用
- character-namingは生成を処理;namingは評価を処理
list-builderスキル付き(利用可能な場合)
スターターレベルのリストを本番レベルに拡張するため:
- list-builder方法論と調査ツールを使用
- リストごとに75~150アイテムを対象
- 次元多様性(一般的/まれ、地域広がり)を確保
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- jwynia
- リポジトリ
- jwynia/agent-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/jwynia/agent-skills / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。