session-memory について
session-memory は、CC10X ワークフロー向けに永続的で簡潔なメモリ運用を定めるスキルです。エージェントによるノートの読み込みや決定・検証結果の要約を導き、Markdown の保存はルーターが担います。
主な機能
- 01ワークフロー開始時のメモリ読み込み
- 02決定と学びの要約
- 03目的別のメモリ領域管理
- 04構造化メモリノートの出力
- 05ルーターによる Markdown 保存
- 06外部向け内容の機密情報除去
活用シーン
- 01コンテキスト圧縮後の作業再開
- 02BUILD、DEBUG、REVIEW、PLAN の連携
- 03セッション間での検証結果の保持
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ romiluz13/ cc10x --skill session-memoryインストール後、Claude Code で/session-memoryを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/context-budget-and-checkpointing.mdmemory-file-contracts.mdmemory-model-and-ownership.mdmemory-operations.md詳細
セッションメモリ(必須)
概要
CC10X メモリは、小規模で安定したバージョン管理された Markdown インデックスと、永続的なワークフロー成果物です。 これは、コンパクション後も情報を保持し、決定事項を保全し、セッションをまたいで BUILD/DEBUG/REVIEW/PLAN の足並みをそろえるためのものです。
メモリはインデックスであり、会話の記録ではありません。 簡潔にしてください。決定事項、学び、参照先、検証の証拠を、永続的で再利用可能なメモにまとめてください。
参照マップ
このファイルを制御プレーンとして維持してください。必要な参照先だけを読みます。
- メモリの各領域、所有権、昇格、ワークフローマーカーについては
references/memory-model-and-ownership.md - 権限不要の操作、ルーターのみが行う永続化、対象を絞った編集パターンについては
references/memory-operations.md - 必須の見出し、安定したアンカー、テンプレート、自動修復ルールについては
references/memory-file-contracts.md - コンテキスト予算のルール、警告サイン、チェックポイントのトリガーについては
references/context-budget-and-checkpointing.md
絶対厳守のルール
EVERY WORKFLOW MUST:
1. LOAD memory at START and before key decisions
2. EMIT memory-worthy notes before finishing
3. LET the router/workflow finalizer persist markdown memory
メモリを参照しないと、ワークフローは会話に依存するようになります。 要点をまとめずにメモリを説明口調で記述すると、コンテキストが肥大化し、重要な情報が埋もれます。
重要な境界
- メモリは
.cc10x/配下にあります。 - ルーターは、ルーティングまたは再開の前にメモリファイルを読み込み、自動修復します。
- WRITE エージェントはメモリを読みますが、
.cc10x/*.mdを直接編集してはいけません。 - WRITE エージェントは、Router Contract 内に構造化された
MEMORY_NOTESを出力します。 - READ-ONLY エージェントは
### Memory Notes (For Workflow-Final Persistence)を出力します。 - ルーターが所有する memory-finalize タスクだけが、メモリの Markdown ファイルを最終的に書き込めます。
- 永続化の前に、シークレット/PII を編集してください(外部向け成果物のみ)。ルーターが cc10x 作成コンテンツを外部向け成果物(
docs/plans/*、docs/research/*、設計ドキュメント、永続化されるメモリノート)に永続化する前に、MEMORY_NOTESまたは READ-ONLY エージェントのメモに含まれる貼り付けられたトークン、API キー、接続文字列、認証情報、個人データを編集します。安定したプレースホルダー(例:<redacted:secret>)に置き換え、周囲の制約はそのまま維持してください。これは、ファイル単位の「.env を決してコミットしない」ルールを補完するもので、作成コンテンツを対象とします。内部のマシン所有の.cc10x/オーケストレーション状態(workflows/{wf}.json、.events.jsonl、ルーターマーカー)は対象外であり、再開と重複排除キーが機能するよう、原文どおりに保つ必要があります。 .cc10x/workflows/{wf}.json配下のワークフロー成果物は永続的な実行上の正本であり、Markdown メモリは安定したインデックスです。- 必須の見出しとアンカーは契約です。新たなファイル構成やマーカースキームを作らないでください。
[DEBUG-RESET: wf:{...}]や[cc10x-internal] memory_task_idなど、ルーター所有のマーカーはエージェントが読み取り、尊重します。エージェントが代わりのものを作ることはありません。
メモリの各領域
情報の種類に応じて適切なレイヤーを使います。
activeContext.md:現在の焦点、最近の変更、決定事項、学び、参照先、阻害要因patterns.md:再利用可能なプロジェクト標準、注意点、規約、スキルに関するヒントprogress.md:現在のワークフロー、タスクのスナップショット、完了項目、検証の証拠docs/plans/*とdocs/research/*:詳細な成果物。メモリからこれらを参照します.cc10x/workflows/{wf}.jsonと.events.jsonl:永続的なオーケストレーション上の正本
所有権モデル全体または昇格の段階を確認する必要がある場合は、references/memory-model-and-ownership.md を読んでください。
蒸留ルール
メモリーの項目は、経緯を語るのではなく、要点を蒸留して記録します。
保持するもの:
- 理由を伴う決定
- 因果関係に関する学び
- 安定したモジュール境界とファイルパス
- 検証コマンドと終了結果
- 次のセッションで必要になる外部成果物のパス
削除するもの:
- 装飾的な文章
- 手順を追った日記風の記述
- 解決されなかった推測
- プロンプトの重複した言い直し
- 唯一の永続的な参照先である場合を除き、不安定な行番号
テスト:
新しいエージェントがメモリーを読んだだけで、会話全体を読み直さなくても現在の制約と次の手順を再構成できない場合、メモリーの蒸留が不十分です。
読み込む内容
常に読み込む
ワークフローの開始時、継続時、または再開時に、3つすべてのメモリーファイルを読み込みます。
.cc10x/activeContext.md
.cc10x/patterns.md
.cc10x/progress.md
次の操作の前に再読する
| 操作 | 再読するもの | 理由 |
|---|---|---|
| アーキテクチャ上の決定 | patterns.md + activeContext.md ## Decisions | プロジェクト標準との矛盾を避けるため |
| 実装方法の選択 | patterns.md + activeContext.md | 規約と最近の決定に沿うため |
| デバッグ | activeContext.md + patterns.md + progress.md | 過去の試行、注意点、根拠を再利用するため |
| 次の手順の計画 | progress.md + activeContext.md | 作業の重複を避け、順序を維持するため |
| 完了の宣言 | progress.md + 現在の計画/設計/調査の参照資料 | 根拠と対象範囲が引き続き一致しているか確認するため |
| ユーザーが「続けて」と指示したとき | 3つすべてのファイル | チャットの要約ではなく、永続化された状態を復元するため |
ファイル選択マトリクス
| 必要な情報 | 読むもの |
|---|---|
| 現在の焦点/阻害要因 | activeContext.md |
| 過去の決定/理由 | activeContext.md ## Decisions |
| 学んだ注意点 | patterns.md |
| プロジェクトの規約 | patterns.md |
| 完了事項/残作業 | progress.md |
| 根拠となるコマンドと終了結果 | progress.md ## Verification |
| 詳細な計画/調査 | activeContext.md ## References、次に参照先のファイル |
永続化する内容
メモリーに残す価値のある項目のみを出力します。
- 実装方針を変える決定
- 同じ間違いの再発を防ぐ学び
- コマンドと終了結果を伴う検証の証拠
- セッション後も引き継ぐべき、ブロッキングではない課題
- 次のワークフローで参照すべき計画、設計、調査資料
- 永続的なプロジェクトのパターンとして記録すべき、明確化されたユーザー基準や規約
永続化しない内容:
- 差分全体
- 冗長な実行ログ
- 達成を祝う叙述
- 証拠のない「正しく見えた」という主張
- 新たな制約を加えない重複メモ
- 外部向け成果物に記録するメモ内の生の秘密情報/個人情報。トークン、キー、接続文字列、個人データは、ドキュメント/計画/調査資料や永続化されたメモリーに記録する前にマスキングしてください(内部の
.cc10x/状態では、ID/キーのフィールドをそのまま保持します)。
エージェント出力の契約
WRITE エージェントは、Router Contract を通じてメモリーを永続化します。
MEMORY_NOTES:
learnings: ["Key causal insight"]
patterns: ["Reusable gotcha or convention"]
verification: ["`npm test` -> exit 0"]
deferred: ["Non-blocking follow-up or risk"]
ルール:
- 可能な限り、各項目を1行にまとめます。
- 一時的な表現より、安定した名詞を優先します。
- 検証結果は物語的な文章ではなく、
verificationに記載します。 - ブロッキングではない追加作業は、場当たり的なタスクではなく
deferredに記載します。 - 補完的なスキルの読み込みに失敗した場合、または重要な永続的成果物が欠落していた場合は、その影響を
learningsまたはdeferredに記載します。
READ-ONLY エージェントは、独自の ### Memory Notes (For Workflow-Final Persistence) セクションを使用します。ルーターはどちらの形式も同じ最終メモリー更新に永続化します。
プロジェクトスキルのヒント
メモリーを読み込んだ後、patterns.md ## Project SKILL_HINTS を確認します。
- 記載されたスキルが関連し、インストール済みの場合は、メモリーの読み込み後に呼び出します。
- スキルが見つからなくても致命的な問題とはみなしません。見つからなかったことでワークフローに影響があった場合は、メモリーに残す価値のある出力に記録します。
- このスキルのスキルIDを作り出したり、書き換えたりしないでください。
- WRITE エージェントがメモリーを直接編集して
## Project SKILL_HINTSを「保守」しようとしないでください。新たな永続的推奨事項が重要な場合は、プランナーの出力またはルーターが永続化するメモリーの注記に記載します。
ワークフローパターン
開始時
- 3 つすべてのメモリファイルを読みます。
- ワークフローで必要な場合に限り、
activeContext.md ## Referencesにある現在の計画、設計、または調査ファイルを読みます。 - メモリを読み込んだ後、
## Project SKILL_HINTSから承認済みのプロジェクト/ドメインスキルを読み込みます。 - コンテキストがすでに肥大化している場合は、
references/context-budget-and-checkpointing.mdを適用します。
実行中
- 重要な判断を下す前にメモリを読み直します。間違えた後ではありません。
[DEBUG-RESET: wf:{...}]のような、ルーターが管理するマーカーに従います。- コンパクション後も役立つよう、メモは要点を絞ります。
- 長い会話の要約より、永続的な成果物とファイルパスを優先します。
終了時
- 判断、学び、検証結果、保留項目を
MEMORY_NOTESに簡潔にまとめます。 - 各メモは事実に基づき、再利用できるものにします。
- ルーター/ワークフローのファイナライザーが Markdown ファイルを永続化するものとします。
- メモリサイクルが欠けている場合、ワークフローが完全に完了したと報告してはいけません。
コンテキスト予算とチェックポイント
長いセッションでは、エラーが明確に表面化する前に品質が低下します。
次の場合は references/context-budget-and-checkpointing.md を使用します。
- デバッグで複数回失敗している
- 計画や調査のために大きなファイルを多数読み込んでいる
- セッション中にすでに多数のツール呼び出しが行われている
- 曖昧さ、プロトコル手順の省略、または不確実性の高まりに気付いた
チェックポイントの原則:
- 永続的な状態をワークフロー成果物、計画、調査ファイル、メモリノートに保存します
- 重要なコンテキストを会話のトランスクリプトに頼って保持しないでください
コンパクション時の KEEP/SUMMARIZE/DROP 基準
cc10x のコンパクション耐性は構造的なものです。状態は .cc10x/ に保存されます。しかし、ルーターが永続化する前のフェーズ途中でネイティブコンパクションが発生することがあり、その時点でトランスクリプトにしか残っていない情報は、ひそかに破棄され、そのままひそかに無視される可能性があります。この基準に従って、トランスクリプトの内容を振り分けてください。
| Tier | 内容 | ルール |
|---|---|---|
| KEEP | ユーザーの厳格な制約と禁止事項(「Y に触れない」など)、正確な次の手順、未解決の失敗とそのエラー | 一言一句そのまま保持します。制約やエラーを言い換えてはいけません |
| SUMMARIZE | 解決済みの判断とその根拠、完了済みの試行、判明したファイル/モジュールの境界 | それぞれを永続的な一文にまとめます |
| DROP | 装飾的な文章、手順を逐一記した日記、古くなった推測、重複するプロンプトの再説明 | 破棄します |
ユーザーの禁止事項は、述べられた時点でただちにワークフロー成果物の intent フィールド(.cc10x/workflows/{wf}.json)に原文のまま永続化します。ワークフローの終了時まで待ってはいけません。そうすることで、「明示的なユーザー指示が優先される」という優先順位規則を、ルーターが通常の永続化を行う前にコンパクションが発生しても保持できます。まだ永続化できない場合は、ルーターが確定処理を行えるまで、KEEP 対象を作業コンテキストの先頭に原文のまま保持します。
危険信号
次のいずれかに気付いたら、作業を止めて軌道を修正してください。
- メモリを読み込まずに作業を始めている
## Decisionsやプロジェクトのパターンを確認せずに判断している- 日記のように長いメモリノートを書いている
- 「後で覚えている」と言っている
- 書き込みエージェントから
.cc10x/*.mdを直接編集している - 新しい見出し、マーカー、メモリファイルの形式を作り出している
- 永続的なメモリより古い会話コンテキストを優先している
合理化の防止
| 言い訳 | 実態 |
|---|---|
| 「小さなタスクだから不要」 | 小さなタスクでも判断と証拠は残ります。 |
| 「覚えておく」 | できません。コンパクションが勝ちます。 |
| 「会話にすでに書いてある」 | トランスクリプト上の情報より、永続的なメモリが優先されます。 |
| 「Markdown を直接少し直すだけ」 | メモリの一貫性を保つために、ルーター管理の永続化があります。 |
| 「メモは詳しくてもよい」 | 詳しすぎるメモはコンテキストを消費し、要点を埋もれさせます。 |
検証チェックリスト
- ワークフローの開始時にメモリを読み込んだ
- 新たな判断を下す前に、関連する判断やパターンを確認した
- メモを整理して
MEMORY_NOTESにまとめた - 検証結果を、メモリに残す価値のある形式で記録した
- 書き込みを行うエージェントが
.cc10x/*.mdを直接編集していない - セッションが長くなった場合、コンテキスト予算のチェックポイントを検討した
これらの項目にチェックを付けられない場合、メモリサイクルは完了していません。