소스 검색

regenerate graphify: 242 nodes, 675 edges, 13 communities

Paul Klumpp 2 주 전
부모
커밋
4a1d99cf52
5개의 변경된 파일과 1872개의 추가작업 그리고 1890개의 파일을 삭제
  1. 1 25
      graphify-out/.graphify_labels.json
  2. 85 122
      graphify-out/GRAPH_REPORT.md
  3. 1 1
      graphify-out/graph.html
  4. 1617 1640
      graphify-out/graph.json
  5. 168 102
      graphify-out/manifest.json

+ 1 - 25
graphify-out/.graphify_labels.json

@@ -1,25 +1 @@
-{
-  "0": "Open Issues",
-  "1": "main.go",
-  "2": "hid.go",
-  "3": "OpenDevice",
-  "4": "device.go",
-  "5": "What You Must Do When Invoked",
-  "6": "testing.T",
-  "7": "Agent Guidelines — Wobkey Impact 80 RGB CLI",
-  "9": "Protocol",
-  "10": "Wobkey RGB CLI",
-  "11": "graphify.js",
-  "12": "graphify reference: extra exports and benchmark",
-  "13": "opencode.json",
-  "14": "github.com/wobkey/rgb",
-  "15": "graphify reference: query, path, explain",
-  "16": "graphify reference: add a URL and watch a folder",
-  "17": "graphify reference: commit hook and native CLAUDE.md integration",
-  "18": "graphify reference: incremental update and cluster-only",
-  "19": "graphify reference: GitHub clone and cross-repo merge",
-  "20": "graphify reference: transcribe video and audio",
-  "21": "CLAUDE.md",
-  "22": ".claude/CLAUDE.md",
-  "23": "extraction-spec.md"
-}
+{"0": "Zones and Effects", "1": "CLI and Commands", "2": "Protocol and State", "3": "Color and Effects Parsing", "4": "Root and Device Discovery", "5": "HID Access Layer", "6": "Zone Operations", "7": "Effect Command", "8": "Info Subsystem", "9": "Graphify Docs", "10": "Skill Instructions", "11": "Impact 80 Effects", "12": "Zone Helpers"}

+ 85 - 122
graphify-out/GRAPH_REPORT.md

@@ -1,157 +1,120 @@
-# Graph Report - impact-80  (2026-09-25)
+# Graph Report - qmk-rgb  (2026-09-27)
 
 ## Corpus Check
-- 38 files · ~18,786 words
-- Verdict: corpus is large enough that graph structure adds value.
-- Unclassified: 1 file(s) not represented in the graph (top: (none) 1)
+- Corpus is ~29,342 words - fits in a single context window. You may not need a graph.
 
 ## Summary
-- 231 nodes · 406 edges · 23 communities (16 shown, 7 thin omitted)
-- Extraction: 94% EXTRACTED · 6% INFERRED · 0% AMBIGUOUS · INFERRED: 25 edges (avg confidence: 0.85)
+- 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
 
-## Graph Freshness
-- Built from commit: `216e2dbe`
-- 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)
-- Open Issues
-- main.go
-- hid.go
-- OpenDevice
-- device.go
-- What You Must Do When Invoked
-- testing.T
-- Agent Guidelines — Wobkey Impact 80 RGB CLI
-- Protocol
-- Wobkey RGB CLI
-- graphify.js
-- graphify reference: extra exports and benchmark
-- opencode.json
-- github.com/wobkey/rgb
-- 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
-- graphify reference: GitHub clone and cross-repo merge
-- graphify reference: transcribe video and audio
-- CLAUDE.md
-- .claude/CLAUDE.md
-- extraction-spec.md
+- 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. `OpenDevice()` - 14 edges
-2. `What You Must Do When Invoked` - 12 edges
-3. `init()` - 10 edges
-4. `/graphify` - 10 edges
-5. `Agent Guidelines — Wobkey Impact 80 RGB CLI` - 10 edges
-6. `Keyboard` - 8 edges
-7. `Device` - 8 edges
-8. `graphify reference: extra exports and benchmark` - 8 edges
-9. `Go Development` - 8 edges
-10. `Wobkey RGB CLI` - 8 edges
+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)
-- `Info` --references--> `Device`  [EXTRACTED]
-  cmd/wobkey/main.go → internal/device/device.go
 - `NewColorCmd()` --calls--> `ParseHexColor()`  [EXTRACTED]
