Files
ESPDocs/graphify-out/GRAPH_REPORT.md
T

11 KiB

Graph Report - ESPDocs (2026-08-26)

Corpus Check

  • 76 files · ~706,036 words
  • Verdict: corpus is large enough that graph structure adds value.

Summary

  • 908 nodes · 1593 edges · 105 communities (74 shown, 31 thin omitted)
  • Extraction: 99% EXTRACTED · 1% INFERRED · 0% AMBIGUOUS · INFERRED: 21 edges (avg confidence: 0.54)
  • Token cost: 0 input · 0 output

Graph Freshness

  • Built from commit: e347a95d
  • Run git rev-parse HEAD and compare to check if the graph is stale.
  • Run graphify update . after code changes (no API cost).

Community Hubs (Navigation)

  • paged.polyfill.js
  • Layout
  • AtPage
  • Page
  • .push
  • dependencies
  • .replace
  • .indexOf
  • Sheet
  • peek
  • Breaks
  • Queue
  • allocateCursor
  • ESPDocs - Documentação ESP32 em Português
  • isNameStart
  • Diretrizes de tema: claro e escuro
  • internalMatch
  • Previewer
  • auditar-temas.mjs
  • layout.jsx
  • buildGroupMatchGraph
  • getCharCode
  • PinRestrictions.jsx
  • eslint.config.mjs
  • compilerOptions
  • requireKeys
  • outOfRange
  • testNode
  • page.jsx
  • page.jsx
  • esp-matter.c
  • seo.js
  • consumeB$1
  • processStructure
  • generate$2
  • getVendorPrefix
  • layout.jsx
  • layout.jsx
  • layout.jsx
  • layout.jsx
  • page.jsx
  • esp-nn.c
  • matchSyntax
  • consumeNumber$5
  • strcmp
  • readSequence
  • patchAtrules
  • CLAUDE.md
  • next.config.mjs
  • postcss.config.mjs
  • consumeDeclaration
  • consumeRaw$4
  • createParseContext
  • dumpAtruleMapSyntax
  • isProtoString
  • getWalkersFromStructure
  • isDelim
  • isSelectorValid
  • OverflowContentError
  • RenderResult
  • UndisplayedFilter
  • esp-zigbee.c
  • Hook
  • write_cb
  • ContentParser
  • componentRegistryData.js
  • esp-now.c
  • Following
  • diagnosticoData.js
  • eqStr
  • Lists
  • layout.jsx
  • layout.jsx
  • layout.jsx
  • layout.jsx
  • glossarioData.js
  • consumeRaw$4
  • dumpAtruleMapSyntax
  • requireValidateSymbol

God Nodes (most connected - your core abstractions)

  1. AtPage - 39 edges
  2. walk() - 27 edges
  3. Layout - 21 edges
  4. Page - 18 edges
  5. Footnotes - 18 edges
  6. Chunker - 17 edges
  7. Counters - 17 edges
  8. Sheet - 16 edges
  9. createItem() - 14 edges
  10. join() - 14 edges

