TRILHA 2

🛠️ Técnico — Como o Understand Anything funciona por dentro

Trilha para quem precisa colocar a mão no código: arquitetura do monorepo, pipeline de agentes, schema do grafo e o dashboard React. Você sai sabendo onde mexer e por quê.

3
Módulos
19
Tópicos
~2h
Duração
Intermediário
Nível
Dashboard do Understand Anything mostrando o grafo de conhecimento com sidebar Info à direita
O dashboard do Understand Anything: grafo à esquerda, sidebar contextual à direita. Tudo que esta trilha cobre por dentro.

Mapa da trilha

Conteúdo detalhado

2.1 ~40 min

🏗️ Arquitetura do monorepo: core + dashboard + plugin

Como pnpm workspaces, subpath exports browser-safe e três pastas de plugin convivem num único repo.

O que é:

Estrutura definida em pnpm-workspace.yaml que agrupa understand-anything-plugin/packages/* e o próprio plugin como um único grafo de dependências.

Por que aprender:

Mudou tipo no core? Dashboard e plugin enxergam na hora, sem republicar. Tests rodam com filtros (--filter) por pacote.

Conceitos-chave:

workspace protocol, hoisting, filters, packageManager pinado.

O que é:

@understand-anything/core reúne types, schema, persistência, tree-sitter (WASM), search, tours e plugins. Usado pelo skill E pelo dashboard.

Por que aprender:

É o "contrato": grafo, tipos, validação. Toda nova feature começa modelando aqui.

Conceitos-chave:

Pure TS, sem dependência de Node-only no caminho do dashboard, single source of truth para schema.

O que é:

Truque de "exports" no package.json que expõe só fatias seguras pro browser. Importar o entry default puxaria fs, path, etc.

Por que aprender:

Erro mais comum no dashboard: import errado quebra o build do Vite. Saber qual subpath usar evita debug doloroso.

Conceitos-chave:

Conditional exports, dual entry points, dependency boundary.

O que é:

App web React Flow + Zustand que renderiza o grafo. Tema dark luxury, fontes DM Serif Display.

Por que aprender:

É onde o usuário gasta 95% do tempo. UX e perf vivem aqui.

Conceitos-chave:

Graph-first layout (75% grafo + sidebar 360px), persona-adaptive UI, schema validation no load.

O que é:

Pasta do plugin que junta TS dos slash-commands (src/), definições de skills, agents e hooks.

Por que aprender:

Adicionar comando novo (ex: /understand-foo) significa tocar 3 pastas — skill, agent e src.

Conceitos-chave:

Skill definition, agent frontmatter, hooks de auto-update.

O que é:

.claude-plugin/, .cursor-plugin/ e .copilot-plugin/ — cada um com seu plugin.json versionado em sincronia.

Por que aprender:

Mesma feature, três runtimes. Versionamento desalinhado = marketplace quebrado.

Conceitos-chave:

Auto-discovery, marketplace.json (sem version!), 5 arquivos de versão sincronizados.

2.2 ~45 min

🤖 O pipeline de agentes e o knowledge graph

Cinco agentes em série, dezenas em paralelo. Como JSON intermediário vira um grafo validado por schema.

O que é:

Agente que enumera arquivos, detecta linguagens/frameworks e pré-resolve o importMap com tree-sitter.

Por que aprender:

Sem ele, file-analyzers re-derivam imports do zero — caro e inconsistente.

Conceitos-chave:

Glob ignore rules, language detection, importMap pré-resolvido.

O que é:

Worker que lê 20-30 arquivos por batch, até 5 em paralelo. Produz nós (function, class, file) e arestas (imports, calls).

Por que aprender:

Gargalo de custo/latência. Tuning de batch size = diferença entre 3 e 30 minutos.

Conceitos-chave:

Concorrência, deduplicação por fingerprint, output JSON normalizado.

O que é:

Lê todos os nós e atribui uma layer (API, Service, Data, UI, Utility) usando heurísticas + LLM.

Por que aprender:

A coloração do grafo no dashboard vem daqui. Camadas erradas confundem o usuário.

Conceitos-chave:

Layer taxonomy, confidence score, fallback rules.

O que é:

Gera sequências ordenadas por dependência: "comece aqui, depois aqui". Persistidas como tours[].

Por que aprender:

Diferencial vs ferramentas de grafo "burras". Ensina o codebase, não só mostra.

Conceitos-chave:

Topological order, narrative voice, stop annotations.

O que é:

Checa integridade referencial: aresta apontando para nó inexistente? Tour com stop quebrado? Falha cedo.

Por que aprender:

Sem ele, o dashboard quebra silenciosamente. Schema validation no load é a segunda linha de defesa.

Conceitos-chave:

Inline check (default) vs full LLM review (--review), referential integrity.

O que é:

Diretório no projeto-alvo: intermediate/ (scratch dos agentes), knowledge-graph.json (output canônico), diff-overlay.json.

Por que aprender:

Saber o que commitar e o que ignorar é diferença entre time produtivo e PR com 40 MB de JSON.

Conceitos-chave:

Intermediate cleanup pós-merge, .gitignore curado, git-lfs em grafos >10 MB.

2.3 ~40 min

🎨 O dashboard: React Flow, Zustand, sidebar e code viewer

Como o frontend serve arquivos com gating, navega o grafo e abre um viewer slide-up que vira modal full-screen.

O que é:

React Flow desenha o grafo (pan, zoom, edges); Zustand guarda o estado global (selected node, persona, viewer aberto).

Por que aprender:

Zustand sem Redux = simples. Mas custom node types precisam de cuidado com re-render.

Conceitos-chave:

Slices, selectors, memoization de nós, layout algorithm pluggable.

O que é:

Endpoint do dev server que serve conteúdo de arquivos, gated por access token + allowlist derivada do grafo.

Por que aprender:

Path traversal seria trivial sem isso. Allowlist evita servir .env por engano.

Conceitos-chave:

Defense in depth, derivar permissões do grafo, token rotativo por sessão.

O que é:

Sidebar de 360px com duas abas. Info: ProjectOverview → NodeInfo (quando seleciona) → LearnPanel (persona Learn). Files: FileExplorer derivado do grafo.

Por que aprender:

Estado composicional. Trocar de aba não pode perder seleção.

Conceitos-chave:

Persona-adaptive views, derive tree from graph, composable panels.

O que é:

Painel que sobe pela base ao clicar num file node. Botão expande pra modal full-screen. Syntax highlight via prism-react-renderer.

Por que aprender:

Monaco foi removido. Por quê? Bundle gigante e Monaco trazia features que ninguém usava no contexto "ver, não editar".

Conceitos-chave:

Read-only viewer, slide transition, modal escalation, fetch gated.

O que é:

Paleta #0a0a0a + acentos gold/amber #d4a574, tipografia DM Serif Display para títulos.

Por que aprender:

Identidade visual coerente diferencia ferramenta de hobby vs produto. Tailwind v4 tokens centralizam isso.

Conceitos-chave:

Design tokens, restrição cromática, serif para autoridade, sans para utilidade.

O que é:

Ao carregar knowledge-graph.json, valida contra o schema do core. Falha = banner vermelho explicando o quê.

Por que aprender:

Grafo gerado em versão antiga + dashboard novo é receita de "tela em branco". Banner economiza horas de debug.

Conceitos-chave:

Zod/Valibot, error boundary, mensagem acionável.

← Trilha 1: Fundamentos Trilha 3: Avançado →