memory-lifecycle について
memory-lifecycle は、Basic Memory 内のエンティティの状態遷移を管理するスキルです。ノートを削除せずにアーカイブし、ナレッジグラフの観察や関係を保ちながら、検索、移動、状態更新、再有効化を行います。
主な機能
- 01状態別フォルダーへのエンティティ移動
- 02状態と完了日の更新
- 03完了したエンティティと関係の保持
- 04誤ってアーカイブしたエンティティの再有効化
- 05候補が曖昧な場合の確認
活用シーン
- 01完了または中止した作業のアーカイブ
- 02保留中のプロジェクトを一時停止として記録
- 03完了扱いを誤ったエンティティの再開
- 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の後も機能します。 - 確認は簡潔にしてください。 ユーザーは自身のシステムを把握しているため、変更内容だけを伝えてください。
- 曖昧な場合は尋ねてください。 複数のエンティティが該当する場合や、移動先のフォルダーが明確でない場合は、推測せずに確認してください。
- 一括操作も問題ありません。 ユーザーが「完了したタスクをすべてアーカイブして」と言った場合は、該当するものをすべて見つけて一覧を確認し、その後順番に移動してください。