Skip to content

Code Audit — File Size

Files exceeding the 150-line ceiling defined in CLAUDE.md. Ordered by size descending.

File Lines Primary concern Suggested split
editor/state/GraphynEditorState.kt 135 ✅ split done Coordinator: workflow mutations, selection, dispatch Sub-states extracted: GraphynNodeLayoutState (82L), GraphynViewportState, GraphynDebugLogState; viewport fit/resize actions in GraphynEditorViewportActions.kt
editor/canvas/GraphynCanvasSurface.kt 113 ✅ split done Canvas orchestrator Extracted: GraphynCanvasGestures (gestures), GraphynConnectionMidpoints, GraphynNodePortDots (port dots with hover + reconnect)
editor/theme/GraphynTheme.kt 262 Color schemes, typography, palette presets, appearance state Split into GraphynPalette.kt, GraphynColorScheme.kt, GraphynTypography.kt, GraphynAppearanceState.kt
editor/canvas/components/GraphynNodeCard.kt 237 Card shell + drag + port columns + port bubbles + summary section Extract GraphynPortColumn + GraphynPortBubbleGraphynNodeCardPorts.kt; extract GraphynSummarySectionGraphynNodeCardSummary.kt
editor/shell/components/GraphynMinimapDebugger.kt 175 Minimap draw + viewport rect + node rects + telemetry overlay Split minimap Canvas draw logic into GraphynMinimapCanvas.kt
editor/shell/GraphynEditorShell.kt 175 Shell scaffold + panel layout + slot wiring Shell layout is already thin; split only if panel wiring grows

Status key

Tag Meaning
🔴 Over limit, no plan yet
🟡 Over limit, split planned
🟢 Under 150 lines

All files above are 🔴 as of Phase 4. Address GraphynEditorState and GraphynCanvasSurface first — they carry the most logic and are the most actively edited.