MemoryLake
すべての記事に戻る
Tutorial2026年8月27日·13 分で読了

コンテキストを失わずに Kiro から Claude Code へ移行する方法 (2026)

コーディングエージェント間の移行の多くは、ファイルを移動するものです。しかし、今回の移行はメモリシステムをより小さなメモリシステムへと移動させるものであり、興味深いのは、移行先にスロットが存在しない部分がどこなのかという点です。

Claude Code は、自身でメモリを書き込む初の一般的な移行先です。そのドキュメントには、2つのメカニズムが記載されています。「CLAUDE.md ファイル: Claude に永続的なコンテキストを提供するためにユーザーが記述する指示」と「自動メモリ (Auto memory): ユーザーの修正や好みに基づいて Claude が自動的に書き込むノート」です。そのため、永続的なコンテキストが完全にバージョン管理されたルールのみであるエディタへの移行とは異なり、空のコンテナを前にして途方に暮れることはありません。

しかし、移行によって6つのレイヤーから4つのカテゴリへと縮小することになります。Kiro Crew は、環境設定、プロジェクト、段階的な履歴、信頼度で制限されたセマンティックストア、ベクトル検索されるエピソードストア、そして両製品の中で最も強力なオーバーライド保証を持つレッスンストアを維持しています。Claude Code の自動メモリは4種類のノートを記録します。このマッピングは特定の、予測可能な方法で情報が失われる(不可逆な)ものであり、失われるものの1つは、あなたが恋しく思うであろうセーフティネットです。

本記事では、何が転送され、2つの設計がどこで本質的に分岐し、どこにも収まらない部分をどう処理すべきかについて解説します。同じ移行元からのもう1つの移行先については、Kiro から Cursor への移行方法で解説しています。Cursor のドキュメントインデックスにはメモリに関するページが一切存在しないため、これはまた異なる問題です。

実際に転送されるもの

CLAUDE.md およびパススコープのルールとしてのステアリングファイル。 Kiro はワークスペース用に .kiro/steering/ を、グローバル用に ~/.kiro/steering/ を読み込み、競合時はワークスペースを優先します。Claude Code の同等機能は、プロジェクト用の「チーム共有の指示」である ./CLAUDE.md と、すべてのプロジェクト用の「個人の環境設定」である ~/.claude/CLAUDE.md です。ただし、解決方法が異なる点に注意してください。Claude Code はオーバーライドするのではなく、読み込み順に連結し、「2つのルールが矛盾する場合、Claude は任意に一方を選択することがある」と警告しています。

