14 KiB
Graph Report - . (2026-04-12)
Corpus Check
- 78 files · ~273,497 words
- Verdict: corpus is large enough that graph structure adds value.
Summary
- 480 nodes · 549 edges · 74 communities detected
- Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS
- Token cost: 0 input · 0 output
God Nodes (most connected - your core abstractions)
DefaultRules- 35 edgesGameEngine- 29 edgesChessBoardView- 17 edgesFenParserFastParse- 17 edgesFenParserCombinators- 16 edgesPgnParser- 14 edgesFenParser- 9 edgesCommandInvoker- 9 edgesGameContext- 8 edgesFenExporter- 7 edges
Surprising Connections (you probably didn't know these)
- None detected - all connections are within the same source files.
Communities
Community 0 - "Community 0"
Cohesion: 0.11 Nodes (2): CastlingMove, DefaultRules
Community 1 - "Community 1"
Cohesion: 0.09 Nodes (17): ClassGap, _compact_ranges(), _find_scoverage_xml(), format_agent(), format_json(), format_markdown(), format_module_gaps(), main() (+9 more)
Community 2 - "Community 2"
Cohesion: 0.11 Nodes (2): GameEngine, PendingPromotion
Community 3 - "Community 3"
Cohesion: 0.09 Nodes (4): FenParserCombinators, EmptyToken, FenParserSupport, PieceToken
Community 4 - "Community 4"
Cohesion: 0.14 Nodes (9): format_module(), load_module(), main(), ModuleResult, parse_suite_xml(), run(), SuiteResult, TestCase (+1 more)
Community 5 - "Community 5"
Cohesion: 0.2 Nodes (1): ChessBoardView
Community 6 - "Community 6"
Cohesion: 0.15 Nodes (1): FenParserFastParse
Community 7 - "Community 7"
Cohesion: 0.12 Nodes (7): InvalidFormat, InvalidMove, MoveCommand, MoveResult, QuitCommand, ResetCommand, Successful
Community 8 - "Community 8"
Cohesion: 0.12 Nodes (12): BoardResetEvent, CheckDetectedEvent, CheckmateEvent, DrawClaimedEvent, FiftyMoveRuleAvailableEvent, InvalidMoveEvent, MoveExecutedEvent, MoveRedoneEvent (+4 more)
Community 9 - "Community 9"
Cohesion: 0.26 Nodes (2): PgnGame, PgnParser
Community 10 - "Community 10"
Cohesion: 0.15 Nodes (3): candidateMoves(), GameEngineIntegrationTest, legalMoves()
Community 11 - "Community 11"
Cohesion: 0.14 Nodes (1): GameEnginePromotionTest
Community 12 - "Community 12"
Cohesion: 0.15 Nodes (2): EngineTestHelpers, MockObserver
Community 13 - "Community 13"
Cohesion: 0.17 Nodes (3): CommandInvokerBranchTest, ConditionalFailCommand, FailingCommand
Community 14 - "Community 14"
Cohesion: 0.36 Nodes (1): FenParser
Community 15 - "Community 15"
Cohesion: 0.22 Nodes (1): CommandInvoker
Community 16 - "Community 16"
Cohesion: 0.31 Nodes (5): applyMove(), Board, removed(), updated(), withMove()
Community 17 - "Community 17"
Cohesion: 0.22 Nodes (1): GameContext
Community 18 - "Community 18"
Cohesion: 0.25 Nodes (6): ApiError, ApiResponse, Failure, PagedResponse, Pagination, Success
Community 19 - "Community 19"
Cohesion: 0.43 Nodes (1): FenExporter
Community 20 - "Community 20"
Cohesion: 0.29 Nodes (1): CastlingRights
Community 21 - "Community 21"
Cohesion: 0.4 Nodes (2): ChessGUIApp, ChessGUILauncher
Community 22 - "Community 22"
Cohesion: 0.5 Nodes (2): offset(), Square
Community 23 - "Community 23"
Cohesion: 0.4 Nodes (2): PlayerId, PlayerInfo
Community 24 - "Community 24"
Cohesion: 0.5 Nodes (2): PieceSprites, SquareColors
Community 25 - "Community 25"
Cohesion: 0.6 Nodes (1): TerminalUI
Community 26 - "Community 26"
Cohesion: 0.6 Nodes (1): PgnExporter
Community 27 - "Community 27"
Cohesion: 0.67 Nodes (1): GUIObserver
Community 28 - "Community 28"
Cohesion: 0.5 Nodes (1): DefaultRulesStateTransitionsTest
Community 29 - "Community 29"
Cohesion: 0.5 Nodes (2): EndingMockObserver, GameEngineGameEndingTest
Community 30 - "Community 30"
Cohesion: 0.5 Nodes (2): GameEngineLoadGameTest, MockObserver
Community 31 - "Community 31"
Cohesion: 0.5 Nodes (1): CommandInvokerTest
Community 32 - "Community 32"
Cohesion: 0.67 Nodes (1): Parser
Community 33 - "Community 33"
Cohesion: 0.67 Nodes (0):
Community 34 - "Community 34"
Cohesion: 0.67 Nodes (1): Main
Community 35 - "Community 35"
Cohesion: 0.67 Nodes (1): Renderer
Community 36 - "Community 36"
Cohesion: 0.67 Nodes (1): PgnExporterTest
Community 37 - "Community 37"
Cohesion: 0.67 Nodes (1): FenExporterTest
Community 38 - "Community 38"
Cohesion: 0.67 Nodes (1): GameEngineNotationTest
Community 39 - "Community 39"
Cohesion: 0.67 Nodes (1): MoveCommandTest
Community 40 - "Community 40"
Cohesion: 1.0 Nodes (1): PieceTest
Community 41 - "Community 41"
Cohesion: 1.0 Nodes (1): PieceTypeTest
Community 42 - "Community 42"
Cohesion: 1.0 Nodes (1): SquareTest
Community 43 - "Community 43"
Cohesion: 1.0 Nodes (1): CastlingRightsTest
Community 44 - "Community 44"
Cohesion: 1.0 Nodes (1): BoardTest
Community 45 - "Community 45"
Cohesion: 1.0 Nodes (1): ColorTest
Community 46 - "Community 46"
Cohesion: 1.0 Nodes (1): MoveTest
Community 47 - "Community 47"
Cohesion: 1.0 Nodes (1): GameContextTest
Community 48 - "Community 48"
Cohesion: 1.0 Nodes (1): ApiResponseTest
Community 49 - "Community 49"
Cohesion: 1.0 Nodes (1): PlayerInfoTest
Community 50 - "Community 50"
Cohesion: 1.0 Nodes (0):
Community 51 - "Community 51"
Cohesion: 1.0 Nodes (1): Piece
Community 52 - "Community 52"
Cohesion: 1.0 Nodes (1): Move
Community 53 - "Community 53"
Cohesion: 1.0 Nodes (1): RendererAndUnicodeTest
Community 54 - "Community 54"
Cohesion: 1.0 Nodes (0):
Community 55 - "Community 55"
Cohesion: 1.0 Nodes (1): DefaultRulesTest
Community 56 - "Community 56"
Cohesion: 1.0 Nodes (1): PgnParserTest
Community 57 - "Community 57"
Cohesion: 1.0 Nodes (1): PgnValidatorTest
Community 58 - "Community 58"
Cohesion: 1.0 Nodes (1): FenParserCombinatorsTest
Community 59 - "Community 59"
Cohesion: 1.0 Nodes (1): FenParserTest
Community 60 - "Community 60"
Cohesion: 1.0 Nodes (1): FenParserFastParseTest
Community 61 - "Community 61"
Cohesion: 1.0 Nodes (1): ParserTest
Community 62 - "Community 62"
Cohesion: 1.0 Nodes (1): GameEngineOutcomesTest
Community 63 - "Community 63"
Cohesion: 1.0 Nodes (1): GameEngineSpecialMovesTest
Community 64 - "Community 64"
Cohesion: 1.0 Nodes (1): GameEngineScenarioTest
Community 65 - "Community 65"
Cohesion: 1.0 Nodes (1): CommandTest
Community 66 - "Community 66"
Cohesion: 1.0 Nodes (0):
Community 67 - "Community 67"
Cohesion: 1.0 Nodes (0):
Community 68 - "Community 68"
Cohesion: 1.0 Nodes (0):
Community 69 - "Community 69"
Cohesion: 1.0 Nodes (0):
Community 70 - "Community 70"
Cohesion: 1.0 Nodes (0):
Community 71 - "Community 71"
Cohesion: 1.0 Nodes (1): Strip the package prefix from the full method path.
Community 72 - "Community 72"
Cohesion: 1.0 Nodes (1): Lines that are branch points and have at least one uncovered branch statement.
Community 73 - "Community 73"
Cohesion: 1.0 Nodes (0):
Knowledge Gaps
- 55 isolated node(s):
PieceTest,PieceTypeTest,SquareTest,CastlingRightsTest,BoardTest(+50 more) These have ≤1 connection - possible missing edges or undocumented components. - Thin community
Community 40(2 nodes):PieceTest.scala,PieceTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 41(2 nodes):PieceTypeTest.scala,PieceTypeTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 42(2 nodes):SquareTest.scala,SquareTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 43(2 nodes):CastlingRightsTest.scala,CastlingRightsTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 44(2 nodes):BoardTest.scala,BoardTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 45(2 nodes):ColorTest.scala,ColorTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 46(2 nodes):MoveTest.scala,MoveTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 47(2 nodes):GameContextTest.scala,GameContextTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 48(2 nodes):ApiResponseTest.scala,ApiResponseTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 49(2 nodes):PlayerInfoTest.scala,PlayerInfoTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 50(2 nodes):PieceType.scala,label()Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 51(2 nodes):Piece.scala,PieceToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 52(2 nodes):Move.scala,MoveToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 53(2 nodes):RendererAndUnicodeTest.scala,RendererAndUnicodeTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 54(2 nodes):PieceUnicode.scala,unicode()Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 55(2 nodes):DefaultRulesTest.scala,DefaultRulesTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 56(2 nodes):PgnParserTest.scala,PgnParserTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 57(2 nodes):PgnValidatorTest.scala,PgnValidatorTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 58(2 nodes):FenParserCombinatorsTest.scala,FenParserCombinatorsTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 59(2 nodes):FenParserTest.scala,FenParserTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 60(2 nodes):FenParserFastParseTest.scala,FenParserFastParseTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 61(2 nodes):ParserTest.scala,ParserTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 62(2 nodes):GameEngineOutcomesTest.scala,GameEngineOutcomesTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 63(2 nodes):GameEngineSpecialMovesTest.scala,GameEngineSpecialMovesTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 64(2 nodes):GameEngineScenarioTest.scala,GameEngineScenarioTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 65(2 nodes):CommandTest.scala,CommandTestToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 66(1 nodes):build.gradle.ktsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 67(1 nodes):settings.gradle.ktsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 68(1 nodes):RuleSet.scalaToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 69(1 nodes):GameContextImport.scalaToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 70(1 nodes):GameContextExport.scalaToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 71(1 nodes):Strip the package prefix from the full method path.Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 72(1 nodes):Lines that are branch points and have at least one uncovered branch statement.Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 73(1 nodes):test_counter.pyToo 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
FenParserFastParseconnectCommunity 6toCommunity 3? High betweenness centrality (0.004) - this node is a cross-community bridge. - What connects
PieceTest,PieceTypeTest,SquareTestto the rest of the system? 55 weakly-connected nodes found - possible documentation gaps or missing edges. - Should
Community 0be split into smaller, more focused modules? Cohesion score 0.11 - nodes in this community are weakly interconnected. - Should
Community 1be split into smaller, more focused modules? Cohesion score 0.09 - nodes in this community are weakly interconnected. - Should
Community 2be split into smaller, more focused modules? Cohesion score 0.11 - nodes in this community are weakly interconnected. - Should
Community 3be split into smaller, more focused modules? Cohesion score 0.09 - nodes in this community are weakly interconnected. - Should
Community 4be split into smaller, more focused modules? Cohesion score 0.14 - nodes in this community are weakly interconnected.