-  cmd/wobkey/rgb/color.go → internal/rgb/effects.go
-- `GetAvailableEffects()` --references--> `Keyboard`  [EXTRACTED]
-  cmd/wobkey/rgb/effect.go → internal/device/device.go
-- `OpenDevice()` --calls--> `Discover()`  [EXTRACTED]
-  cmd/wobkey/rgb/rgb.go → internal/device/device.go
-- `OpenDevice()` --references--> `Keyboard`  [EXTRACTED]
-  cmd/wobkey/rgb/rgb.go → internal/device/device.go
+  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 (23 total, 7 thin omitted)
-
-### Community 0 - "Open Issues"
-Cohesion: 0.25
-Nodes (7): 1. Impact 80 Effect Mapping, 2. Cross-Platform HID Backends, 3. Documentation and Release Artifacts, Open Issues, Quick Commands for Next Session, Status, Wobkey RGB CLI — Implementation Plan
-
-### Community 1 - "main.go"
-Cohesion: 0.23
-Nodes (12): Execute(), main(), go_pkg_encoding_json, go_pkg_fmt, go_pkg_github_com_spf13_cobra, go_pkg_math, go_pkg_os, ParseHexColor() (+4 more)
-
-### Community 2 - "hid.go"
-Cohesion: 0.10
-Nodes (20): go_pkg_bytes, go_pkg_strings, go_pkg_syscall, go_pkg_time, go_pkg_unsafe, Device, DevicesInfo, DiscoverAll() (+12 more)
-
-### Community 3 - "OpenDevice"
-Cohesion: 0.19
-Nodes (20): init(), NewBrightnessCmd(), NewColorCmd(), NewDisableCmd(), GetAvailableEffects(), NewEffectCmd(), NewEnableCmd(), NewInfoCmd() (+12 more)
+## Communities (13 total, 2 thin omitted)
 
-### Community 4 - "device.go"
-Cohesion: 0.29
-Nodes (11): go_pkg_path_filepath, Discover(), Device, Keyboard, LoadKeyboards(), matchKeyboards(), TestLoadKeyboards(), TestLoadKeyboardsEmptyFile() (+3 more)
+### Community 0 - "Zones and Effects"
+Cohesion: 0.09
+Nodes (31): TestInfoCommandPrintsJSONBeforeReturningError(), TestInfoErrorRecord(), TestInfoSuccessfulRecord(), newRootCommand(), TestRootCommandSuppressesCobraErrorAndUsage(), lightingEnabled(), TestDeviceFlagIsInheritedByCommands(), TestLightingEnabledRequiresActiveEffectAndBrightness() (+23 more)
 
-### Community 5 - "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 1 - "CLI and Commands"
+Cohesion: 0.13
+Nodes (27): TestZoneChannels(), zoneChannels(), AllZones(), DefaultEffect(), EffectName(), Impact80EffectName(), impact80EffectNames(), ParseImpact80Effect() (+19 more)
 
-### Community 6 - "testing.T"
-Cohesion: 0.15
-Nodes (14): TestDeviceFlagIsInheritedByRGBCommands(), TestLightingEnabledRequiresActiveEffectAndBrightness(), go_pkg_testing, testing.T, TestColorToHSV(), TestQMKValueIDs(), TestDisableLightingUsesAllImpact80Channels(), TestEnableLightingUsesAllImpact80Channels() (+6 more)
+### Community 2 - "Protocol and State"
+Cohesion: 0.12
+Nodes (10): TestSelectedChannelStopsOnFirstError(), LEDType, Protocol, New(), commandReport, fakeInfoProtocol, fakeZoneProtocol, infoKey (+2 more)
 
