File Complexity Overall
  • There are 52 files with units, with 8,898 lines of code.
    • 0 very complex files (McCabe index sum 251+; 0 lines of code)
    • 2 complex files (McCabe index sum 126-250; 2,010 lines of code)
    • 3 medium complex files (McCabe index sum 51-125; 1,143 lines of code)
    • 11 slightly complex files (McCabe index sum 26-50; 2,286 lines of code)
    • 36 simple files (McCabe index sum 1-25; 3,459 lines of code)
  • 17 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 22% | 12% | 25% | 38%
Legend:
251+
126-250
51-125
26-50
1-25


explore: grouped by folders | grouped by complexity
File Complexity per Extension
251+
126-250
51-125
26-50
1-25
py0% | 80% | 19% | 0% | 0%
ts0% | 11% | 11% | 30% | 46%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
agent-approval-check0% | 100% | 0% | 0% | 0%
src0% | 13% | 13% | 29% | 42%
.github0% | 0% | 100% | 0% | 0%
base-action0% | 0% | 0% | 35% | 64%
Most Complex Files (Top 50)

The McCabe index of a file grows with its size: per 100 lines tells a large but plain file from a dense one, and most complex unit whether the complexity sits in one unit or is spread over many.

File# lines# unitsMcCabe index
(sum)
per 100
lines
most complex
unit
agent_approval_check.py
in agent-approval-check
1155 54 221 19 42
index.ts
in src/create-prompt
855 10 136 16 52
format-turns.ts
in src/entrypoints
380 7 120 32 34
check_workflow_hardening.py
in .github/scripts
278 14 117 42 32
fetcher.ts
in src/github/data
485 11 70 14 25
run.ts
in src/entrypoints
315 6 50 16 31
parse-sdk-options.ts
in base-action/src
231 6 46 20 21
restore-config.ts
in src/github/operations
220 9 44 20 10
trigger.ts
in src/github/validation
134 2 43 32 42
image-downloader.ts
in src/github/utils
323 12 41 13 24
197 7 40 20 22
comment-logic.ts
in src/github/operations
146 2 38 26 29
install-plugins.ts
in base-action/src
180 9 31 17 6
branch.ts
in src/github/operations
243 4 31 13 17
204 4 31 15 16
detector.ts
in src/modes
93 2 29 31 24
context.ts
in src/github
281 11 24 9 11
validate-env.ts
in base-action/src
72 1 23 32 23
permissions.ts
in src/github/validation
119 4 23 19 13
run-claude-sdk.ts
in base-action/src
226 7 21 9 6
index.ts
in src/modes/agent
97 3 19 20 17
487 5 19 4 9
git-config.ts
in src/github/operations
146 5 19 13 9
token.ts
in src/github
113 5 17 15 9
parse-tools.ts
in src/modes/agent
42 3 16 38 10
branch-cleanup.ts
in src/github/operations
116 1 16 14 16
index.ts
in src/modes/tag
145 4 15 10 10
branch-template.ts
in src/utils
89 6 14 16 4
actor-filter.ts
in src/github/utils
43 4 14 33 7
prepare-prompt.ts
in base-action/src
64 3 13 20 10
formatter.ts
in src/github/data
135 7 13 10 4
sanitizer.ts
in src/github/utils
123 8 12 10 5
execution-file.ts
in base-action/src
36 3 8 22 3
43 1 8 19 8
80 3 8 10 4
index.ts
in base-action/src
66 2 7 11 4
54 1 7 13 7
36 1 7 19 7
update-claude-comment.ts
in src/github/operations/comments
53 1 5 9 5
collect-inputs.ts
in src/entrypoints
54 1 5 9 5
workload-identity.ts
in base-action/src
175 3 4 2 2
18 1 4 22 4
common.ts
in src/github/operations/comments
30 4 4 13 1
fetch-depth.ts
in src/github/operations
19 2 4 21 2
11 1 3 27 3
actor.ts
in src/github/validation
76 1 3 4 3
14 2 2 14 1
266 2 2 1 1
run-claude.ts
in base-action/src
23 1 1 4 1
retry.ts
in base-action/src
41 1 1 2 1
About This Analysis
  • File complexity is the sum of the McCabe indexes (conditional complexity) of the units (methods, functions...) in a file.
  • Files are classified in five categories based on that sum: 1-25 (simple files), 26-50 (slightly complex files), 51-125 (medium complex files), 126-250 (complex files), 251+ (very complex files). The default bands are five times the unit complexity bands, as a file is a group of units.
  • Only main code files with units are classified. Files without units (languages without unit analysis, or files without functions) have no complexity to measure and are left out rather than counted as simple.
  • A very complex file holds many decisions, which often means it has too many responsibilities: a candidate to split, and a place where changes need more testing.
Learn more...