このプロジェクトについて
magusは、ポリグロットモノレポ向けに設計されたビルドシステムおよびタスクオーケストレーターです。単一の静的にリンクされたGoバイナリとして配布され、追加のツールチェーンのインストールは不要です。ターゲットは、バイナリに組み込まれた小さな型付きスクリプト言語であるBuzzで記述され、`magusfile.buzz`内のエクスポートされた関数として宣言されます。
主な機能は以下の通りです。
- **影響セット**: プロジェクトの依存関係グラフとファイルレベルの入力宣言により、`magus affected <target>`は、変更が到達し得るプロジェクトのみを依存関係の順序で実行します。これにより、CI作業を差分が実際に触れる範囲に絞り込みます。
- **コンテンツアドレスキャッシュ**: 各ターゲットは入力と出力を宣言します。magusは入力をハッシュ化し、同じ作業が再度要求された場合に保存された出力(SHA-256)を再生し、バイト単位で同一の結果を生成します。
- **ナレッジグラフ**: 宣言されたソース(magusfile、ドキュメント、SCIPインデックス、git履歴、CODEOWNERS)から構築され、外部インデクサーによる推論ではありません。`magus query "kind=target lint"`、`magus explain <node>`、`magus refs <symbol>`などのクエリに応答します。このグラフは、ビルドの真実のソースであることの副産物です。
- **単一の語彙**: ターゲット、スペル(言語アダプター)、チャーム(`rw`などの読み書き修飾子)、およびオペレーション(ツール呼び出し)は一度だけ名前が付けられ、CLI、設定、グラフ全体で再利用されます。
- **ターミナルUI**: ターミナル下部に固定された進行状況バンドで、スクロールバックを消去しません。プロジェクトごとにグループ化された失敗ツリーと、グラフ検索ピッカーを備えます。すべてのサーフェスは、ターミナルがない場合にはプレーンテキストに劣化します。
- **ブラウザコンソール**: オプションの読み取り専用Webアプリ(ダッシュボード、グラフエクスプローラー、ログビューアー、アクティビティトレイル、差分)が、デーモンによってループバック経由で提供されます。バイナリに埋め込まれたUIはありません。データがマシンから出ることはありません。
- **エージェント統合**: CodexおよびClaude Code用のインストール可能なスキルと、コミットされた`MAGUS.md`ルーティングインデックスにより、AIエージェントがグラフをクエリし、ターゲットを決定的に実行できます。
アーキテクチャ: デーモン(`magus server start`)は、ローカルCLIディスパッチ用のUnixソケットと、MCP、読み取り専用API、Connectサービス用のHTTPサーバーを公開します。これらはすべてガードチェーン(DNSリバインドチェック、ベアラートークン、CORS)の背後にあります。ヘルスエンドポイントはガードされていません。時間制限付きのLANリスナーは、読み取り専用コンソールをスマートフォンと共有できます。
非目標: リモート実行なし、ツールチェーン管理なし、ハーメティックサンドボックスなし(デフォルトでオフ、macOSではカーネルレイヤーなし)、コンテナ分離なし、そして小規模なエコシステム(若いプロジェクトで、ほとんどが一人の作業)。
はじめに: curlスクリプトでインストールし(実行前に確認)、ビルド、テスト、リントなどのエクスポートされた関数を持つ`magusfile.buzz`を作成します。`magus ls`、`magus run test`、`magus affected ci`、`magus query`などのコマンドで即座に答えが得られます。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.