GRAPH_REPORT.md 10.0 KB

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

Corpus Check

  • 56 files · ~31,956 words
  • Verdict: corpus is large enough that graph structure adds value.
  • Unclassified: 3 file(s) not represented in the graph (top: (none) 3)

Summary

  • 432 nodes · 919 edges · 30 communities (22 shown, 8 thin omitted)
  • Extraction: 88% EXTRACTED · 12% INFERRED · 0% AMBIGUOUS · INFERRED: 106 edges (avg confidence: 0.85)
  • Token cost: 0 input · 0 output

Graph Freshness

  • Built from commit: 0557d9ac
  • 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)

  • testing.T
  • Zone
  • LEDType
  • profile.go
  • rgb_test.go
  • hid.go
  • effects.go
  • What You Must Do When Invoked
  • effect_test.go
  • info.go
  • graphify.js
  • opencode.json
  • netdome.biz/paul/impact-80
  • Agent Guidelines — QMK RGB Tool
  • QMK RGB Tool
  • Impact 80 Zone-Aware Lighting Effects Design
  • /qmk-rgb
  • Review Focus
  • Wobkey RGB CLI — Implementation Plan
  • graphify reference: extra exports and benchmark
  • graphify reference: query, path, explain
  • graphify reference: add a URL and watch a folder
  • graphify reference: commit hook and native CLAUDE.md integration
  • graphify reference: incremental update and cluster-only
  • fakeTransport
  • graphify reference: GitHub clone and cross-repo merge
  • graphify reference: transcribe video and audio
  • CLAUDE.md
  • .claude/CLAUDE.md
  • extraction-spec.md

God Nodes (most connected - your core abstractions)

  1. Zone - 29 edges
  2. LEDType - 23 edges
  3. selectedZones() - 18 edges
  4. AllZones() - 16 edges
  5. ResolveEffect() - 15 edges
  6. OpenDevice() - 14 edges
  7. QMK RGB Tool - 14 edges
  8. init() - 13 edges
  9. Agent Guidelines — QMK RGB Tool - 13 edges
  10. Impact 80 Zone-Aware Lighting Effects Design - 13 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 (30 total, 8 thin omitted)

Community 0 - "testing.T"

Cohesion: 0.07 Nodes (61): TestInfoCommandPrintsJSONBeforeReturningError(), TestInfoErrorRecord(), TestInfoSuccessfulRecord(), runRealKeyboardInfo(), stubDiscovery(), TestKeyboardInfoEmitsEmptyArrayNotNull(), TestKeyboardInfoEmitsIndentedJSON(), TestKeyboardInfoPropagatesDiscoveryError() (+53 more)

Community 1 - "Zone"

Cohesion: 0.11 Nodes (37): TestSelectedChannelOperations(), disableLightingOnZones(), enableLightingOnZones(), forEachSelectedZone(), setBrightnessOnZones(), setColorOnZones(), setModeOnZones(), setSpeedOnZones() (+29 more)

Community 2 - "LEDType"

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

Community 3 - "profile.go"

Cohesion: 0.18 Nodes (14): applyProfileToProfile(), DeleteProfile(), hexToHSV(), ListProfiles(), LoadProfile(), loadProfileFromDevice(), NewProfileDeleteCmd(), NewProfileListCmd() (+6 more)

Community 4 - "rgb_test.go"

Cohesion: 0.13 Nodes (31): NewBrightnessCmd(), NewColorCmd(), NewDisableCmd(), listAllEffects(), NewEffectCmd(), runEffectSet(), NewEnableCmd(), NewInfoCmd() (+23 more)

Community 5 - "hid.go"

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 - "effects.go"

Cohesion: 0.17 Nodes (12): go_pkg_math, ParseEffect(), ParseHexColor(), TestColorToHSV(), TestEffectString(), TestParseEffect(), TestParseHexColor(), TestQMKValueIDs() (+4 more)

Community 7 - "What You Must Do When Invoked"

Cohesion: 0.08 Nodes (24): For /graphify add and --watch, For /graphify query, For the commit hook and native CLAUDE.md integration, For --update and --cluster-only, /graphify, Honesty Rules, Interpreter guard for subcommands, Part A - Structural extraction for code files (+16 more)

Community 8 - "effect_test.go"

Cohesion: 0.31 Nodes (10): resolveEffectTargets(), executeEffectCommand(), TestEffectCommandRejectsBeforeOpeningProtocol(), TestEffectCommandSuppressesSuccessAfterLaterWriteFailure(), TestEffectCommandWarnsForSkippedZones(), TestResolveEffectTargetsBacklightOnly(), TestResolveEffectTargetsBreathing(), TestResolveEffectTargetsExplicitUnsupported() (+2 more)

