list-builder について
list-builderは、物語づくりのランダム化ツール向けに、具体的で多様なリストを整えるスキルです。調査、品質確認、JSON形式への整形、スクリプトによる検証を案内します。
主な機能
- 01リストの用途と規模の設定
- 02調査による多様性の拡張
- 03曖昧または重複した項目の除外
- 04リストのJSON形式への整形
- 05件数、重複、多様性の検証
- 06出典と用途の記録
活用シーン
- 01物語のプロンプト用の職業リスト作成
- 02物語の緊張感を生む場所のリスト作成
- 03エントロピーツール向けの多様な入力準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jwynia/ agent-skills --skill list-builderインストール後、Claude Code で/list-builderを入力して読み込まれたか確認します。
同梱ファイルreferences/dataset-quality-criteria.mdscripts/validate-list.ts
詳細
リストビルダー:エントロピーリストのキュレーションスキル
創作のランダム化に使う、包括的で高品質なリストを作成します。これらのリストは、物語の展開に予測不能性をもたらすエントロピーツールに使用されます。
基本原則
優れたエントロピーリストには、次の3つの特性があります:
- サイズ — 本当にランダムだと感じられる十分な項目数(50~200項目以上)
- 多様性 — 明白な例だけでなく、可能性の全範囲を網羅している
- 具体性 — 曖昧なカテゴリーではなく、アイデアを引き出すほど具体的である
LLMは、調査、分類、品質管理を得意とします。スクリプトは、保存とランダム選択を得意とします。このスキルは、その両者をつなぎます。
データセットの成熟度レベル
完全な基準については、references/dataset-quality-criteria.mdを参照してください。
| レベル | サイズ | 状態 | 用途 |
|---|---|---|---|
| スターター | 10-30 | 簡単な例 | プロトタイピング、デモ |
| 実用レベル | 30-75 | 使用可能だが限定的 | 個人プロジェクト |
| 本番レベル | 75-150 | 定常的な使用に対応 | クライアント向け作業、公開ツール |
| 包括的 | 150+ | 参考資料としての品質 | 決定版リソース |
主な指標:
- サイズ: 真のランダム性を感じられる十分な項目数
- 多様性: 関連するすべての側面を網羅している(基準ドキュメントを参照)
- 具体性: アイデアを引き出すほど具体的(平均20~60文字)
- 新鮮さ: 意外性のある項目が30%超(最初に思いつくものではない)
現在組み込まれているリストは、スターター/実用レベルです。 このスキルは、それらを本番レベルに引き上げるためにあります。
リストの品質基準
優れたリスト項目とは
良い例: 「エレベーター検査員」(具体的で意外性があり、疑問を呼び起こす) 悪い例: 「会社員」(一般的で予想どおり、発想のきっかけがない)
良い例: 「真夜中の貸し倉庫施設」(具体的な時刻があり、雰囲気が伝わる) 悪い例: 「建物」(曖昧すぎて使えない)
良い例: 「同じ証拠を使う、まったく別の事件を解決している」(具体的な衝突の仕組みがある) 悪い例: 「邪魔をする」(仕組みがなく、結果だけを示している)
多様性の観点
リストを作成する際は、関連する観点を幅広く網羅してください。
職業:
- 業界(医療、法律、建設、芸術、サービス、技術)
- 地位(初級から専門家まで)
- 表に出る仕事か、裏方の仕事か
- 珍しいものか、一般的なものか
- 歴史的なものか、現代的なものか、新興のものか
場所:
- 公共の場所か、私的な場所か
- 屋内か、屋外か
- 都市部か、農村部か、郊外か
- 時刻がもたらす含意
- 感情的な印象(不気味、平凡、神聖、境界的)
人物の特性:
- 肯定的か、否定的か、中立的か
- 表面に見えるか、隠れているか
- 自覚しているか、盲点があるか
- 安定しているか、状況によって変わるか
調査プロセス
ステップ1:リストを定義する
- どのカテゴリーのものを扱うのか?
- 何に使うのか?
- どのような項目が役に立ち、どのような項目が役に立たないのか?
- 目標サイズ(最低50項目、理想は100項目以上)
ステップ2:明白な例から始める
まず、すぐに思いつく項目を10~20個挙げます。これらは「すぐに使える」選択肢、つまり誰でも思いつくようなものです。有効ではありますが、それだけでは不十分です。
ステップ3:多様性を広げるために調査する
利用可能な情報源を使い、明白なもの以外へと範囲を広げます。
Kiwix/Wikipedia:
- カテゴリページ(例:「Category:Occupations」)
- 一覧記事(例:「List of unusual deaths」)
- 予想外の分野へと広がる関連記事
パターン:観点の拡張
- シードリストに欠けている観点を選ぶ
- その観点に絞って調査する
- 不足を補う項目を10~20個追加する
ステップ4:品質で絞り込む
次のような項目を削除します。
- 役に立たないほど曖昧なもの
- 既存の項目と似すぎているもの
- 興味深さを伴わず、文化に特化しすぎているもの
- 説明に手間がかかりすぎるもの
ステップ5:使用できる形式にする
entropy.tsで使えるよう、JSON配列として出力します。
{
"list_name": [
"Item one",
"Item two",
"Item three"
]
}
利用可能なツール
validate-list.ts
リストの品質と多様性を分析します。
deno run --allow-read scripts/validate-list.ts list.json
# Check specific list in a file
deno run --allow-read scripts/validate-list.ts data.json professions
レポート内容:
- 総項目数
- 重複チェック
- 項目の平均文字数(短すぎると曖昧、長すぎると扱いにくい)
- 多様性の評価(観点を指定した場合)
merge-lists.ts
複数のリストソースを統合し、重複を排除して整形します。
deno run --allow-read scripts/merge-lists.ts source1.json source2.json --output combined.json
リサーチ用プロンプト
特定のカテゴリを調査する必要がある場合は、次のようなプロンプトを使用します。
職業の場合: 「[industry]で、ほとんどの人が存在を知らない職業を20個探してください。興味深い場所への立ち入り、専門知識、または珍しい労働環境を伴う仕事に焦点を当ててください。」
場所の場合: 「重要な会話が行われる可能性のある、具体的な場所(カテゴリではありません)を20個探してください。緊張感や時間的なプレッシャーが生まれやすい場所、または思いがけず親密な雰囲気になる場所に焦点を当ててください。」
キャラクターの欠点の場合: 「人々が自分自身について抱いている、明白な悪役の特徴とは異なる具体的な誤った思い込みを20個探してください。身を守っているように感じられるものの、実際には行動を制限している思い込みに焦点を当ててください。」
例:職業リストの作成
最初の種(ありきたりな例)
- 医師、弁護士、教師、警察官、消防士……
多角性のギャップ分析
- 不足:ニッチな技術職
- 不足:珍しい場所に立ち入るサービス業
- 不足:秘密に関わる仕事
- 不足:ほとんどの人が存在を知らない仕事
リサーチによる拡充
Kiwix 検索:「List of occupations」→ カテゴリページ → 珍しい具体的な職業
リサーチから追加:
- エレベーター検査員(建物に立ち入る)
- 犯罪現場清掃員(犯罪そのものではなく、その後始末に関わる)
- 倫理的ハッカー(脆弱性を知っている)
- カルト脱会支援者(人を操る手口を理解している)
- フォーリーアーティスト(何もないところから現実を作り出す)
- 特許審査官(一般公開される前に発明を目にする)
品質フィルター
削除する項目:
- 「実業家」(曖昧すぎる)
- 「TikTokインフルエンサー」(流行に左右されすぎ、すぐ古くなる)
- 「錬金術師」(ファンタジー以外では時代設定に合わない)
最終確認
- 80項目以上? ✓
- 複数の業界が含まれている? ✓
- さまざまな地位の項目が混在している? ✓
- 意外な選択肢がある? ✓
Entropy Tools との統合
このスキルで作成したリストは、次の場所に格納します。
- フィクション専用のリストは
story-sense/data/ entropy.ts --fileで読み込み可能
命名規則:
[category]-[specificity].json- 例:
professions-unusual.json、locations-liminal.json、objects-evidence.json
このスキルで行うこと
- 必要なリストと用途を明確にする
- ありきたりな例を種として挙げる
- リサーチして多様性を広げる
- 品質を確認する
- JSON 形式に整える
- ツールで検証する
- リストの想定用途を記録する
このスキルで行わないこと
- ランダムな項目を生成する(それはエントロピースクリプトの役割です)
- リサーチなしでリストを作成する(ありきたりな項目ばかりになるため)
- 詳細な説明を必要とする項目を含める
- 品質より数量を優先する(質の高い100項目は、平凡な500項目に勝ります)
出力の永続化
このスキルでは、作業をセッションをまたいで保持できるよう、主な出力をファイルに書き込みます。
出力先の確認
ほかの作業を始める前に:
- プロジェクト内に
context/output-config.mdがあるか確認します - 見つかった場合は、このスキルの設定を探します
- 見つからない場合、またはこのスキルの設定がない場合は、まずユーザーに尋ねます:
- 「このリスト作成セッションの出力は、どこに保存すればよいですか?」
data/またはエントロピーリスト用のstory-sense/data/を提案します
- ユーザーの希望を保存します:
- コンテキストネットワークが存在する場合は
context/output-config.md - それ以外の場合はプロジェクトルートの
.list-builder-output.md
- コンテキストネットワークが存在する場合は
主な出力
このスキルでは、次の内容を保存します。
- リストそのもの - entropy.ts で使用する JSON 形式
- リサーチソース - 各項目の出典
- 多角性の分析 - 網羅している多様性の観点
- 使用方法のドキュメント - リストの用途
会話とファイルの使い分け
| ファイルに保存 | 会話内に残す |
|---|---|
| 最終リスト(JSON) | リストの目的に関する議論 |
| リサーチソース | 項目の反復検討 |
| 品質分析 | リアルタイムのフィードバック |
| ドキュメント | カテゴリの調整 |
ファイル名
パターン:{category}-{specificity}.json
例:professions-unusual.json