-### Community 7 - "Agent Guidelines — Wobkey Impact 80 RGB CLI"
-Cohesion: 0.11
-Nodes (17): Agent Guidelines — Wobkey Impact 80 RGB CLI, Architecture, CLI Interface, Concurrency, Constraints, Error Handling, Go Development, graphify (+9 more)
-
-### Community 9 - "Protocol"
-Cohesion: 0.27
-Nodes (4): Protocol, LEDType, Message, transport
+### Community 3 - "Color and Effects Parsing"
+Cohesion: 0.18
+Nodes (25): NewBrightnessCmd(), NewColorCmd(), NewDisableCmd(), NewEnableCmd(), NewInfoCmd(), init(), NewModeCmd(), applyProfileToProfile() (+17 more)
 
-### Community 10 - "Wobkey RGB CLI"
+### Community 4 - "Root and Device Discovery"
 Cohesion: 0.18
-Nodes (10): Architecture, CLI Reference, Installation, Linux HID Device Permissions, Option 1: Quick (Per Session), Option 2: Permanent (udev Rule), Protocol, Supported Keyboards (+2 more)
+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 11 - "graphify.js"
-Cohesion: 0.40
-Nodes (3): IMPORTANT: keep the reminder string free of backticks and $(...) constructs., ref_fs, ref_path
+### 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 12 - "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 6 - "Zone Operations"
+Cohesion: 0.16
+Nodes (13): go_pkg_math, go_pkg_strconv, ParseEffect(), ParseHexColor(), TestColorToHSV(), TestEffectString(), TestParseEffect(), TestParseHexColor() (+5 more)
 
-### Community 15 - "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 7 - "Effect Command"
+Cohesion: 0.31
+Nodes (11): TestSelectedChannelOperations(), disableLightingOnZones(), enableLightingOnZones(), forEachSelectedZone(), setBrightnessOnZones(), setColorOnZones(), setModeOnZones(), setSpeedOnZones() (+3 more)
 
-### Community 16 - "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 8 - "Info Subsystem"
+Cohesion: 0.23
+Nodes (14): listAllEffects(), NewEffectCmd(), resolveEffectTargets(), runEffectSet(), executeEffectCommand(), TestEffectCommandRejectsBeforeOpeningProtocol(), TestEffectCommandSuppressesSuccessAfterLaterWriteFailure(), TestEffectCommandWarnsForSkippedZones() (+6 more)
 
-### Community 17 - "graphify reference: commit hook and native CLAUDE.md integration"
+### Community 9 - "Graphify Docs"
 Cohesion: 0.50
-Nodes (3): For git commit hook, For native CLAUDE.md integration, graphify reference: commit hook and native CLAUDE.md integration
+Nodes (7): getInfoValue(), readInfo(), readZoneInfo(), infoColor, infoGetter, infoOutput, zoneInfo
 
-### Community 18 - "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
+### 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
-- **75 isolated node(s):** `$schema`, `plugin`, `github.com/wobkey/rgb`, `LEDParam`, `graphify` (+70 more)
-  These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 110 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
-- **7 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
+- **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 `Protocol` connect `Protocol` to `main.go`, `hid.go`, `OpenDevice`, `device.go`?**
-  _High betweenness centrality (0.026) - this node is a cross-community bridge._
-- **Why does `OpenDevice()` connect `OpenDevice` to `Protocol`, `hid.go`, `device.go`?**
-  _High betweenness centrality (0.018) - this node is a cross-community bridge._
-- **Are the 8 inferred relationships involving `OpenDevice()` (e.g. with `NewBrightnessCmd()` and `NewColorCmd()`) actually correct?**
-  _`OpenDevice()` has 8 INFERRED edges - model-reasoned connections that need verification._
-- **What connects `$schema`, `plugin`, `github.com/wobkey/rgb` to the rest of the system?**
-  _75 weakly-connected nodes found - possible documentation gaps or missing edges._
-- **Should `hid.go` be split into smaller, more focused modules?**
-  _Cohesion score 0.10052910052910052 - nodes in this community are weakly interconnected._
-- **Should `What You Must Do When Invoked` be split into smaller, more focused modules?**
-  _Cohesion score 0.08 - nodes in this community are weakly interconnected._
-- **Should `Agent Guidelines — Wobkey Impact 80 RGB CLI` be split into smaller, more focused modules?**
-  _Cohesion score 0.1111111111111111 - nodes in this community are weakly interconnected._
+- **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._

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
graphify-out/graph.html


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1617 - 1640
graphify-out/graph.json


