session-memory

📁 chachamaru127/claude-code-harness 📅 6 days ago
10
总安装量
10
周安装量
#30345
全站排名
安装命令
npx skills add https://github.com/chachamaru127/claude-code-harness --skill session-memory

Agent 安装分布

opencode 10
gemini-cli 10
github-copilot 10
codex 10
amp 10
kimi-cli 10

Skill 文档

Session Memory Skill

セッション間の学習と記憶を管理するスキル。 過去の作業内容、決定事項、学んだパターンを記録・参照します。


トリガーフレーズ

このスキルは以下のフレーズで自動起動します:

  • 「前回何をした?」「前回の続きから」
  • 「履歴を見せて」「過去の作業」
  • 「このプロジェクトについて教えて」
  • “what did we do last time?”, “continue from before”

概要

このスキルは .claude/memory/ に作業履歴を保存し、 セッション間での知識の継続を実現します。

あわせて、重要な情報は「どこに残すべきか」を明確にします(詳細: docs/MEMORY_POLICY.md)。


メモリ構造

.claude/
├── memory/
│   ├── session-log.md      # セッションごとのログ
│   ├── decisions.md        # 重要な決定事項
│   ├── patterns.md         # 学んだパターン
│   └── context.json        # プロジェクトコンテキスト
└── state/
    └── agent-trace.jsonl   # Agent Trace(ツール実行履歴)

推奨運用(SSOT/ローカル分離)

  • SSOT(共有推奨): decisions.md / patterns.md
    • 「決定(Why)」と「再利用できる解法(How)」を集約する
    • 各エントリは タイトル + タグ(例: #decision #db)を付け、先頭に Index を置く
  • ローカル推奨: session-log.md / context.json / .claude/state/
    • ノイズ/肥大化しやすいため、基本は Git 管理しない(必要なら個別に判断)

自動記録される情報

session-log.md

各セッション記録には ${CLAUDE_SESSION_ID} 環境変数を活用してセッションIDを付与します。 これにより、セッション間のトレーサビリティが向上します。

## セッション: 2024-01-15 14:30 (session: abc123def)

### 実行したタスク
- [x] ユーザー認証機能の実装
- [x] ログインページの作成

### 生成したファイル
- src/lib/auth.ts
- src/app/login/page.tsx

### 重要な決定
- 認証方式: Supabase Auth を採用

### 次回への引き継ぎ
- ログアウト機能が未実装
- パスワードリセットも必要

Note: ${CLAUDE_SESSION_ID} は Claude Code が自動設定する環境変数です。 セッションごとに一意のIDが割り当てられ、ログの追跡や問題調査に役立ちます。

decisions.md

## 技術選定

| 日付 | 決定事項 | 理由 |
|------|---------|------|
| 2024-01-15 | Supabase Auth | 無料枠あり、セットアップ簡単 |
| 2024-01-14 | Next.js App Router | 最新のベストプラクティス |

## アーキテクチャ

- コンポーネント: `src/components/`
- ユーティリティ: `src/lib/`
- 型定義: `src/types/`

patterns.md

## このプロジェクトのパターン

### コンポーネント命名
- PascalCase
- 例: `UserProfile.tsx`, `LoginForm.tsx`

### API エンドポイント
- `/api/v1/` プレフィックス
- RESTful 設計

### エラーハンドリング
- try-catch で囲む
- エラーメッセージは日本語

context.json

{
  "project_name": "my-blog",
  "created_at": "2024-01-14",
  "stack": {
    "frontend": "next.js",
    "backend": "next-api",
    "database": "supabase",
    "styling": "tailwind"
  },
  "current_phase": "フェーズ2: コア機能",
  "last_session": "2024-01-15T14:30:00Z"
}

処理フロー

セッション開始時

  1. .claude/memory/context.json を読み込み
  2. 前回のセッションログを確認
  3. Agent Trace から直近の編集履歴を取得
  4. 未完了タスクを特定
  5. コンテキストサマリーを生成

Agent Trace 活用:

# 前回の編集ファイル一覧を取得
tail -50 .claude/state/agent-trace.jsonl | jq -r '.files[].path' | sort -u

# プロジェクト情報を取得
tail -1 .claude/state/agent-trace.jsonl | jq '.metadata'

セッション中

  1. 重要な決定を decisions.md に記録
  2. 新しいパターンを patterns.md に追加
  3. ファイル生成を session-log.md に記録

セッション終了時

  1. セッションサマリーを生成
  2. context.json を更新
  3. 次回への引き継ぎ事項を記録

メモリ最適化(CC 2.1.49+)

Claude Code 2.1.49 以降、セッション再開時のメモリ使用量が 68% 削減 されました。

推奨ワークフロー

# 長時間作業は --resume を活用
claude --resume

# 大規模タスクは分割してセッション再開
claude --resume "続きから"
シナリオ 推奨
長時間実装 1-2時間ごとにセッション再開
大規模リファクタ 機能単位でセッション分割
メモリ不足警告 即座に --resume で再開

💡 メモリ効率が大幅に改善されたため、セッション再開を積極的に活用してください。


使用例

前回の続きから開始

ユーザー: 「前回の続きから」

Claude Code:
📋 前回のセッション(2024-01-15)

完了したタスク:
- ユーザー認証機能
- ログインページ

未完了:
- ログアウト機能
- パスワードリセット

「ログアウト機能を作って」と言えば続きを実装します。

プロジェクトの状況確認

ユーザー: 「このプロジェクトについて教えて」

Claude Code:
📁 プロジェクト: my-blog

技術スタック:
- Next.js + Tailwind CSS + Supabase

現在のフェーズ: コア機能開発
進捗: 40% 完了

最近の決定:
- Supabase Auth を採用
- App Router を使用

Claude Code 自動メモリとの関係(D22)

Claude Code 2.1.32+ には「自動メモリ」機能があり、~/.claude/projects/<project>/memory/MEMORY.md にセッション間の学習を自動保存します。

Harness のメモリシステムとは3層アーキテクチャとして共存します:

層 システム 内容 管理
Layer 1 Claude Code 自動メモリ 汎用的な学習(ミス回避、ツール使い方) 暗黙的・自動
Layer 2 Harness SSOT プロジェクト固有の決定事項・パターン 明示的・手動
Layer 3 Agent Memory エージェント別のタスク学習 エージェント定義

使い分け:

  • Layer 1 の知見がプロジェクト全体に重要 → /memory ssot で Layer 2 に昇格
  • 日常的な学習は Layer 1 に任せる(無効化しない)
  • Agent Teams 使用時は並列書き込みに注意

詳細: D22: 3層メモリアーキテクチャ


注意事項

  • 自動保存: hooks/Stop により、セッション終了時に session-log.md へ要約を自動追記する運用を推奨(未導入の場合は手動運用でOK)
  • プライバシー: 機密情報は記録しない
  • Git方針: decisions.md/patterns.mdは共有推奨、session-log.md/context.json/.claude/state/はローカル推奨(詳細: docs/MEMORY_POLICY.md)
  • 容量管理: ログが大きくなったら「セッションログを整理して」を推奨