# 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._