mirror of
https://github.com/Egonex-AI/Understand-Anything.git
synced 2026-06-22 10:58:03 +08:00
ded60f8116
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.7 KiB
2.7 KiB
Understand Anything
Project Overview
An open-source tool combining LLM intelligence + static analysis to produce interactive dashboards for understanding codebases.
Architecture
- Monorepo with pnpm workspaces
- understand-anything-plugin/ — Claude Code plugin containing all source code:
- packages/core — Shared analysis engine (types, persistence, tree-sitter, search, schema, tours, plugins)
- packages/dashboard — React + TypeScript web dashboard (React Flow, Zustand, TailwindCSS v4)
- src/ — Skill TypeScript source for
/understand-chat,/understand-diff,/understand-explain,/understand-onboard - skills/ — Skill definitions (
/understand,/understand-dashboard, etc.) - agents/ — Agent definitions (project-scanner, file-analyzer, architecture-analyzer, tour-builder, graph-reviewer)
Dashboard
- Dark luxury theme: deep blacks (#0a0a0a), gold/amber accents (#d4a574), DM Serif Display typography
- Graph-first layout: 75% graph + 360px right sidebar
- No ChatPanel or Monaco Editor
- Sidebar: ProjectOverview (default) → NodeInfo (node selected) → LearnPanel (Learn persona)
- Code viewer: styled summary overlay (slides up from bottom on file node click)
- Schema validation on graph load with error banner
Agent Pipeline
- Agents write intermediate results to
.understand-anything/intermediate/on disk (not returned to context) - Agent models: sonnet for simple tasks (project-scanner, graph-reviewer), opus for complex (file-analyzer, architecture-analyzer, tour-builder)
/understandauto-triggers/understand-dashboardafter completion- Intermediate files cleaned up after graph assembly
Key Commands
pnpm install— Install all dependenciespnpm --filter @understand-anything/core build— Build the core packagepnpm --filter @understand-anything/core test— Run core testspnpm --filter @understand-anything/skill build— Build the plugin packagepnpm --filter @understand-anything/skill test— Run plugin testspnpm --filter @understand-anything/dashboard build— Build the dashboardpnpm dev:dashboard— Start dashboard dev server
Conventions
- TypeScript strict mode everywhere
- Vitest for testing
- ESM modules (
"type": "module") - Knowledge graph JSON lives in
.understand-anything/directory of analyzed projects - Core uses subpath exports (
./search,./types,./schema) to avoid pulling Node.js modules into browser
Versioning
When pushing to remote, bump the version in both of these files (keep them in sync):
understand-anything-plugin/package.json→"version"field.claude-plugin/marketplace.json→plugins[0].versionfield