Community 9 - "info.go"

Cohesion: 0.36 Nodes (9): getInfoValue(), readInfo(), readZoneInfo(), lightingEnabled(), TestLightingEnabledRequiresActiveEffectAndBrightness(), infoColor, infoGetter, infoOutput (+1 more)

Community 10 - "graphify.js"

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

Community 13 - "Agent Guidelines — QMK RGB Tool"

Cohesion: 0.09 Nodes (21): Agent Guidelines — QMK RGB Tool, Architecture, CLI Interface, Code vs Documentation, Concurrency, Consistency, Constraints, Device Selection (+13 more)

Community 14 - "QMK RGB Tool"

Cohesion: 0.10 Nodes (19): Architecture, CLI Reference, Compatibility Aliases, Effect Behavior, Features, Impact 80 Zones and Effects, Installation, Known Keyboards (+11 more)

Community 15 - "Impact 80 Zone-Aware Lighting Effects Design"

Cohesion: 0.14 Nodes (13): Acceptance criteria, CLI behavior, Component boundaries, Effect catalog, Error handling, Goals, Impact 80 Zone-Aware Lighting Effects Design, Info output (+5 more)

Community 16 - "/qmk-rgb"

Cohesion: 0.17 Nodes (11): 1. First, get the tool's own help, 2. If the tool is not built or no keyboard is connected, 3. When a user wants to change something, 4. Profiles, Compatibility aliases, How to answer, Known limitations, /qmk-rgb (+3 more)

Community 17 - "Review Focus"

Cohesion: 0.18 Nodes (10): Execution Handoff — 2026-09-25, Global Constraints, Impact 80 Zone-Aware Lighting Effects Implementation Plan, Review Focus, Task 1: Build the Zone and Effect Profile Domain, Task 2: Add Zone Selection to the RGB Command Layer, Task 3: Make Effect Resolution Zone-Aware, Task 4: Route All RGB Commands Through the Selected Zones (+2 more)

Community 18 - "Wobkey RGB CLI — Implementation Plan"

Cohesion: 0.18 Nodes (10): Continue With Hardware, Cross-Platform HID Backends, Effect Families, Handoff Status, Hardware Environment, Open Issues, Status, Verification (+2 more)

Community 19 - "graphify reference: extra exports and benchmark"

Cohesion: 0.22 Nodes (8): graphify reference: extra exports and benchmark, Step 6b - Wiki (only if --wiki flag), Step 7 - Neo4j export (only if --neo4j or --neo4j-push flag), Step 7a - FalkorDB export (only if --falkordb or --falkordb-push flag), Step 7b - SVG export (only if --svg flag), Step 7c - GraphML export (only if --graphml flag), Step 7d - MCP server (only if --mcp flag), Step 8 - Token reduction benchmark (only if total_words > 5000)

Community 20 - "graphify reference: query, path, explain"

Cohesion: 0.33 Nodes (5): For /graphify explain, For /graphify path, graphify reference: query, path, explain, Step 0 — Constrained query expansion (REQUIRED before traversal), Step 1 — Traversal

Community 21 - "graphify reference: add a URL and watch a folder"

Cohesion: 0.50 Nodes (3): For /graphify add, For --watch, graphify reference: add a URL and watch a folder

Community 22 - "graphify reference: commit hook and native CLAUDE.md integration"

Cohesion: 0.50 Nodes (3): For git commit hook, For native CLAUDE.md integration, graphify reference: commit hook and native CLAUDE.md integration

Community 23 - "graphify reference: incremental update and cluster-only"

Cohesion: 0.50 Nodes (3): For --cluster-only, For --update (incremental re-extraction), graphify reference: incremental update and cluster-only

Knowledge Gaps

  • 117 isolated node(s): $schema, plugin, netdome.biz/paul/impact-80, LEDParam, graphify (+112 more) These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 163 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
  • 8 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 LEDType to info.go, profile.go, rgb_test.go, Zone? High betweenness centrality (0.029) - this node is a cross-community bridge.
  • Why does Zone connect Zone to effect_test.go, info.go, profile.go, rgb_test.go? High betweenness centrality (0.017) - 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.
  • What connects $schema, plugin, netdome.biz/paul/impact-80 to the rest of the system? 117 weakly-connected nodes found - possible documentation gaps or missing edges.
  • Should testing.T be split into smaller, more focused modules? Cohesion score 0.06881287726358148 - nodes in this community are weakly interconnected.
  • Should Zone be split into smaller, more focused modules? Cohesion score 0.10730804810360776 - nodes in this community are weakly interconnected.