Kord/graphify-out/GRAPH_REPORT.md

18 KiB

Graph Report - . (2026-04-21)

Corpus Check

  • 163 files · ~121,820 words
  • Verdict: corpus is large enough that graph structure adds value.

Summary

  • 369 nodes · 617 edges · 57 communities detected
  • Extraction: 77% EXTRACTED · 23% INFERRED · 0% AMBIGUOUS · INFERRED: 141 edges (avg confidence: 0.8)
  • Token cost: 0 input · 0 output

Community Hubs (Navigation)

God Nodes (most connected - your core abstractions)

  1. FishingService - 55 edges
  2. MusicService - 38 edges
  3. t() - 30 edges
  4. execute() - 14 edges
  5. RefinementService - 13 edges
  6. execute() - 11 edges
  7. execute() - 9 edges
  8. execute() - 9 edges
  9. execute() - 8 edges
  10. VoiceService - 8 edges

Surprising Connections (you probably didn't know these)

  • Temporary Voice Channels --logs_to--> Centralized Audit Logging [INFERRED] Docs/Features/temp_voice_channels.md → apps/bot/src/services/AuditLogService.ts
  • Weapon Refinement System --influenced_by--> Fever Time System [EXTRACTED] Docs/WorkDone/2026-03-30_RefinementImplementation.md → apps/bot/src/services/FeverService.ts
  • handleSetupWizardInteraction() --calls--> t() [INFERRED] apps/bot/src/interactions/handlers/setupWizardHandler.ts → apps/bot/src/i18n/index.ts
  • execute() --calls--> t() [INFERRED] apps/bot/src/commands/language.ts → apps/bot/src/i18n/index.ts
  • buildErrorMessage() --calls--> t() [INFERRED] apps/bot/src/commands/music.ts → apps/bot/src/i18n/index.ts

Communities

Community 0 - "Fishing System & UI"

Cohesion: 0.08 Nodes (4): execute(), buildFishingGauge(), buildFishingLane(), FishingService

Community 1 - "Music & i18n Testing"

Cohesion: 0.1 Nodes (10): walk(), buildErrorMessage(), execute(), respond(), extractYouTubeVideoId(), formatDuration(), isYouTubePlaylistUrl(), MusicService (+2 more)

Community 2 - "Command Config & Audit"

Cohesion: 0.11 Nodes (16): buildResultLine(), execute(), getOverallColor(), AuditLogService, execute(), buildStatusLabel(), execute(), formatReminderOffsets() (+8 more)

Community 3 - "Interaction & i18n Core"

Cohesion: 0.12 Nodes (9): getNestedValue(), normalizeDiscordLocale(), resolveLocale(), StaticI18nProvider, execute(), getContextLocale(), getInteractionLocale(), VoiceService (+1 more)

Community 4 - "Error Flow & Setup Wizard"

Cohesion: 0.12 Nodes (7): createBotError(), ErrorReporter, withErrorHandler(), PermissionAuditService, execute(), handleSetupWizardInteraction(), SetupWizardRenderer

Community 5 - "Activity & Fever Systems"

Cohesion: 0.11 Nodes (6): ActivityTrackerService, BigEmojiService, FeverService, execute(), MimicService, WebhookService

Community 6 - "Weapon Refinement RPG"

Cohesion: 0.26 Nodes (3): execute(), handleRefinementInteraction(), RefinementService

Community 7 - "Client Lifecycle & Sharding"

Cohesion: 0.12 Nodes (5): execute(), execute(), PrismaShardStatusRepository, PresenceService, execute()

Community 8 - "Discord Event Management"

Cohesion: 0.22 Nodes (6): buildEventEmbed(), EventService, resolveAnnouncementChannel(), toDiscordTimestamps(), globalSetup(), main()

Community 9 - "Infrastructure & Loaders"

Cohesion: 0.15 Nodes (6): loadCommands(), handleGlobalExceptions(), loadEvents(), connectDB(), createPgPoolConfig(), KordClient

Community 10 - "Command Subscriptions"

Cohesion: 0.27 Nodes (7): beforeHandle(), data(), ensureGuildPaidForTrait(), execute(), toModule(), traitRequiresPayment(), ExampleSlashCommand

Community 11 - "AutoRole Automation"

Cohesion: 0.19 Nodes (4): AutoRoleCommand, generateAutoRoleDashboard(), AutoRoleService, execute()

Community 12 - "Dashboard gRPC Routes"

Cohesion: 0.4 Nodes (2): pingBot(), GET()

Community 13 - "gRPC Integration Tests"

Cohesion: 0.5 Nodes (1): MockBotDashboardService

Community 14 - "Mock Interaction Testing"

Cohesion: 0.5 Nodes (1): MockDiscord

Community 15 - "DB & Transaction Layer"

Cohesion: 0.67 Nodes (2): isRootClient(), withTransaction()

Community 16 - "Logging Infrastructure"

Cohesion: 0.5 Nodes (0):

Community 17 - "Configuration & Env"

Cohesion: 0.67 Nodes (0):

Community 18 - "Custom Exceptions"

Cohesion: 0.67 Nodes (1): BotError

Community 19 - "Dashboard UI Layout"

Cohesion: 1.0 Nodes (0):

Community 20 - "Dashboard Development"

Cohesion: 1.0 Nodes (0):

Community 21 - "CSS & UI Utilities"

Cohesion: 1.0 Nodes (0):

Community 22 - "Command Integration Tests"

Cohesion: 1.0 Nodes (0):

Community 23 - "Mini-Game Mechanics"

Cohesion: 1.0 Nodes (2): Fever Time System, Weapon Refinement System

Community 24 - "Logging & Channel Ops"

Cohesion: 1.0 Nodes (2): Centralized Audit Logging, Temporary Voice Channels

Community 25 - "Contract Config"

Cohesion: 1.0 Nodes (0):

Community 26 - "Prisma Configuration"

Cohesion: 1.0 Nodes (0):

Community 27 - "PostCSS Settings"

Cohesion: 1.0 Nodes (0):

Community 28 - "TS Environment"

Cohesion: 1.0 Nodes (0):

Community 29 - "Jest Global Setup"

Cohesion: 1.0 Nodes (0):

Community 30 - "Playwright Config"

Cohesion: 1.0 Nodes (0):

Community 31 - "ESLint Rules"

Cohesion: 1.0 Nodes (0):

Community 32 - "Next.js Config"

Cohesion: 1.0 Nodes (0):

Community 33 - "Test Configurations"

Cohesion: 1.0 Nodes (0):

Community 34 - "E2E Testing"

Cohesion: 1.0 Nodes (0):

Community 35 - "gRPC Ping Tests"

Cohesion: 1.0 Nodes (0):

Community 36 - "Scratch Debugging"

Cohesion: 1.0 Nodes (0):

Community 37 - "Bot Test Config"

Cohesion: 1.0 Nodes (0):

Community 38 - "DB Unit Tests"

Cohesion: 1.0 Nodes (0):

Community 39 - "Error Logic Testing"

Cohesion: 1.0 Nodes (0):

Community 40 - "Reporter Tests"

Cohesion: 1.0 Nodes (0):

Community 41 - "Locale Testing"

Cohesion: 1.0 Nodes (0):

Community 42 - "Invite Service Tests"

Cohesion: 1.0 Nodes (0):

Community 43 - "Fishing Session Tests"

Cohesion: 1.0 Nodes (0):

Community 44 - "Music Playback Tests"

Cohesion: 1.0 Nodes (0):

Community 45 - "Mimic Logic Tests"

Cohesion: 1.0 Nodes (0):

Community 46 - "Voice State Tests"

Cohesion: 1.0 Nodes (0):

Community 47 - "Shard Process"

Cohesion: 1.0 Nodes (0):

Community 48 - "Bot Entrypoint"

Cohesion: 1.0 Nodes (0):

Community 49 - "i18n Schema"

Cohesion: 1.0 Nodes (0):

Community 50 - "English Assets"

Cohesion: 1.0 Nodes (0):

Community 51 - "Korean Assets"

Cohesion: 1.0 Nodes (0):

Community 52 - "Monorepo Architecture"

Cohesion: 1.0 Nodes (1): Kord Monorepo Architecture

Community 53 - "gRPC Bridge"

Cohesion: 1.0 Nodes (1): gRPC Communication Layer

Community 54 - "Language Support"

Cohesion: 1.0 Nodes (1): Internationalization System

Community 55 - "Fishing Mechanics"

Cohesion: 1.0 Nodes (1): Fishing Mini-Game

Community 56 - "Audit Diagnostic"

Cohesion: 1.0 Nodes (1): Permission Audit Diagnostic

Knowledge Gaps

  • 9 isolated node(s): Kord Monorepo Architecture, gRPC Communication Layer, Internationalization System, Fishing Mini-Game, Weapon Refinement System (+4 more) These have ≤1 connection - possible missing edges or undocumented components.
  • Thin community Dashboard UI Layout (2 nodes): layout.tsx, RootLayout() Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Dashboard Development (2 nodes): page.tsx, testGrpc() Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community CSS & UI Utilities (2 nodes): utils.ts, cn() Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Command Integration Tests (2 nodes): Command.test.ts, executePingCommand() Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Mini-Game Mechanics (2 nodes): Fever Time System, Weapon Refinement System Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Logging & Channel Ops (2 nodes): Centralized Audit Logging, Temporary Voice Channels Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Contract Config (1 nodes): index.js Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Prisma Configuration (1 nodes): prisma.config.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community PostCSS Settings (1 nodes): postcss.config.mjs Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community TS Environment (1 nodes): next-env.d.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Jest Global Setup (1 nodes): jest.setup.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Playwright Config (1 nodes): playwright.config.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community ESLint Rules (1 nodes): eslint.config.mjs Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Next.js Config (1 nodes): next.config.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Test Configurations (1 nodes): jest.config.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community E2E Testing (1 nodes): dashboard.spec.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community gRPC Ping Tests (1 nodes): grpc-ping.test.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Scratch Debugging (1 nodes): scratch_debug_env.js Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Bot Test Config (1 nodes): jest.config.js Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community DB Unit Tests (1 nodes): db.test.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Error Logic Testing (1 nodes): BotError.test.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Reporter Tests (1 nodes): ErrorReporter.test.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Locale Testing (1 nodes): i18n.test.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Invite Service Tests (1 nodes): InviteService.test.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Fishing Session Tests (1 nodes): FishingService.test.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Music Playback Tests (1 nodes): MusicService.test.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Mimic Logic Tests (1 nodes): MimicService.test.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Voice State Tests (1 nodes): VoiceService.test.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Shard Process (1 nodes): shard.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Bot Entrypoint (1 nodes): index.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community i18n Schema (1 nodes): types.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community English Assets (1 nodes): en.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Korean Assets (1 nodes): ko.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Monorepo Architecture (1 nodes): Kord Monorepo Architecture Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community gRPC Bridge (1 nodes): gRPC Communication Layer Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Language Support (1 nodes): Internationalization System Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Fishing Mechanics (1 nodes): Fishing Mini-Game Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Audit Diagnostic (1 nodes): Permission Audit Diagnostic 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 t() connect Command Config & Audit to Fishing System & UI, Music & i18n Testing, Interaction & i18n Core, Error Flow & Setup Wizard, Client Lifecycle & Sharding, AutoRole Automation? High betweenness centrality (0.270) - this node is a cross-community bridge.
  • Why does createPgPoolConfig() connect Infrastructure & Loaders to Music & i18n Testing? High betweenness centrality (0.048) - this node is a cross-community bridge.
  • Are the 28 inferred relationships involving t() (e.g. with handleSetupWizardInteraction() and execute()) actually correct? t() has 28 INFERRED edges - model-reasoned connections that need verification.
  • Are the 11 inferred relationships involving execute() (e.g. with t() and .addFromQuery()) actually correct? execute() has 11 INFERRED edges - model-reasoned connections that need verification.
  • What connects Kord Monorepo Architecture, gRPC Communication Layer, Internationalization System to the rest of the system? 9 weakly-connected nodes found - possible documentation gaps or missing edges.
  • Should Fishing System & UI be split into smaller, more focused modules? Cohesion score 0.08 - nodes in this community are weakly interconnected.
  • Should Music & i18n Testing be split into smaller, more focused modules? Cohesion score 0.1 - nodes in this community are weakly interconnected.