CodeBoarding/CodeBoarding

Interactive architecture diagrams for codebases

CodeBoarding – AI駆動の静的解析 + アーキテクチャマッピング

機能

  • 言語サーバーベースの静的解析でコードベースをスキャンし、シンボルとその関係を抽出し、それらをコンポーネント(高レベルのモジュール、サービスなど)にグループ化します。
  • 代表的なスニペットを設定可能なLLM(OpenAI、Anthropic、Ollamaなど)に送信し、各コンポーネントの短く人間が読める説明を生成します。
  • コンポーネント階層、依存関係グラフ、ソースの場所、LLM生成の説明を含むanalysis.jsonを出力します。
  • JSONはCodeBoardingのWeb UI、VS Code拡張機能で視覚化したり、Mermaidダイアグラムを含むドキュメント(Markdown、HTML、MDX、reStructuredText)に変換できます。
  • GitHub Actionがすべてのプルリクエストで解析を実行し、変更されたコンポーネントと依存関係を強調表示するマップを投稿します。レビュアーが行単位の変更だけでなく、差分の影響を確認するのに役立ちます。

重要性

  • 大規模なプルリクエストは、システムの複数の論理部分にまたがる多くのファイルに触れることがよくあります。生の差分からアーキテクチャの影響を理解するのは困難です。CodeBoardingはその差分を簡潔なコンポーネントレベルのビューに変換し、新しい依存関係、潜在的なリグレッション、隠れた結合を発見しやすくします。
  • LLMを使用してコンポーネントの名前と説明を生成することで、生成されたマップは、開発者が手動でドキュメントを書くことなく、最新で読みやすい状態に保たれます。
  • このツールは多くの一般的な言語(Python、TypeScript/JavaScript、Java、Kotlin、Go、PHP、Rust、C#)で動作し、任意のCIパイプラインに組み込むことができます。

始め方

  1. CLIをインストール – 推奨はpipx install codeboarding --python python3.12(またはvirtualenv内のpipを使用)です。codeboarding-setupを実行して言語サーバーのバイナリをダウンロードします。
  2. LLMプロバイダーを設定 – OpenAI、Anthropic、OllamaなどのAPIキーで~/.codeboarding/config.tomlを編集(または環境変数を設定)し、必要に応じてagent_modelを設定します。
  3. 解析を実行 – 例:codeboarding full --local /path/to/repo。出力はrepo/.codeboarding/analysis.jsonに生成されます。
  4. 結果を確認 – Webプラットフォーム(https://app.codeboarding.org)を開いて生成されたJSONを読み込むか、VS Code拡張機能を使用してエディタ内でコンポーネントマップを直接参照します。
  5. オプションのレンダリング – --render md(またはhtml、mdx、rst)を追加して、ドキュメントファイルを自動生成します。

典型的なワークフロー

  • フル解析 – リポジトリ全体をスキャンし、コンポーネント階層を構築してanalysis.jsonを書き出します。
  • 増分解析 – ベースラインが存在する場合、変更されたファイルのみで実行し、コンポーネントレベルの変更の差分を生成します。
  • 部分解析 – 小さな領域だけを更新する必要がある場合に、単一のコンポーネント(数値IDで識別)を再解析します。
  • CI統合 – CodeBoarding GitHub Actionをワークフローに追加します。各PRで解析を実行し、ベースブランチと比較して、新しい/削除された依存関係を示す視覚マップを投稿します。

主要な概念とファイル

  • analysis.json – コンポーネントツリー、関係、LLM生成の説明、ソース参照を含む中核アーティファクト。
  • diagram_generation – JSONをMarkdown/HTML出力用のMermaidダイアグラムに変換します。
  • LLM_Planning_and_Analysis_Agents – 設定されたモデルプロバイダーと通信してコンポーネント名と要約を作成する部分。
  • Static_Analysis_Engine – 言語サーバーのクエリを調整し、シンボルを収集し、コンポーネントにクラスタリングする前の生グラフを構築します。
  • CODEBOARDING_MAX_CONCURRENT_ENGINESなどの環境変数で並行して実行される言語サーバーの数を調整できます。CODEBOARDING_LSP_REQUEST_TIMEOUTはリクエストごとのタイムアウトを制御します。

適用範囲

  • ローカル開発 – CLIを実行して最新のアーキテクチャドキュメントを生成。
  • コードレビュー – Web UIまたはVS Codeビューを使用して、PRが触れる高レベルの部分を一目で確認。
  • ドキュメントパイプライン – 解析からMarkdown/HTMLドキュメントを自動レンダリング。
  • チームオンボーディング – 新しいメンバーがすべてのファイルを読まなくてもリポジトリのアーキテクチャを探索可能。

リソース


上記の詳細はすべてリポジトリのREADMEから直接取得しています。追加の機能は推定されていません。

関連

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