Understand Anything
Плагин строит граф знаний по кодовой базе или вики и открывает интерактивный дашборд с поиском, турами и анализом диффа
Установка
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anythingЭто чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Команда /understand запускает цепочку агентов, которая проходит по проекту и строит граф файлов, функций, классов и зависимостей в .ua/knowledge-graph.json. Команда /understand-dashboard открывает веб-дашборд с цветовой разметкой по слоям, нечетким и семантическим поиском и пояснениями к узлам. Есть команды для вопросов по коду, анализа влияния изменений, онбординг-гайда, бизнес-доменов и анализа вики в стиле Карпаты. Повторные запуски инкрементальные, описания можно генерировать на русском.
Для кого. Разработчики, которые входят в большую незнакомую кодовую базу, и техлиды, готовящие онбординг.
Подходит, если
- Пришли в проект на сотни тысяч строк и не знаете, с чего начать
- Нужно оценить, какие части системы затронет ваш дифф
- Готовите онбординг-гайд для новых сотрудников
- Хотите разложить бизнес-логику по доменам и потокам
Не подходит, если
- Маленький проект, который проще прочитать целиком
- Жесткий лимит на токены: первый анализ большого проекта расходует их много
Пример запроса к агенту
/understand-chat Как устроен процесс оплаты в этом проектеОграничения
Первый запуск /understand на крупном проекте тратит значительное число токенов, авторы советуют подписку или локальную модель. Для отдельных огромных монорепозиториев анализ можно ограничить подпапкой. Большие графы от 10 МБ лучше хранить через git-lfs.
Как отключить. Удалите плагин в Claude Code. Для других платформ выполните ./install.sh --uninstall с именем платформы. Автообновление графа отключается флагом /understand --no-auto-update.
Проверка безопасности
- Установка для ряда платформ идет через curl | bash
- Флаг --auto-update ставит post-commit хук
- Анализ отправляет большие объемы кода модели
Коротко о README
Understand Anything это плагин Claude Code от Egonex, который превращает кодовую базу или документацию в интерактивный граф знаний. README описывает возможности дашборда, пошаговый быстрый старт и установку для многих платформ через install.sh. Отдельный раздел объясняет, как хранить граф в репозитории и открывать его без LLM. Лицензия MIT.
SKILL.md
---
name: understand
description: Analyze a codebase to produce an interactive knowledge graph for understanding architecture, components, and relationships
argument-hint: ["[path] [--full|--auto-update|--no-auto-update|--review|--language <lang>|--exclude <patterns>]"]
---
# /understand
Analyze the current codebase and produce a `knowledge-graph.json` file in the project's data directory (`.ua/`, or the legacy `.understand-anything/` when it already exists). This file powers the interactive dashboard for exploring the project's architecture.
## Options
- `$ARGUMENTS` may contain:
- `--full` — Force a full rebuild, ignoring any existing graph
- `--auto-update` — Enable automatic graph updates on commit (writes `autoUpdate: true` to `$UA_DIR/config.json`)
- `--no-auto-update` — Disable automatic graph updates (writes `autoUpdate: false` to `$UA_DIR/config.json`)
- `--review` — Run full LLM graph-reviewer instead of inline deterministic validation
- `--language <lang>` — Generate all textual content (summaries, descriptions, tags, titles, languageNotes, languageLesson) in the specified language. Accepts ISO 639-1 codes (`zh`, `ja`, `ko`, `en`, `es`, `fr`, `de`, etc.) or friendly names (`chinese`, `japanese`, `korean`, `english`, `spanish`, etc.). Locale variants supported: `zh-TW`, `zh-HK`, etc. Defaults to `en` (English). Stores preference in `$UA_DIR/config.json` for consistency across incremental updates.
- `--exclude <patterns>` — Comma-separated glob patterns for additional files/directories to exclude from analysis (e.g., `--exclude "tests/*,docs/*"`). These patterns take highest priority over built-in defaults and `.understandignore` rules. Supports gitignore syntax including `!` negation.
- A directory path (e.g. `/path/to/repo` or `../other-project`) — Analyze the given directory instead of the current working directory
---
## Progress Reporting
Throughout execution, report progress to the user at each phase transition and during batch processing. This keeps users informed on large codebases where analysis can take a long time.
- **Phase transitions:** At the start of each phase, print a status line:
> `[Phase N/7] <phase name>...`
>
> Example: `[Phase 2/7] Analyzing files (12 batches)...`
- **Batch progress:** During Phase 2, report each batch with its index and total:
> `Analyzing batch X/N (files: foo.ts, bar.ts, ...)` (list up to 3 filenames, then `...` if more)
- **Phase completion:** When a phase finishes, briefly confirm:
> `Phase N complete. <one-line summary of result>`
>
> Example: `Phase 1 complete. Found 247 files across 3 languages.`
---
## Phase 0 — Pre-flight
Determine whether to run a full analysis or incremental update.
1. **Resolve `PROJECT_ROOT`:**
- Parse `$ARGUMENTS` for a non-flag token (any argument that does not start with `--`). If found, treat it as the target directory path.
- If the path is relative, resolve it against the current working directory.
- Verify the resolved path exists and is a directory (run `test -d <path>`). If it does not exist or is not a directory, report an error to the user and **STOP**.
- Set `PROJECT_ROOT` to the resolved absolute path.
- If no directory path argument is found, set `PROJECT_ROOT` to the current working directory.
- **Worktree redirect.** If `PROJECT_ROOT` is inside a git worktree (not the main checkout), redirect output to the main repository root. Worktrees managed by Claude Code are ephemeral — the data directory (`.ua/`, or legacy `.understand-anything/`) written there is destroyed when the session ends, taking the knowledge graph with it (issue #133). Detect a worktree by comparing `git rev-parse --git-dir` against `git rev-parse --git-common-dir`; in a normal checkout or submodule they resolve to the same path, in a worktree they differ and the parent of `--git-common-dir` is the main repo root.
```bash
COMMON_DIR=$(git -C "$PROJECT_ROOT" rev-parse --git-common-dir 2>/dev/null)
GIT_DIR=$(git -C "$PROJECT_ROOT" rev-parse --git-dir 2>/dev/null)
if [ -n "$COMMON_DIR" ] && [ -n "$GIT_DIR" ]; then
COMMON_ABS=$(cd "$PROJECT_ROOT" && cd "$COMMON_DIR" 2>/dev/null && pwd -P)
GIT_ABS=$(cd "$PROJECT_ROOT" && cd "$GIT_DIR" 2>/dev/null && pwd -P)Частые вопросы
Можно ли открыть граф без Claude Code?
Да, если граф закоммичен, коллеги открывают дашборд через npx с viewer-пакетом из релизов. Нужен только Node.js 18+, LLM и ключи не требуются.
Поддерживается ли русский язык?
Да, флаг --language ru генерирует описания узлов, интерфейс дашборда и туры на русском.
Похожие
Набор скиллов, который задает агенту процесс разработки: уточнение задачи, план, TDD, субагенты и ревью кода
Скиллы Мэтта Покока для инженеров
Skills For Real Engineers
Небольшие компонуемые скиллы для инженерной работы с агентом: интервью по плану, TDD, диагностика багов, ревью и архитектура
Референсные MCP-серверы
Model Context Protocol servers
Официальные референсные MCP-серверы: Filesystem, Fetch, Git, Memory, Sequential Thinking, Time и Everything
Актуальная документация и примеры кода нужной версии библиотеки прямо в контексте агента, через MCP или CLI со скиллом