Kord/graphify-out/GRAPH_REPORT.md

455 lines
19 KiB
Markdown

# Graph Report - . (2026-04-09)
## Corpus Check
- 122 files · ~90,936 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 384 nodes · 565 edges · 75 communities detected
- Extraction: 65% EXTRACTED · 35% INFERRED · 0% AMBIGUOUS · INFERRED: 197 edges (avg confidence: 0.5)
- Token cost: 0 input · 0 output
## God Nodes (most connected - your core abstractions)
1. `FishingService` - 55 edges
2. `MusicService` - 38 edges
3. `RefinementService` - 13 edges
4. `VoiceService` - 8 edges
5. `구독 티어 시스템` - 8 edges
6. `PermissionAuditService` - 7 edges
7. `execute()` - 6 edges
8. `InviteService` - 6 edges
9. `AuditLogService` - 6 edges
10. `EventService` - 6 edges
## Surprising Connections (you probably didn't know these)
- None detected - all connections are within the same source files.
## Communities
### Community 0 - "Fishing Service (UI)"
Cohesion: 0.08
Nodes (1): FishingService
### Community 1 - "Activity tracking & Audit"
Cohesion: 0.05
Nodes (3): ActivityTrackerService, FeverService, KordClient
### Community 2 - "Music Service Logic"
Cohesion: 0.11
Nodes (6): extractYouTubeVideoId(), formatDuration(), isYouTubePlaylistUrl(), MusicService, parseDurationSeconds(), parseDurationTextToSeconds()
### Community 3 - "I18n & Localization"
Cohesion: 0.14
Nodes (5): getNestedValue(), normalizeDiscordLocale(), resolveLocale(), StaticI18nProvider, t()
### Community 4 - "Bot Errors & Exceptions"
Cohesion: 0.15
Nodes (3): BotError, ErrorReporter, withErrorHandler()
### Community 5 - "Permission Audits"
Cohesion: 0.16
Nodes (4): execute(), getOverallColor(), PermissionAuditService, SetupWizardRenderer
### Community 6 - "Event Scheduling"
Cohesion: 0.21
Nodes (10): buildStatusLabel(), execute(), formatReminderOffsets(), parseReminderOffsets(), parseSeoulDateTime(), toDiscordTimestamps(), buildEventEmbed(), EventService (+2 more)
### Community 7 - "Refinement Economy"
Cohesion: 0.37
Nodes (1): RefinementService
### Community 8 - "Emoji & Interaction"
Cohesion: 0.18
Nodes (3): BigEmojiService, MimicService, WebhookService
### Community 9 - "System Architecture"
Cohesion: 0.2
Nodes (10): API Gateway, Billing & Payments, Data Persistence Layer, Centralized Logging & Monitoring, Notification System, External Payment Integration, Rate Limiting Middleware, Report Generation Engine (+2 more)
### Community 10 - "Conceptual placeholders"
Cohesion: 0.2
Nodes (10): A, B, C, D, E, FishingGame, G, H (+2 more)
### Community 11 - "Subscription Tiers"
Cohesion: 0.22
Nodes (9): FREE (프리), 서버, GuildOwnership, PREMIUM (프리미엄), PRO (프로), STANDARD (스탠다드), 사용자, UserSubscription (+1 more)
### Community 12 - "Voice Channel Logic"
Cohesion: 0.46
Nodes (1): VoiceService
### Community 13 - "Fishing Gameplay"
Cohesion: 0.33
Nodes (2): buildFishingGauge(), buildFishingLane()
### Community 14 - "Invite Management"
Cohesion: 0.6
Nodes (1): InviteService
### Community 15 - "Audit Logging"
Cohesion: 0.47
Nodes (1): AuditLogService
### Community 16 - "Configuration & DB"
Cohesion: 0.4
Nodes (0):
### Community 17 - "Mini-game Registry"
Cohesion: 0.4
Nodes (0):
### Community 18 - "Bot Presence"
Cohesion: 0.67
Nodes (1): PresenceService
### Community 19 - "Music Commands"
Cohesion: 0.83
Nodes (3): buildErrorMessage(), execute(), respond()
### Community 20 - "Group: Database Credentials"
Cohesion: 1.0
Nodes (3): 데이터베이스 비밀번호 및 접속 주소, 디스코드 봇 토큰, 환경 변수
### Community 21 - "Group: Node 1"
Cohesion: 0.67
Nodes (3): process_data, analyze_results, generate_report
### Community 22 - "Group: Language"
Cohesion: 1.0
Nodes (0):
### Community 23 - "Group: Jest Config"
Cohesion: 1.0
Nodes (0):
### Community 24 - "Group: I18N Test"
Cohesion: 1.0
Nodes (0):
### Community 25 - "Group: Temp Core Concepts"
Cohesion: 1.0
Nodes (1): Temp_Core_Concepts
### Community 26 - "Group: I18N System"
Cohesion: 1.0
Nodes (1): i18n 시스템
### Community 27 - "Group: Translationschema"
Cohesion: 1.0
Nodes (1): TranslationSchema
### Community 28 - "Group: Src/I18N/Locales/En.Ts"
Cohesion: 1.0
Nodes (1): 영어 번역 데이터
### Community 29 - "Group: Src/I18N/Locales/Ko.Ts"
Cohesion: 1.0
Nodes (1): 한국어 번역 데이터
### Community 30 - "Group: Youtube Music Playback"
Cohesion: 1.0
Nodes (1): YouTube 음악 재생 기능
### Community 31 - "Group: Musicservice"
Cohesion: 1.0
Nodes (1): MusicService
### Community 32 - "Group: Slash Command"
Cohesion: 1.0
Nodes (1): Slash Command
### Community 33 - "Group: Guildevent"
Cohesion: 1.0
Nodes (1): 이벤트 이벤트
### Community 34 - "Group: Reminderoffsets"
Cohesion: 1.0
Nodes (1): 이벤트 리마인더 오프셋 목록
### Community 35 - "Group: Fishing Mini Game"
Cohesion: 1.0
Nodes (1): 낚시 미니게임
### Community 36 - "Group: Fishing Mini Game Registry"
Cohesion: 1.0
Nodes (1): 공용 미니게임 레지스트리
### Community 37 - "Group: /Fishing Cast Command"
Cohesion: 1.0
Nodes (1): /fishing cast 명령어
### Community 38 - "Group: /Fishing End Command"
Cohesion: 1.0
Nodes (1): /fishing end 명령어
### Community 39 - "Group: 전용 스레드 기반 세션"
Cohesion: 1.0
Nodes (1): 전용 스레드 기반 세션
### Community 40 - "Group: 메모리 기반 세션 관리"
Cohesion: 1.0
Nodes (1): 메모리 기반 세션 관리
### Community 41 - "Group: 거리/끊어짐 게이지"
Cohesion: 1.0
Nodes (1): 거리/끊어짐 게이지
### Community 42 - "Group: 골드 지급"
Cohesion: 1.0
Nodes (1): 골드 지급
### Community 43 - "Group: Refinementprofile.Gold"
Cohesion: 1.0
Nodes (1): RefinementProfile.gold
### Community 44 - "Group: Src/Commands/Fishing.Ts"
Cohesion: 1.0
Nodes (1): src/commands/fishing.ts
### Community 45 - "Group: Src/Services/Fishingservice.Ts"
Cohesion: 1.0
Nodes (1): src/services/FishingService.ts
### Community 46 - "Group: Src/Events/Interactioncreate.Ts"
Cohesion: 1.0
Nodes (1): src/events/interactionCreate.ts
### Community 47 - "Group: Src/Services/Minigameregistry.Ts"
Cohesion: 1.0
Nodes (1): src/services/MiniGameRegistry.ts
### Community 48 - "Group: Src/Services/Refinementservice.Ts"
Cohesion: 1.0
Nodes (1): src/services/RefinementService.ts
### Community 49 - "Group: Src/I18N/Types.Ts"
Cohesion: 1.0
Nodes (1): src/i18n/types.ts
### Community 50 - "Group: Tests/Services/Fishingservice.Test.Ts"
Cohesion: 1.0
Nodes (1): tests/services/FishingService.test.ts
### Community 51 - "Group: Youtube Music Playback"
Cohesion: 1.0
Nodes (1): YouTube Music Playback
### Community 52 - "Group: Pause/Resume Control"
Cohesion: 1.0
Nodes (1): pause/resume control
### Community 53 - "Group: Next-Track Preview"
Cohesion: 1.0
Nodes (1): next-track preview
### Community 54 - "Group: Src/Commands/Music.Ts"
Cohesion: 1.0
Nodes (1): src/commands/music.ts
### Community 55 - "Group: Src/Services/Musicservice.Ts"
Cohesion: 1.0
Nodes (1): src/services/MusicService.ts
### Community 56 - "Group: Error Guidance Ux"
Cohesion: 1.0
Nodes (1): 에러 안내 UX 개선
### Community 57 - "Group: Boterror Class"
Cohesion: 1.0
Nodes (1): BotError 클래스
### Community 58 - "Group: Errorcodes.Ts"
Cohesion: 1.0
Nodes (1): ErrorCodes.ts
### Community 59 - "Group: Fishingprofile"
Cohesion: 1.0
Nodes (1): Fishing Profile (User Stats)
### Community 60 - "Group: Fishingservice"
Cohesion: 1.0
Nodes (1): Fishing Service
### Community 61 - "Group: /Fishing Status"
Cohesion: 1.0
Nodes (1): /fishing status command
### Community 62 - "Group: Fishingcollectionentry"
Cohesion: 1.0
Nodes (1): Fishing Collection Entry
### Community 63 - "Group: /Fishing Ranking"
Cohesion: 1.0
Nodes (1): /fishing ranking command
### Community 64 - "Group: Permissionauditservice"
Cohesion: 1.0
Nodes (1): Permission Audit Service
### Community 65 - "Group: /Audit-Permissions"
Cohesion: 1.0
Nodes (1): /audit-permissions command
### Community 66 - "Group: Presenceservice"
Cohesion: 1.0
Nodes (1): Presence Service
### Community 67 - "Group: Auditchannel"
Cohesion: 1.0
Nodes (1): Audit Channel Model
### Community 68 - "Group: Auditlogservice"
Cohesion: 1.0
Nodes (1): Audit Log Service
### Community 69 - "Group: File1"
Cohesion: 1.0
Nodes (1): file1
### Community 70 - "Group: Root"
Cohesion: 1.0
Nodes (1): Root
### Community 71 - "Group: Data"
Cohesion: 1.0
Nodes (1): Data
### Community 72 - "Group: Model"
Cohesion: 1.0
Nodes (1): Model
### Community 73 - "Group: Function A"
Cohesion: 1.0
Nodes (1): Function A
### Community 74 - "Group: Function B"
Cohesion: 1.0
Nodes (1): Function B
## Knowledge Gaps
- **52 isolated node(s):** `사용자`, `서버`, `FREE (프리)`, `STANDARD (스탠다드)`, `PRO (프로)` (+47 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **Thin community `Group: Language`** (2 nodes): `language.ts`, `execute()`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Jest Config`** (1 nodes): `jest.config.js`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: I18N Test`** (1 nodes): `i18n.test.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Temp Core Concepts`** (1 nodes): `Temp_Core_Concepts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: I18N System`** (1 nodes): `i18n 시스템`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Translationschema`** (1 nodes): `TranslationSchema`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Src/I18N/Locales/En.Ts`** (1 nodes): `영어 번역 데이터`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Src/I18N/Locales/Ko.Ts`** (1 nodes): `한국어 번역 데이터`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Youtube Music Playback`** (1 nodes): `YouTube 음악 재생 기능`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Musicservice`** (1 nodes): `MusicService`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Slash Command`** (1 nodes): `Slash Command`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Guildevent`** (1 nodes): `이벤트 이벤트`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Reminderoffsets`** (1 nodes): `이벤트 리마인더 오프셋 목록`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Fishing Mini Game`** (1 nodes): `낚시 미니게임`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Fishing Mini Game Registry`** (1 nodes): `공용 미니게임 레지스트리`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: /Fishing Cast Command`** (1 nodes): `/fishing cast 명령어`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: /Fishing End Command`** (1 nodes): `/fishing end 명령어`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: 전용 스레드 기반 세션`** (1 nodes): `전용 스레드 기반 세션`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: 메모리 기반 세션 관리`** (1 nodes): `메모리 기반 세션 관리`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: 거리/끊어짐 게이지`** (1 nodes): `거리/끊어짐 게이지`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: 골드 지급`** (1 nodes): `골드 지급`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Refinementprofile.Gold`** (1 nodes): `RefinementProfile.gold`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Src/Commands/Fishing.Ts`** (1 nodes): `src/commands/fishing.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Src/Services/Fishingservice.Ts`** (1 nodes): `src/services/FishingService.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Src/Events/Interactioncreate.Ts`** (1 nodes): `src/events/interactionCreate.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Src/Services/Minigameregistry.Ts`** (1 nodes): `src/services/MiniGameRegistry.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Src/Services/Refinementservice.Ts`** (1 nodes): `src/services/RefinementService.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Src/I18N/Types.Ts`** (1 nodes): `src/i18n/types.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Tests/Services/Fishingservice.Test.Ts`** (1 nodes): `tests/services/FishingService.test.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Youtube Music Playback`** (1 nodes): `YouTube Music Playback`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Pause/Resume Control`** (1 nodes): `pause/resume control`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Next-Track Preview`** (1 nodes): `next-track preview`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Src/Commands/Music.Ts`** (1 nodes): `src/commands/music.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Src/Services/Musicservice.Ts`** (1 nodes): `src/services/MusicService.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Error Guidance Ux`** (1 nodes): `에러 안내 UX 개선`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Boterror Class`** (1 nodes): `BotError 클래스`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Errorcodes.Ts`** (1 nodes): `ErrorCodes.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Fishingprofile`** (1 nodes): `Fishing Profile (User Stats)`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Fishingservice`** (1 nodes): `Fishing Service`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: /Fishing Status`** (1 nodes): `/fishing status command`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Fishingcollectionentry`** (1 nodes): `Fishing Collection Entry`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: /Fishing Ranking`** (1 nodes): `/fishing ranking command`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Permissionauditservice`** (1 nodes): `Permission Audit Service`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: /Audit-Permissions`** (1 nodes): `/audit-permissions command`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Presenceservice`** (1 nodes): `Presence Service`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Auditchannel`** (1 nodes): `Audit Channel Model`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Auditlogservice`** (1 nodes): `Audit Log Service`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: File1`** (1 nodes): `file1`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Root`** (1 nodes): `Root`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Data`** (1 nodes): `Data`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Model`** (1 nodes): `Model`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Function A`** (1 nodes): `Function A`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Group: Function B`** (1 nodes): `Function B`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `FishingService` connect `Fishing Service (UI)` to `Fishing Gameplay`?**
_High betweenness centrality (0.184) - this node is a cross-community bridge._
- **Why does `RefinementService` connect `Refinement Economy` to `Activity tracking & Audit`?**
_High betweenness centrality (0.045) - this node is a cross-community bridge._
- **What connects `사용자`, `서버`, `FREE (프리)` to the rest of the system?**
_52 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `Fishing Service (UI)` be split into smaller, more focused modules?**
_Cohesion score 0.08 - nodes in this community are weakly interconnected._
- **Should `Activity tracking & Audit` be split into smaller, more focused modules?**
_Cohesion score 0.05 - nodes in this community are weakly interconnected._
- **Should `Music Service Logic` be split into smaller, more focused modules?**
_Cohesion score 0.11 - nodes in this community are weakly interconnected._
- **Should `I18n & Localization` be split into smaller, more focused modules?**
_Cohesion score 0.14 - nodes in this community are weakly interconnected._