mcpField
M
memory-lifecycle

memory-lifecycle

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

memory-lifecycle について

memory-lifecycle は、Basic Memory 内のエンティティの状態遷移を管理するスキルです。ノートを削除せずにアーカイブし、ナレッジグラフの観察や関係を保ちながら、検索、移動、状態更新、再有効化を行います。

主な機能

  1. 01状態別フォルダーへのエンティティ移動
  2. 02状態と完了日の更新
  3. 03完了したエンティティと関係の保持
  4. 04誤ってアーカイブしたエンティティの再有効化
  5. 05候補が曖昧な場合の確認

活用シーン

  1. 01完了または中止した作業のアーカイブ
  2. 02保留中のプロジェクトを一時停止として記録
  3. 03完了扱いを誤ったエンティティの再開
  4. 04古い進行中項目の定期的な整理

インストール

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

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

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

詳細

メモリのライフサイクル

Basic Memory でエンティティがステータスの段階をどのように移行するかを管理します。基本原則は、削除せず、アーカイブすることです。 完了した作業は貴重なコンテキストです。アクティブな表示からは移動させても、ナレッジグラフには残しておきます。

使用するタイミング

  • ユーザーが「完了した」「終わった」「提出した」「見逃した」「キャンセルした」などと言ったとき
  • エンティティをステータス別のフォルダー間で移動するとき(active → archive、pipeline → active など)
  • 誤って完了にした状態を元に戻すとき
  • 古いアクティブ項目を定期的に整理するとき

基本原則:削除せず、アーカイブする

ノートを削除すると、ナレッジグラフからノートが取り除かれます。ノートの観察事項と関係性が消え、他のノートからのリンクは未解決リンクになります。アーカイブすれば、エンティティがアクティブではなくなったことを示しつつ、すべてを保持できます。

# Good — entity stays in the knowledge graph
bm_move → active/ to archive/

# Bad — knowledge is lost
bm_delete

例外は、誤って作成したノート(誤字、本当の重複)のみです。これらは削除できます。

フォルダーの規則

フォルダーを使って、ステータス別にエンティティを整理します。具体的なフォルダー名はドメインによって異なりますが、一貫したパターンに従ってください。

entities/
  active/          # Currently relevant, in-progress
  archive/         # Completed, no longer active, but worth keeping
  pipeline/        # Future items, not yet started

タスクの場合は、次のようにします。

tasks/
  active/          # Work in progress
  completed/       # Finished work

明確なライフサイクルを持つすべてのエンティティタイプで、次のようにします。

[type]/
  active/          # Current
  [end-state]/     # Whatever "done" means for this type

ドメインに合ったフォルダー名を選んでください。具体的な名前よりも、パターンが重要です。

ステータスの検出

ユーザーが完了やステータスの変更に言及したら、その意図を読み取ります。

シグナルステータスアクション
「finished」「done」「completed」「shipped」完了archive/completed フォルダーに移動
「submitted」「sent」「delivered」完了archive/completed フォルダーに移動
「missed」「passed」「skipped」「expired」未達archive または missed フォルダーに移動
「cancelled」「abandoned」「killed」キャンセルarchive フォルダーに移動
「paused」「on hold」「deferred」一時停止frontmatter のステータスを更新し、そのままの場所に置く
「restarting」「reopening」「reviving」再開active フォルダーに戻す

ワークフロー

1. エンティティを見つける

複数のバリエーションで Basic Memory を検索し、エンティティを見つけます。

bm_search(query="quarterly report")
bm_search(query="Q1 report")

複数の候補が見つかった場合は、選択肢を提示して、どれかを尋ねます。

該当するものが見つからない場合は、推測せずに詳しい説明を求めます。

2. ファイルを移動する

bm_move を使って、エンティティを適切なステータスのフォルダーに移動します。

bm_move(
  identifier="tasks/active/quarterly-report",
  destination="tasks/completed/quarterly-report.md"
)

デフォルトでは、移動後もパーマリンクは変わらないため、リンクは引き続き有効です。update_permalinks_on_move が有効になっているプロジェクトでは、新しいパスに基づいてパーマリンクが書き換えられます。

3. Frontmatter を更新する

移動後、command="set_metadata" と metadata パラメーターを使って、新しいステータス(およびそのタイプで管理している場合は完了日)を frontmatter にマージします。これにより、本文は変更されません。

bm_edit(
  identifier="tasks/completed/quarterly-report.md",
  command="set_metadata",
  metadata={"status": "completed", "completed": "2026-02-22"}
)

ノートに - [status] の観察事項も含まれている場合は、それも更新します(たとえば、- [status] active に対して find_replace を使います)。

4. 確認する

実施した内容を簡潔に伝えます。

Marked complete: Quarterly Report
  Moved to: tasks/completed/quarterly-report.md
  Status: completed

例外的なケース

すでにアーカイブされている場合

エンティティがすでに archive/completed フォルダーにある場合は、ユーザーに伝えます。

「Quarterly Report はすでに tasks/completed/ にあります。何か更新しますか?」

部分的な完了

エンティティの一部だけが完了している場合があります。移動はせず、エンティティ内の観察事項やステータスに関するメモを更新して、進捗状況を反映します。

ロックされたノート

frontmatter に locked: true があるノートは移動できますが、ロックは維持され、ステップ 3 のステータス編集は拒否されます。移動したことと、ステータスは変更されていないことを伝えます。ロックを解除できるのはユーザーだけです。ファイルを編集して解除する必要があります。

元に戻す/再開する

誤ってアーカイブした場合は、元の場所に戻します。

bm_move(
  identifier="tasks/completed/quarterly-report",
  destination="tasks/active/quarterly-report.md"
)

bm_edit(
  identifier="tasks/active/quarterly-report.md",
  command="set_metadata",
  metadata={"status": "active"}
)
移動を伴わないステータス変更

「一時停止」や「ブロック中」の項目は、多くの場合、フォルダーを移動せずに active/ に残し、frontmatter だけを更新します。フォルダーの移動は、終端状態や大きな状態遷移に限って行います。

他のスキルとの関係

  • memory-tasks:タスクはライフサイクルにおける特定のケースです。このスキルでは一般的なパターンを扱い、memory-tasks ではタスク固有のフィールド(steps、current_step、context)を扱います。
  • memory-notes:エンティティを遷移させる前に、memory-notes の「作成前に検索」を使ってエンティティを見つけてください。
  • memory-defrag:定期的なデフラグにより、アーカイブすべき古いアクティブ項目を特定できます。

ガイドライン

  • 削除せず、アーカイブしてください。 ナレッジグラフでは履歴情報が役立ちます。
  • 先に移動し、その後フロントマターを更新してください。 この順序にすることで、編集に失敗してもファイルは正しい場所に配置されます。
  • 移動後もパーマリンクは通常そのまま使えます。 プロジェクトで update_permalinks_on_move が有効になっていない限り、エンティティへのリンクは bm_move の後も機能します。
  • 確認は簡潔にしてください。 ユーザーは自身のシステムを把握しているため、変更内容だけを伝えてください。
  • 曖昧な場合は尋ねてください。 複数のエンティティが該当する場合や、移動先のフォルダーが明確でない場合は、推測せずに確認してください。
  • 一括操作も問題ありません。 ユーザーが「完了したタスクをすべてアーカイブして」と言った場合は、該当するものをすべて見つけて一覧を確認し、その後順番に移動してください。

コメント