FlightPlan
FlightPlan
あなたのエージェントが衝突する。FlightPlanを提出せよ。
作業を始める前に、各エージェントは向かう先を宣言し、すでに進行中のものを確認します。競合を調整し、その後、何が変わったのか、なぜ変わったのかを残します。
助言であり、ロックではありません。
エージェントの作業の副産物であり、維持すべき別のプロセスではありません。
FlightPlanは、コーディングエージェントの作業が衝突する前に調整します。このリポジトリには、getflightplan.com のホステッドサービスのCLI、MCPサーバー、インストーラーが含まれています。
クイックスタート
リポジトリのルートから:
uvx getflightplan installこれでClaude Code用にFlightPlanがインストールされます。Codexの場合は、--agent codex(または --agent both)を追加してください。このコマンドは再実行しても安全です。マシンで初めての場合は、次に uvx getflightplan login を実行してください。アカウントを接続し、MCPのセットアップを完了します。
ホステッドサービスはベータ版です。getflightplan.com でGitHubアカウントを使ってサインインしてください。パッケージはPyPIにあるため、上記のコマンドだけで十分です。代わりにブランチやコミットを固定する場合は、ソースからインストールしてください:
uvx --from git+https://github.com/sledmonkey/getflightplan getflightplan install
バージョンと互換性ポリシー: docs/versioning.md
Related MCP server: asynkor
仕組み
作業を登録する。 編集前に、エージェントはタスクと、触れる予定のファイルを宣言します。
進行中の作業を確認する。 FlightPlanは、重複するアクティブな作業を返します。これには、Gitが認識できない未コミットの変更、コーディング中に行われた決定、関連する最近の成果が含まれます。
調整する。 重複は助言です。作業を絞り込むか、順序付けるか、コンテキストを持って進めてください。
報告する。 エージェントは、何が変わったか、何に驚いたか、何を試したかを記録します。これにより、次のセッションが冷えた状態から始まることがなくなります。
インストーラーが追加するもの
.flightplan.toml— すべてのエージェントが投稿するリポジトリ名と、レジストリURLを固定します。意図的にコミットされます。秘密情報はありません。CLAUDE.mdおよび/またはAGENTS.md内の管理されたエージェントスニペット。/registry-digest— オンデマンドの「最近何が起こったか」コマンド。セッション終了時のストップフック(
.claude/hooks/flightplan_stop_hook.pyとその設定の配線)で、エージェントに未完了のインテントをクローズするよう促します。
また、MCPの登録とサービスの到達可能性をチェックし、マシンに資格情報がある場合は登録を修復します。プロンプトは表示されません。検証は助言であり、実行を失敗させることはありません。
インストーラーが書き込んだものをすべて削除するには、リポジトリルートで getflightplan uninstall を実行してください(--dry-run でプレビュー、--purge-key で保存されたAPIキーも削除)。
ログイン
getflightplan login は、APIキーをコピーすることなく資格情報を取得します。ブラウザが開き、そこで承認すると、資格情報は ~/.config/flightplan/env にモード600で保存されます。資格情報は決して表示されません。資格情報が保存された後、ログインはマシン上のエージェントバイナリ用にMCPサーバーも登録します。これは、インストール時にマシンに資格情報がないためにスキップしなければならなかった手順です。
ブラウザがないマシンでは、getflightplan login --headless を実行してください。コマンドは短いコードとアドレスを表示します。別のデバイスでそのアドレスを開き、コードを入力してください。
getflightplan logout は、このマシンに保存された資格情報を削除します。サービス上で取り消すには、/devices ページを使用してください。
リポジトリを見つける
ログイン後、クライアントはレジストリに、このチェックアウトがどのリポジトリかを尋ねます。origin リモートのアドレスと、最大1000のコミットIDを送信します。これにより、クローンを持っていることが証明されます。アカウントにアクセス権がある場合、IDと名前が .flightplan.toml に書き込まれます。レジストリがリポジトリを知らない場合、クライアントはブラウザで登録するよう提案します。アカウントにアクセス権がない場合、クライアントはリクエストするよう提案します。
getflightplan login --no-register はチェックをスキップします。getflightplan register は後で単独で実行します。チェックに失敗してもログインが失敗することはありません。
作業が完了したことを伝える
uncommitted: true で完了したインテントは、作業が誰かのワーキングツリーにあり、それ以外の場所にはないことを示します。レジストリはあなたのツリーを見ることができないため、作業が完了したと通知されるまで、それらのパスに触れるすべての人に警告を出し続けます。
エージェントは mark_intent_landed ツールでこれを行います。手動で行うこともできます:
getflightplan landed <intent-id> --commit <sha> --commit <sha>コミットはオプションです。タイムスタンプが修正です。SHAを知っている場合のみ渡してください。クライアントはどのコミットがどのインテントに属するかを推測しません。完了のマークは安全に繰り返し実行でき、完了したレコードを上書きすることはありません。
設定
FLIGHTPLAN_URL—https://api.getflightplan.comFLIGHTPLAN_API_KEY— あなたのキー(MCPサーバーの環境変数。ストップフックも~/.config/flightplan/envを読み取ります)。.flightplan.toml— リポジトリごとの固定:repo名とurl、またはリポジトリにIDが固定された後の読み取り可能なnameを持つtarget_id。
エージェントに伝えられること
インストーラーは、リポジトリ名が固定された以下の管理された契約を追加します。
インテントレジストリ
このリポジトリは、チームインテントレジストリ(MCPサーバー: flightplan)に参加しています。
重要な作業を始める前に、
post_intentを呼び出してください。判断基準: その作業が、別のエージェントが遭遇する動作、デフォルト、または契約を変更するか、あるいは純粋な調査の場合、その発見が次のエージェントの1時間を節約できるか? どちらかに該当する場合は投稿。Q&Aやタイポレベルの修正は不要です。1段落の要約(何を、なぜ)、kind(build、または使い捨て調査の場合はexplore/spike)、および変更予定の領域を示すtouchesグロブを送信してください。返されたIDは後で使用するために保持してください。repoには、gitのoriginリモートのベース名(リモートがない場合はリポジトリルートディレクトリ名)を使用してください。このリポジトリのすべてのエージェントは同じ名前を使用しないと、衝突チェックが互いに見逃されます。レスポンスにはcontextが含まれる場合があります。これは、タスクに関連する最近完了した作業です。開始する前にそれらの成果を読んでください。そこにある驚きや行き詰まりは重要な情報です。レスポンスに
warnレベルの重複が含まれている場合、一時停止する前に重複の内容を確認してください。確認不要で、重複に言及して続行してよい2つのケースがあります: 重複しているインテントが、あなたが行動を依頼されたまさにその作業である場合(レビュー、検証、フォローアップ)、またはあなたのタスクが読み取り専用である場合。それ以外の場合は、誰が何をしていて、どのグロブが衝突しているかをユーザーに伝え、続行方法を尋ねてから進めてください。fyi/nudgeレベル: 簡単に言及して続行してください。作業の範囲が変わったり、長引いたりした場合、
update_intentを呼び出してください。スコープが拡大した場合は要約/タッチを修正(衝突チェックはこれらに対して実行されます。古いグロブは実際の衝突を見逃します)。または、IDのみを渡して、1日以上にわたる作業のTTLを更新してください。レスポンスには新しいoverlapsが含まれます。これは投稿時と同じグロブベースの衝突チェックであり、warnがある場合は投稿時と同じ扱いを受けます。作業が完了したか、放棄された場合(セッションが終了する場合を含む)、
complete_intentを呼び出し、1段落の成果を記述してください。実際に何が変わったか、驚いたこと、試したが却下されたアプローチ、意図的に残したもの。warnの重複が作業の進め方に影響を与えた場合(調整、範囲の絞り込み、そのまま続行など)、その旨を記載してください。すでに把握しているgitの事実を添付してください: 実際に変更されたfiles(git diff --name-only)、作成されたcommits、および作業の一部がまだコミットされていない場合はuncommitted: true。このフラグにより、他のエージェントの衝突チェックが静かにではなく、大声で警告するようになります。インテントの完了はスライスの終了であり、セッションの終了ではありません。完了後のフォローアップ作業で動作、デフォルト、契約が変更される場合は、新たに投稿してください。「同じセッション」だからといって免除されるわけではありません。宣言された未コミットの作業が完了したことを知った場合、そのインテントのID(およびコミットSHAがわかればそれも)を指定して
mark_intent_landedを呼び出してください。誰かがそう言うまで、レジストリはそれらのパスに触れるすべての人に警告を出し続けます。進行中の作業の状況が古くなっている可能性がある場合は、いつでも衝突を再確認してください。 投稿時には一度だけチェックされ、長時間のセッションでは古くなります。再確認のタイミング: 読み取りと編集の間でファイルが変更された場合、または編集が読み取ったばかりのテキストで失敗した場合(誰かの作業があなたの下で完了した)、このセッションで作成していない共有ドキュメントやアーティファクトを編集する前、別のエージェントから引き継いだ後に再開するとき、以前の
warnで名前が挙がったファイルに触れる前。最も安価な再確認は、インテントIDのみを指定したupdate_intentです(TTLを更新し、新しいoverlapsを返します)。オープンなインテントがない場合や新しい作業の範囲を決めている場合は、list_intentsを使用してください(overlapsグロブを渡し、意味チェックにはsummary、履歴にはq/sinceを追加)。会話の中で決定が確定した場合(アプローチが選ばれた、代替案が却下された、方向性が決まった)、それが決まった瞬間に記録してください。
post_intentをkind: "decision"で呼び出し、質問を要約として、決定内容をoutcomeに記述します。何が決定され、何が却下され、その理由。1回の呼び出し。タッチも後での完了も不要です。決定は決して衝突せず、検索可能なチームの記憶になります。決定は修正メカニズムでもあります。完了した成果は不変であるため、後で間違っていることが判明した場合は、実際に成立したことを引用した決定を投稿してください。レジストリは助言であり、作業をブロックしてはなりません。ツールがないかエラーが発生した場合は、作業を続行し、ユーザーに一度、
uvx getflightplan installを実行できること(getflightplan.com を参照)を伝えて、このリポジトリのレジストリに参加してください。
データ
あなたのマシンから送信されるのは、調整記録です。インテントの要約と成果の段落、グロブパターン、変更されたファイルのパス、ブランチ名、コミットIDです。これらはFlightPlanサービスにのみ送信されます。ソースコードの内容は決してアップロードされません。レジストリが知るすべては、エージェントの作業の副産物として学習されます。
詳細(何が決して送信されないか、どこに保存されるか)は docs/data-flow.md にあります。脆弱性の報告: SECURITY.md
ライセンス
Apache-2.0
Maintenance
Related MCP Servers
- Alicense-qualityAmaintenanceA coordination layer for coding agents that provides memorable identities, inbox/outbox messaging, searchable message history, and file lease management to prevent conflicts. Uses Git for human-auditable artifacts and SQLite for fast queries, enabling multiple agents to collaborate across projects without stepping on each other.2,095MIT
- Alicense-qualityDmaintenanceCoordination layer for AI coding agents working on the same codebase. Adds file locks, shared project memory, and cross-machine file sync so Claude Code, Cursor, Windsurf, and other MCP agents stop overwriting each other.50Apache 2.0
- AlicenseAqualityCmaintenanceShared, versioned memory and governance control plane for AI coding agents. Compiler pipeline resolves architectural decision conflicts across Claude Code, Cursor, and custom agent fleets.34MIT
- AlicenseAqualityAmaintenanceCoordination for parallel coding agents: TTL file claims stored in the git common dir (visible across all worktrees), enforcement hooks that block colliding edits, agent presence, handoff notes, and a git-committed lessons knowledge base with BM25 search. Single static Go binary — no server, no database.8MIT
Related MCP Connectors
Coding agents from Claude Code, Cursor and Codex claim jobs and lock files on one shared board.
The team layer for AI coding agents: shared contracts, collision alerts, E2EE sessions.
One shared brain for your AI coding agents: team memory, agent Q&A, tasks, and file claims.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sledmonkey/getflightplan'
If you have feedback or need assistance with the MCP directory API, please join our Discord server