mcpField
B
bm-share

bm-share

github.com/basicmachines-co生産性4.4k143 回インストール今日更新
リポジトリ

bm-share について

bm-shareは、個人またはプライマリプロジェクトのノートを設定済みのチームプロジェクトへコピーするスキルです。チームへのノート共有に使い、内容と出典情報を保ち、書き込み前に確認を求めます。

主な機能

  1. 01プライマリプロジェクトからノートを取得
  2. 02設定済みのチーム共有先に対応
  3. 03出典情報を付けてノートをコピー
  4. 04書き込み前に確認を要求
  5. 05既存ノートを無断で上書きしない

活用シーン

  1. 01決定事項のノートをチームプロジェクトで共有
  2. 02個人ノートを共有フォルダーにコピー
  3. 03チームの共有先を確認して内容を公開

MCP 対応

Basic Memory MCPのread_noteで元ノートを取得し、write_noteでチーム側にコピーします。projectまたはproject_idで共有先を指定します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/basicmachines-co/basic-memory --skill bm-share

インストール後、Claude Code で/bm-shareを入力して読み込まれたか確認します。

詳細

チームプロジェクトに共有する

個人/プライマリプロジェクトのノートを、設定済みのチームプロジェクトにコピーして、チームメイトが閲覧できるようにします。プラグインが共有プロジェクトに書き込む方法はこれだけです。セッションのチェックポイントと/basic-memory:bm-rememberは、常に個人用のままです。

手順

  1. 設定を解決します。 フックの優先順位に従ってbasicMemoryブロックを読み取ります。ユーザーレベルのベースについては、環境変数CLAUDE_CONFIG_DIRが存在する場合、そのリテラル値にsettings.jsonを追加します。値の末尾を削除したり、~を展開したり、空の値を未設定として扱ったりしないでください。変数が存在しない場合にのみ、~/.claude/settings.jsonを使用します。その後、プロジェクトの.claude/settings.jsonと.claude/settings.local.jsonがキーごとに上書きします。

    • teamProjects — <project-ref>から{ "promoteFolder": "shared" }へのマップです。ここに指定されたものが共有先として許可されます。<project-ref>は、ワークスペース修飾名(例:my-team-2/notes)またはexternal_id UUIDです。
    • primaryProject — ノートの読み取り元となるソースプロジェクトです。

    teamProjectsが空の場合、共有先が設定されていないことをユーザーに伝え、共有先の追加(または/basic-memory:bm-setupの実行)を提案してから、処理を終了します。共有先を勝手に作らないでください。

  2. ソースノートを探します。 $ARGUMENTS(タイトル、パーマリンク、またはmemory:// URL)を使って、primaryProjectからread_noteで読み取ります。$ARGUMENTSが空の場合(「これを共有」から呼び出された場合)は、会話で最も明確に言及されているノートを使用します。曖昧さがあれば、どのノートか確認します。タイトル、フロントマターを含む全コンテンツ、ソースのパーマリンクを取得します。

  3. 共有先を選びます。 teamProjectsにエントリーが1つだけある場合は、それを使用します。複数ある場合は、どのチームプロジェクトに共有するか尋ねます。そのエントリーのpromoteFolderを使用します(デフォルトはshared)。

  4. 書き込む前に確認します。 この書き込みはチームメイトに見えるため、これから実行する内容をユーザーに示します — 「『』を<target>/<promoteFolder>に共有しますか?」 — そして、はいという返答を待ちます。黙って共有してはいけません。

  5. write_noteで共有用コピーを書き込みます。

    • 共有先を指定します。チーム参照がexternal_id UUIDの場合は、project_idとして渡します。それ以外の場合は、ワークスペース修飾名をprojectとして渡します。(projectに単独のUUIDを指定してもルーティングされません。Basic Memoryでは、UUIDはproject_id経由でのみ指定できます。)
    • directory = promoteFolder
    • title = ソースのタイトル
    • content = ソースのコンテンツに帰属情報を追加したもの。フロントマターはそのまま保持し(共有された決定事項がtype: decisionのままになり、チームの構造化された想起で見つけられるようにします)、shared_from: <source permalink>というフロントマターフィールドを追加し、観察事項として- [context] Shared from <source permalink>を追加します。 ユーザーの指示がない限り、共有先に既存のノートがある場合は上書きしないでください。
  6. 1行で確認します。 共有した内容と新しいチームのパーマリンクを伝えます。例: Shared → my-team-2/shared/<slug>

メモ

  • 共有するとノートがコピーされます。元のノートはプロジェクトに残ります。一方を編集しても、もう一方には反映されません。
  • シークレット、認証情報、またはユーザーがチームメイトに見せたくない内容を含むノートは共有しないでください。迷う場合は確認します。
  • 接続されているBasic Memory MCPサーバーを使用し、project(修飾名)またはproject_id(UUID)引数でチームプロジェクトにルーティングします。

コメント