+ 168 - 102
graphify-out/manifest.json

@@ -17,123 +17,57 @@
     "ast_hash": "3ea725724bc8ebe483c9f13d6aa1124f",
     "semantic_hash": "3ea725724bc8ebe483c9f13d6aa1124f"
   },
-  "cmd/wobkey/main.go": {
-    "mtime": 1790286312.6441693,
-    "seen": 1790288349.8046525,
-    "ast_hash": "39a98ca066c7e2f57ed2bb2aa64d3872",
-    "semantic_hash": "39a98ca066c7e2f57ed2bb2aa64d3872"
-  },
-  "cmd/wobkey/rgb/brightness.go": {
-    "mtime": 1790288931.9611642,
-    "seen": 1790289317.709677,
-    "ast_hash": "4ee082de48e4b79209f3f315fd95d0e9",
-    "semantic_hash": ""
-  },
-  "cmd/wobkey/rgb/color.go": {
-    "mtime": 1790288914.9880402,
-    "seen": 1790289317.709678,
-    "ast_hash": "3188f52925752853e159789c51e65590",
-    "semantic_hash": ""
-  },
-  "cmd/wobkey/rgb/disable.go": {
-    "mtime": 1790289223.6960397,
-    "seen": 1790289317.7096784,
-    "ast_hash": "93e8d81e01bb8fd78484ffc8640f3c5c",
-    "semantic_hash": ""
-  },
-  "cmd/wobkey/rgb/effect.go": {
-    "mtime": 1790288951.2403028,
-    "seen": 1790289317.709679,
-    "ast_hash": "27a9939fa944b596786dc61de2eb570a",
-    "semantic_hash": ""
-  },
-  "cmd/wobkey/rgb/enable.go": {
-    "mtime": 1790289302.5594819,
-    "seen": 1790289317.7096794,
-    "ast_hash": "45e9311bea409d1354f6bfacb3263d67",
-    "semantic_hash": ""
-  },
-  "cmd/wobkey/rgb/info.go": {
-    "mtime": 1790289267.0142853,
-    "seen": 1790289317.70968,
-    "ast_hash": "21687602d73579d14e8f1d33c2921b20",
-    "semantic_hash": ""
-  },
-  "cmd/wobkey/rgb/mode.go": {
-    "mtime": 1790288942.9182434,
-    "seen": 1790289317.7096806,
-    "ast_hash": "215b8471971922b6300d15b11e4decbd",
-    "semantic_hash": ""
-  },
-  "cmd/wobkey/rgb/rgb.go": {
-    "mtime": 1790289263.6842666,
-    "seen": 1790289317.709681,
-    "ast_hash": "bb6d9c5eeb5c60b137968ca220f4be0e",
-    "semantic_hash": ""
-  },
-  "cmd/wobkey/rgb/rgb_test.go": {
-    "mtime": 1790289257.1982303,
-    "seen": 1790289317.7096817,
-    "ast_hash": "12b2ec74de8523746384a4d522fc7922",
-    "semantic_hash": ""
-  },
-  "cmd/wobkey/rgb/speed.go": {
-    "mtime": 1790288937.3662033,
-    "seen": 1790289317.7096822,
-    "ast_hash": "715af2ff74f1c6ddd3873c82e8651be8",
-    "semantic_hash": ""
-  },
   "go.mod": {
-    "mtime": 1790284436.9532418,
-    "seen": 1790288349.804667,
-    "ast_hash": "e76d002cc769732fd202e6a64def62a5",
-    "semantic_hash": "e76d002cc769732fd202e6a64def62a5"
+    "mtime": 1790412042.5711646,
+    "seen": 1790463814.4685533,
+    "ast_hash": "667318b32f457dbd78b6370fc046b697",
+    "semantic_hash": "667318b32f457dbd78b6370fc046b697"
   },
   "internal/device/device.go": {
-    "mtime": 1790290128.4753065,
-    "seen": 1790290149.8498783,
-    "ast_hash": "1bb2e2fa6811b8b0abafb6ed17c6d420",
-    "semantic_hash": ""
+    "mtime": 1790413965.3489175,
+    "seen": 1790463814.468554,
+    "ast_hash": "c4c1e3fa7bce5e21aa5106694ae42e3e",
+    "semantic_hash": "c4c1e3fa7bce5e21aa5106694ae42e3e"
   },
   "internal/device/device_test.go": {
-    "mtime": 1790288761.3898182,
-    "seen": 1790289317.7096844,
-    "ast_hash": "33f4fc213035a4a9d6e725f831e40194",
-    "semantic_hash": ""
+    "mtime": 1790409901.7712643,
+    "seen": 1790463814.4685545,
+    "ast_hash": "a7f7020d4c2372dc7b53393bf93ce17f",
+    "semantic_hash": "a7f7020d4c2372dc7b53393bf93ce17f"
   },
   "internal/hid/hid.go": {
-    "mtime": 1790290112.2172391,
-    "seen": 1790290149.8498797,
-    "ast_hash": "d554e68dd1a143c03bf32db34e855d91",
-    "semantic_hash": ""
+    "mtime": 1790409901.7712643,
+    "seen": 1790463814.468555,
+    "ast_hash": "1b39dbc96c3b8c28455681e13dc2b0ee",
+    "semantic_hash": "1b39dbc96c3b8c28455681e13dc2b0ee"
   },
   "internal/hid/hid_test.go": {
-    "mtime": 1790289990.0587273,
-    "seen": 1790290149.8498802,
-    "ast_hash": "732214d69c8b1cc35e628f8486e3ec7c",
-    "semantic_hash": ""
+    "mtime": 1790409901.7712643,
+    "seen": 1790463814.4685555,
+    "ast_hash": "4629bf9bacb81dcb4d2416d4a6a00891",
+    "semantic_hash": "4629bf9bacb81dcb4d2416d4a6a00891"
   },
   "internal/rgb/effects.go": {
-    "mtime": 1790290065.0020428,
-    "seen": 1790290149.849881,
+    "mtime": 1790409901.5198488,
+    "seen": 1790463814.468556,
     "ast_hash": "c6e74c01b12f2fdf579ee18ced5c110e",
-    "semantic_hash": ""
+    "semantic_hash": "c6e74c01b12f2fdf579ee18ced5c110e"
   },
   "internal/rgb/effects_test.go": {
-    "mtime": 1790290050.5749824,
-    "seen": 1790290149.8498816,
+    "mtime": 1790409901.5198488,
+    "seen": 1790463814.4685566,
     "ast_hash": "c858a795e2c6c048163863ae3d966a28",
-    "semantic_hash": ""
+    "semantic_hash": "c858a795e2c6c048163863ae3d966a28"
   },
   "internal/via/protocol.go": {
-    "mtime": 1790289965.4096227,
-    "seen": 1790290149.8498821,
-    "ast_hash": "7a73e4e6e8e2a18d06cd878212743d28",
-    "semantic_hash": ""
+    "mtime": 1790412042.5711646,
+    "seen": 1790463814.468558,
+    "ast_hash": "dca62fa63702074da1421a389ee36884",
+    "semantic_hash": "dca62fa63702074da1421a389ee36884"
   },
   "keyboards.json": {
-    "mtime": 1790287714.2654066,
-    "seen": 1790288349.804672,
+    "mtime": 1790409901.3908472,
+    "seen": 1790463814.468559,
     "ast_hash": "ca7f6e2644c991a791601d720d1cabc5",
     "semantic_hash": "ca7f6e2644c991a791601d720d1cabc5"
   },
@@ -222,9 +156,141 @@
     "semantic_hash": ""
   },
   "internal/via/protocol_test.go": {
-    "mtime": 1790289947.3375454,
-    "seen": 1790290149.8498826,
-    "ast_hash": "3ae5b45b25bf80dfde46fe3c4c916436",
-    "semantic_hash": ""
+    "mtime": 1790409901.6678505,
+    "seen": 1790463814.4685585,
+    "ast_hash": "62d869768f0ea68365efac25bcbe002c",
+    "semantic_hash": "62d869768f0ea68365efac25bcbe002c"
+  },
+  "cmd/qmk-rgb-tool/brightness.go": {
+    "mtime": 1790413318.3056927,
+    "seen": 1790463814.4685416,
+    "ast_hash": "5b81faaae9c1384de8ab419c5f7faee3",
+    "semantic_hash": "5b81faaae9c1384de8ab419c5f7faee3"
+  },
+  "cmd/qmk-rgb-tool/color.go": {
+    "mtime": 1790413318.307623,
+    "seen": 1790463814.4685428,
+    "ast_hash": "d14de7de5bbe090c03554d7d92538382",
+    "semantic_hash": "d14de7de5bbe090c03554d7d92538382"
+  },
+  "cmd/qmk-rgb-tool/commands_test.go": {
+    "mtime": 1790413318.3096464,
+    "seen": 1790463814.4685435,
+    "ast_hash": "23d84012e3bc8b22af6524b5b03aae85",
+    "semantic_hash": "23d84012e3bc8b22af6524b5b03aae85"
+  },
+  "cmd/qmk-rgb-tool/disable.go": {
+    "mtime": 1790413318.3116593,
+    "seen": 1790463814.468544,
+    "ast_hash": "5ce4f85e7f68ba5568b487da9c82f645",
+    "semantic_hash": "5ce4f85e7f68ba5568b487da9c82f645"
+  },
+  "cmd/qmk-rgb-tool/effect.go": {
+    "mtime": 1790413318.3137214,
+    "seen": 1790463814.4685445,
+    "ast_hash": "fbb7f61e3861d749317f75573ea6250b",
+    "semantic_hash": "fbb7f61e3861d749317f75573ea6250b"
+  },
+  "cmd/qmk-rgb-tool/effect_test.go": {
+    "mtime": 1790413318.3156185,
+    "seen": 1790463814.468545,
+    "ast_hash": "c488ec74b7faae8b6dd72ec6406e9305",
+    "semantic_hash": "c488ec74b7faae8b6dd72ec6406e9305"
+  },
+  "cmd/qmk-rgb-tool/enable.go": {
+    "mtime": 1790413318.3174825,
+    "seen": 1790463814.4685454,
+    "ast_hash": "a1b6722c579145bab457ea84223735c1",
+    "semantic_hash": "a1b6722c579145bab457ea84223735c1"
+  },
+  "cmd/qmk-rgb-tool/info.go": {
+    "mtime": 1790413318.3201005,
+    "seen": 1790463814.4685462,
+    "ast_hash": "5729e42223c2b9c9fbfda0176b53d14f",
+    "semantic_hash": "5729e42223c2b9c9fbfda0176b53d14f"
+  },
+  "cmd/qmk-rgb-tool/info_test.go": {
+    "mtime": 1790413318.3221047,
+    "seen": 1790463814.4685464,
+    "ast_hash": "68ef80920be6c0b8ee0c4a322f34b7f5",
+    "semantic_hash": "68ef80920be6c0b8ee0c4a322f34b7f5"
+  },
+  "cmd/qmk-rgb-tool/main.go": {
+    "mtime": 1790415001.5893931,
+    "seen": 1790463814.468547,
+    "ast_hash": "dc3f696a4c21d65d08dff6be48a9eaf1",
+    "semantic_hash": "dc3f696a4c21d65d08dff6be48a9eaf1"
+  },
+  "cmd/qmk-rgb-tool/main_test.go": {
+    "mtime": 1790413318.3259575,
+    "seen": 1790463814.4685473,
+    "ast_hash": "062faff9ab5fa977eca1bf8b9e77dbd1",
+    "semantic_hash": "062faff9ab5fa977eca1bf8b9e77dbd1"
+  },
+  "cmd/qmk-rgb-tool/mode.go": {
+    "mtime": 1790413318.327789,
+    "seen": 1790463814.4685478,
+    "ast_hash": "9b054da1b7da636bd4d86a00f06c7e95",
+    "semantic_hash": "9b054da1b7da636bd4d86a00f06c7e95"
+  },
+  "cmd/qmk-rgb-tool/profile.go": {
+    "mtime": 1790413318.329883,
+    "seen": 1790463814.4685483,
+    "ast_hash": "7c45ce9e90f80c07eb42551156a8859b",
+    "semantic_hash": "7c45ce9e90f80c07eb42551156a8859b"
+  },
+  "cmd/qmk-rgb-tool/rgb.go": {
+    "mtime": 1790413576.5705357,
+    "seen": 1790463814.4685488,
+    "ast_hash": "8079b8c7caa31eec1465f1d8d691c667",
+    "semantic_hash": "8079b8c7caa31eec1465f1d8d691c667"
+  },
+  "cmd/qmk-rgb-tool/rgb_test.go": {
+    "mtime": 1790413631.7260745,
+    "seen": 1790463814.4685495,
+    "ast_hash": "88e6030a666448dd71872cb0b657c7c1",
+    "semantic_hash": "88e6030a666448dd71872cb0b657c7c1"
+  },
+  "cmd/qmk-rgb-tool/speed.go": {
+    "mtime": 1790413318.3357396,
+    "seen": 1790463814.46855,
+    "ast_hash": "c740f9023f8af8c99469d4980dfa2aba",
+    "semantic_hash": "c740f9023f8af8c99469d4980dfa2aba"
+  },
+  "cmd/qmk-rgb-tool/zones.go": {
+    "mtime": 1790413318.3375769,
+    "seen": 1790463814.4685524,
+    "ast_hash": "2cc779f3c130887b5b8de53bc8a70a87",
+    "semantic_hash": "2cc779f3c130887b5b8de53bc8a70a87"
+  },
+  "internal/rgb/impact80.go": {
+    "mtime": 1790409901.8136318,
+    "seen": 1790463814.4685571,
+    "ast_hash": "e66dc686190b5d83e5c1d7e0353622ea",
+    "semantic_hash": "e66dc686190b5d83e5c1d7e0353622ea"
+  },
+  "internal/rgb/impact80_test.go": {
+    "mtime": 1790409901.5411222,
+    "seen": 1790463814.4685576,
+    "ast_hash": "8eb8575f9cd46f414221aae90dcdfce9",
+    "semantic_hash": "8eb8575f9cd46f414221aae90dcdfce9"
+  },
+  "profiles/default.json": {
+    "mtime": 1790412430.5649068,
+    "seen": 1790463814.4685595,
+    "ast_hash": "d31a4ed531d07053bfa7003bf103a446",
+    "semantic_hash": "d31a4ed531d07053bfa7003bf103a446"
+  },
+  "profiles/lala.json": {
+    "mtime": 1790413684.1597204,
+    "seen": 1790463814.46856,
+    "ast_hash": "da81962ff20a591b22723077274ec107",
+    "semantic_hash": "da81962ff20a591b22723077274ec107"
+  },
+  "profiles/paul.json": {
+    "mtime": 1790412599.9651628,
+    "seen": 1790463814.4685605,
+    "ast_hash": "99ee5b592ce6ef681eae001964376a60",
+    "semantic_hash": "99ee5b592ce6ef681eae001964376a60"
   }
 }

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.