name-project について
開発者向けに、複数ラウンドでプロジェクト名を検討・絞り込む対話型スキルです。プロジェクトの背景や蓄積した好みに応じて候補を調整し、重み付けした評価式と任意のリサーチを活用します。
主な機能
- 01複数ラウンドでの名前生成と選択
- 02選択候補の次ラウンドへの引き継ぎ
- 03継続的な命名の好みの学習
- 048項目による候補評価
- 05リセット、再検討、比較
活用シーン
- 01新しいソフトウェアプロジェクトの命名
- 02反応をもとにした候補の絞り込み
- 03プロジェクト要件に沿った最終候補の比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ camacho/ ai-skills --skill name-projectインストール後、Claude Code で/name-projectを入力して読み込まれたか確認します。
詳細
Patrickの命名システム
対話形式の命名セッションを実施するための手順です。
これは何か
対話形式の複数ラウンドのセッションを通じて、プロジェクトの命名を支援するための手順、シードデータ、評価式です。ユーザーの反応に基づいて、エージェントは徐々によりよい名前を提案できるようになります。すべて会話の中で進みます。
創造的な行き詰まりを打開するのに役立つ場合、エージェントは外部ツール(名前生成ツール、単語の関連性を調べる API、ウェブ検索など)を適宜利用できます。固定のリストはありません。利用可能なものを何でも使ってください。
データの3つのレイヤー
このシステムには3つのレイヤーがあります。それぞれ、下のレイヤーを土台に構築されます。
レイヤー1 — 基本シード(このドキュメント) 一般的な開発者のコンテキスト、価値観、美的な好み、評価式です。このファイルに含まれています。一般的な好みが変わったときに手動で更新します。
レイヤー2 — 保存された嗜好プロファイル 命名セッションを通じて学習されます。どのようなパターン、音、雰囲気、単語の種類に一貫して惹かれるか、あるいは反発を覚えるかを記録します。セッション間でも保持されます。リクエストに応じて調整または消去できます。エージェントがデータを保持する方法(メモリの編集、付属ファイルなど)で保存されます。
レイヤー3 — セッションデータ 現在の命名セッションに関するデータです。プロジェクトのコンテキスト、引き継がれた選択、各ラウンドの履歴、セッションごとの嗜好の調整が含まれます。セッション終了時(名前が確定したとき、またはセッションを明示的に終了したとき)に消去されます。
名前の評価や生成時に、エージェントは3つすべてのレイヤーを適用します。基本シードを土台とし、保存された嗜好をレンズとして、セッションデータを最も強いシグナルとして扱います。
セッションの開始
コンテキストの把握
質問する前に、エージェントは利用可能な情報(README、package.json(説明、キーワード、タグ)、ドキュメントファイル、説明的なメタデータを含む設定ファイルなど)を確認し、プロジェクトを自ら理解する必要があります。コードは読み込まず、説明的な手がかりを探してください。
エージェントは、過去の会話の記憶や、プロジェクトについてすでに知っていることも活用してください。
エージェントが把握すべきこと
エージェントは、ラウンド1でよい名前を生成するのに十分なコンテキストを把握する必要があります。次の点を理解することが目的です。
- プロジェクトが何をするもので、誰を対象にしているか
- どのような雰囲気か — 中心となるメタファーや感覚
- どのような感情的なトーンを目指すべきか
- どのような用途に対応する必要があるか(パッケージ名、ドメイン、リポジトリなど)
- エコシステム内にどのような関連プロジェクト名があるか
- どのようなテーマ、引用、イメージが心に響くか
- どのような名前やパターンを避けるべきか
具体的な情報(何をするか、どのような用途に対応する必要があるか、関連プロジェクト名など)が不明な場合は、直接質問してください。主観的な要素(メタファー、感覚、テーマなど)については、何を理解しようとしているのかを説明し、プロジェクトファイルや記憶からすでに得られた情報に応じて質問を調整してください。
独自の調査から答えに自信がある場合は、その質問を黙って省略してください。プロジェクトの感情的なトーンなど、主観的な答えを推測した場合は、先に進む前に確認してください。
最初の確認と質問を終えたら、エージェントは自問してください。「ラウンド1を有意義に改善できる追加の質問はあるか?」ある場合は質問してください。ない場合は調査に進んでください。
調査の手順
コンテキストの把握後、ラウンド1の名前を生成する前に、エージェントは表に出さずに調査を行います。プロジェクトの分野、メタファー、テーマ、文化的な引用に関連する命名のヒントを検索してください。同様のプロジェクトがどのように命名されているか、その分野にどのような単語やイメージがあるか、どのような意外なつながりがアイデアのきっかけになりそうかを調べてください。これにより、ユーザーの手を煩わせることなく、ラウンド1の内容を充実させます。
ラウンド構成
各ラウンドには、2 種類の名前があります。以前のラウンドで気に入った引き継ぎ候補と、新しい候補である新規候補です。決定に向けて絞り込めるよう、各ラウンドで選ぶ名前を減らしていきます。
ラウンド 1 — 発散(新規候補 6~8 件) 多様性を最大限にします。デフォルトの戦略に偏ることなく、エージェントがプロジェクトのコンテキストを評価し、それに応じて戦略を選びます。気に入った名前を選んでください。
ラウンド 2 — 収束(選択した名前+新規候補 4~6 件) 引き継ぎ候補が、エージェントが検出した好みの傾向を反映した新しい名前と並んで表示されます。リスト全体から選んでください。
ラウンド 3 — 洗練(選択した名前+新規候補 2~4 件) 候補をさらに絞り込みます。すべての候補に NAME スコアが表示されます。2~3 件に絞ってください。
ラウンド 4 以降 — 仕上げ(選択した名前+新規候補 1~2 件) 最終候補です。完全な検証を行います。エージェントが名前のアレンジ案を提示します。名前を確定するか、RESET または REFINE を選択します。
引き継ぎ
どのラウンドで選んだ名前も、選択を解除するかリセットするまで、以降のすべてのラウンドに引き継がれます。引き継ぎ候補と新規候補は明確に区別して表示されます。選ぶ名前が少なくなるほど、リストも絞り込まれます。
インタラクティブなプロンプト
各ラウンドの最後に、複数選択可能なインタラクティブプロンプトが表示されます。選択肢は次のとおりです。
- 各名前(引き継ぎ候補には明確なマークが付きます)
- 「新しい名前を再生成」(いつでも選択できます)
エージェントは、選択パターンから理由を推測できない場合を除き、選んだ理由を説明するよう求めません。好みを把握するのは、主にエージェントの役目です。
選択後、エージェントはどのような好みの傾向が現れたか、または変化したかを分析し、次のラウンドを生成します。
再生成
いつでも利用できます。現在の新規候補を破棄して、新しい候補を生成します。引き継ぎ候補と好みのプロファイルはそのまま保持されます。質問はなく、新しい候補を生成するだけです。
停滞の検出
2 ラウンド連続でまったく同じ名前を選んだ場合、新規候補が響いていないと判断されます。エージェントは一時停止し、次の選択肢を提示します。
RESET — このセッションでのすべての選択と、好みや嗜好に関する学習内容を消去します。コンテキストの把握から完全にやり直します。
REFINE — 現在の選択を保持します。エージェントは現在のコンテキストと好みのプロファイルに基づいて新たに調査し、理解を深めるための振り返りを促すインタラクティブな質問をします。回答後、新規候補のみを入れ替え、現在の状態から続行します。
再生成 — 質問はせず、新しい候補を試します。
[名前]を確定 — 確定する準備ができている場合に備え、引き継ぎ候補ごとに 1 つずつ選択肢を提示します。
行き詰まったとき
候補が少なくなり、最終候補のどれにするか決められない場合:
- 数式に基づいて採点した ASCII 比較チャートを生成する
- 「毎日ターミナルで入力するなら、どれですか?」のような判断の手がかりとなる質問をし、各最終候補を選択肢として提示する
- 音節の入れ替え、単語の翻訳、口当たりのよい同義語の提案など、アレンジ案を提示する
新規候補を繰り返しすべて却下し、引き継ぎ候補もない場合:
- まだ名前でなくても、毎日入力したいと思う単語を尋ねる
- 気に入っている名前のプロジェクトを挙げてもらい、その名前のどこが好きかを尋ねる
- 新しい比喩や文化的なモチーフ、異なる感情的な雰囲気など、コンテキストを変える
- これは実質的に、自動で REFINE を実行するのと同じです
セッション履歴
エージェントは、セッション中、次の履歴を継続的に管理します。
- 提示したすべての名前と、ラウンド番号、および選択・選択解除・未選択の状態
- 現在の引き継ぎ候補
- ラウンドごとの変化を含む、進化する好みのプロファイル
- 算出したすべての NAME スコア
- コンテキストデータ、再起動回数、洗練の回数
いつでも次のように尋ねて、履歴を確認できます:「これまで気に入った名前をすべて見せて」「どのような傾向を見つけた?」「現在の選択を比較して」「何を外した?その理由をどう考えている?」
履歴はセッションの終了時に消去されます。継続的に見られる好みの傾向(プロジェクト固有ではないもの)は、レイヤー 2 に昇格されます。
NAME スコア
名前候補を評価するためのスコアリング式です。ブランド名、音象徴、記憶しやすさに関する査読付き研究に基づいています。
スコアリング式
NAME = (P × Wp) + (E × We) + (D × Wd) + (M × Wm) + (S × Ws) + (F × Wf) + (H × Wh) + (C × Wc)
すべての重みは状況に応じて調整されます。エージェントはプロジェクトの性質、対象者、使用状況に基づいて、セッション開始時に重みを設定します。あらかじめ第1位として固定されている要素はありません。デフォルトの重みの範囲は1.0~3.0です。各基準は0~5で採点します。
8つの基準
P — 音声品質 発音したとき、入力したときにどう感じられるか。最適なのは2~3音節です。破裂音で始まる名前(b、d、g、k、p、t)は記憶の助けになります。流音(l、r)は温かみを伝えます。聞いたとおりに綴りを予測できることも重要です。発音時に一瞬止まらざるを得ない子音の連続は避けます。声に出したときに同じ響きになるなら、音声的に等価な綴りのバリエーション(母音の省略や文字の入れ替えなど)も認められます。
研究:Lowrey & Shrum(2007)、Yorkston & Menon(2004)、Luna et al.(2013)。
E — 想起力 イメージ、感情、物語を生み出しますか?機能を説明するのではなく、情景を描き出しますか?
研究:Igor Naming Guide、Giese et al.(2014)。
D — 深み/多層性 時間が経つにつれて、さらに意味が明らかになりますか?隠れた語源、二重の意味、好奇心を満たしてくれる文化的な言及が含まれていますか?
研究:Danescu-Niculescu-Mizil et al.、Igor engagement taxonomy。
M — 記憶しやすさ 一度聞いただけで、翌日にも思い出せますか。短いほど効果的です。音の反復も役立ちます。
研究:Vanden Bergh et al.(1987)、Argo et al.(2010)。
S — 意味的適合性 その名前は、プロジェクトの本質を比喩的に表していますか?文字どおりに説明するのではなく、比喩として真実を捉えているかが重要です。
研究:Klink(2000)、Shrum et al.(2012)。
F — 機能的適合性 npm パッケージ、GitHub リポジトリ、ドメイン、Slack チャンネル、ディレクトリ名、モノレポの @scope として使えますか。
H — エコシステムとの調和 兄弟プロジェクトの名前に馴染みつつ、似通いすぎていませんか。
C — 衝突の有無 その名前はすでに使われていますか?npm、GitHub、ドメインを確認します。広く知られたプロジェクトがすでに使っている場合は却下します。知名度の低いプロジェクトや放棄されたプロジェクトだけが使っていて、自分のプロジェクトが個人用であれば問題ありません。
スコアのしきい値
しきい値は、満点(重みの設定によって異なります)に応じて変動します。満点に対する割合は次のとおりです。
85-100% EXCEPTIONAL — Ship it.
67-84% STRONG — Solid candidate, minor refinement may help.
50-66% PROMISING — Potential, needs work on weak dimensions.
33-49% MEDIOCRE — Probably a Happy Idiot or has a fatal flaw.
0-32% REJECT — Not worth polishing.
スコアは第3ラウンド以降に表示されます。それ以前は内部で計算されます。
ASCII 比較
最終候補の間で決めかねている場合、エージェントはコードブロック内に、8つの全次元を横並びで比較する棒グラフを表示できます。判断の助けになる場合に限り、セッション中に生成します。
好みのプロファイル(レイヤー2)
エージェントはセッションを重ねながら、このプロファイルを作成します。プロジェクト固有ではなく、継続的に当てはまりそうな知見をもとに、各セッションの後に更新します。
Attracted to:
Patterns — e.g., single evocative words, foreign roots, metaphor
Sounds — e.g., soft consonants, two syllables, ends in vowel
Vibes — e.g., warm, intimate, slightly mysterious
Word types — e.g., nature, craft, movement
Repelled by:
Patterns — e.g., compound action words, backronyms, -ify suffixes
Sounds — e.g., harsh consonants, four+ syllables
Vibes — e.g., corporate, clinical, SaaS-y
Word types — e.g., tech jargon, generic positive adjectives
Insights:
Natural language observations that persist across sessions.
依頼に応じて、さらに明確にするためにエージェントが質問をしながら調整したり、ベースシードのみの状態に戻したりできます。
ネーミング戦略
エージェントが使える選択肢であり、チェックリストではありません。エージェントはプロジェクトの状況に応じて戦略を選びます。
想起を促すメタファー — 機能を説明せずに本質を捉えます。Apple、Kindle、Slack。
外国語の語根/神話 — 外来の意味を借ります。Kubernetes(ギリシャ語で「操舵手」)、Ubuntu(ズールー語で「他者への人間性」)。
かばん語 — 2つの単語を融合します。Debian(Debra + Ian)、Pinterest(Pin + Interest)。
想起を促す一語 — 大きな意味を持つ1つの単語です。Figma(figment)、Notion、Prisma。
アンチパターンによる常識の覆し — その分野の命名規則を破ります。コンピューティング分野のApple、コミュニケーション分野のDiscord。
言葉遊び/だじゃれ — 思わずにやりとしてしまう名前です。Snort(IDS がパケットを sniff する)、Flask(実験用の小さな容器)。
バックロニム — 頭字語が別の語を綴る形です。GNU(GNU's Not Unix)、WINE(Wine Is Not an Emulator)。
複合イメージ — 2つの単語で鮮明な情景を生み出します。Tailwind、Terraform。
ベースシードデータ(レイヤー1)
Developer profile:
- Solo indie developer, personal brand / portfolio
- Core stack: TypeScript, React, Turborepo monorepo, pnpm, Vercel, GitHub Actions
- Has a shared npm scope
- Mix of open source and private projects
- Values simplicity, semantic correctness, industry-standard conventions
- Rejects over-engineering and custom abstractions where standards exist
Project types (not exhaustive):
- React web apps
- API / webhook servers
- Developer tools
- Bots
- Mobile apps (planned)
- Platforms
- Small QoL utilities
- Immersive 3D web experiences (procedural assets, no external files)
Naming preferences:
- Vibe depends on the project — no single default
- Word count depends on the project
- Names should feel timeless unless referencing pop culture the developer personally loves
- English only
- Projects should feel loosely related — same vibe, not same theme
- Small utility projects deserve good names too
- Names need to work as: npm package, GitHub repo, domain, app/brand identity
- Whether a name hints at function depends on project type
- Pop culture references drawn from a mix of movies, TV, games, music, books
Known project: "My Story v3" (working title, acknowledged as a bad name)
- 3D immersive web experience, clay avatar walks a life timeline
- Paired content editor ships first
- Deeply personal, eventually shareable
- 4 release stages planned
エージェントのルール
セッションの流れ
- 質問する前に、プロジェクトファイルとメモリを確認します。確信を持って判断できないことだけを尋ねます。主観的な推測は確認します。ラウンド 1 の改善につながる場合にのみ、追加の質問をします。
- コンテキストの把握後、ラウンド 1 の生成前に、調査を静かに行います。候補名を差し替える前の REFINE 中にも調査します。
- ラウンド 1 では、新しい候補名を 6〜8 個から始めます。以降、段階的に数を減らします。選ばれた候補はすべて引き継ぎ、新しい候補と明確に区別します。
やり取り
- 候補名の選択にはインタラクティブな複数選択を使います。常に「新しい候補名を再生成する」を選択肢に含めます。
- 選択のたびに、次の候補を生成する前に、好みの傾向を説明します。推測できない場合を除き、なぜその名前が好きなのかは尋ねません。
- 同じラウンドが 2 回続いたら、停滞を検知します。RESET、REFINE、再生成、または確定を提案します。
スコアリングと品質
- プロジェクトのコンテキストに基づいて NAME スコアの重みを設定します。固定の最重要要素は設けません。ラウンド 3 以降はスコアを表示します。
- Happy Idiot 名(一般的な肯定語を 2 つ組み合わせた名前)や、2018 年の SaaS 製品のような名前は提案しません。
- 発音が同じ綴りのバリエーションは許容されます。聞いただけでは綴れない名前(発音どおりのバリエーションを除く)は、内部で候補から除外します。
- 既知のプロジェクトがその名前を使っている場合は除外します。無名または放棄されたプロジェクトしか使っておらず、こちらが個人的なプロジェクトであれば許容します。
データのライフサイクル
- セッション終了時にセッションデータを消去します。継続的に活用できる好みの傾向は Layer 2 に反映します。
- セッション履歴は、いつでも照会できる状態に保ちます。外部ツールはユーザーに見えない形で使い、ユーザーにはプロセスではなく結果を提示します。