Kiro のインクルージョンモードには、部分的な移行先があります。.claude/rules/ ファイルは、glob の paths: フロントマターフィールドを受け入れ、「Claude が指定されたパターンに一致するファイルを操作している場合にのみ適用」されます。これは Kiro の fileMatch に近いです。Kiro の always は、通常の常に読み込まれるファイルになります。Kiro の manual および auto モード(#name で呼び出されるか、説明からエージェントによって選択される)には直接対応するルールがないため、これらのファイルはスキルにするか、トリミングすべき常時オンのテキストにする必要があります。

注意点付きの AGENTS.md Kiro はこれを読み込み、「AGENTS.md ファイルはインクルージョンモードをサポートしておらず、常にインクルードされる」と記しています。Claude Code は「AGENTS.md ではなく CLAUDE.md を読み込みます」。ドキュメント化されている回避策は、CLAUDE.md の先頭にある1行の @AGENTS.md インポートです。これにより、インポートされたファイルがセッション開始時に読み込まれます。1つのファイルを信頼できる情報源として維持してください。インポートは「最大4ホップの深さ」まで解決され、インポートされたすべてのファイルが起動時にコンテキストに入ります。

ディレクトリ移動としてのスキル。 両者とも同じオープンスタンダードに基づいています。Kiro のスキルディレクトリは、個人用スキルは ~/.claude/skills/<name>/SKILL.md に、プロジェクト用スキルは .claude/skills/<name>/SKILL.md になります。優先順位に注意してください。これは Kiro のステアリングの挙動とは逆になります。Claude Code のルールでは、エンタープライズが個人をオーバーライドし、個人がプロジェクトをオーバーライドするため、同じ名前のプロジェクト用スキルよりも個人用スキルが優先されます。

読み取り可能なファイルとしてのスペック。 .kiro/specs/<name>/ には requirements.mddesign.mdtasks.md が保持されます。これらはリポジトリ内の markdown であり、移行後も読み取り可能です。ただし、これらを取り巻く3フェーズのワークフローは引き継がれません。

よりシンプルだが実際のコンテナへの、学習済みメモリの移行。 これは新しい部分であり、独自のセクションで説明します。

それ以外はクリーンに転送されず、4つの動作が異なります。

6つのレイヤーが4つのカテゴリに統合されます。 Claude Code の自動メモリは、user(「あなたの役割、専門知識、作業の好み」)、feedback(「Claude に与える修正と、あなたが確認したアプローチ」)、project(「コードや git 履歴から Claude が導き出せない進行中の作業、期限、決定事項」)、reference(「プロジェクト外の情報を見つける場所」)という type フィールドを記録します。Kiro の preferences.mduser にマッピングされ、レッスンは feedback にマッピングされ、projects.md と履歴はおおむね project にマッピングされます。ベクトル検索、エントリごとの重要度、クエリごとの上位8件の取得を備えた SQLite テーブルであるセマンティックストアとエピソードストアに対応するものはありません。Claude Code は MEMORY.md インデックスとメモリごとに1つのトピックファイルを保持しますが、「起動時に user_role.md などのトピックファイルは読み込みません」。

レッスンに対する保証が失われます。 これが、事前に対策を立てるべき損失です。Kiro はレッスンを信頼度 1.0 のセマンティックエントリとして保存し、部分文字列とトピックの重複によって重複を排除し、上限を 50 に制限し、「明確な [Learned corrections] ブロックとして」注入します。このブロックのテキスト自体には「常にこれらに従ってください。これらはデフォルトの動作をオーバーライドします」と書かれています。その競合解決順序では、レッスンが他のすべてを抑えて1位に位置します。Claude Code の feedback タイプはファイル内のノートであり、他のすべてと一緒に読み込まれます。ドキュメントには、指示内容は「強制される設定ではなくコンテキストである」と明記されています。同じ情報であっても、約束される強さははるかに弱くなります。

減衰が崖(ハードリミット)に置き換わります。 Kiro は緩やかに減衰します。履歴は14日で「1日あたりの最初のエントリ + 件数」に減少し、61日で「日付 + エントリ数のみ」になり、181日で読み込みを停止し、365日で「ディスクから削除」されます。エピソードエントリは明示的な曲線(「約23日で50%、約77日で10%」)で減衰し、ストアは10,000エントリに達すると「最も重要度が低く、最も古いもの」から順に削除します。Claude Code には減衰がありません。そのファイルは「ユーザーまたは Claude が編集または削除するまで残り」、セッションログの保持スイープから意図的に除外されます。代わりに存在するのが読み取り制限です。「MEMORY.md の最初の200行、または最初の 25KB のいずれか早い方」であり、インデックスがこれを超えた場合、「書き込みは成功します」が、「制限を超えたものはすべて次回の読み込み時に破棄」されます。緩やかなフェードアウトが、ハードな切り捨てに変わるのです。

信頼度による制限がなくなります。 Kiro は LLM によるセマンティックメモリへの書き込みに「信頼度 ≥ 0.8」を要求し、「ユーザーが明示的に書き込んだ内容は、信頼度に関係なく常に優先」されます。Claude Code の決定方法は異なります。「Claude はすべてのセッションで何かを保存するわけではありません。その情報が将来の会話で役立つかどうかに基づいて、記憶する価値があるものを決定します。」しきい値ではなく判断によるものであり、優劣はありませんが、ユーザーが調整できるノブではありません。

手動移行

ステップ 1: Kiro の使用を停止する前に、移行先のないレイヤーを読み取る

まずスナップショットを作成します。kirocrew snapshot は、メモリ、ワークスペース、cron、設定、スキル、通知を tarball にまとめます。これは Kiro のみが読み取れるため、インポートファイルとしてではなくバックアップとして扱ってください。また、Kiro の組み込みの日次ジョブは「過去7日分のスナップショットを保持する」ため、先週のものがまだ残っているとは限りません。Kiro のドキュメントからの注意点として、「スナップショットには機密データ(監査ログの整合性に使用されるセキュリティキー)が含まれています」とあります。

次に、以下の4つの項目をこの順序で読み取ります。

あなたのレッスン。 上限 50 件、信頼度 1.0 であり、Kiro において最も優先度の高いレイヤーです。これらは、あなたが直接指示した修正、またはあなたが Kiro を修正したパターンから Kiro が抽出した修正です。リポジトリ内の何ものもこれらを示唆しておらず、これらは間もなく通常のノートになろうとしています。

preferences.mdprojects.md どちらも「30メッセージごとにコンソリデータによって一括置換され、追記型ではない」ため、読み取っている内容はログではなく、Kiro が捉えている現在のあなたのモデルです。また、それぞれ 4,250 文字と 6,400 文字に制限されているため、非常に高いシグナル対ノイズ比を持つ短い読み物です。

エピソードエントリ。 それぞれ 10~2,000 文字の短いスニペットで、最大 10,000 件あります。すべてを読む必要はありません。現在も関わっているプロジェクトをクエリしてざっと目を通してください。検索ではクエリごとに上位8件が返されます。

Kiro Web の学習済みメモリ(使用していた場合)。 「設定」の「メモリ」にあります。Kiro 独自の表は、内面化する価値のある境界線を示しています。メモリとは「作業してフィードバックを与える中でエージェントが自動的に学習するもの」であり、ユーザーは「削除」を制御します。ステアリングとは「ユーザーが明示的に記述するもの」であり、ユーザーは「すべての編集」を制御します。ここで失われるリスクがあるのは、前者の半分だけです。

ステップ 2: 記述された半分を定着させ、自動記述される半分の期待値を設定する

まずは指示から。 ステアリングファイルに fileMatch パターンがあった場所には paths: glob を使用して、.kiro/steering/CLAUDE.md および .claude/rules/ ファイルに変換します。生成された開始点が欲しい場合は /init を実行してください。これは既存のファイルを「上書きするのではなく、改善を提案」します。

次にトリミングします。Claude Code のガイダンスでは、「CLAUDE.md ファイルあたり 200 行未満を目指す」ことを推奨しています。理由は「ファイルが長くなるとコンテキストをより多く消費し、準拠度が低下するため」です。常時オンのファイルが1ダースにまで増えたステアリングディレクトリは、この予算内では維持できません。読み取り制限に決められる前に、何を捨てるかを決めるのが誠実な対応です。

/context で実際に何が読み込まれたかを確認し、Memory files の下のリストをチェックしてください。これが決定的な答えであり、ドキュメントに記載されている最初のデバッグステップです。

次に自動メモリ。1週間様子を見ます。 これはデフォルトでオンになっています。その保存先は ~/.claude/projects/<project>/memory/ です。ここで <project> は「git リポジトリから派生するため、同じリポジトリ内のすべてのワークツリーとサブディレクトリは1つの自動メモリディレクトリを共有」します。

後で気づくのではなく、今内面化しておくべき2つの特性があります。これは意図的に指示ファイルを補完するように設計されています。Claude は「コードベースから導き出せるものはすべてスキップ」し、「CLAUDE.md ファイルにすでに記載されているものはすべてスキップ」します。そのため、メモリディレクトリには、変換されたステアリングに含まれていないものだけが保持されます。そして、これはポータブルではありません。「自動メモリはマシンローカル」であり、「ファイルはマシン間やクラウド環境間で共有されません」。

したがって、この移行のポータビリティに関する誠実なまとめは、あるホームディレクトリから別のホームディレクトリに移動しただけ、ということです。Kiro Crew のメモリは ~/.kiro/ の下にあり、Claude Code のメモリは ~/.claude/ の下にあります。どちらも移動しません。この問題の一般的な構図については、Claude Code がプロジェクトのコンテキストを忘れる理由で説明されています。

1週間後に /memory を実行し、書き込まれた内容を確認してください。その後、Kiro のレッスンを明示的なコンテンツとして再入力してください。Claude が自身のために書き込む feedback ノートは、あなたが主張したルールと同じではないからです。

より良い方法:学習した半分をホームディレクトリに閉じ込められない場所に保管する

この移行が実際にどのようなものであったかを見てみましょう。ステアリングファイルはクリーンに変換されました。スキルはディレクトリの移動が必要でした。スペックは読み取り可能なままでした。そして、本当に手間がかかった部分、つまりクリーンな移行先がなかった部分は、1台のマシンの1人のユーザーのホームディレクトリの下に置かれていた、手動で読み取って再入力しなければならなかった6つのレイヤーの学習済み知識でした。

これは Kiro の問題でも Claude Code の問題でもありません。両者とも学習済みメモリシステムを構築し、設計上それらをローカルに保持しており、どちらも合理的なエンジニアリングの選択です。ただ、あるアプローチを拒否した理由の唯一のコピーが、どちらのシステム内にも存在すべきではないというだけのことです。

それこそが MemoryLake が保持するものです。プロジェクトの永続的な知識をツールがクエリするレイヤーに保持するため、次の移行は書き写しの作業ではなく、単なる好みの選択になります。セットアップは3つのステップです。

ステップ 1: API キーを作成する

サインインして API キーを作成します。接続するツール間で共通の1つの認証情報です。

MemoryLake API キーの作成
MemoryLake API キーの作成

ステップ 2: 最初のメモリをアップロードする

1つの主張につき1つの短いエントリ。記憶が新しいうちに、ステップ1の読み取りから直接これらを書き出します。

最初のメモリを MemoryLake ワークスペースにアップロードする
最初のメモリを MemoryLake ワークスペースにアップロードする

50のレッスン、1エントリにつき1つ。 Kiro において最も優先度が高く、最も再構築が困難な資産です。

preferences.mdprojects.md が現在示している内容。 一括置換されるファイルは、構造上短くなっています。貼り付けるのではなく、個々の主張に分割してください。

理由が添付された決定事項。 「負荷がかかるとレプリカが遅延するため、書き込みをキューに入れます。」ルールはポリシーを示しますが、代替案が再浮上するのを防ぐのは理由だけです。

すでに試され、ここで却下されたアプローチ。 ステアリングにもコミットメッセージにも存在せず、セッションごとに再提案されるものです。

ステップ 3: AI とエージェントを接続する

MemoryLake は MCP および API 経由でアクセス可能であり、Kiro と Claude Code の両方が MCP サーバーをサポートしています。そのため、移行期間中に同じ推論のコピーを2つ維持することなく、これらを並行して実行でき、他のアシスタントも API を通じて同じメモリを読み取ることができます。

MCP および API を介して AI アシスタントとエージェントを MemoryLake に接続する
MCP および API を介して AI アシスタントとエージェントを MemoryLake に接続する

3つの誠実な制限事項。MemoryLake は Crew のスナップショットの読み取り、Kiro Web のメモリのインポート、または CLAUDE.md や自動メモリファイルの書き込みを行うことはできません。 これらは各製品独自のインターフェースであり、上記のローダーの挙動は各製品に依存します。MemoryLake は、ユーザーまたはエージェントが入力したもののみを保持するため、ステップ2は手動になります。また、指示は強制される設定ではなくコンテキストです。常に維持しなければならないものについて、Claude Code 自身の回答はファイルではなくフックです。

実務における変化

ステアリングの変換はほとんど機械的です。 fileMatchpaths: glob になり、常時オンは常時オンのままです。

スキルはディレクトリの移動と優先順位の確認が必要です。 個人用がプロジェクト用をオーバーライドします。

修正事項はオーバーライドブロックを失います。 重要なものはノートではなく、明示的な指示として再記述してください。

自動プルーニング(削減)が停止します。 段階的なフェードアウトはなくなりますが、MEMORY.md は 200 行または 25KB を超えると厳格に切り捨てられます。

ポータビリティは向上しません。 あるホームディレクトリから別のホームディレクトリへの移動にすぎません。この一般的な問題については、永続メモリが実際に意味することで説明されています。

Kiro から Claude Code への切り替えにおけるベストプラクティス

最初にスナップショットを作成し、tarball を共有ドライブに置かないようにします。 Kiro は、これに機密キーが含まれていると警告しています。

何よりも先にレッスンを読み取ります。 50個のエントリ、最優先事項、移行先には同等の保証はありません。

レッスンはメモリとしてではなく、指示として再記述します。 feedback ノートはコンテキストですが、あなたが記述した CLAUDE.md の行は意図(インテント)です。

fileMatch ステアリングを paths: ルールに変換し、残りをトリミングします。 200行の目標は、予算として扱うべきガイダンスです。

メモリではなく /context で検証します。 実際に読み込まれたのは Memory files リストです。

MEMORY.md の長さに注意してください。 読み取り制限を超えると、「制限を超えたものはすべて次回の読み込み時に破棄」されます。

コードベースを CLAUDE.md に貼り付けないでください。 両ベンダーとも、リポジトリにすでに記載されている内容を再記述しないようアドバイスしています。コスト面については、Claude Code がコードベースを再読み込みするのを停止する方法で説明されています。

推論は両方のツールの外に保持します。 ここでのすべてのレイヤーには上限があり、推論は最初に削減される対象です。一般的な解説は、長いコンテキストウィンドウがメモリではない理由にあります。

結論

Kiro から Claude Code への移行は、このファミリーの中で、学習した半分に移行先が存在する初めてのケースであり、それゆえに容易であると同時に、誤解を招きやすいものでもあります。ステアリングは CLAUDE.mdpaths: スコープのルールに変換され、AGENTS.md は1行のインポートで橋渡しされ、スキルはフォルダごとに移動し、スペックは読み取り可能なまま維持されます。自動メモリはデフォルトでオンになっており、1週間以内に修正の記録を開始します。

失われるものは具体的です。6つのレイヤーは4つのノートタイプになり、Kiro のセマンティックストアとエピソードストア(信頼度制限付きの書き込み、ベクトル検索、エントリごとの重要度、明示的な減衰曲線)に対応するものはありません。レッスンは、どちらのシステムが提供する最も強力な保証(競合解決順序の最上位に挿入される明確なブロックで、デフォルトの動作をオーバーライドするようエージェントに指示するもの)も失います。自動減衰は、200行または 25KB を超えたものを静かに破棄する厳格な読み取り制限に置き換わります。そして、両システムとも学習済みメモリを1台のマシンのホームディレクトリに保持するため、ポータビリティは向上しません。

したがって、スナップショットを作成し、50のレッスンと2つの統合されたファイルを読み取り、glob マッピングを使用してステアリングを変換し、重要だった修正事項は再学習を期待するのではなく指示として再記述してください。そして、決定事項や却下されたアプローチは、~/.kiro/~/.claude/ も所有しないレイヤーに配置しましょう。そうすれば、次の切り替えにかかるコストは、1四半期ではなく、ある日の午後だけで済みます。

よくある質問

Claude Code には Kiro Crew のメモリと同等の機能はありますか?

部分的にあります。Claude Code の自動メモリはデフォルトでオンになっており、Claude が自身のために書き込むノートを ~/.claude/projects/<project>/memory/ に保存し、userfeedbackproject、または referencetype タグを付与します。これは、Kiro の環境設定、レッスン、プロジェクトコンテキストをより大まかな粒度でカバーします。Kiro のセマンティックなキーバリューストアや、ベクトル検索とエントリごとの重要度を備えたエピソードストアに対応するものはありません。

Kiro のメモリファイルを Claude Code にコピーすることはできますか?

ファイルの移動としては不可能です。kirocrew snapshot は Kiro のみが読み取れる tarball を生成し、Kiro のメモリレイヤーは独自のフォーマットと制限を持つ ~/.kiro/crew/workspace/memory/ の下の SQLite テーブルと markdown ファイルに存在します。preferences.mdprojects.md、およびレッスンを読み取り、重要な内容を CLAUDE.md のコンテンツとして、または別のメモリレイヤーに再入力してください。

学習した修正事項は、移行後もデフォルトの動作をオーバーライドしますか?

同じ強さではオーバーライドされません。Kiro はレッスンを信頼度 1.0 の明確な [Learned corrections] ブロックとして競合解決順序の最上位に注入し、ユーザーが明示的に書き込んだ内容が常に優先されます。Claude Code は修正事項を他のすべてと一緒に読み込まれる feedback タイプのノートとして保存し、そのドキュメントでは指示内容を強制される設定ではなくコンテキストとして説明しています。重要なものは CLAUDE.md に明示的に再記述してください。

Claude Code のメモリは Kiro のように減衰しますか?

いいえ。Kiro は履歴を5つの段階を経てフェードアウトさせ、365日でディスクから削除し、エピソードエントリを明示的な曲線で減衰させます。Claude Code のメモリファイルは「ユーザーまたは Claude が編集または削除するまで残り」、セッションログの保持スイープから除外されます。代わりに読み取り制限が制約となります。セッション開始時に読み込まれるのは MEMORY.md の最初の200行、または最初の 25KB のみであり、それを超えるコンテンツは破棄されます。

Kiro のステアリングインクルージョンモードは Claude Code にどのようにマッピングされますか?

always は、通常の常に読み込まれる CLAUDE.md またはルールファイルになります。パターンを持つ fileMatch は、glob の paths: フロントマターフィールドを持つ .claude/rules/ ファイルになり、Claude が一致するファイルを操作するときにのみ読み込まれます。manualauto には直接対応するルールがありません。これらをスキルに変換するか、コンテンツを常時オンのファイルに統合してトリミングしてください。

移行後、自動メモリはマシン間で共有されますか?

いいえ。Claude Code のドキュメントには、自動メモリは「マシンローカル」であり、「ファイルはマシン間やクラウド環境間で共有されない」と記載されています。プロジェクトのパスはリポジトリから派生するため、同じ git リポジトリ内のすべてのワークツリーとサブディレクトリは1つのディレクトリを共有しますが、2台目のマシンは空の状態で開始されます。