--- description: メモリを保存してセッションを継続する(/bye のメモリ保存ステップのみ。終了しない)。/compact 前に実行して記憶を守る。 --- # Checkpoint — メモリ保存(継続) ## タスク このセッションを振り返り、将来の会話で役立つ情報をメモリに保存する。 **セッションは終了しない。保存後に /compact や作業継続が可能。** ### 保存すべき情報の判断基準 以下に該当するものがあれば保存する(なければスキップ): - **user**: ユーザーの役割・知識・好みで新たに判明したこと - **feedback**: ユーザーが承認・修正した非自明なアプローチ(なぜそうするかの理由も含めて) - **project**: 誰が何をいつやるか、意思決定の背景、締め切り等 - **reference**: 外部システム・ URL・ドキュメントの場所 ### 保存しないもの - コードパターン・アーキテクチャ(コードから読める) - git 履歴・直近の変更(git log から読める) - 一時的なタスク状態・今セッションだけの情報 - CLAUDE.md に既に書かれていること ## 手順 文脈が大きいときの呼び出しでは 1 ツール要求ごとに文脈全体の読み出し費用がかかる。ツール呼び出しを最小にする(理想は 1〜2 回の Bash)。何を保存するかは変えず、書き込み方だけをまとめる。 1. **保存すべき事実を先に頭の中で全部決める**。会話を振り返り、判断基準に照らして保存対象を洗い出す。前回の保存以降の分を必ず見直す(「今セッションは随時保存してきた」は省略の理由にならない)。`MEMORY.md` は起動時に CLAUDE.md の import で既に文脈にある。**Read し直さない**。文脈内の索引を見て、新規に書くか既存エントリを更新するかを判断する。重複追記はしない。 2. **1 回の Bash(heredoc)でまとめて書き込む**。次を 1 つの Bash にまとめる: - 既存ファイルの有無は同じ Bash の中で `test -f` / `ls` で確かめる - メモリ本体ファイルの新規作成・更新を `cat > '' <<'EOF' … EOF` で書く。heredoc は `<<'EOF'` で引用し、frontmatter(`name` / `description` / `metadata.type`)の書式を崩さない - `MEMORY.md` への索引行は `>> ''` で**追記**する(Edit で全体を書き換えない。他セッションとの同時編集で追記が消える事故の対策でもある)。索引は 1 メモリ 1 行。関連する記憶が増えたら `topic_*.md` に寄せ、本体から `[[wikilink]]` で参照する - 書き込み後の検証は末尾で `head` を 1 回流す程度にとどめる 3. **既存メモリファイルの一部だけを直す必要があるとき**だけ Edit を使う。ただし数を最小にする(まとめて上書きできるものは手順 2 の Bash 側で書く)。 4. **1 行報告**(セッションは継続)。「保存完了 / 保存なし」を伝える。 ## メモリ保存先 - `~/.claude/memory/`(索引は `~/.claude/memory/MEMORY.md`。`~/.claude/CLAUDE.md` に `@~/.claude/memory/MEMORY.md` と書いて起動時に読み込ませる)