Skip to main content
Glama

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

仕組み

  1. 作業を登録する。 編集前に、エージェントはタスクと、触れる予定のファイルを宣言します。

  2. 進行中の作業を確認する。 FlightPlanは、重複するアクティブな作業を返します。これには、Gitが認識できない未コミットの変更、コーディング中に行われた決定、関連する最近の成果が含まれます。

  3. 調整する。 重複は助言です。作業を絞り込むか、順序付けるか、コンテキストを持って進めてください。

  4. 報告する。 エージェントは、何が変わったか、何に驚いたか、何を試したかを記録します。これにより、次のセッションが冷えた状態から始まることがなくなります。

インストーラーが追加するもの

  • .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_URLhttps://api.getflightplan.com

  • FLIGHTPLAN_API_KEY — あなたのキー(MCPサーバーの環境変数。ストップフックも ~/.config/flightplan/env を読み取ります)。

  • .flightplan.toml — リポジトリごとの固定: repo 名と url、またはリポジトリにIDが固定された後の読み取り可能な name を持つ target_id

エージェントに伝えられること

インストーラーは、リポジトリ名が固定された以下の管理された契約を追加します。

インテントレジストリ

このリポジトリは、チームインテントレジストリ(MCPサーバー: flightplan)に参加しています。

  • 重要な作業を始める前にpost_intent を呼び出してください。判断基準: その作業が、別のエージェントが遭遇する動作、デフォルト、または契約を変更するか、あるいは純粋な調査の場合、その発見が次のエージェントの1時間を節約できるか? どちらかに該当する場合は投稿。Q&Aやタイポレベルの修正は不要です。1段落の要約(何を、なぜ)、kindbuild、または使い捨て調査の場合は explore/spike)、および変更予定の領域を示す touches グロブを送信してください。返されたIDは後で使用するために保持してください。repo には、gitのoriginリモートのベース名(リモートがない場合はリポジトリルートディレクトリ名)を使用してください。このリポジトリのすべてのエージェントは同じ名前を使用しないと、衝突チェックが互いに見逃されます。レスポンスには context が含まれる場合があります。これは、タスクに関連する最近完了した作業です。開始する前にそれらの成果を読んでください。そこにある驚きや行き詰まりは重要な情報です。

  • レスポンスに warn レベルの重複が含まれている場合、一時停止する前に重複の内容を確認してください。確認不要で、重複に言及して続行してよい2つのケースがあります: 重複しているインテントが、あなたが行動を依頼されたまさにその作業である場合(レビュー、検証、フォローアップ)、またはあなたのタスクが読み取り専用である場合。それ以外の場合は、誰が何をしていて、どのグロブが衝突しているかをユーザーに伝え、続行方法を尋ねてから進めてください。fyi/nudge レベル: 簡単に言及して続行してください。

  • 作業の範囲が変わったり、長引いたりした場合update_intent を呼び出してください。スコープが拡大した場合は要約/タッチを修正(衝突チェックはこれらに対して実行されます。古いグロブは実際の衝突を見逃します)。または、IDのみを渡して、1日以上にわたる作業のTTLを更新してください。レスポンスには新しい overlaps が含まれます。これは投稿時と同じグロブベースの衝突チェックであり、warn がある場合は投稿時と同じ扱いを受けます。

  • 作業が完了したか、放棄された場合(セッションが終了する場合を含む)、complete_intent を呼び出し、1段落の成果を記述してください。実際に何が変わったか、驚いたこと、試したが却下されたアプローチ、意図的に残したもの。warn の重複が作業の進め方に影響を与えた場合(調整、範囲の絞り込み、そのまま続行など)、その旨を記載してください。すでに把握しているgitの事実を添付してください: 実際に変更された filesgit diff --name-only)、作成された commits、および作業の一部がまだコミットされていない場合は uncommitted: true。このフラグにより、他のエージェントの衝突チェックが静かにではなく、大声で警告するようになります。インテントの完了はスライスの終了であり、セッションの終了ではありません。完了後のフォローアップ作業で動作、デフォルト、契約が変更される場合は、新たに投稿してください。「同じセッション」だからといって免除されるわけではありません。

  • 宣言された未コミットの作業が完了したことを知った場合、そのインテントのID(およびコミットSHAがわかればそれも)を指定して mark_intent_landed を呼び出してください。誰かがそう言うまで、レジストリはそれらのパスに触れるすべての人に警告を出し続けます。

  • 進行中の作業の状況が古くなっている可能性がある場合は、いつでも衝突を再確認してください。 投稿時には一度だけチェックされ、長時間のセッションでは古くなります。再確認のタイミング: 読み取りと編集の間でファイルが変更された場合、または編集が読み取ったばかりのテキストで失敗した場合(誰かの作業があなたの下で完了した)、このセッションで作成していない共有ドキュメントやアーティファクトを編集する前、別のエージェントから引き継いだ後に再開するとき、以前の warn で名前が挙がったファイルに触れる前。最も安価な再確認は、インテントIDのみを指定した update_intent です(TTLを更新し、新しい overlaps を返します)。オープンなインテントがない場合や新しい作業の範囲を決めている場合は、list_intents を使用してください(overlaps グロブを渡し、意味チェックには summary、履歴には q/since を追加)。

  • 会話の中で決定が確定した場合(アプローチが選ばれた、代替案が却下された、方向性が決まった)、それが決まった瞬間に記録してください。post_intentkind: "decision" で呼び出し、質問を要約として、決定内容を outcome に記述します。何が決定され、何が却下され、その理由。1回の呼び出し。タッチも後での完了も不要です。決定は決して衝突せず、検索可能なチームの記憶になります。決定は修正メカニズムでもあります。完了した成果は不変であるため、後で間違っていることが判明した場合は、実際に成立したことを引用した決定を投稿してください。

  • レジストリは助言であり、作業をブロックしてはなりません。ツールがないかエラーが発生した場合は、作業を続行し、ユーザーに一度、uvx getflightplan install を実行できること(getflightplan.com を参照)を伝えて、このリポジトリのレジストリに参加してください。

データ

あなたのマシンから送信されるのは、調整記録です。インテントの要約と成果の段落、グロブパターン、変更されたファイルのパス、ブランチ名、コミットIDです。これらはFlightPlanサービスにのみ送信されます。ソースコードの内容は決してアップロードされません。レジストリが知るすべては、エージェントの作業の副産物として学習されます。

詳細(何が決して送信されないか、どこに保存されるか)は docs/data-flow.md にあります。脆弱性の報告: SECURITY.md

ライセンス

Apache-2.0

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
1dRelease cycle
9Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    -
    quality
    A
    maintenance
    A 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,095
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Coordination 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.
    50
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Shared, versioned memory and governance control plane for AI coding agents. Compiler pipeline resolves architectural decision conflicts across Claude Code, Cursor, and custom agent fleets.
    3
    4
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Coordination 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.
    8
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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