mode-creator について
mode-creator は、claude-mem 用のカスタムノートモードを設計してインストールするガイド付きスキルです。作業内容を聞いて記録タイプとタグを提案し、Telegram 通知の設定や有効化の確認も行います。
主な機能
- 01作業内容とノートのニーズを聞き取り
- 02記録タイプとコンセプトタグを提案
- 03カスタムモードを検証してインストール
- 04任意で Telegram 通知を設定
- 05ワーカーを再起動して起動コンテキストを確認
活用シーン
- 01専門分野に合わせたメモリー記録の調整
- 02記録対象と省略する定型作業の選定
- 03特定の記録タイプやタグへの通知設定
- 04カスタムモードの有効化確認
MCP 対応
起動コンテキストの検証に session_start_context MCP ツールを利用できます。また、そのコンテキストを提供するローカルワーカーも設定します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ thedotmack/ claude-mem --skill mode-creatorインストール後、Claude Code で/mode-creatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/evals.jsonreferences/mode-authoring.mdtelegram.mdscripts/configure-telegram.mjsinstall-mode.mjs詳細
Mode Creator
有用なメモシステムを作成してください。有効な JSON ファイルを作るだけでは不十分です。ユーザーに質問して、小規模な分類体系を提案し、承認を得て、永続的にインストールし、オプションの通知を設定し、ワーカーを再起動して、アクティブなモードが起動時のコンテキストに表示されることを確認してください。
基本ルール
- 利用可能な対話型質問ツール(
AskUserQuestion、request_user_input、または同等のもの)を使って聞き取りを行ってください。質問は少数ずつ行い、回答を待ってください。 - 観察タイプは互いに重複しないメモの種類、概念は再利用可能なタグとして説明してください。ユーザーが先に使わない限り、専門用語は避けてください。
- 新しいモードを考案する前に、既存のバンドル済みモードとユーザーモードを調べてください。ユーザーにとって有益であれば、近いものを再利用するか、組み合わせてください。
- プラグインキャッシュやバンドル済みモードは編集しないでください。カスタムファイルは、解決済みの claude-mem データディレクトリ内の
modes/フォルダーにインストールしてください。 - Telegram トークンをチャット、コマンド引数、ログ、ツール出力に表示しないでください。パスワードとして扱ってください。
- 関係のない設定や既存の Telegram トリガーは保持してください。ヘルパーはタイムスタンプ付きのバックアップを作成し、指定されたトリガーを統合します。
- カスタムモードはローカルワーカーのランタイムでサポートされています。
CLAUDE_MEM_RUNTIMEがserverの場合、このワークフローでは共有サーバーにユーザー別のモードを安全にインストールできないことを説明し、変更を加える前に中止してください。 - 既存の観察は元のタイプのまま維持されます。新しいモードは、今後の観察の生成に適用されます。
1. 目的を伝えて始める
最初の対話型の質問では、次のメッセージから始めてください。
カスタムモードを使うと、取り組んでいることに合わせてメモを取れます。法学部の学生なら、判例が規則を確立したとき、教授が試験の落とし穴を指摘したとき、法理が対立したときなどを記録したいかもしれません。建築家なら、設計上の決定、法規上の制約、クライアントの好み、現地調査での発見などを記録したいかもしれません。何に取り組んでいますか?
モード名や JSON の項目から質問を始めないでください。まず、取り組んでいる内容を把握してください。
回答がコード関連の場合は、次のように伝えてください。
コードモードは、ソフトウェア開発ですでによく機能します。あなたの仕事に合わせて、[取り組みから推測した2~4種類の具体的なメモ]も追跡し、[役立つ横断的なテーマを2~4個]にタグを付けるカスタム版のほうが適しているかもしれません。標準のコードモードを使いますか、それともカスタマイズしますか?
具体的な提案をしてください。たとえば、ML プラットフォームエンジニアには、漠然とした「カスタムメモ」ではなく、実験結果、データ契約の変更、本番環境のインシデント、モデルに関する決定、コストの調査結果、再現性のリスクを提案してください。ユーザーが標準のコードモードを選んだ場合、重複するファイルは作成せず、任意の通知と確認の手順に進んでください。
2. 何を覚えておく価値があるかを把握する
追加の質問をして、次の内容を聞き出してください。
- 来週も参照できるようにしておきたい瞬間や発見の例を3つ。
- 記録せずにスキップすべき定型的な作業。
- 後から検索する人物、事件、素材、クライアント、制約、実験、インシデントなどの名詞や決定事項。
- 記録したり Telegram に送信したりしてはならない機密情報。
- メモを厳選するか、詳細に記録するか。
会話ですでに得られた回答を推測して、同じことを二度尋ねないでください。ユーザーの回答が大まかな場合は、具体例を提案して、選択または編集してもらってください。
3. モードを提案する
草案を作成する前に、references/mode-authoring.md を読んでください。
以下を提案します。
- 明確なモード名と小文字の ID。
- 観察タイプは通常 4~8 個にします。観察項目ごとに、タイプを 1 つだけ割り当てます。
- 概念タグは通常 4~8 個にします。1 つの項目に複数の概念を割り当ててもかまいません。
- 記録する内容とスキップする内容を、それぞれ 1 文で示します。
- モードで記録する現実的なメモを 2 件、スキップするメモを 2 件示します。
平易な言葉で提案を提示し、インタラクティブな質問ツールを使って承認を得てください。ユーザーがカテゴリ名の変更、追加、削除、文言の修正をできるようにします。分類体系とプライバシーの境界についてユーザーが承認するまでは、書き込みやインストールを行わないでください。
通常は code--architecture-practice のような継承 ID を優先してください。この ID にすると、ドメイン分類体系と動作プロンプトを置き換えつつ、claude-mem の安定した出力プロトコルを再利用できます。親の code は実装のベースです。オーバーライドでは、プロンプトからコード固有の意味合いを取り除く必要があります。継承が本当に適さない場合に限り、スタンドアロンモードを使用してください。
4. Telegram 通知について尋ねる
分類体系が承認されたら、次のように尋ねます。
claude-mem が特定のタイプやタグを記録したときに、Telegram 通知を受け取りますか?通知には観察タイプ、タイトル、サブタイトル、プロジェクト、観察 ID が含まれるため、機密情報が漏れる可能性のあるカテゴリは選択しないでください。
希望する場合:
- 承認済みのモードから、対象とする観察タイプや概念タグをユーザーに選んでもらいます。
- 一致条件は OR であることを説明します。通知が明示的に有効化された後は、選択したタイプまたは概念のいずれかに一致すると通知が送信されます。トリガーを選択しただけでは配信は有効になりません。観察ごとの通知は、デフォルトでオフです。ユーザーの同意を得たうえで、インストーラーまたは認証情報ヘルパーの実行後に、解決済みのデータディレクトリにある
settings.jsonでCLAUDE_MEM_TELEGRAM_OBSERVATION_ALERTS_ENABLEDを"true"に設定します。 - claude-mem に接続済みの Telegram ボットがあるかどうかを尋ねます。
- references/telegram.md を読み、新規ユーザーには BotFather と安全なセットアップヘルパーの手順を案内します。
希望しない場合は、Telegram の設定をすべて変更せずに残してください。
5. 草案を作成し、検証してインストールする
この SKILL.md があるディレクトリの絶対パスを解決します。すべてのヘルパーパスは、そのディレクトリを基準とします。
承認されたモードを一時的な JSON ファイルに書き込みます。作成リファレンスに記載された継承オーバーライドの形式を正確に使用します。その後、何も変更せずに検証します。
node <skill-directory>/scripts/install-mode.mjs \
--mode <temporary-mode.json> \
--mode-id <parent--custom-id> \
--dry-run
インストールする前に、すべての検証エラーを修正してください。その後、インストールして有効化します。
node <skill-directory>/scripts/install-mode.mjs \
--mode <temporary-mode.json> \
--mode-id <parent--custom-id> \
--telegram-types <comma-separated-approved-types> \
--telegram-concepts <comma-separated-approved-concepts>
通知を希望しなかった場合は、Telegram 関連のフラグを両方とも省略します。インストーラーは次の処理を行います。
- オーバーライドを親と統合し、モード全体を検証します。
- ソースのオーバーライドを
<data-dir>/modes/にインストールします。 settings.jsonのCLAUDE_MEM_MODEを設定します。- 承認済みの通知トリガーを、既存のトリガーを削除せずに統合します。
- 原子的に書き込み、バックアップパスを報告します。
JSON の結果を確認してください。ok が true でない場合、成功したと主張してはいけません。
6. 必要に応じて Telegram を接続する
通知を希望しており、ボットトークンとチャット ID の両方がすでに設定されている場合は、それらを再利用してテストメッセージを送信してよいか尋ねます。認証情報が不足している場合は、Telegram リファレンスに記載された BotFather の手順を説明します。
明示的な同意を得てから、認証情報ヘルパーを実行します。
node <skill-directory>/scripts/configure-telegram.mjs \
--types <comma-separated-approved-types> \
--concepts <comma-separated-approved-concepts>
ヘルパーは、非表示のターミナル入力でトークンを受け取り、getMe でトークンを検証し、チャット ID を検出するかユーザーに尋ねて、テストメッセージを送信し、所有者のみがアクセスできる権限で設定を保存します。トークンを引数として渡してはいけません。
エージェント環境からユーザーが対話型ターミナルを操作できない場合は、ヘルパーの正確なコマンドを提示し、ユーザーがローカルで実行するまで待ちます。これが唯一許容される手動での対応です。代替手段として、トークンをチャットに貼り付けるよう求めてはいけません。ユーザーの実行確認後は、認証情報のフィールドが存在するかどうかだけを確認し、その値を表示してはいけません。
7. 再起動して結果を確認する
再起動する前に、設定済みのランタイムを確認してください。ワーカーランタイムの場合は、検証済みの CLI 再起動手順を使用してください。
npx claude-mem restart
npx claude-mem status
CLI シムを利用できない場合は、インストール済みプラグインの scripts/worker-service.cjs restart を Bun で実行してください。検証済みの CLI 手順を利用できる場合は、単独の再起動 HTTP リクエストを使用しないでください。
次のすべてを確認してください。
- 再起動によって新しい正常なワーカーが起動し、正常終了すること。
- インストール済みファイルが、解決されたデータディレクトリ内に存在すること。
settings.jsonに、秘密情報を表示せず、意図したCLAUDE_MEM_MODEが指定されていること。- 利用可能な場合は、
session_start_contextMCP ツールで起動コンテキスト全体を取得してください。利用できない場合は、設定済みのローカルワーカーで/api/context/inject?project=mode-creator-verification&full=trueを呼び出してください。 - 起動コンテキストに
Mode: <mode name> (<mode id>)が含まれていること。 - Telegram を設定した場合は、テストメッセージが届いたこと。
ワーカーが code にフォールバックする場合は、ワーカーログでモードの検証エラーまたは検索エラーを確認し、モードを修正してから再起動してください。フォールバックを正常な有効化として説明しないでください。
8. 明確に引き継ぐ
最後に、次の内容を記載してください。
- 有効なモード名と ID。
- インストール先のパス。
- 観察タイプとコンセプト。
- Telegram のトリガータイプとコンセプト、または「変更なし」。
- 再起動と起動コンテキストの検証結果。
- ロールバック用のバックアップパス。
- 新しいモードが今後記憶する内容の短い例を 1 つ。
引き継ぎに Telegram ボットのトークンを含めないでください。