memory-lifecycle について
memory-lifecycleは、Basic Memoryのエンティティの状態遷移を管理するスキルです。ナレッジグラフ内のタスクや記録を、削除せずにアーカイブし、配置とステータスを合わせて更新します。
主な機能
- 01状態に応じたファイル移動
- 02ノートのfrontmatter更新
- 03アーカイブと履歴の保持
- 04再開や部分完了への対応
- 05曖昧な場合の確認
活用シーン
- 01完了タスクのアーカイブ
- 02誤ってアーカイブした記録の復元
- 03長期間未更新の項目の整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ basicmachines-co/ basic-memory-skills --skill memory-lifecycleインストール後、Claude Code で/memory-lifecycleを入力して読み込まれたか確認します。
詳細
メモリのライフサイクル
Basic Memory でエンティティがステータスの各段階をどのように移行するかを管理します。基本原則は、削除せず、アーカイブすることです。 完了した作業も貴重なコンテキストです。アクティブな表示からは外しつつ、ナレッジグラフには残します。
使用するタイミング
- ユーザーが何かについて「完了した」「終わった」「提出した」「期限を逃した」「キャンセルした」と言ったとき
- エンティティをステータスフォルダー間で移動するとき(active → archive、pipeline → active など)
- 誤って完了にしたものを元に戻すとき
- 定期的に古いアクティブ項目を整理するとき
基本原則:削除せず、アーカイブする
ノートを削除すると、ナレッジグラフからノートが取り除かれ、すべての観察、関係、履歴が失われます。アーカイブすればすべてを保持したまま、エンティティがアクティブではなくなったことを示せます。
# Good — entity stays in the knowledge graph
move_note → active/ to archive/
# Bad — knowledge is lost
delete_note
例外は、誤って作成したノート(誤字や実際の重複)だけ削除できます。
フォルダーの規則
フォルダーを使って、ステータスごとにエンティティを整理します。具体的なフォルダー名はドメインによって異なりますが、一貫したパターンに従ってください。
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 を検索し、エンティティを特定します。
search_notes(query="quarterly report")
search_notes(query="Q1 report")
複数の候補が見つかった場合は、選択肢を提示してどれかを確認します。
一致するものが見つからない場合は、推測せずに詳細を確認します。
2. ファイルを移動する
move_note を使って、エンティティを適切なステータスフォルダーに移動します。
move_note(
identifier="tasks/active/quarterly-report",
destination_path="tasks/completed/quarterly-report.md"
)
パーマリンクは変わらないため、既存の [[wiki-links]] と memory:// URL は引き続き有効です。
3. Frontmatter を更新する
移動後、frontmatter のステータスを一致するように更新します。
edit_note(
identifier="quarterly-report",
operation="find_replace",
find_text="status: active",
content="status: completed"
)
完了日フィールドがある場合は、日付を設定します。
edit_note(
identifier="quarterly-report",
operation="find_replace",
find_text="completed:",
content="completed: 2026-02-22"
)
4. 確認する
実施した内容を簡潔に報告します。
Marked complete: Quarterly Report
Moved to: tasks/completed/quarterly-report.md
Status: completed
例外的なケース
すでにアーカイブ済み
エンティティがすでに archive/completed フォルダーにある場合は、ユーザーに知らせます。
「Quarterly Report はすでに tasks/completed/ にあります。何か更新しますか?」
一部のみ完了
エンティティの一部だけが完了している場合もあります。移動はせず、エンティティ内の観察やステータスのメモを更新して、部分的な進捗を反映します。
元に戻す/再アクティブ化する
誤ってアーカイブした場合は、元の場所に戻します。
move_note(
identifier="tasks/completed/quarterly-report",
destination_path="tasks/active/quarterly-report.md"
)
edit_note(
identifier="quarterly-report",
operation="find_replace",
find_text="status: completed",
content="status: active"
)
移動を伴わないステータス変更
一部のステータス変更では、フォルダーを移動する必要はありません。「一時停止」や「ブロック中」の項目は、多くの場合 active/ に置いたまま、frontmatter だけを更新します。フォルダーの移動は、終了状態や大きな状態遷移に限定してください。
他のスキルとの関係
- memory-tasks:タスクは、ライフサイクルの具体例です。このスキルでは一般的なパターンを扱い、memory-tasks ではタスク固有のフィールド(steps、current_step、context)を扱います。
- memory-notes:エンティティのステータスを移行する前に、memory-notes の検索してから作成するルールに従ってエンティティを探します。
- memory-defrag:定期的なデフラグによって、アーカイブすべき古いアクティブ項目を特定できます。
ガイドライン
- 削除せず、アーカイブします。 ナレッジグラフは過去の情報を活用できます。
- 先に移動し、その後でフロントマターを更新します。 この順序にすることで、編集に失敗してもファイルは正しい場所に配置されます。
- パーマリンクは移動後も有効です。 エンティティへのリンクは、
move_noteの後も引き続き機能します。 - 確認の返答は簡潔にします。 ユーザーは自分のシステムを把握しているので、変更内容だけを報告してください。
- 曖昧な場合は質問します。 該当するエンティティが複数ある場合や、移動先のフォルダーが明確でない場合は、推測せずに質問してください。
- まとめて操作してかまいません。 ユーザーから「完了したタスクをすべてアーカイブして」と言われた場合は、すべて見つけて一覧を確認し、その後順番に移動してください。