symposium-dev/symposium

AI the Rust Way

解決する課題

AIコーディングエージェントは汎用的であり、プロジェクトで使用しているRustクレートの詳細を知りません。追加の設定なしでは、特定の依存関係に適用される重要な規約、落とし穴、ツールを見逃してしまいます。Symposiumは、プロジェクトの依存関係をクレート作成者が公開するガイダンスに自動的にリンクすることでこれを解決し、エージェントが作業場所で関連するスキルやフックを認識できるようにします。

仕組み

Symposiumは cargo metadata を使用してRustワークスペースの依存関係グラフを読み取ります。次に、各プラグインとスキルの「述語」(depends-on("serde") や path_exists(...) などの条件)をそのグラフに対して評価します。述語が一致すると、Symposiumは関連する拡張機能をAIエージェントにインストールします:

  • Skills: エージェントがガイダンスとして読み込むコンテキストを含む SKILL.md ファイル。
  • Hooks: エージェントがアクション(コードの記述やコマンドの実行など)を実行する際に実行されるチェックや変換。
  • MCP servers: Model Context Protocol を介してエージェントに公開されるツールやリソース。

cargo agents init を一度実行して、使用するエージェント(Claude Code、Codex CLI、GitHub Copilotなど)を指定します。その後は cargo agents sync を実行するだけで、プラグインが現在のワークスペースと照合され、インストールされたスキルが更新されます。~/.symposium/config.toml にある単一の設定ファイルが各エージェントが期待するファイル形式に変換されるため、同じプロジェクトのメンバーが異なるエージェントを使用していても、設定を重複させることなく利用できます。

対象ユーザー

  • Rust開発者: AIコーディングエージェントを使用しており、手動設定なしでプロジェクトを認識したガイダンスを求める方。
  • クレート作成者: ライブラリと一緒にスキル、フック、MCPサーバーを提供し、ユーザーが自動的にバージョン適合したサポートを受けられるようにしたい方。
  • チーム: Rustワークスペースを共有しており、メンバー間で異なるエージェントを好む場合でも、一貫したエージェント設定を必要とするチーム。

ハイライト

  • Agent-agnostic: 1つの設定で Antigravity CLI、Claude Code、Codex CLI、GitHub Copilot、Kiro、OpenCode、Goose に対応(エージェントによりサポート範囲は異なります)。
  • Dependency-driven matching: ワークスペース内のクレートがプラグインの述語と一致した場合にのみ拡張機能がインストールされます。
  • Auto-sync: デフォルトでは、フックが呼び出されるたびに依存関係を再スキャンし、スキルを最新の状態に保ちます。
  • Plugin sources: プラグインは、組み込みレジストリ、gitリポジトリ、ローカルディレクトリ、または [[plugins]] 参照を介してクレートから直接取得できます。
  • Crate-author friendly: skills/ ディレクトリまたは Symposium.toml をクレートに追加するだけでガイダンスを配布できます。
  • Flexible configuration: auto-sync、hook-scope、auto-update などのオプションは ~/.symposium/config.toml で調整可能です。
  • Open source: MIT または Apache-2.0 ライセンスでオープンソース化されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト