2 ポイント 投稿者 chunbak 6 시간 전 | まだコメントはありません。 | WhatsAppで共有

最近はほとんどのコーディングをターミナルエージェントと一緒に行っています。VS Code の中で Claude Code、Codex、Gemini CLI を並べて立ち上げ、基本実装は Claude に任せ、セキュリティや回帰のように外部の視点が必要なときは Codex にレビューさせる、といった具合です。そうしていると、モデルを切り替えるたびに、目標は何か、壊してはいけないものは何か、直前のモデルが何を試して失敗したのかを、毎回説明し直していました。結局、私自身が3つのターミナルをつなぐ人間クリップボードになっていたのです。

似たようなツールを探してみると、すでにたくさんありました。複数のエージェントを1つのウィンドウに表示するコックピット(Claude Squad、Orch term 系)、1つのハーネスから別のモデルを呼べるようにするプロキシ(opencodex、oh-my-free-models 系)、役割を分けて作業を配分するオーケストレーター(Oh My OpenCode 系)まであります。ところが、私が実際に直面していた問題――モデルを切り替えても作業そのものが途切れないようにすること――を正面から扱うものは、意外と少なかったのです。多くは「ハンドオフをより上手に行う」方向でした。

Framein は、ハンドオフをより上手にするのではなく、ハンドオフ自体を別途必要にしない方向を選びました。新しい IDE でも、コックピットでも、プロキシでも、もう1つのハーネスでもありません。すでに使っているエージェントの下に敷く、薄いローカルの作業状態(work-state)レイヤーです。3つのエージェントが同じ作業契約・意思決定記録・検証結果をリポジトリ内で一緒に読むため、「引き継ぐ」という行為そのものが別のステップではなくなります。次のモデルは、私が要約した事実ではなく、事実そのものを読みます。

ループは4つの動詞です。ここでの「リード(lead)」は、現在実際の実装を担当しているモデルを指します。レビューを担当するモデルと区別するための表現です。

  • start : 実装がぶれる前に、リクエストを作業契約(目標・受け入れ条件・保護領域・non-goal)として固定します。
  • challenge : 別のモデルに範囲を絞った反論を求め、リードに一度だけ応答させたうえで私が判断します。あるモデルが自信を持って「実装をすべて完了しました」と言うとき、同じ契約と diff を読んだ別のモデルに「この計画で抜けているリスクは何か」と問いかけてもらう場です。
  • capsule : 次のリードが読む事実(契約・diff・検証・ADR・ledger)を準備します。
  • ship : モデルが「終わった」と言うのではなく、実際のビルド/テスト/リスクゲートで作業を閉じます。

ターミナルから直接呼び出すこともできますし、Claude/Gemini 内では /fr:* スラッシュコマンドとして、Codex では $fr-* スキルとして呼び出せます。どちらから呼んでも、同じローカルエンジンと同じ状態を読み書きします。既存のハーネス、スキルパック、ペルソナはそのままに、その下に契約・台帳・ゲートだけを敷く構造です。

設計で特に注意した点です。

  • 意思決定記録(ADR)は append-only です。修正・削除はせず、新しい記録で置き換えるだけです。ひそかに書き換えられる意思決定記録は、2つ目のモデルがそれを信じた瞬間に無価値になると考えました。
  • 認証情報は収集しません。トークン中継も、サブスクリプションのプーリングも、ターミナル入出力のスクレイピングもしません。認証は各公式 CLI がそのまま保持し、必要なときにローカルで呼び出すだけです。(そのためプロキシ系とは別の層です。)
  • ランタイム依存は 0 です。Node 22 の組み込み node:sqlite と組み込みテストランナーだけを使います。SQLite store はキャッシュであり、正本は git フレンドリーな JSON スナップショットなので、半年後に依存関係の変動でインストールが壊れることはありません。

現在は pre-release v0.0.6 で、コア(store、CLAUDE.md/AGENTS.md/GEMINI.md への投影、作業契約、verify/risk/ship ゲート、/fr:・$fr- ラッパー、MCP サーバー)まで実装されており、249件のテストを通過しています。まだ調整中なのは、Windows のコード署名パス、署名・公証済み実行ファイルの配布、クリーンな環境でのインストール検証、複数開発者ワークフローです。

npm install -g framein でインストールできます(Node 22.5+ が必要)。MIT ライセンスです。名前は映画用語から取りました。被写体が画角の外に消えるのがフレームアウト、それを再び画面内に入れるのがフレームインです。散らばった3つのエージェントを1つのフレームの中に収める、という意味で名付けました。

コックピット、プロキシ、ハーネスをすでに使っている方でも、その下で作業状態がたびたび漏れていく感覚があったなら、あるいは2つ以上のコーディングエージェントを行き来しながら作業しているなら、Framein がその空白を埋められるかフィードバックをいただきたいです。

ウェブサイト : https://www.framein.dev/ko
GitHub : https://github.com/framein-dev/framein
開発者ノート(なぜ作ったのか) : https://www.framein.dev/ko/why

まだコメントはありません。

まだコメントはありません。