GRAPH_REPORT.md 6.1 KB

Graph Report - qmk-rgb (2026-09-27)

Corpus Check

  • Corpus is ~29,342 words - fits in a single context window. You may not need a graph.

Summary

  • 242 nodes · 675 edges · 13 communities (11 shown, 2 thin omitted)
  • Extraction: 87% EXTRACTED · 13% INFERRED · 0% AMBIGUOUS · INFERRED: 90 edges (avg confidence: 0.85)
  • Token cost: 0 input · 0 output

Community Hubs (Navigation)

  • Zones and Effects
  • CLI and Commands
  • Protocol and State
  • Color and Effects Parsing
  • Root and Device Discovery
  • HID Access Layer
  • Zone Operations
  • Effect Command
  • Info Subsystem
  • Graphify Docs
  • Skill Instructions
  • Impact 80 Effects
  • Zone Helpers

God Nodes (most connected - your core abstractions)

  1. Zone - 29 edges
  2. LEDType - 23 edges
  3. selectedZones() - 18 edges
  4. AllZones() - 16 edges
  5. OpenDevice() - 15 edges
  6. ResolveEffect() - 15 edges
  7. init() - 13 edges
  8. zoneProtocol - 11 edges
  9. resolveEffectTargets() - 10 edges
  10. readInfo() - 9 edges

Surprising Connections (you probably didn't know these)

  • NewColorCmd() --calls--> ParseHexColor() [EXTRACTED] cmd/qmk-rgb-tool/color.go → internal/rgb/effects.go
  • TestSelectedChannelStopsOnFirstError() --calls--> AllZones() [EXTRACTED] cmd/qmk-rgb-tool/commands_test.go → internal/rgb/impact80.go
  • resolveEffectTargets() --calls--> ResolveEffect() [EXTRACTED] cmd/qmk-rgb-tool/effect.go → internal/rgb/impact80.go
  • resolveEffectTargets() --references--> EffectTarget [EXTRACTED] cmd/qmk-rgb-tool/effect.go → internal/rgb/impact80.go
  • resolveEffectTargets() --references--> Zone [EXTRACTED] cmd/qmk-rgb-tool/effect.go → internal/rgb/impact80.go

Import Cycles

  • None detected.

Communities (13 total, 2 thin omitted)

Community 0 - "Zones and Effects"

Cohesion: 0.09 Nodes (31): TestInfoCommandPrintsJSONBeforeReturningError(), TestInfoErrorRecord(), TestInfoSuccessfulRecord(), newRootCommand(), TestRootCommandSuppressesCobraErrorAndUsage(), lightingEnabled(), TestDeviceFlagIsInheritedByCommands(), TestLightingEnabledRequiresActiveEffectAndBrightness() (+23 more)

Community 1 - "CLI and Commands"

Cohesion: 0.13 Nodes (27): TestZoneChannels(), zoneChannels(), AllZones(), DefaultEffect(), EffectName(), Impact80EffectName(), impact80EffectNames(), ParseImpact80Effect() (+19 more)

Community 2 - "Protocol and State"

Cohesion: 0.12 Nodes (10): TestSelectedChannelStopsOnFirstError(), LEDType, Protocol, New(), commandReport, fakeInfoProtocol, fakeZoneProtocol, infoKey (+2 more)

Community 3 - "Color and Effects Parsing"

Cohesion: 0.18 Nodes (25): NewBrightnessCmd(), NewColorCmd(), NewDisableCmd(), NewEnableCmd(), NewInfoCmd(), init(), NewModeCmd(), applyProfileToProfile() (+17 more)

Community 4 - "Root and Device Discovery"

Cohesion: 0.18 Nodes (15): Execute(), main(), go_pkg_encoding_json, go_pkg_fmt, go_pkg_github_com_spf13_cobra, go_pkg_os, go_pkg_path_filepath, Discover() (+7 more)

Community 5 - "HID Access Layer"

Cohesion: 0.18 Nodes (12): go_pkg_github_com_sstallion_go_hid, go_pkg_sync, go_pkg_time, Device, DeviceInfo, DevicesInfo, DiscoverAll(), ensureInit() (+4 more)

Community 6 - "Zone Operations"

Cohesion: 0.16 Nodes (13): go_pkg_math, go_pkg_strconv, ParseEffect(), ParseHexColor(), TestColorToHSV(), TestEffectString(), TestParseEffect(), TestParseHexColor() (+5 more)

Community 7 - "Effect Command"

Cohesion: 0.31 Nodes (11): TestSelectedChannelOperations(), disableLightingOnZones(), enableLightingOnZones(), forEachSelectedZone(), setBrightnessOnZones(), setColorOnZones(), setModeOnZones(), setSpeedOnZones() (+3 more)

Community 8 - "Info Subsystem"

Cohesion: 0.23 Nodes (14): listAllEffects(), NewEffectCmd(), resolveEffectTargets(), runEffectSet(), executeEffectCommand(), TestEffectCommandRejectsBeforeOpeningProtocol(), TestEffectCommandSuppressesSuccessAfterLaterWriteFailure(), TestEffectCommandWarnsForSkippedZones() (+6 more)

Community 9 - "Graphify Docs"

Cohesion: 0.50 Nodes (7): getInfoValue(), readInfo(), readZoneInfo(), infoColor, infoGetter, infoOutput, zoneInfo

Community 10 - "Skill Instructions"

Cohesion: 0.40 Nodes (3): IMPORTANT: keep the reminder string free of backticks and $(...) constructs., ref_fs, ref_path

Knowledge Gaps

  • 4 isolated node(s): $schema, plugin, netdome.biz/paul/impact-80, LEDParam These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 32 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
  • 2 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 LEDType connect Protocol and State to CLI and Commands, Color and Effects Parsing, Effect Command, Info Subsystem, Graphify Docs? High betweenness centrality (0.084) - this node is a cross-community bridge.
  • Why does Zone connect CLI and Commands to Info Subsystem, Graphify Docs, Color and Effects Parsing, Effect Command? High betweenness centrality (0.050) - this node is a cross-community bridge.
  • Are the 3 inferred relationships involving Zone (e.g. with TestImpact80DefaultEffects() and TestImpact80LogoAndSideCatalog()) actually correct? Zone has 3 INFERRED edges - model-reasoned connections that need verification.
  • Are the 14 inferred relationships involving selectedZones() (e.g. with NewBrightnessCmd() and NewColorCmd()) actually correct? selectedZones() has 14 INFERRED edges - model-reasoned connections that need verification.
  • Are the 4 inferred relationships involving AllZones() (e.g. with TestAllImpact80Zones() and TestImpact80ResolveAliases()) actually correct? AllZones() has 4 INFERRED edges - model-reasoned connections that need verification.
  • What connects $schema, plugin, netdome.biz/paul/impact-80 to the rest of the system? 4 weakly-connected nodes found - possible documentation gaps or missing edges.
  • Should Zones and Effects be split into smaller, more focused modules? Cohesion score 0.0931174089068826 - nodes in this community are weakly interconnected.