画面の全体像

各タブが「どんな問いに答えるためのものか」から説明します。 個々のボタンの機能ボタンと操作の一覧線やバッジの読み方構造ビューの読み方API タブの読み方 にまとめています。

構造タブ — 「この依存、向きは正しいか?」

ツリー + 左側の配線で、モジュール間の依存を表示します。

  • 線の向きは色で表す: グレー = 下向き(正常)、ローズ = 上向き(レイヤー違反)
  • 破線 = サービス境界(gRPC / HTTP / GraphQL / proto)を越える依存
  • ● が依存元、▶ が依存先。行にホバーすると、その行に繋がる線だけが残る
  • レベル化(既定の並び): 依存の向きからノードを層に分け、層ごとに帯を敷く

よく使う操作

やりたいこと 操作
全体を俯瞰する 「概観」ボタン(サービス単位まで畳む)
レイヤー違反だけ見る 「⚠ レイヤー違反のみ」チップ
ノイズを減らす 「テストを除外」チップ、依存線の種類チップ(import / call / RPC境界)
気になるノードに印を付ける 行にホバーして ☆、または b キー
2 点間の経路を知る ノードを選び、右パネルの「経路探索」で相手を指定
構造タブ

→ 詳しい読み方: 構造ビューの読み方

API タブ — 「この API は誰が呼んでいるのか?」

proto の RPC・HTTP エンドポイント・GraphQL フィールドを 1 つのカタログにまとめます。

  • 呼び出し元なし(未使用?) バッジ: このリポジトリ内から呼ばれていない API。消せる候補
  • テストのみ: 本番コードからは呼ばれていない
  • 実装なし: 定義はあるがハンドラ / リゾルバが見つからない
  • 選ぶと 上流(呼び出し元)下流(実装 → その先) のフローが出る。関数をクリックするとソースが開く

「未使用?」は消す判断に使えますが、動的に呼ばれる経路(リフレクション等)は検出できない点だけ注意してください。

API タブ

→ 詳しい読み方: API タブの読み方

図タブ — 「サービス構成を人に説明したい」

サービス単位の箱と矢印。層(レイヤー)ごとに帯を敷き、境界の呼び出し数を ⚡RPC / ⇄HTTP / ◈GraphQL の内訳で表示します。外部システムは破線の箱です。 箱をクリックすると、そのサービスの依存元・依存先・公開 API が右パネルに出ます。

図タブ

エントリーポイントタブ — 「どこから読み始めればいい?」

func main(プロセス起動点)、LiveView などの画面、操作イベントを一覧します。 新しくチームに入った人が最初に開くタブです。クリックすると構造タブでそのエントリーポイントにフォーカスし、 下流のトレースが始まります。

エントリーポイントタブ

差分タブ — 「この変更で構造は悪くなっていないか?」

2 つの git ref(ブランチ / タグ)を選んで比較し、サービス依存の増減新規に発生した / 解消された循環だけを見せます。比較先を「作業ツリー」にすれば、 まだコミットしていない変更の影響も確認できます。

ref はそれぞれ一時的な git worktree に取り出して解析するので、いま編集中のファイルには触れません。 比較先のコミットメッセージから PR 番号を検出できた場合は、GitHub の PR へのリンクが出ます。

同じことは CLI でもできます(CI で使う場合はこちら):

strata diff . --ref main..feature/new-api   # 2 つの ref を比較
strata diff . --ref origin/main             # ref と作業ツリーを比較

新規の循環が生まれたときだけ exit 1 になるので、PR の CI にそのまま置けます。

ソースビューア — 「実際のコードで確認したい」

  • シンタックスハイライト、⌘クリックで定義ジャンプ、識別子ホバーで定義のプレビュー
  • ⎇ blame: 行ごとの最終変更コミット。クリックでコミット内容(差分・PR リンク)を表示
  • 📁 ボタンでファイルツリー

そのほか

  • 📋 トレース: panic やエラーログを貼り付けると、該当する関数・行にジャンプできます
  • キーボード: ? で一覧。/ 検索、↑↓←→ 移動と開閉、Alt+←→ で戻る / 進む
  • テーマ: 右上の ◐ で 自動 → ライト → ダーク
  • URL 共有: フォーカス・検索・並びは URL に入るので、そのまま同僚に送れます