Surprising Connections (you probably didn't know these)

  • ComponentRegistryPage() --references--> COMPONENTES_REGISTRY [EXTRACTED] app/componentes/page.jsx → lib/componentRegistryData.js

Import Cycles

  • None detected.

Communities (105 total, 31 thin omitted)

Community 0 - "paged.polyfill.js"

Cohesion: 0.02 Nodes (23): consumeDeclaration(), consumeRawDeclaration(), NOTE: The order of the mappings is NOT guaranteed., TODO: should consume block content as Raw?, TODO: fall back to mutation observer?, TODO: not sure we should support this hack, TODO: check value is an ident, TODO: produce a node with Delim node type (+15 more)

Community 1 - "Layout"

Cohesion: 0.06 Nodes (25): breakInsideAvoidParentNode(), BreakToken, cloneNode(), findElement(), findRef(), Footnotes, getBoundingClientRect(), getClientRects() (+17 more)

Community 2 - "AtPage"

Cohesion: 0.05 Nodes (11): append(), AtPage, createItem(), CSSValueToString(), PageCounterIncrement, PositionFixed, PrintMedia, ScriptsFilter (+3 more)

Community 3 - "Page"

Cohesion: 0.09 Nodes (8): ConnectionsDiagram(), FILTER_CATEGORIES, type_colors, Chunker, dump(), forEachToken(), Page, requirePolyfill()

Community 4 - ".push"

Cohesion: 0.11 Nodes (14): collectWarning(), computeSourceURL(), Counters, createNodeStructureChecker(), isAbsolute(), join(), normalize(), number() (+6 more)

Community 5 - "dependencies"

Cohesion: 0.05 Nodes (39): eslint, eslint-config-next, @eslint/eslintrc, googleapis, lucide-react, next, next-themes, dependencies (+31 more)

Community 6 - ".replace"

Cohesion: 0.16 Nodes (9): attr(), child(), cleanPseudoContent(), defer(), NthOfType, parseSourceMapInput(), querySelectorEscape(), TargetCounters (+1 more)

Community 7 - ".indexOf"

Cohesion: 0.07 Nodes (13): ArraySet$1(), compareByGeneratedPositionsInflated(), func(), generatedPositionAfter(), getArg(), MappingList$1(), regroupTerms(), relative() (+5 more)

Community 9 - "peek"

Cohesion: 0.22 Nodes (18): charCode(), customPropertyName(), idSelector(), maybeMultiplied(), maybeToken(), parse$2(), peek(), readGroup() (+10 more)

Community 10 - "Breaks"

Cohesion: 0.09 Nodes (16): Breaks, CommentsFilter, displayedElementAfter(), displayedElementBefore(), elementAfter(), elementBefore(), filterTree(), getNodeWithNamedPage() (+8 more)

Community 11 - "Queue"

Cohesion: 0.15 Nodes (7): Queue, requireEs6Symbol(), requireIsArguments(), requireIsFunction(), requireIsImplemented(), requireIsString(), requireShim$1()

Community 12 - "allocateCursor"

Cohesion: 0.21 Nodes (9): allocateCursor(), appendOrAssign(), appendOrAssignOrNull(), copy(), createTypeIterator(), deepAssign(), isObject$2(), mix$1() (+1 more)

Community 13 - "ESPDocs - Documentação ESP32 em Português"

Cohesion: 0.13 Nodes (14): 👤 Autor, Configuração do Marketplace (Opcional), 🤝 Contribuindo, 🚀 Deploy on Vercel, ⚠️ Disclaimer, ESPDocs - Documentação ESP32 em Português, 📁 Estrutura do Projeto, Executar em Desenvolvimento (+6 more)

Community 14 - "isNameStart"

Cohesion: 0.15 Nodes (13): isDigit$5(), isHexDigit$4(), isIdentifierStart$2(), isLetter(), isLowercaseLetter(), isName$2(), isNameStart(), isNewline$1() (+5 more)

Community 15 - "Diretrizes de tema: claro e escuro"

Cohesion: 0.17 Nodes (11): 1. Só existem os tons declarados, 2. A regra da simetria, 3. Pares canônicos por papel, 4.1. Botão nunca inverte preto ↔ branco, 4.2. Painel de destaque acompanha o tema, 4.3. Separação de superfície no tema claro, 4. Exceção: superfícies escuras nos dois temas, 5. Cor de série vem do dado, não da classe (+3 more)

Community 16 - "internalMatch"

Cohesion: 0.20 Nodes (11): areStringsEqualCaseInsensitive(), buildLoc(), fromLoc(), internalMatch(), isCommaContextEnd(), isCommaContextStart(), isContextEdgeDelim(), locateMismatch() (+3 more)

Community 17 - "Previewer"

Cohesion: 0.16 Nodes (6): Handlers, Previewer, createIco(), run(), svgContent, svgPath

Community 18 - "auditar-temas.mjs"

Cohesion: 0.48 Nodes (6): arquivos(), contraste(), coresFixasInline(), ESCALA, luminancia(), main()

Community 19 - "layout.jsx"

Cohesion: 0.33 Nodes (4): inter, metadata, outfit, viewport

Community 20 - "buildGroupMatchGraph"

Cohesion: 0.53 Nodes (6): buildGroupMatchGraph(), buildMatchGraph$1(), buildMultiplierMatchGraph(), createCondition(), isEnumCapatible(), isFunctionType()

Community 21 - "getCharCode"

Cohesion: 0.53 Nodes (6): consumeBadUrlRemnants$1(), consumeEscaped$1(), consumeName$1(), getCharCode(), getNewlineLength$1(), tokenize$3()

Community 23 - "PinRestrictions.jsx"

Cohesion: 0.60 Nodes (4): derivarGrupos(), GRUPOS, PinRestrictions(), rotuloDoPino()

Community 24 - "eslint.config.mjs"

Cohesion: 0.40 Nodes (4): compat, __dirname, eslintConfig, __filename

Community 25 - "compilerOptions"

Cohesion: 0.40 Nodes (4): compilerOptions, paths, @/, ./

Community 26 - "requireKeys"

Cohesion: 0.40 Nodes (5): assign(), requireIsImplemented$1(), requireKeys(), requireShim$4(), requireShim$5()

Community 27 - "outOfRange"

Cohesion: 0.40 Nodes (5): dimension(), integer(), isPostfixIeHack(), outOfRange(), percentage()

Community 28 - "testNode"

Cohesion: 0.40 Nodes (4): isKeyword(), isProperty(), isType(), testNode()

Community 29 - "page.jsx"

Cohesion: 0.67 Nodes (3): categoryIcons, Comparacao(), valorDe()

Community 31 - "page.jsx"

Cohesion: 0.50 Nodes (4): getOptionIcon(), iconMap, PRESETS, Seletor()

Community 34 - "consumeB$1"

Cohesion: 0.50 Nodes (4): checkInteger$1(), consumeB$1(), isDelim$1(), skipSC()

Community 36 - "generate$2"

Cohesion: 0.50 Nodes (4): generate$2(), generateMultiplier(), generateSequence(), generateTypeOpts()

Community 37 - "getVendorPrefix"

Cohesion: 0.67 Nodes (4): getKeywordDescriptor(), getPropertyDescriptor(), getVendorPrefix(), isCustomProperty$1()

Community 49 - "matchSyntax"

Cohesion: 0.67 Nodes (3): buildMatchResult(), matchSyntax(), valueHasVar()

Community 50 - "consumeNumber$5"

Cohesion: 0.67 Nodes (3): cmpChar$5(), consumeNumber$5(), findDecimalNumberEnd()

Community 51 - "strcmp"

Cohesion: 0.67 Nodes (3): compareByGeneratedPositionsDeflated(), compareByOriginalPositions(), strcmp()

Community 52 - "readSequence"

Cohesion: 0.67 Nodes (3): consumeRaw(), parentheses(), readSequence()

Community 53 - "patchAtrules"

Cohesion: 0.67 Nodes (3): patchAtrules(), patchDictionary(), unpackSyntaxes()

Community 69 - "consumeDeclaration"

Cohesion: 0.17 Nodes (4): CodeExample(), Polisher, request(), startsWith()

Community 70 - "consumeRaw$4"

Cohesion: 0.49 Nodes (13): auditarContrasteEClasses(), auditarImagens(), auditarLinksEInteracoes(), auditarPerformanceConfigs(), auditarRotasInternas(), aviso(), buscarArquivos(), CORES (+5 more)

Community 72 - "dumpAtruleMapSyntax"

Cohesion: 0.33 Nodes (5): pastaModulo, raiz, saida, servidor, TIPOS

Community 82 - "UndisplayedFilter"

Cohesion: 0.28 Nodes (3): calculateSpecificity(), cleanSelector(), UndisplayedFilter

Community 83 - "esp-zigbee.c"

Cohesion: 0.25 Nodes (5): esp_zb_app_signal_msg_t, esp_zb_zcl_set_attr_value_message_t, esp_err_t, esp_zb_app_signal_handler(), zb_attribute_handler()

Community 84 - "Hook"

Cohesion: 0.25 Nodes (3): Handler, Hook, invokeForType()

Community 85 - "write_cb"

Cohesion: 0.29 Nodes (5): esp_rmaker_device_t, esp_rmaker_param_val_t, esp_rmaker_write_ctx_t, esp_err_t, write_cb()

Community 87 - "componentRegistryData.js"

Cohesion: 0.33 Nodes (4): ComponentRegistryPage(), CATEGORIAS_COMPONENTES, COMPONENTES_REGISTRY, GUIA_COMPONENT_MANAGER

Community 88 - "esp-now.c"

Cohesion: 0.40 Nodes (4): esp_now_recv_info_t, esp_now_send_status_t, on_data_recv(), on_data_sent()

Community 90 - "diagnosticoData.js"

Cohesion: 0.40 Nodes (4): categoriasDiagnostico, errosCatalogo, regrasDecodificadorLog, sintomasRapidos

Community 91 - "eqStr"

Cohesion: 0.50 Nodes (5): calc(), consumeFunction(), customIdent(), eqStr(), eqStrAny()

Knowledge Gaps

  • 94 isolated node(s): metadata, metadata, faqs, categoryIcons, metadata (+89 more) These have ≤1 connection - possible missing edges or undocumented components.
  • 31 thin communities (<3 nodes) omitted from report — run graphify query to explore isolated nodes.

Suggested Questions

Questions this graph is uniquely positioned to answer:

  • Why does AtPage connect AtPage to paged.polyfill.js, consumeDeclaration, .indexOf? High betweenness centrality (0.037) - this node is a cross-community bridge.
  • Why does Page connect Page to paged.polyfill.js, .replace? High betweenness centrality (0.025) - this node is a cross-community bridge.
  • Why does Chunker connect Page to paged.polyfill.js, consumeDeclaration? High betweenness centrality (0.019) - this node is a cross-community bridge.
  • What connects metadata, metadata, faqs to the rest of the system? 94 weakly-connected nodes found - possible documentation gaps or missing edges.
  • Should paged.polyfill.js be split into smaller, more focused modules? Cohesion score 0.02247191011235955 - nodes in this community are weakly interconnected.
  • Should Layout be split into smaller, more focused modules? Cohesion score 0.05608322026232474 - nodes in this community are weakly interconnected.
  • Should AtPage be split into smaller, more focused modules? Cohesion score 0.05238095238095238 - nodes in this community are weakly interconnected.