Understand Anything
マルチエージェント解析 + tree-sitter で、コード・ビジネスドメイン・Karpathy 型 wiki・Figma デザインをインタラクティブなナレッジグラフに変換
Understand Anything(Egonex-AI/Understand-Anything、原作者 Lum1104)は、LLM と web-tree-sitter のハイブリッド解析で、コードベース・ビジネスドメイン・Karpathy 型 LLM wiki・Figma デザインをインタラクティブなナレッジグラフにするプラグイン。構造グラフではファイル・関数・クラス・依存を、ドメインビューでは業務プロセスを横方向に可視化。ダッシュボードはペルソナ(Junior / PM / PowerUser)に合わせた情報密度に調整できる。
分析結果の既定保存先は .ua/knowledge-graph.json。既存プロジェクトに .understand-anything/ があればそのまま継続(マイグレーション不要)。React Flow 製ダッシュボードで閲覧し、Git 差分 + fingerprint によるインクリメンタル更新が既定。初回の全解析はトークン消費が大きいので、大規模リポジトリではサブディレクトリ指定やローカルモデル(Ollama 等)を検討する。
対象ユーザー
.md)・スキル定義・TypeScript ソース(コンテキスト構築・差分分析).ua/(またはレガシー .understand-anything/)を Node.js ≥ 18 で npx 起動。/understand がオーケストレーションするエージェントと、ドメイン・ナレッジ・Figma 専用のエージェント。
| エージェント | 役割 |
|---|---|
project-scanner | ファイル探索、言語・フレームワーク検出、importMap 構築 |
file-analyzer | 関数・クラス・import 抽出、ノード・エッジ生成(最大 5 並列) |
assemble-reviewer | バッチマージ後のセマンティック修復 — 落ちたノード・型エイリアス・クロスバッチギャップを補完 |
architecture-analyzer | アーキテクチャレイヤー識別 |
tour-builder | 依存順ガイドツアー生成 |
graph-reviewer | グラフの完全性・参照整合性(既定はインライン検証。--review でフル LLM レビュー) |
domain-analyzer | ドメイン・フロー・ステップ抽出(/understand-domain) |
article-analyzer | wiki 記事からエンティティ・主張・暗黙関係を抽出(/understand-knowledge) |
design-analyzer | Figma ページ・スクリーン・コンポーネント・トークンを解析(/understand-figma) |
knowledge-graph-guide | グラフ構造・ダッシュボード利用の案内エージェント |
| モジュール | 役割 |
|---|---|
types.ts | コアデータ型 — KnowledgeGraph, GraphNode, GraphEdge など |
schema.ts | Zod スキーマ + validateGraph() バリデーション |
search.ts | Fuse.js によるファジー検索エンジン |
embedding-search.ts | コサイン類似度によるセマンティック検索 |
staleness.ts | Git コミット差分によるグラフ鮮度チェック + 差分マージ |
analyzer/graph-builder.ts | ノード・エッジの組み立てエンジン |
analyzer/llm-analyzer.ts | LLM へのプロンプト構築 & レスポンスパース |
analyzer/layer-detector.ts | アーキレイヤー検出(API / Service / Data / UI / Utility) |
analyzer/tour-generator.ts | 依存順序のガイドツアー生成 |
analyzer/language-lesson.ts | 言語コンセプト検出・レッスンプロンプト(12 パターン) |
analyzer/normalize-graph.ts | バッチ出力の正規化・エッジ検証 |
plugins/tree-sitter-plugin.ts | tree-sitter(WASM版)を使った静的構文解析 |
figma/ | Figma REST API 取得・パース・デザイングラフ merge(kind:"design") |
ignore-filter.ts / ignore-generator.ts | .understandignore による解析対象の除外(.gitignore 互換) |
fingerprint.ts | ファイル fingerprint ベースライン — インクリメンタル変更検出 |
.ua/。既存の .understand-anything/ があればそちらを継続。インクリメンタル更新(既定):
git diff <last-commit>..HEAD + fingerprint で変更ファイルを検出 → 該当ノード・エッジのみ再解析。全再解析は --full。file-analyzer はバッチごとに最大 5 並列(バッチあたり約 20〜30 ファイル)。自動更新:
/understand --auto-update で post-commit フックが有効化され、コミットごとにグラフを差分パッチ。--language ja などでノード説明・ダッシュボード UI・ツアーを指定言語で生成(設定は .ua/config.json に保存。初回は会話言語を検出し、英語以外は確認プロンプト)。
| コマンド | 機能 | モデル |
|---|---|---|
/understand |
コードベース全体を解析してナレッジグラフを生成。フラグ: --full --review --auto-update --no-auto-update --language <lang>(ISO 639-1 または friendly name) |
Sonnet + Opus |
/understand-dashboard |
ブラウザで React Flow ダッシュボードを起動 | — |
/understand-chat <質問> |
コードベースへの自然言語質問(グラフコンテキスト付き) | Sonnet |
/understand-diff |
現在の変更影響範囲をグラフ上で分析 | Sonnet |
/understand-explain <パス> |
特定ファイル・関数の詳細解説を生成 | Opus |
/understand-onboard |
新メンバー向けオンボーディングガイドを生成 | Opus |
/understand-domain |
ビジネスドメイン・フロー・プロセスステップを抽出しドメイングラフを生成(既存グラフからの派生や軽量スキャンにも対応) | Opus |
/understand-knowledge |
Karpathy 型 LLM wiki(index.md・wikilink 等)を解析し、エンティティ・主張・トピッククラスタのグラフを生成 |
Sonnet + agents |
/understand-figma <url-or-key> |
Figma REST API でデザインファイルを解析し kind:"design" グラフを生成。FIGMA_TOKEN 必須(オフライン不可)。UNDERSTAND_FIGMA_FORCE=1 で強制再構築 |
design-analyzer |
/understand。Codex は $understand($ プレフィックス)。認識されない場合は自然言語で「understand skill を使ってこのプロジェクトを解析して」と依頼する。
interface KnowledgeGraph {
version: string;
kind?: "codebase" | "knowledge" | "design";
project: ProjectMeta;
nodes: GraphNode[]; // 27 種(コード / 非コード / ドメイン / ナレッジ / デザイン)
edges: GraphEdge[]; // 38 種類(Design エッジ含む)
layers: Layer[]; // アーキレイヤー (API/Service/Data/UI/Utility)
tour: TourStep[]; // ガイドツアーステップ
}
| 区分 | ノード型 |
|---|---|
| コード(5) | file function class module concept |
| 非コード構造(8) | config document service table endpoint pipeline schema resource |
| ドメイン(3) | domain flow step |
| ナレッジ wiki(5) | article entity topic claim source |
| デザイン / Figma(6) | page screen component componentSet instance token |
| カテゴリ | エッジ型 |
|---|---|
| Structural | imports exports contains inherits implements |
| Behavioral | calls subscribes publishes middleware |
| Data flow | reads_from writes_to transforms validates |
| Dependencies | depends_on tested_by configures |
| Semantic | related similar_to |
| Infrastructure / Schema | deploys serves provisions triggers migrates documents routes defines_schema |
| Domain | contains_flow flow_step cross_domain |
| Knowledge | cites contradicts builds_on exemplifies categorized_under authored_by |
| Design | instance_of variant_of uses_token |
プラグインの understand-anything-plugin/src/index.ts からエクスポートされるコンテキスト構築関数:
| 関数 | 用途 |
|---|---|
buildChatContext() | /understand-chat 用 — グラフを自然言語QA向けに要約 |
buildDiffContext() | /understand-diff 用 — 変更差分の影響ノードを列挙 |
buildExplainContext() | /understand-explain 用 — 対象の周辺グラフを抽出 |
buildOnboardingGuide() | /understand-onboard 用 — ツアーステップをガイド形式に整形 |
| プラットフォーム | 状態 | インストール方法 |
|---|---|---|
| Claude Code | ネイティブ | /plugin marketplace add Egonex-AI/Understand-Anything |
| Cursor | 対応 | リポジトリをクローンして開くと .cursor-plugin/plugin.json を自動検出。手動: Settings → Plugins に GitHub URL |
| VS Code + GitHub Copilot | 対応 | v1.108+。クローンで .copilot-plugin/plugin.json を自動検出。全プロジェクト向けは install.sh vscode |
| Copilot CLI | 対応 | copilot plugin install Egonex-AI/Understand-Anything:understand-anything-plugin |
| Codex | 対応 | install.sh codex(呼び出しは $understand) |
| OpenCode | 対応 | install.sh opencode |
| OpenClaw | 対応 | install.sh openclaw |
| Antigravity | 対応 | install.sh antigravity |
| Gemini CLI | 対応 | install.sh gemini |
| Pi Agent | 対応 | install.sh pi |
| Vibe CLI | 対応 | install.sh vibe |
| Hermes | 対応 | install.sh hermes |
| Cline | 対応 | install.sh cline |
| KIMI CLI | 対応 | install.sh kimi |
| Trae | 対応 | install.sh trae |
| Nanobot | 対応 | install.sh nanobot |
| Kiro CLI / IDE | 対応 | install.sh kiro |
~/.understand-anything/repo にクローンし、選択したプラットフォーム向けにスキル symlink を作成する。install.sh --update で更新、install.sh --uninstall <platform> で削除。Windows は install.ps1。
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything
/understand # 解析開始(既定はインクリメンタル)
公式 README のとおり、本リポジトリをクローンして Cursor で開けば .cursor-plugin/plugin.json が自動検出され、追加インストールなしでスキルが有効になる。拾われない場合は Cursor Settings → Plugins に https://github.com/Egonex-AI/Understand-Anything を貼る。
別リポジトリだけを開いている場合
解析対象のプロジェクトだけをワークスペースにしているときは、File › Add Folder to Workspace… でクローンした Understand-Anything/ を追加し、./understand-anything-plugin/skills/ などの相対パスが解決できるようにする。
git clone https://github.com/Egonex-AI/Understand-Anything ~/tools/understand-anything
# Cursor で上記フォルダを開く、または既存ワークスペースに追加してから:
/understand
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.sh | bash
# プラットフォーム指定(例: codex)
curl -fsSL https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.sh | bash -s codex
# Windows (PowerShell)
# iwr -useb https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.ps1 | iex
インストール後は CLI / IDE を再起動。Codex は $understand、それ以外は多くが /understand。
前提: Node.js ≥ 22(開発は v24 系で確認)、pnpm ≥ 10(ルート package.json の packageManager に準拠)
# 依存インストール
pnpm install
# core パッケージをビルド(ダッシュボードが依存)
pnpm --filter @understand-anything/core build
# ダッシュボード開発サーバー
pnpm dev:dashboard
# テスト
pnpm --filter @understand-anything/core test
pnpm --filter @understand-anything/skill test
# Lint
pnpm lint
tree-sitter がビルドできないため、web-tree-sitter(WASM 版)を採用。ネイティブバイナリ前提の変更は動作しない。
オンボーディング・PR レビュー・docs-as-code に向く。例: GoogleCloudPlatform/microservices-demo(Go / Java / Python / Node の参照グラフ付き)。
コミット対象
既定の .ua/ 配下のうち、intermediate/ と diff-overlay.json は除外(ローカル作業用)。レガシープロジェクトは .understand-anything/ に読み替える。
# .gitignore に追加する例
.ua/intermediate/
.ua/diff-overlay.json
鮮度を保つ
/understand --auto-update— post-commit フックでグラフを差分更新- リリース前に
/understandを手動再実行 - 10 MB 超の JSON は git-lfs で追跡
LLM なしでダッシュボードを開く
コミット済みグラフがあれば、Claude Code や API キーなしで viewer を起動できる(Node.js ≥ 18)。
npx https://github.com/Egonex-AI/Understand-Anything/releases/latest/download/understand-anything-viewer.tgz /path/to/analyzed/project
プロジェクト直下に .ua/(またはレガシー .understand-anything/)が必要。トークン付きローカル URL が開き、データはマシン外に出ない。
- GitHub: Egonex-AI/Understand-Anything — 本体リポジトリ(原作者 Lum1104)
- プロジェクトホームページ / Live Demo
- egonex.ai — Understand Anyone
- README.md — インストール・マルチプラットフォーム手順
- README.ja-JP.md — 日本語 README
- types.ts — ノード型・エッジ型の一次情報
- Better Stack コミュニティウォークスルー(YouTube)
- React Flow — ダッシュボードのグラフ描画
- tree-sitter — 静的構文解析(WASM バインディング経由)
- Karpathy LLM wiki パターン —
/understand-knowledgeの想定フォーマット