@aiready/context-analyzer 0.21.5 → 0.21.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/.aiready/aiready-report-20260314-222254.json +39216 -0
  2. package/.aiready/aiready-report-20260314-223947.json +3413 -0
  3. package/.aiready/aiready-report-20260314-224112.json +3413 -0
  4. package/.aiready/aiready-report-20260314-224302.json +2973 -0
  5. package/.aiready/aiready-report-20260314-224939.json +3092 -0
  6. package/.aiready/aiready-report-20260314-225154.json +3092 -0
  7. package/.turbo/turbo-build.log +26 -24
  8. package/.turbo/turbo-lint.log +5 -6
  9. package/.turbo/turbo-test.log +41 -119
  10. package/dist/__tests__/analyzer.test.js +55 -14
  11. package/dist/__tests__/analyzer.test.js.map +1 -1
  12. package/dist/__tests__/cluster-detector.test.d.ts +2 -0
  13. package/dist/__tests__/cluster-detector.test.d.ts.map +1 -0
  14. package/dist/__tests__/cluster-detector.test.js +121 -0
  15. package/dist/__tests__/cluster-detector.test.js.map +1 -0
  16. package/dist/__tests__/contract.test.d.ts +2 -0
  17. package/dist/__tests__/contract.test.d.ts.map +1 -0
  18. package/dist/__tests__/contract.test.js +59 -0
  19. package/dist/__tests__/contract.test.js.map +1 -0
  20. package/dist/__tests__/enhanced-cohesion.test.js +12 -2
  21. package/dist/__tests__/enhanced-cohesion.test.js.map +1 -1
  22. package/dist/__tests__/file-classification.test.d.ts +2 -0
  23. package/dist/__tests__/file-classification.test.d.ts.map +1 -0
  24. package/dist/__tests__/file-classification.test.js +749 -0
  25. package/dist/__tests__/file-classification.test.js.map +1 -0
  26. package/dist/__tests__/fragmentation-advanced.test.js +2 -8
  27. package/dist/__tests__/fragmentation-advanced.test.js.map +1 -1
  28. package/dist/__tests__/fragmentation-coupling.test.js +2 -2
  29. package/dist/__tests__/fragmentation-coupling.test.js.map +1 -1
  30. package/dist/__tests__/fragmentation-log.test.js +3 -7
  31. package/dist/__tests__/fragmentation-log.test.js.map +1 -1
  32. package/dist/__tests__/provider.test.d.ts +2 -0
  33. package/dist/__tests__/provider.test.d.ts.map +1 -0
  34. package/dist/__tests__/provider.test.js +72 -0
  35. package/dist/__tests__/provider.test.js.map +1 -0
  36. package/dist/__tests__/remediation.test.d.ts +2 -0
  37. package/dist/__tests__/remediation.test.d.ts.map +1 -0
  38. package/dist/__tests__/remediation.test.js +61 -0
  39. package/dist/__tests__/remediation.test.js.map +1 -0
  40. package/dist/__tests__/scoring.test.js +196 -16
  41. package/dist/__tests__/scoring.test.js.map +1 -1
  42. package/dist/__tests__/structural-cohesion.test.js +8 -2
  43. package/dist/__tests__/structural-cohesion.test.js.map +1 -1
  44. package/dist/analyzer.d.ts +31 -94
  45. package/dist/analyzer.d.ts.map +1 -1
  46. package/dist/analyzer.js +260 -678
  47. package/dist/analyzer.js.map +1 -1
  48. package/dist/analyzers/python-context.d.ts.map +1 -1
  49. package/dist/analyzers/python-context.js +10 -8
  50. package/dist/analyzers/python-context.js.map +1 -1
  51. package/dist/ast-utils.d.ts +16 -0
  52. package/dist/ast-utils.d.ts.map +1 -0
  53. package/dist/ast-utils.js +81 -0
  54. package/dist/ast-utils.js.map +1 -0
  55. package/dist/chunk-2HE27YEV.mjs +1739 -0
  56. package/dist/chunk-64U3PNO3.mjs +94 -0
  57. package/dist/chunk-CDIVYADN.mjs +2110 -0
  58. package/dist/chunk-D25B5LZR.mjs +1739 -0
  59. package/dist/chunk-D3SIHB2V.mjs +2118 -0
  60. package/dist/chunk-FNPSK3CG.mjs +1760 -0
  61. package/dist/chunk-GXTGOLZT.mjs +92 -0
  62. package/dist/chunk-KDUUZQBK.mjs +1692 -0
  63. package/dist/chunk-KWIS5FQP.mjs +1739 -0
  64. package/dist/chunk-LERPI33Y.mjs +2060 -0
  65. package/dist/chunk-MZP3G7TF.mjs +2118 -0
  66. package/dist/chunk-NOHK5DLU.mjs +2173 -0
  67. package/dist/chunk-ORLC5Y4J.mjs +1787 -0
  68. package/dist/chunk-OTCQL7DY.mjs +2045 -0
  69. package/dist/chunk-RRB2C34Q.mjs +1738 -0
  70. package/dist/chunk-SFK6XTJE.mjs +2110 -0
  71. package/dist/chunk-U5R2FTCR.mjs +1803 -0
  72. package/dist/chunk-UU4HZ7ZT.mjs +1849 -0
  73. package/dist/chunk-WKOZOHOU.mjs +2060 -0
  74. package/dist/chunk-XIXAWCMS.mjs +1760 -0
  75. package/dist/chunk-XTAXUNQN.mjs +1742 -0
  76. package/dist/classifier.d.ts +114 -0
  77. package/dist/classifier.d.ts.map +1 -0
  78. package/dist/classifier.js +439 -0
  79. package/dist/classifier.js.map +1 -0
  80. package/dist/cli.js +681 -1170
  81. package/dist/cli.js.map +1 -1
  82. package/dist/cli.mjs +63 -533
  83. package/dist/cluster-detector.d.ts +8 -0
  84. package/dist/cluster-detector.d.ts.map +1 -0
  85. package/dist/cluster-detector.js +70 -0
  86. package/dist/cluster-detector.js.map +1 -0
  87. package/dist/defaults.d.ts +7 -0
  88. package/dist/defaults.d.ts.map +1 -0
  89. package/dist/defaults.js +54 -0
  90. package/dist/defaults.js.map +1 -0
  91. package/dist/graph-builder.d.ts +33 -0
  92. package/dist/graph-builder.d.ts.map +1 -0
  93. package/dist/graph-builder.js +225 -0
  94. package/dist/graph-builder.js.map +1 -0
  95. package/dist/index.d.mts +93 -106
  96. package/dist/index.d.ts +93 -106
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +932 -745
  99. package/dist/index.js.map +1 -1
  100. package/dist/index.mjs +262 -28
  101. package/dist/metrics.d.ts +34 -0
  102. package/dist/metrics.d.ts.map +1 -0
  103. package/dist/metrics.js +170 -0
  104. package/dist/metrics.js.map +1 -0
  105. package/dist/provider.d.ts +6 -0
  106. package/dist/provider.d.ts.map +1 -0
  107. package/dist/provider.js +48 -0
  108. package/dist/provider.js.map +1 -0
  109. package/dist/python-context-3GZKN3LR.mjs +162 -0
  110. package/dist/python-context-O2EN3M6Z.mjs +162 -0
  111. package/dist/remediation.d.ts +25 -0
  112. package/dist/remediation.d.ts.map +1 -0
  113. package/dist/remediation.js +98 -0
  114. package/dist/remediation.js.map +1 -0
  115. package/dist/scoring.d.ts +3 -7
  116. package/dist/scoring.d.ts.map +1 -1
  117. package/dist/scoring.js +57 -48
  118. package/dist/scoring.js.map +1 -1
  119. package/dist/semantic-analysis.d.ts +12 -23
  120. package/dist/semantic-analysis.d.ts.map +1 -1
  121. package/dist/semantic-analysis.js +172 -110
  122. package/dist/semantic-analysis.js.map +1 -1
  123. package/dist/summary.d.ts +6 -0
  124. package/dist/summary.d.ts.map +1 -0
  125. package/dist/summary.js +92 -0
  126. package/dist/summary.js.map +1 -0
  127. package/dist/types.d.ts +9 -2
  128. package/dist/types.d.ts.map +1 -1
  129. package/dist/utils/output-formatter.d.ts +14 -0
  130. package/dist/utils/output-formatter.d.ts.map +1 -0
  131. package/dist/utils/output-formatter.js +338 -0
  132. package/dist/utils/output-formatter.js.map +1 -0
  133. package/package.json +2 -2
  134. package/src/__tests__/analyzer.test.ts +1 -1
  135. package/src/__tests__/auto-detection.test.ts +1 -1
  136. package/src/__tests__/contract.test.ts +1 -1
  137. package/src/__tests__/enhanced-cohesion.test.ts +1 -1
  138. package/src/__tests__/file-classification.test.ts +1 -1
  139. package/src/__tests__/fragmentation-advanced.test.ts +1 -1
  140. package/src/__tests__/fragmentation-coupling.test.ts +1 -1
  141. package/src/__tests__/fragmentation-log.test.ts +1 -1
  142. package/src/__tests__/provider.test.ts +1 -1
  143. package/src/__tests__/structural-cohesion.test.ts +1 -1
  144. package/src/analyzer.ts +112 -317
  145. package/src/analyzers/python-context.ts +7 -76
  146. package/src/ast-utils.ts +2 -2
  147. package/src/classifier.ts +13 -328
  148. package/src/cli-action.ts +110 -0
  149. package/src/cli.ts +3 -701
  150. package/src/cluster-detector.ts +28 -1
  151. package/src/defaults.ts +3 -0
  152. package/src/graph-builder.ts +10 -91
  153. package/src/heuristics.ts +216 -0
  154. package/src/index.ts +6 -0
  155. package/src/issue-analyzer.ts +158 -0
  156. package/src/metrics.ts +9 -0
  157. package/src/scoring.ts +3 -5
  158. package/src/semantic-analysis.ts +8 -14
  159. package/src/summary.ts +62 -106
  160. package/src/types.ts +52 -20
  161. package/src/utils/dependency-graph-utils.ts +126 -0
  162. package/src/utils/output-formatter.ts +411 -0
  163. package/src/utils/string-utils.ts +21 -0
@@ -0,0 +1,2973 @@
1
+ {
2
+ "summary": {
3
+ "totalIssues": 21,
4
+ "criticalIssues": 9,
5
+ "majorIssues": 0,
6
+ "totalFiles": 17,
7
+ "toolsRun": ["context-analyzer"],
8
+ "executionTime": 130,
9
+ "config": {
10
+ "scan": {
11
+ "tools": ["context"]
12
+ },
13
+ "tools": {
14
+ "context-analyzer": {}
15
+ }
16
+ },
17
+ "toolConfigs": {
18
+ "context-analyzer": {}
19
+ },
20
+ "businessImpact": {
21
+ "estimatedMonthlyWaste": 1645,
22
+ "potentialSavings": 1645,
23
+ "productivityHours": 39
24
+ }
25
+ },
26
+ "context-analyzer": {
27
+ "results": [
28
+ {
29
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
30
+ "issues": [
31
+ {
32
+ "type": "context-fragmentation",
33
+ "severity": "critical",
34
+ "message": "Import depth 6 exceeds recommended maximum 5",
35
+ "location": {
36
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
37
+ "line": 1
38
+ },
39
+ "suggestion": "Consider reducing dependency depth"
40
+ },
41
+ {
42
+ "type": "context-fragmentation",
43
+ "severity": "critical",
44
+ "message": "Context budget 22,810 tokens is 50% over limit",
45
+ "location": {
46
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
47
+ "line": 1
48
+ },
49
+ "suggestion": "Consider reducing dependency depth"
50
+ }
51
+ ],
52
+ "metrics": {
53
+ "tokenCost": 2870,
54
+ "complexityScore": 6
55
+ }
56
+ },
57
+ {
58
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
59
+ "issues": [
60
+ {
61
+ "type": "context-fragmentation",
62
+ "severity": "critical",
63
+ "message": "Import depth 8 exceeds limit by 50%",
64
+ "location": {
65
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
66
+ "line": 1
67
+ },
68
+ "suggestion": "Flatten dependency tree or use facade pattern"
69
+ },
70
+ {
71
+ "type": "context-fragmentation",
72
+ "severity": "critical",
73
+ "message": "Context budget 21,736 tokens is 50% over limit",
74
+ "location": {
75
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
76
+ "line": 1
77
+ },
78
+ "suggestion": "Flatten dependency tree or use facade pattern"
79
+ }
80
+ ],
81
+ "metrics": {
82
+ "tokenCost": 1182,
83
+ "complexityScore": 8
84
+ }
85
+ },
86
+ {
87
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
88
+ "issues": [
89
+ {
90
+ "type": "context-fragmentation",
91
+ "severity": "critical",
92
+ "message": "Import depth 7 exceeds recommended maximum 5",
93
+ "location": {
94
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
95
+ "line": 1
96
+ },
97
+ "suggestion": "Consider reducing dependency depth"
98
+ },
99
+ {
100
+ "type": "context-fragmentation",
101
+ "severity": "critical",
102
+ "message": "Context budget 20,554 tokens is 50% over limit",
103
+ "location": {
104
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
105
+ "line": 1
106
+ },
107
+ "suggestion": "Consider reducing dependency depth"
108
+ }
109
+ ],
110
+ "metrics": {
111
+ "tokenCost": 148,
112
+ "complexityScore": 7
113
+ }
114
+ },
115
+ {
116
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
117
+ "issues": [
118
+ {
119
+ "type": "context-fragmentation",
120
+ "severity": "critical",
121
+ "message": "Import depth 6 exceeds recommended maximum 5",
122
+ "location": {
123
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
124
+ "line": 1
125
+ },
126
+ "suggestion": "Consider reducing dependency depth"
127
+ },
128
+ {
129
+ "type": "context-fragmentation",
130
+ "severity": "critical",
131
+ "message": "Context budget 20,406 tokens is 50% over limit",
132
+ "location": {
133
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
134
+ "line": 1
135
+ },
136
+ "suggestion": "Consider reducing dependency depth"
137
+ }
138
+ ],
139
+ "metrics": {
140
+ "tokenCost": 466,
141
+ "complexityScore": 6
142
+ }
143
+ },
144
+ {
145
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
146
+ "issues": [
147
+ {
148
+ "type": "context-fragmentation",
149
+ "severity": "critical",
150
+ "message": "Context budget 19,940 tokens is 50% over limit",
151
+ "location": {
152
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
153
+ "line": 1
154
+ },
155
+ "suggestion": "Split into smaller modules or reduce dependency tree"
156
+ }
157
+ ],
158
+ "metrics": {
159
+ "tokenCost": 3153,
160
+ "complexityScore": 5
161
+ }
162
+ },
163
+ {
164
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
165
+ "issues": [
166
+ {
167
+ "type": "context-fragmentation",
168
+ "severity": "info",
169
+ "message": "No significant issues detected",
170
+ "location": {
171
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
172
+ "line": 1
173
+ },
174
+ "suggestion": "File is well-structured for AI context usage"
175
+ }
176
+ ],
177
+ "metrics": {
178
+ "tokenCost": 998,
179
+ "complexityScore": 4
180
+ }
181
+ },
182
+ {
183
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
184
+ "issues": [
185
+ {
186
+ "type": "context-fragmentation",
187
+ "severity": "info",
188
+ "message": "No significant issues detected",
189
+ "location": {
190
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
191
+ "line": 1
192
+ },
193
+ "suggestion": "File is well-structured for AI context usage"
194
+ }
195
+ ],
196
+ "metrics": {
197
+ "tokenCost": 711,
198
+ "complexityScore": 4
199
+ }
200
+ },
201
+ {
202
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
203
+ "issues": [
204
+ {
205
+ "type": "context-fragmentation",
206
+ "severity": "info",
207
+ "message": "No significant issues detected",
208
+ "location": {
209
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
210
+ "line": 1
211
+ },
212
+ "suggestion": "File is well-structured for AI context usage"
213
+ }
214
+ ],
215
+ "metrics": {
216
+ "tokenCost": 1854,
217
+ "complexityScore": 3
218
+ }
219
+ },
220
+ {
221
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
222
+ "issues": [
223
+ {
224
+ "type": "context-fragmentation",
225
+ "severity": "info",
226
+ "message": "No significant issues detected",
227
+ "location": {
228
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
229
+ "line": 1
230
+ },
231
+ "suggestion": "File is well-structured for AI context usage"
232
+ }
233
+ ],
234
+ "metrics": {
235
+ "tokenCost": 1534,
236
+ "complexityScore": 3
237
+ }
238
+ },
239
+ {
240
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
241
+ "issues": [
242
+ {
243
+ "type": "context-fragmentation",
244
+ "severity": "info",
245
+ "message": "No significant issues detected",
246
+ "location": {
247
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
248
+ "line": 1
249
+ },
250
+ "suggestion": "File is well-structured for AI context usage"
251
+ }
252
+ ],
253
+ "metrics": {
254
+ "tokenCost": 3968,
255
+ "complexityScore": 1
256
+ }
257
+ },
258
+ {
259
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
260
+ "issues": [
261
+ {
262
+ "type": "context-fragmentation",
263
+ "severity": "info",
264
+ "message": "No significant issues detected",
265
+ "location": {
266
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
267
+ "line": 1
268
+ },
269
+ "suggestion": "File is well-structured for AI context usage"
270
+ }
271
+ ],
272
+ "metrics": {
273
+ "tokenCost": 743,
274
+ "complexityScore": 2
275
+ }
276
+ },
277
+ {
278
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
279
+ "issues": [
280
+ {
281
+ "type": "context-fragmentation",
282
+ "severity": "info",
283
+ "message": "No significant issues detected",
284
+ "location": {
285
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
286
+ "line": 1
287
+ },
288
+ "suggestion": "File is well-structured for AI context usage"
289
+ }
290
+ ],
291
+ "metrics": {
292
+ "tokenCost": 2512,
293
+ "complexityScore": 1
294
+ }
295
+ },
296
+ {
297
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
298
+ "issues": [
299
+ {
300
+ "type": "context-fragmentation",
301
+ "severity": "info",
302
+ "message": "No significant issues detected",
303
+ "location": {
304
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
305
+ "line": 1
306
+ },
307
+ "suggestion": "File is well-structured for AI context usage"
308
+ }
309
+ ],
310
+ "metrics": {
311
+ "tokenCost": 1442,
312
+ "complexityScore": 1
313
+ }
314
+ },
315
+ {
316
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
317
+ "issues": [
318
+ {
319
+ "type": "context-fragmentation",
320
+ "severity": "info",
321
+ "message": "No significant issues detected",
322
+ "location": {
323
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
324
+ "line": 1
325
+ },
326
+ "suggestion": "File is well-structured for AI context usage"
327
+ }
328
+ ],
329
+ "metrics": {
330
+ "tokenCost": 1099,
331
+ "complexityScore": 1
332
+ }
333
+ },
334
+ {
335
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
336
+ "issues": [
337
+ {
338
+ "type": "context-fragmentation",
339
+ "severity": "info",
340
+ "message": "No significant issues detected",
341
+ "location": {
342
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
343
+ "line": 1
344
+ },
345
+ "suggestion": "File is well-structured for AI context usage"
346
+ }
347
+ ],
348
+ "metrics": {
349
+ "tokenCost": 2063,
350
+ "complexityScore": 0
351
+ }
352
+ },
353
+ {
354
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
355
+ "issues": [
356
+ {
357
+ "type": "context-fragmentation",
358
+ "severity": "info",
359
+ "message": "No significant issues detected",
360
+ "location": {
361
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
362
+ "line": 1
363
+ },
364
+ "suggestion": "File is well-structured for AI context usage"
365
+ }
366
+ ],
367
+ "metrics": {
368
+ "tokenCost": 378,
369
+ "complexityScore": 1
370
+ }
371
+ },
372
+ {
373
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts",
374
+ "issues": [
375
+ {
376
+ "type": "context-fragmentation",
377
+ "severity": "info",
378
+ "message": "No significant issues detected",
379
+ "location": {
380
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts",
381
+ "line": 1
382
+ },
383
+ "suggestion": "File is well-structured for AI context usage"
384
+ }
385
+ ],
386
+ "metrics": {
387
+ "tokenCost": 1548,
388
+ "complexityScore": 0
389
+ }
390
+ }
391
+ ],
392
+ "summary": {
393
+ "totalFiles": 17,
394
+ "criticalIssues": 5,
395
+ "majorIssues": 0,
396
+ "totalTokens": 26669,
397
+ "avgContextBudget": 9316.235294117647,
398
+ "maxContextBudget": 22810,
399
+ "avgImportDepth": 3.1176470588235294,
400
+ "maxImportDepth": 8,
401
+ "deepFiles": [
402
+ {
403
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
404
+ "depth": 6
405
+ },
406
+ {
407
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
408
+ "depth": 8
409
+ },
410
+ {
411
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
412
+ "depth": 7
413
+ },
414
+ {
415
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
416
+ "depth": 6
417
+ }
418
+ ],
419
+ "avgFragmentation": 0.6866729882994713,
420
+ "fragmentedModules": [
421
+ {
422
+ "domain": "/Users",
423
+ "files": [
424
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
425
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
426
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
427
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
428
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
429
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
430
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
431
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
432
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
433
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
434
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
435
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
436
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
437
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
438
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
439
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
440
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts"
441
+ ],
442
+ "fragmentationScore": 0.6866729882994713,
443
+ "totalTokens": 26669,
444
+ "avgCohesion": 0.9305882352941175,
445
+ "suggestedStructure": {
446
+ "targetFiles": 9,
447
+ "consolidationPlan": [
448
+ "Consolidate 17 files in /Users into fewer modules"
449
+ ]
450
+ }
451
+ }
452
+ ],
453
+ "avgCohesion": 0.9305882352941175,
454
+ "lowCohesionFiles": [],
455
+ "minorIssues": 0,
456
+ "totalPotentialSavings": 58263,
457
+ "topExpensiveFiles": [
458
+ {
459
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
460
+ "contextBudget": 22810,
461
+ "severity": "critical"
462
+ },
463
+ {
464
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
465
+ "contextBudget": 21736,
466
+ "severity": "critical"
467
+ },
468
+ {
469
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
470
+ "contextBudget": 20554,
471
+ "severity": "critical"
472
+ },
473
+ {
474
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
475
+ "contextBudget": 20406,
476
+ "severity": "critical"
477
+ },
478
+ {
479
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
480
+ "contextBudget": 19940,
481
+ "severity": "critical"
482
+ },
483
+ {
484
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
485
+ "contextBudget": 7335,
486
+ "severity": "info"
487
+ },
488
+ {
489
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
490
+ "contextBudget": 7048,
491
+ "severity": "info"
492
+ },
493
+ {
494
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
495
+ "contextBudget": 6657,
496
+ "severity": "info"
497
+ },
498
+ {
499
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
500
+ "contextBudget": 6337,
501
+ "severity": "info"
502
+ },
503
+ {
504
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
505
+ "contextBudget": 5516,
506
+ "severity": "info"
507
+ }
508
+ ],
509
+ "config": {
510
+ "rootDir": "/Users/pengcao/projects/aiready/packages/context-analyzer"
511
+ }
512
+ },
513
+ "metadata": {
514
+ "toolName": "context-analyzer",
515
+ "version": "0.17.5",
516
+ "timestamp": "2026-03-14T11:43:02.668Z",
517
+ "config": {}
518
+ }
519
+ },
520
+ "context": {
521
+ "results": [
522
+ {
523
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
524
+ "issues": [
525
+ {
526
+ "type": "context-fragmentation",
527
+ "severity": "critical",
528
+ "message": "Import depth 6 exceeds recommended maximum 5",
529
+ "location": {
530
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
531
+ "line": 1
532
+ },
533
+ "suggestion": "Consider reducing dependency depth"
534
+ },
535
+ {
536
+ "type": "context-fragmentation",
537
+ "severity": "critical",
538
+ "message": "Context budget 22,810 tokens is 50% over limit",
539
+ "location": {
540
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
541
+ "line": 1
542
+ },
543
+ "suggestion": "Consider reducing dependency depth"
544
+ }
545
+ ],
546
+ "metrics": {
547
+ "tokenCost": 2870,
548
+ "complexityScore": 6
549
+ }
550
+ },
551
+ {
552
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
553
+ "issues": [
554
+ {
555
+ "type": "context-fragmentation",
556
+ "severity": "critical",
557
+ "message": "Import depth 8 exceeds limit by 50%",
558
+ "location": {
559
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
560
+ "line": 1
561
+ },
562
+ "suggestion": "Flatten dependency tree or use facade pattern"
563
+ },
564
+ {
565
+ "type": "context-fragmentation",
566
+ "severity": "critical",
567
+ "message": "Context budget 21,736 tokens is 50% over limit",
568
+ "location": {
569
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
570
+ "line": 1
571
+ },
572
+ "suggestion": "Flatten dependency tree or use facade pattern"
573
+ }
574
+ ],
575
+ "metrics": {
576
+ "tokenCost": 1182,
577
+ "complexityScore": 8
578
+ }
579
+ },
580
+ {
581
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
582
+ "issues": [
583
+ {
584
+ "type": "context-fragmentation",
585
+ "severity": "critical",
586
+ "message": "Import depth 7 exceeds recommended maximum 5",
587
+ "location": {
588
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
589
+ "line": 1
590
+ },
591
+ "suggestion": "Consider reducing dependency depth"
592
+ },
593
+ {
594
+ "type": "context-fragmentation",
595
+ "severity": "critical",
596
+ "message": "Context budget 20,554 tokens is 50% over limit",
597
+ "location": {
598
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
599
+ "line": 1
600
+ },
601
+ "suggestion": "Consider reducing dependency depth"
602
+ }
603
+ ],
604
+ "metrics": {
605
+ "tokenCost": 148,
606
+ "complexityScore": 7
607
+ }
608
+ },
609
+ {
610
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
611
+ "issues": [
612
+ {
613
+ "type": "context-fragmentation",
614
+ "severity": "critical",
615
+ "message": "Import depth 6 exceeds recommended maximum 5",
616
+ "location": {
617
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
618
+ "line": 1
619
+ },
620
+ "suggestion": "Consider reducing dependency depth"
621
+ },
622
+ {
623
+ "type": "context-fragmentation",
624
+ "severity": "critical",
625
+ "message": "Context budget 20,406 tokens is 50% over limit",
626
+ "location": {
627
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
628
+ "line": 1
629
+ },
630
+ "suggestion": "Consider reducing dependency depth"
631
+ }
632
+ ],
633
+ "metrics": {
634
+ "tokenCost": 466,
635
+ "complexityScore": 6
636
+ }
637
+ },
638
+ {
639
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
640
+ "issues": [
641
+ {
642
+ "type": "context-fragmentation",
643
+ "severity": "critical",
644
+ "message": "Context budget 19,940 tokens is 50% over limit",
645
+ "location": {
646
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
647
+ "line": 1
648
+ },
649
+ "suggestion": "Split into smaller modules or reduce dependency tree"
650
+ }
651
+ ],
652
+ "metrics": {
653
+ "tokenCost": 3153,
654
+ "complexityScore": 5
655
+ }
656
+ },
657
+ {
658
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
659
+ "issues": [
660
+ {
661
+ "type": "context-fragmentation",
662
+ "severity": "info",
663
+ "message": "No significant issues detected",
664
+ "location": {
665
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
666
+ "line": 1
667
+ },
668
+ "suggestion": "File is well-structured for AI context usage"
669
+ }
670
+ ],
671
+ "metrics": {
672
+ "tokenCost": 998,
673
+ "complexityScore": 4
674
+ }
675
+ },
676
+ {
677
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
678
+ "issues": [
679
+ {
680
+ "type": "context-fragmentation",
681
+ "severity": "info",
682
+ "message": "No significant issues detected",
683
+ "location": {
684
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
685
+ "line": 1
686
+ },
687
+ "suggestion": "File is well-structured for AI context usage"
688
+ }
689
+ ],
690
+ "metrics": {
691
+ "tokenCost": 711,
692
+ "complexityScore": 4
693
+ }
694
+ },
695
+ {
696
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
697
+ "issues": [
698
+ {
699
+ "type": "context-fragmentation",
700
+ "severity": "info",
701
+ "message": "No significant issues detected",
702
+ "location": {
703
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
704
+ "line": 1
705
+ },
706
+ "suggestion": "File is well-structured for AI context usage"
707
+ }
708
+ ],
709
+ "metrics": {
710
+ "tokenCost": 1854,
711
+ "complexityScore": 3
712
+ }
713
+ },
714
+ {
715
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
716
+ "issues": [
717
+ {
718
+ "type": "context-fragmentation",
719
+ "severity": "info",
720
+ "message": "No significant issues detected",
721
+ "location": {
722
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
723
+ "line": 1
724
+ },
725
+ "suggestion": "File is well-structured for AI context usage"
726
+ }
727
+ ],
728
+ "metrics": {
729
+ "tokenCost": 1534,
730
+ "complexityScore": 3
731
+ }
732
+ },
733
+ {
734
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
735
+ "issues": [
736
+ {
737
+ "type": "context-fragmentation",
738
+ "severity": "info",
739
+ "message": "No significant issues detected",
740
+ "location": {
741
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
742
+ "line": 1
743
+ },
744
+ "suggestion": "File is well-structured for AI context usage"
745
+ }
746
+ ],
747
+ "metrics": {
748
+ "tokenCost": 3968,
749
+ "complexityScore": 1
750
+ }
751
+ },
752
+ {
753
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
754
+ "issues": [
755
+ {
756
+ "type": "context-fragmentation",
757
+ "severity": "info",
758
+ "message": "No significant issues detected",
759
+ "location": {
760
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
761
+ "line": 1
762
+ },
763
+ "suggestion": "File is well-structured for AI context usage"
764
+ }
765
+ ],
766
+ "metrics": {
767
+ "tokenCost": 743,
768
+ "complexityScore": 2
769
+ }
770
+ },
771
+ {
772
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
773
+ "issues": [
774
+ {
775
+ "type": "context-fragmentation",
776
+ "severity": "info",
777
+ "message": "No significant issues detected",
778
+ "location": {
779
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
780
+ "line": 1
781
+ },
782
+ "suggestion": "File is well-structured for AI context usage"
783
+ }
784
+ ],
785
+ "metrics": {
786
+ "tokenCost": 2512,
787
+ "complexityScore": 1
788
+ }
789
+ },
790
+ {
791
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
792
+ "issues": [
793
+ {
794
+ "type": "context-fragmentation",
795
+ "severity": "info",
796
+ "message": "No significant issues detected",
797
+ "location": {
798
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
799
+ "line": 1
800
+ },
801
+ "suggestion": "File is well-structured for AI context usage"
802
+ }
803
+ ],
804
+ "metrics": {
805
+ "tokenCost": 1442,
806
+ "complexityScore": 1
807
+ }
808
+ },
809
+ {
810
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
811
+ "issues": [
812
+ {
813
+ "type": "context-fragmentation",
814
+ "severity": "info",
815
+ "message": "No significant issues detected",
816
+ "location": {
817
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
818
+ "line": 1
819
+ },
820
+ "suggestion": "File is well-structured for AI context usage"
821
+ }
822
+ ],
823
+ "metrics": {
824
+ "tokenCost": 1099,
825
+ "complexityScore": 1
826
+ }
827
+ },
828
+ {
829
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
830
+ "issues": [
831
+ {
832
+ "type": "context-fragmentation",
833
+ "severity": "info",
834
+ "message": "No significant issues detected",
835
+ "location": {
836
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
837
+ "line": 1
838
+ },
839
+ "suggestion": "File is well-structured for AI context usage"
840
+ }
841
+ ],
842
+ "metrics": {
843
+ "tokenCost": 2063,
844
+ "complexityScore": 0
845
+ }
846
+ },
847
+ {
848
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
849
+ "issues": [
850
+ {
851
+ "type": "context-fragmentation",
852
+ "severity": "info",
853
+ "message": "No significant issues detected",
854
+ "location": {
855
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
856
+ "line": 1
857
+ },
858
+ "suggestion": "File is well-structured for AI context usage"
859
+ }
860
+ ],
861
+ "metrics": {
862
+ "tokenCost": 378,
863
+ "complexityScore": 1
864
+ }
865
+ },
866
+ {
867
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts",
868
+ "issues": [
869
+ {
870
+ "type": "context-fragmentation",
871
+ "severity": "info",
872
+ "message": "No significant issues detected",
873
+ "location": {
874
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts",
875
+ "line": 1
876
+ },
877
+ "suggestion": "File is well-structured for AI context usage"
878
+ }
879
+ ],
880
+ "metrics": {
881
+ "tokenCost": 1548,
882
+ "complexityScore": 0
883
+ }
884
+ }
885
+ ],
886
+ "summary": {
887
+ "totalFiles": 17,
888
+ "criticalIssues": 5,
889
+ "majorIssues": 0,
890
+ "totalTokens": 26669,
891
+ "avgContextBudget": 9316.235294117647,
892
+ "maxContextBudget": 22810,
893
+ "avgImportDepth": 3.1176470588235294,
894
+ "maxImportDepth": 8,
895
+ "deepFiles": [
896
+ {
897
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
898
+ "depth": 6
899
+ },
900
+ {
901
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
902
+ "depth": 8
903
+ },
904
+ {
905
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
906
+ "depth": 7
907
+ },
908
+ {
909
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
910
+ "depth": 6
911
+ }
912
+ ],
913
+ "avgFragmentation": 0.6866729882994713,
914
+ "fragmentedModules": [
915
+ {
916
+ "domain": "/Users",
917
+ "files": [
918
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
919
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
920
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
921
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
922
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
923
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
924
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
925
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
926
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
927
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
928
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
929
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
930
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
931
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
932
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
933
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
934
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts"
935
+ ],
936
+ "fragmentationScore": 0.6866729882994713,
937
+ "totalTokens": 26669,
938
+ "avgCohesion": 0.9305882352941175,
939
+ "suggestedStructure": {
940
+ "targetFiles": 9,
941
+ "consolidationPlan": [
942
+ "Consolidate 17 files in /Users into fewer modules"
943
+ ]
944
+ }
945
+ }
946
+ ],
947
+ "avgCohesion": 0.9305882352941175,
948
+ "lowCohesionFiles": [],
949
+ "minorIssues": 0,
950
+ "totalPotentialSavings": 58263,
951
+ "topExpensiveFiles": [
952
+ {
953
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
954
+ "contextBudget": 22810,
955
+ "severity": "critical"
956
+ },
957
+ {
958
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
959
+ "contextBudget": 21736,
960
+ "severity": "critical"
961
+ },
962
+ {
963
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
964
+ "contextBudget": 20554,
965
+ "severity": "critical"
966
+ },
967
+ {
968
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
969
+ "contextBudget": 20406,
970
+ "severity": "critical"
971
+ },
972
+ {
973
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
974
+ "contextBudget": 19940,
975
+ "severity": "critical"
976
+ },
977
+ {
978
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
979
+ "contextBudget": 7335,
980
+ "severity": "info"
981
+ },
982
+ {
983
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
984
+ "contextBudget": 7048,
985
+ "severity": "info"
986
+ },
987
+ {
988
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
989
+ "contextBudget": 6657,
990
+ "severity": "info"
991
+ },
992
+ {
993
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
994
+ "contextBudget": 6337,
995
+ "severity": "info"
996
+ },
997
+ {
998
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
999
+ "contextBudget": 5516,
1000
+ "severity": "info"
1001
+ }
1002
+ ],
1003
+ "config": {
1004
+ "rootDir": "/Users/pengcao/projects/aiready/packages/context-analyzer"
1005
+ }
1006
+ },
1007
+ "metadata": {
1008
+ "toolName": "context-analyzer",
1009
+ "version": "0.17.5",
1010
+ "timestamp": "2026-03-14T11:43:02.668Z",
1011
+ "config": {}
1012
+ }
1013
+ },
1014
+ "fragmentation": {
1015
+ "results": [
1016
+ {
1017
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
1018
+ "issues": [
1019
+ {
1020
+ "type": "context-fragmentation",
1021
+ "severity": "critical",
1022
+ "message": "Import depth 6 exceeds recommended maximum 5",
1023
+ "location": {
1024
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
1025
+ "line": 1
1026
+ },
1027
+ "suggestion": "Consider reducing dependency depth"
1028
+ },
1029
+ {
1030
+ "type": "context-fragmentation",
1031
+ "severity": "critical",
1032
+ "message": "Context budget 22,810 tokens is 50% over limit",
1033
+ "location": {
1034
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
1035
+ "line": 1
1036
+ },
1037
+ "suggestion": "Consider reducing dependency depth"
1038
+ }
1039
+ ],
1040
+ "metrics": {
1041
+ "tokenCost": 2870,
1042
+ "complexityScore": 6
1043
+ }
1044
+ },
1045
+ {
1046
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
1047
+ "issues": [
1048
+ {
1049
+ "type": "context-fragmentation",
1050
+ "severity": "critical",
1051
+ "message": "Import depth 8 exceeds limit by 50%",
1052
+ "location": {
1053
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
1054
+ "line": 1
1055
+ },
1056
+ "suggestion": "Flatten dependency tree or use facade pattern"
1057
+ },
1058
+ {
1059
+ "type": "context-fragmentation",
1060
+ "severity": "critical",
1061
+ "message": "Context budget 21,736 tokens is 50% over limit",
1062
+ "location": {
1063
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
1064
+ "line": 1
1065
+ },
1066
+ "suggestion": "Flatten dependency tree or use facade pattern"
1067
+ }
1068
+ ],
1069
+ "metrics": {
1070
+ "tokenCost": 1182,
1071
+ "complexityScore": 8
1072
+ }
1073
+ },
1074
+ {
1075
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
1076
+ "issues": [
1077
+ {
1078
+ "type": "context-fragmentation",
1079
+ "severity": "critical",
1080
+ "message": "Import depth 7 exceeds recommended maximum 5",
1081
+ "location": {
1082
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
1083
+ "line": 1
1084
+ },
1085
+ "suggestion": "Consider reducing dependency depth"
1086
+ },
1087
+ {
1088
+ "type": "context-fragmentation",
1089
+ "severity": "critical",
1090
+ "message": "Context budget 20,554 tokens is 50% over limit",
1091
+ "location": {
1092
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
1093
+ "line": 1
1094
+ },
1095
+ "suggestion": "Consider reducing dependency depth"
1096
+ }
1097
+ ],
1098
+ "metrics": {
1099
+ "tokenCost": 148,
1100
+ "complexityScore": 7
1101
+ }
1102
+ },
1103
+ {
1104
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
1105
+ "issues": [
1106
+ {
1107
+ "type": "context-fragmentation",
1108
+ "severity": "critical",
1109
+ "message": "Import depth 6 exceeds recommended maximum 5",
1110
+ "location": {
1111
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
1112
+ "line": 1
1113
+ },
1114
+ "suggestion": "Consider reducing dependency depth"
1115
+ },
1116
+ {
1117
+ "type": "context-fragmentation",
1118
+ "severity": "critical",
1119
+ "message": "Context budget 20,406 tokens is 50% over limit",
1120
+ "location": {
1121
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
1122
+ "line": 1
1123
+ },
1124
+ "suggestion": "Consider reducing dependency depth"
1125
+ }
1126
+ ],
1127
+ "metrics": {
1128
+ "tokenCost": 466,
1129
+ "complexityScore": 6
1130
+ }
1131
+ },
1132
+ {
1133
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
1134
+ "issues": [
1135
+ {
1136
+ "type": "context-fragmentation",
1137
+ "severity": "critical",
1138
+ "message": "Context budget 19,940 tokens is 50% over limit",
1139
+ "location": {
1140
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
1141
+ "line": 1
1142
+ },
1143
+ "suggestion": "Split into smaller modules or reduce dependency tree"
1144
+ }
1145
+ ],
1146
+ "metrics": {
1147
+ "tokenCost": 3153,
1148
+ "complexityScore": 5
1149
+ }
1150
+ },
1151
+ {
1152
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
1153
+ "issues": [
1154
+ {
1155
+ "type": "context-fragmentation",
1156
+ "severity": "info",
1157
+ "message": "No significant issues detected",
1158
+ "location": {
1159
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
1160
+ "line": 1
1161
+ },
1162
+ "suggestion": "File is well-structured for AI context usage"
1163
+ }
1164
+ ],
1165
+ "metrics": {
1166
+ "tokenCost": 998,
1167
+ "complexityScore": 4
1168
+ }
1169
+ },
1170
+ {
1171
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
1172
+ "issues": [
1173
+ {
1174
+ "type": "context-fragmentation",
1175
+ "severity": "info",
1176
+ "message": "No significant issues detected",
1177
+ "location": {
1178
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
1179
+ "line": 1
1180
+ },
1181
+ "suggestion": "File is well-structured for AI context usage"
1182
+ }
1183
+ ],
1184
+ "metrics": {
1185
+ "tokenCost": 711,
1186
+ "complexityScore": 4
1187
+ }
1188
+ },
1189
+ {
1190
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
1191
+ "issues": [
1192
+ {
1193
+ "type": "context-fragmentation",
1194
+ "severity": "info",
1195
+ "message": "No significant issues detected",
1196
+ "location": {
1197
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
1198
+ "line": 1
1199
+ },
1200
+ "suggestion": "File is well-structured for AI context usage"
1201
+ }
1202
+ ],
1203
+ "metrics": {
1204
+ "tokenCost": 1854,
1205
+ "complexityScore": 3
1206
+ }
1207
+ },
1208
+ {
1209
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
1210
+ "issues": [
1211
+ {
1212
+ "type": "context-fragmentation",
1213
+ "severity": "info",
1214
+ "message": "No significant issues detected",
1215
+ "location": {
1216
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
1217
+ "line": 1
1218
+ },
1219
+ "suggestion": "File is well-structured for AI context usage"
1220
+ }
1221
+ ],
1222
+ "metrics": {
1223
+ "tokenCost": 1534,
1224
+ "complexityScore": 3
1225
+ }
1226
+ },
1227
+ {
1228
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
1229
+ "issues": [
1230
+ {
1231
+ "type": "context-fragmentation",
1232
+ "severity": "info",
1233
+ "message": "No significant issues detected",
1234
+ "location": {
1235
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
1236
+ "line": 1
1237
+ },
1238
+ "suggestion": "File is well-structured for AI context usage"
1239
+ }
1240
+ ],
1241
+ "metrics": {
1242
+ "tokenCost": 3968,
1243
+ "complexityScore": 1
1244
+ }
1245
+ },
1246
+ {
1247
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
1248
+ "issues": [
1249
+ {
1250
+ "type": "context-fragmentation",
1251
+ "severity": "info",
1252
+ "message": "No significant issues detected",
1253
+ "location": {
1254
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
1255
+ "line": 1
1256
+ },
1257
+ "suggestion": "File is well-structured for AI context usage"
1258
+ }
1259
+ ],
1260
+ "metrics": {
1261
+ "tokenCost": 743,
1262
+ "complexityScore": 2
1263
+ }
1264
+ },
1265
+ {
1266
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
1267
+ "issues": [
1268
+ {
1269
+ "type": "context-fragmentation",
1270
+ "severity": "info",
1271
+ "message": "No significant issues detected",
1272
+ "location": {
1273
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
1274
+ "line": 1
1275
+ },
1276
+ "suggestion": "File is well-structured for AI context usage"
1277
+ }
1278
+ ],
1279
+ "metrics": {
1280
+ "tokenCost": 2512,
1281
+ "complexityScore": 1
1282
+ }
1283
+ },
1284
+ {
1285
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
1286
+ "issues": [
1287
+ {
1288
+ "type": "context-fragmentation",
1289
+ "severity": "info",
1290
+ "message": "No significant issues detected",
1291
+ "location": {
1292
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
1293
+ "line": 1
1294
+ },
1295
+ "suggestion": "File is well-structured for AI context usage"
1296
+ }
1297
+ ],
1298
+ "metrics": {
1299
+ "tokenCost": 1442,
1300
+ "complexityScore": 1
1301
+ }
1302
+ },
1303
+ {
1304
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
1305
+ "issues": [
1306
+ {
1307
+ "type": "context-fragmentation",
1308
+ "severity": "info",
1309
+ "message": "No significant issues detected",
1310
+ "location": {
1311
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
1312
+ "line": 1
1313
+ },
1314
+ "suggestion": "File is well-structured for AI context usage"
1315
+ }
1316
+ ],
1317
+ "metrics": {
1318
+ "tokenCost": 1099,
1319
+ "complexityScore": 1
1320
+ }
1321
+ },
1322
+ {
1323
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
1324
+ "issues": [
1325
+ {
1326
+ "type": "context-fragmentation",
1327
+ "severity": "info",
1328
+ "message": "No significant issues detected",
1329
+ "location": {
1330
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
1331
+ "line": 1
1332
+ },
1333
+ "suggestion": "File is well-structured for AI context usage"
1334
+ }
1335
+ ],
1336
+ "metrics": {
1337
+ "tokenCost": 2063,
1338
+ "complexityScore": 0
1339
+ }
1340
+ },
1341
+ {
1342
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
1343
+ "issues": [
1344
+ {
1345
+ "type": "context-fragmentation",
1346
+ "severity": "info",
1347
+ "message": "No significant issues detected",
1348
+ "location": {
1349
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
1350
+ "line": 1
1351
+ },
1352
+ "suggestion": "File is well-structured for AI context usage"
1353
+ }
1354
+ ],
1355
+ "metrics": {
1356
+ "tokenCost": 378,
1357
+ "complexityScore": 1
1358
+ }
1359
+ },
1360
+ {
1361
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts",
1362
+ "issues": [
1363
+ {
1364
+ "type": "context-fragmentation",
1365
+ "severity": "info",
1366
+ "message": "No significant issues detected",
1367
+ "location": {
1368
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts",
1369
+ "line": 1
1370
+ },
1371
+ "suggestion": "File is well-structured for AI context usage"
1372
+ }
1373
+ ],
1374
+ "metrics": {
1375
+ "tokenCost": 1548,
1376
+ "complexityScore": 0
1377
+ }
1378
+ }
1379
+ ],
1380
+ "summary": {
1381
+ "totalFiles": 17,
1382
+ "criticalIssues": 5,
1383
+ "majorIssues": 0,
1384
+ "totalTokens": 26669,
1385
+ "avgContextBudget": 9316.235294117647,
1386
+ "maxContextBudget": 22810,
1387
+ "avgImportDepth": 3.1176470588235294,
1388
+ "maxImportDepth": 8,
1389
+ "deepFiles": [
1390
+ {
1391
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
1392
+ "depth": 6
1393
+ },
1394
+ {
1395
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
1396
+ "depth": 8
1397
+ },
1398
+ {
1399
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
1400
+ "depth": 7
1401
+ },
1402
+ {
1403
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
1404
+ "depth": 6
1405
+ }
1406
+ ],
1407
+ "avgFragmentation": 0.6866729882994713,
1408
+ "fragmentedModules": [
1409
+ {
1410
+ "domain": "/Users",
1411
+ "files": [
1412
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
1413
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
1414
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
1415
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
1416
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
1417
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
1418
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
1419
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
1420
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
1421
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
1422
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
1423
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
1424
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
1425
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
1426
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
1427
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
1428
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts"
1429
+ ],
1430
+ "fragmentationScore": 0.6866729882994713,
1431
+ "totalTokens": 26669,
1432
+ "avgCohesion": 0.9305882352941175,
1433
+ "suggestedStructure": {
1434
+ "targetFiles": 9,
1435
+ "consolidationPlan": [
1436
+ "Consolidate 17 files in /Users into fewer modules"
1437
+ ]
1438
+ }
1439
+ }
1440
+ ],
1441
+ "avgCohesion": 0.9305882352941175,
1442
+ "lowCohesionFiles": [],
1443
+ "minorIssues": 0,
1444
+ "totalPotentialSavings": 58263,
1445
+ "topExpensiveFiles": [
1446
+ {
1447
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
1448
+ "contextBudget": 22810,
1449
+ "severity": "critical"
1450
+ },
1451
+ {
1452
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
1453
+ "contextBudget": 21736,
1454
+ "severity": "critical"
1455
+ },
1456
+ {
1457
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
1458
+ "contextBudget": 20554,
1459
+ "severity": "critical"
1460
+ },
1461
+ {
1462
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
1463
+ "contextBudget": 20406,
1464
+ "severity": "critical"
1465
+ },
1466
+ {
1467
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
1468
+ "contextBudget": 19940,
1469
+ "severity": "critical"
1470
+ },
1471
+ {
1472
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
1473
+ "contextBudget": 7335,
1474
+ "severity": "info"
1475
+ },
1476
+ {
1477
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
1478
+ "contextBudget": 7048,
1479
+ "severity": "info"
1480
+ },
1481
+ {
1482
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
1483
+ "contextBudget": 6657,
1484
+ "severity": "info"
1485
+ },
1486
+ {
1487
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
1488
+ "contextBudget": 6337,
1489
+ "severity": "info"
1490
+ },
1491
+ {
1492
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
1493
+ "contextBudget": 5516,
1494
+ "severity": "info"
1495
+ }
1496
+ ],
1497
+ "config": {
1498
+ "rootDir": "/Users/pengcao/projects/aiready/packages/context-analyzer"
1499
+ }
1500
+ },
1501
+ "metadata": {
1502
+ "toolName": "context-analyzer",
1503
+ "version": "0.17.5",
1504
+ "timestamp": "2026-03-14T11:43:02.668Z",
1505
+ "config": {}
1506
+ }
1507
+ },
1508
+ "budget": {
1509
+ "results": [
1510
+ {
1511
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
1512
+ "issues": [
1513
+ {
1514
+ "type": "context-fragmentation",
1515
+ "severity": "critical",
1516
+ "message": "Import depth 6 exceeds recommended maximum 5",
1517
+ "location": {
1518
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
1519
+ "line": 1
1520
+ },
1521
+ "suggestion": "Consider reducing dependency depth"
1522
+ },
1523
+ {
1524
+ "type": "context-fragmentation",
1525
+ "severity": "critical",
1526
+ "message": "Context budget 22,810 tokens is 50% over limit",
1527
+ "location": {
1528
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
1529
+ "line": 1
1530
+ },
1531
+ "suggestion": "Consider reducing dependency depth"
1532
+ }
1533
+ ],
1534
+ "metrics": {
1535
+ "tokenCost": 2870,
1536
+ "complexityScore": 6
1537
+ }
1538
+ },
1539
+ {
1540
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
1541
+ "issues": [
1542
+ {
1543
+ "type": "context-fragmentation",
1544
+ "severity": "critical",
1545
+ "message": "Import depth 8 exceeds limit by 50%",
1546
+ "location": {
1547
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
1548
+ "line": 1
1549
+ },
1550
+ "suggestion": "Flatten dependency tree or use facade pattern"
1551
+ },
1552
+ {
1553
+ "type": "context-fragmentation",
1554
+ "severity": "critical",
1555
+ "message": "Context budget 21,736 tokens is 50% over limit",
1556
+ "location": {
1557
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
1558
+ "line": 1
1559
+ },
1560
+ "suggestion": "Flatten dependency tree or use facade pattern"
1561
+ }
1562
+ ],
1563
+ "metrics": {
1564
+ "tokenCost": 1182,
1565
+ "complexityScore": 8
1566
+ }
1567
+ },
1568
+ {
1569
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
1570
+ "issues": [
1571
+ {
1572
+ "type": "context-fragmentation",
1573
+ "severity": "critical",
1574
+ "message": "Import depth 7 exceeds recommended maximum 5",
1575
+ "location": {
1576
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
1577
+ "line": 1
1578
+ },
1579
+ "suggestion": "Consider reducing dependency depth"
1580
+ },
1581
+ {
1582
+ "type": "context-fragmentation",
1583
+ "severity": "critical",
1584
+ "message": "Context budget 20,554 tokens is 50% over limit",
1585
+ "location": {
1586
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
1587
+ "line": 1
1588
+ },
1589
+ "suggestion": "Consider reducing dependency depth"
1590
+ }
1591
+ ],
1592
+ "metrics": {
1593
+ "tokenCost": 148,
1594
+ "complexityScore": 7
1595
+ }
1596
+ },
1597
+ {
1598
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
1599
+ "issues": [
1600
+ {
1601
+ "type": "context-fragmentation",
1602
+ "severity": "critical",
1603
+ "message": "Import depth 6 exceeds recommended maximum 5",
1604
+ "location": {
1605
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
1606
+ "line": 1
1607
+ },
1608
+ "suggestion": "Consider reducing dependency depth"
1609
+ },
1610
+ {
1611
+ "type": "context-fragmentation",
1612
+ "severity": "critical",
1613
+ "message": "Context budget 20,406 tokens is 50% over limit",
1614
+ "location": {
1615
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
1616
+ "line": 1
1617
+ },
1618
+ "suggestion": "Consider reducing dependency depth"
1619
+ }
1620
+ ],
1621
+ "metrics": {
1622
+ "tokenCost": 466,
1623
+ "complexityScore": 6
1624
+ }
1625
+ },
1626
+ {
1627
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
1628
+ "issues": [
1629
+ {
1630
+ "type": "context-fragmentation",
1631
+ "severity": "critical",
1632
+ "message": "Context budget 19,940 tokens is 50% over limit",
1633
+ "location": {
1634
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
1635
+ "line": 1
1636
+ },
1637
+ "suggestion": "Split into smaller modules or reduce dependency tree"
1638
+ }
1639
+ ],
1640
+ "metrics": {
1641
+ "tokenCost": 3153,
1642
+ "complexityScore": 5
1643
+ }
1644
+ },
1645
+ {
1646
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
1647
+ "issues": [
1648
+ {
1649
+ "type": "context-fragmentation",
1650
+ "severity": "info",
1651
+ "message": "No significant issues detected",
1652
+ "location": {
1653
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
1654
+ "line": 1
1655
+ },
1656
+ "suggestion": "File is well-structured for AI context usage"
1657
+ }
1658
+ ],
1659
+ "metrics": {
1660
+ "tokenCost": 998,
1661
+ "complexityScore": 4
1662
+ }
1663
+ },
1664
+ {
1665
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
1666
+ "issues": [
1667
+ {
1668
+ "type": "context-fragmentation",
1669
+ "severity": "info",
1670
+ "message": "No significant issues detected",
1671
+ "location": {
1672
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
1673
+ "line": 1
1674
+ },
1675
+ "suggestion": "File is well-structured for AI context usage"
1676
+ }
1677
+ ],
1678
+ "metrics": {
1679
+ "tokenCost": 711,
1680
+ "complexityScore": 4
1681
+ }
1682
+ },
1683
+ {
1684
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
1685
+ "issues": [
1686
+ {
1687
+ "type": "context-fragmentation",
1688
+ "severity": "info",
1689
+ "message": "No significant issues detected",
1690
+ "location": {
1691
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
1692
+ "line": 1
1693
+ },
1694
+ "suggestion": "File is well-structured for AI context usage"
1695
+ }
1696
+ ],
1697
+ "metrics": {
1698
+ "tokenCost": 1854,
1699
+ "complexityScore": 3
1700
+ }
1701
+ },
1702
+ {
1703
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
1704
+ "issues": [
1705
+ {
1706
+ "type": "context-fragmentation",
1707
+ "severity": "info",
1708
+ "message": "No significant issues detected",
1709
+ "location": {
1710
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
1711
+ "line": 1
1712
+ },
1713
+ "suggestion": "File is well-structured for AI context usage"
1714
+ }
1715
+ ],
1716
+ "metrics": {
1717
+ "tokenCost": 1534,
1718
+ "complexityScore": 3
1719
+ }
1720
+ },
1721
+ {
1722
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
1723
+ "issues": [
1724
+ {
1725
+ "type": "context-fragmentation",
1726
+ "severity": "info",
1727
+ "message": "No significant issues detected",
1728
+ "location": {
1729
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
1730
+ "line": 1
1731
+ },
1732
+ "suggestion": "File is well-structured for AI context usage"
1733
+ }
1734
+ ],
1735
+ "metrics": {
1736
+ "tokenCost": 3968,
1737
+ "complexityScore": 1
1738
+ }
1739
+ },
1740
+ {
1741
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
1742
+ "issues": [
1743
+ {
1744
+ "type": "context-fragmentation",
1745
+ "severity": "info",
1746
+ "message": "No significant issues detected",
1747
+ "location": {
1748
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
1749
+ "line": 1
1750
+ },
1751
+ "suggestion": "File is well-structured for AI context usage"
1752
+ }
1753
+ ],
1754
+ "metrics": {
1755
+ "tokenCost": 743,
1756
+ "complexityScore": 2
1757
+ }
1758
+ },
1759
+ {
1760
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
1761
+ "issues": [
1762
+ {
1763
+ "type": "context-fragmentation",
1764
+ "severity": "info",
1765
+ "message": "No significant issues detected",
1766
+ "location": {
1767
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
1768
+ "line": 1
1769
+ },
1770
+ "suggestion": "File is well-structured for AI context usage"
1771
+ }
1772
+ ],
1773
+ "metrics": {
1774
+ "tokenCost": 2512,
1775
+ "complexityScore": 1
1776
+ }
1777
+ },
1778
+ {
1779
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
1780
+ "issues": [
1781
+ {
1782
+ "type": "context-fragmentation",
1783
+ "severity": "info",
1784
+ "message": "No significant issues detected",
1785
+ "location": {
1786
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
1787
+ "line": 1
1788
+ },
1789
+ "suggestion": "File is well-structured for AI context usage"
1790
+ }
1791
+ ],
1792
+ "metrics": {
1793
+ "tokenCost": 1442,
1794
+ "complexityScore": 1
1795
+ }
1796
+ },
1797
+ {
1798
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
1799
+ "issues": [
1800
+ {
1801
+ "type": "context-fragmentation",
1802
+ "severity": "info",
1803
+ "message": "No significant issues detected",
1804
+ "location": {
1805
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
1806
+ "line": 1
1807
+ },
1808
+ "suggestion": "File is well-structured for AI context usage"
1809
+ }
1810
+ ],
1811
+ "metrics": {
1812
+ "tokenCost": 1099,
1813
+ "complexityScore": 1
1814
+ }
1815
+ },
1816
+ {
1817
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
1818
+ "issues": [
1819
+ {
1820
+ "type": "context-fragmentation",
1821
+ "severity": "info",
1822
+ "message": "No significant issues detected",
1823
+ "location": {
1824
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
1825
+ "line": 1
1826
+ },
1827
+ "suggestion": "File is well-structured for AI context usage"
1828
+ }
1829
+ ],
1830
+ "metrics": {
1831
+ "tokenCost": 2063,
1832
+ "complexityScore": 0
1833
+ }
1834
+ },
1835
+ {
1836
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
1837
+ "issues": [
1838
+ {
1839
+ "type": "context-fragmentation",
1840
+ "severity": "info",
1841
+ "message": "No significant issues detected",
1842
+ "location": {
1843
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
1844
+ "line": 1
1845
+ },
1846
+ "suggestion": "File is well-structured for AI context usage"
1847
+ }
1848
+ ],
1849
+ "metrics": {
1850
+ "tokenCost": 378,
1851
+ "complexityScore": 1
1852
+ }
1853
+ },
1854
+ {
1855
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts",
1856
+ "issues": [
1857
+ {
1858
+ "type": "context-fragmentation",
1859
+ "severity": "info",
1860
+ "message": "No significant issues detected",
1861
+ "location": {
1862
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts",
1863
+ "line": 1
1864
+ },
1865
+ "suggestion": "File is well-structured for AI context usage"
1866
+ }
1867
+ ],
1868
+ "metrics": {
1869
+ "tokenCost": 1548,
1870
+ "complexityScore": 0
1871
+ }
1872
+ }
1873
+ ],
1874
+ "summary": {
1875
+ "totalFiles": 17,
1876
+ "criticalIssues": 5,
1877
+ "majorIssues": 0,
1878
+ "totalTokens": 26669,
1879
+ "avgContextBudget": 9316.235294117647,
1880
+ "maxContextBudget": 22810,
1881
+ "avgImportDepth": 3.1176470588235294,
1882
+ "maxImportDepth": 8,
1883
+ "deepFiles": [
1884
+ {
1885
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
1886
+ "depth": 6
1887
+ },
1888
+ {
1889
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
1890
+ "depth": 8
1891
+ },
1892
+ {
1893
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
1894
+ "depth": 7
1895
+ },
1896
+ {
1897
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
1898
+ "depth": 6
1899
+ }
1900
+ ],
1901
+ "avgFragmentation": 0.6866729882994713,
1902
+ "fragmentedModules": [
1903
+ {
1904
+ "domain": "/Users",
1905
+ "files": [
1906
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
1907
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
1908
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
1909
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
1910
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
1911
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
1912
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
1913
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
1914
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
1915
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
1916
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
1917
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
1918
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
1919
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
1920
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
1921
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
1922
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts"
1923
+ ],
1924
+ "fragmentationScore": 0.6866729882994713,
1925
+ "totalTokens": 26669,
1926
+ "avgCohesion": 0.9305882352941175,
1927
+ "suggestedStructure": {
1928
+ "targetFiles": 9,
1929
+ "consolidationPlan": [
1930
+ "Consolidate 17 files in /Users into fewer modules"
1931
+ ]
1932
+ }
1933
+ }
1934
+ ],
1935
+ "avgCohesion": 0.9305882352941175,
1936
+ "lowCohesionFiles": [],
1937
+ "minorIssues": 0,
1938
+ "totalPotentialSavings": 58263,
1939
+ "topExpensiveFiles": [
1940
+ {
1941
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
1942
+ "contextBudget": 22810,
1943
+ "severity": "critical"
1944
+ },
1945
+ {
1946
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
1947
+ "contextBudget": 21736,
1948
+ "severity": "critical"
1949
+ },
1950
+ {
1951
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
1952
+ "contextBudget": 20554,
1953
+ "severity": "critical"
1954
+ },
1955
+ {
1956
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
1957
+ "contextBudget": 20406,
1958
+ "severity": "critical"
1959
+ },
1960
+ {
1961
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
1962
+ "contextBudget": 19940,
1963
+ "severity": "critical"
1964
+ },
1965
+ {
1966
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
1967
+ "contextBudget": 7335,
1968
+ "severity": "info"
1969
+ },
1970
+ {
1971
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
1972
+ "contextBudget": 7048,
1973
+ "severity": "info"
1974
+ },
1975
+ {
1976
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
1977
+ "contextBudget": 6657,
1978
+ "severity": "info"
1979
+ },
1980
+ {
1981
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
1982
+ "contextBudget": 6337,
1983
+ "severity": "info"
1984
+ },
1985
+ {
1986
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
1987
+ "contextBudget": 5516,
1988
+ "severity": "info"
1989
+ }
1990
+ ],
1991
+ "config": {
1992
+ "rootDir": "/Users/pengcao/projects/aiready/packages/context-analyzer"
1993
+ }
1994
+ },
1995
+ "metadata": {
1996
+ "toolName": "context-analyzer",
1997
+ "version": "0.17.5",
1998
+ "timestamp": "2026-03-14T11:43:02.668Z",
1999
+ "config": {}
2000
+ }
2001
+ },
2002
+ "contextAnalyzer": {
2003
+ "results": [
2004
+ {
2005
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
2006
+ "issues": [
2007
+ {
2008
+ "type": "context-fragmentation",
2009
+ "severity": "critical",
2010
+ "message": "Import depth 6 exceeds recommended maximum 5",
2011
+ "location": {
2012
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
2013
+ "line": 1
2014
+ },
2015
+ "suggestion": "Consider reducing dependency depth"
2016
+ },
2017
+ {
2018
+ "type": "context-fragmentation",
2019
+ "severity": "critical",
2020
+ "message": "Context budget 22,810 tokens is 50% over limit",
2021
+ "location": {
2022
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
2023
+ "line": 1
2024
+ },
2025
+ "suggestion": "Consider reducing dependency depth"
2026
+ }
2027
+ ],
2028
+ "metrics": {
2029
+ "tokenCost": 2870,
2030
+ "complexityScore": 6
2031
+ }
2032
+ },
2033
+ {
2034
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
2035
+ "issues": [
2036
+ {
2037
+ "type": "context-fragmentation",
2038
+ "severity": "critical",
2039
+ "message": "Import depth 8 exceeds limit by 50%",
2040
+ "location": {
2041
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
2042
+ "line": 1
2043
+ },
2044
+ "suggestion": "Flatten dependency tree or use facade pattern"
2045
+ },
2046
+ {
2047
+ "type": "context-fragmentation",
2048
+ "severity": "critical",
2049
+ "message": "Context budget 21,736 tokens is 50% over limit",
2050
+ "location": {
2051
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
2052
+ "line": 1
2053
+ },
2054
+ "suggestion": "Flatten dependency tree or use facade pattern"
2055
+ }
2056
+ ],
2057
+ "metrics": {
2058
+ "tokenCost": 1182,
2059
+ "complexityScore": 8
2060
+ }
2061
+ },
2062
+ {
2063
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
2064
+ "issues": [
2065
+ {
2066
+ "type": "context-fragmentation",
2067
+ "severity": "critical",
2068
+ "message": "Import depth 7 exceeds recommended maximum 5",
2069
+ "location": {
2070
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
2071
+ "line": 1
2072
+ },
2073
+ "suggestion": "Consider reducing dependency depth"
2074
+ },
2075
+ {
2076
+ "type": "context-fragmentation",
2077
+ "severity": "critical",
2078
+ "message": "Context budget 20,554 tokens is 50% over limit",
2079
+ "location": {
2080
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
2081
+ "line": 1
2082
+ },
2083
+ "suggestion": "Consider reducing dependency depth"
2084
+ }
2085
+ ],
2086
+ "metrics": {
2087
+ "tokenCost": 148,
2088
+ "complexityScore": 7
2089
+ }
2090
+ },
2091
+ {
2092
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
2093
+ "issues": [
2094
+ {
2095
+ "type": "context-fragmentation",
2096
+ "severity": "critical",
2097
+ "message": "Import depth 6 exceeds recommended maximum 5",
2098
+ "location": {
2099
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
2100
+ "line": 1
2101
+ },
2102
+ "suggestion": "Consider reducing dependency depth"
2103
+ },
2104
+ {
2105
+ "type": "context-fragmentation",
2106
+ "severity": "critical",
2107
+ "message": "Context budget 20,406 tokens is 50% over limit",
2108
+ "location": {
2109
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
2110
+ "line": 1
2111
+ },
2112
+ "suggestion": "Consider reducing dependency depth"
2113
+ }
2114
+ ],
2115
+ "metrics": {
2116
+ "tokenCost": 466,
2117
+ "complexityScore": 6
2118
+ }
2119
+ },
2120
+ {
2121
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
2122
+ "issues": [
2123
+ {
2124
+ "type": "context-fragmentation",
2125
+ "severity": "critical",
2126
+ "message": "Context budget 19,940 tokens is 50% over limit",
2127
+ "location": {
2128
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
2129
+ "line": 1
2130
+ },
2131
+ "suggestion": "Split into smaller modules or reduce dependency tree"
2132
+ }
2133
+ ],
2134
+ "metrics": {
2135
+ "tokenCost": 3153,
2136
+ "complexityScore": 5
2137
+ }
2138
+ },
2139
+ {
2140
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
2141
+ "issues": [
2142
+ {
2143
+ "type": "context-fragmentation",
2144
+ "severity": "info",
2145
+ "message": "No significant issues detected",
2146
+ "location": {
2147
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
2148
+ "line": 1
2149
+ },
2150
+ "suggestion": "File is well-structured for AI context usage"
2151
+ }
2152
+ ],
2153
+ "metrics": {
2154
+ "tokenCost": 998,
2155
+ "complexityScore": 4
2156
+ }
2157
+ },
2158
+ {
2159
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
2160
+ "issues": [
2161
+ {
2162
+ "type": "context-fragmentation",
2163
+ "severity": "info",
2164
+ "message": "No significant issues detected",
2165
+ "location": {
2166
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
2167
+ "line": 1
2168
+ },
2169
+ "suggestion": "File is well-structured for AI context usage"
2170
+ }
2171
+ ],
2172
+ "metrics": {
2173
+ "tokenCost": 711,
2174
+ "complexityScore": 4
2175
+ }
2176
+ },
2177
+ {
2178
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
2179
+ "issues": [
2180
+ {
2181
+ "type": "context-fragmentation",
2182
+ "severity": "info",
2183
+ "message": "No significant issues detected",
2184
+ "location": {
2185
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
2186
+ "line": 1
2187
+ },
2188
+ "suggestion": "File is well-structured for AI context usage"
2189
+ }
2190
+ ],
2191
+ "metrics": {
2192
+ "tokenCost": 1854,
2193
+ "complexityScore": 3
2194
+ }
2195
+ },
2196
+ {
2197
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
2198
+ "issues": [
2199
+ {
2200
+ "type": "context-fragmentation",
2201
+ "severity": "info",
2202
+ "message": "No significant issues detected",
2203
+ "location": {
2204
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
2205
+ "line": 1
2206
+ },
2207
+ "suggestion": "File is well-structured for AI context usage"
2208
+ }
2209
+ ],
2210
+ "metrics": {
2211
+ "tokenCost": 1534,
2212
+ "complexityScore": 3
2213
+ }
2214
+ },
2215
+ {
2216
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
2217
+ "issues": [
2218
+ {
2219
+ "type": "context-fragmentation",
2220
+ "severity": "info",
2221
+ "message": "No significant issues detected",
2222
+ "location": {
2223
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
2224
+ "line": 1
2225
+ },
2226
+ "suggestion": "File is well-structured for AI context usage"
2227
+ }
2228
+ ],
2229
+ "metrics": {
2230
+ "tokenCost": 3968,
2231
+ "complexityScore": 1
2232
+ }
2233
+ },
2234
+ {
2235
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
2236
+ "issues": [
2237
+ {
2238
+ "type": "context-fragmentation",
2239
+ "severity": "info",
2240
+ "message": "No significant issues detected",
2241
+ "location": {
2242
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
2243
+ "line": 1
2244
+ },
2245
+ "suggestion": "File is well-structured for AI context usage"
2246
+ }
2247
+ ],
2248
+ "metrics": {
2249
+ "tokenCost": 743,
2250
+ "complexityScore": 2
2251
+ }
2252
+ },
2253
+ {
2254
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
2255
+ "issues": [
2256
+ {
2257
+ "type": "context-fragmentation",
2258
+ "severity": "info",
2259
+ "message": "No significant issues detected",
2260
+ "location": {
2261
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
2262
+ "line": 1
2263
+ },
2264
+ "suggestion": "File is well-structured for AI context usage"
2265
+ }
2266
+ ],
2267
+ "metrics": {
2268
+ "tokenCost": 2512,
2269
+ "complexityScore": 1
2270
+ }
2271
+ },
2272
+ {
2273
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
2274
+ "issues": [
2275
+ {
2276
+ "type": "context-fragmentation",
2277
+ "severity": "info",
2278
+ "message": "No significant issues detected",
2279
+ "location": {
2280
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
2281
+ "line": 1
2282
+ },
2283
+ "suggestion": "File is well-structured for AI context usage"
2284
+ }
2285
+ ],
2286
+ "metrics": {
2287
+ "tokenCost": 1442,
2288
+ "complexityScore": 1
2289
+ }
2290
+ },
2291
+ {
2292
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
2293
+ "issues": [
2294
+ {
2295
+ "type": "context-fragmentation",
2296
+ "severity": "info",
2297
+ "message": "No significant issues detected",
2298
+ "location": {
2299
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
2300
+ "line": 1
2301
+ },
2302
+ "suggestion": "File is well-structured for AI context usage"
2303
+ }
2304
+ ],
2305
+ "metrics": {
2306
+ "tokenCost": 1099,
2307
+ "complexityScore": 1
2308
+ }
2309
+ },
2310
+ {
2311
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
2312
+ "issues": [
2313
+ {
2314
+ "type": "context-fragmentation",
2315
+ "severity": "info",
2316
+ "message": "No significant issues detected",
2317
+ "location": {
2318
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
2319
+ "line": 1
2320
+ },
2321
+ "suggestion": "File is well-structured for AI context usage"
2322
+ }
2323
+ ],
2324
+ "metrics": {
2325
+ "tokenCost": 2063,
2326
+ "complexityScore": 0
2327
+ }
2328
+ },
2329
+ {
2330
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
2331
+ "issues": [
2332
+ {
2333
+ "type": "context-fragmentation",
2334
+ "severity": "info",
2335
+ "message": "No significant issues detected",
2336
+ "location": {
2337
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
2338
+ "line": 1
2339
+ },
2340
+ "suggestion": "File is well-structured for AI context usage"
2341
+ }
2342
+ ],
2343
+ "metrics": {
2344
+ "tokenCost": 378,
2345
+ "complexityScore": 1
2346
+ }
2347
+ },
2348
+ {
2349
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts",
2350
+ "issues": [
2351
+ {
2352
+ "type": "context-fragmentation",
2353
+ "severity": "info",
2354
+ "message": "No significant issues detected",
2355
+ "location": {
2356
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts",
2357
+ "line": 1
2358
+ },
2359
+ "suggestion": "File is well-structured for AI context usage"
2360
+ }
2361
+ ],
2362
+ "metrics": {
2363
+ "tokenCost": 1548,
2364
+ "complexityScore": 0
2365
+ }
2366
+ }
2367
+ ],
2368
+ "summary": {
2369
+ "totalFiles": 17,
2370
+ "criticalIssues": 5,
2371
+ "majorIssues": 0,
2372
+ "totalTokens": 26669,
2373
+ "avgContextBudget": 9316.235294117647,
2374
+ "maxContextBudget": 22810,
2375
+ "avgImportDepth": 3.1176470588235294,
2376
+ "maxImportDepth": 8,
2377
+ "deepFiles": [
2378
+ {
2379
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
2380
+ "depth": 6
2381
+ },
2382
+ {
2383
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
2384
+ "depth": 8
2385
+ },
2386
+ {
2387
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
2388
+ "depth": 7
2389
+ },
2390
+ {
2391
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
2392
+ "depth": 6
2393
+ }
2394
+ ],
2395
+ "avgFragmentation": 0.6866729882994713,
2396
+ "fragmentedModules": [
2397
+ {
2398
+ "domain": "/Users",
2399
+ "files": [
2400
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
2401
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
2402
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
2403
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
2404
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
2405
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
2406
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
2407
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
2408
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
2409
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
2410
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
2411
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
2412
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
2413
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
2414
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
2415
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
2416
+ "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts"
2417
+ ],
2418
+ "fragmentationScore": 0.6866729882994713,
2419
+ "totalTokens": 26669,
2420
+ "avgCohesion": 0.9305882352941175,
2421
+ "suggestedStructure": {
2422
+ "targetFiles": 9,
2423
+ "consolidationPlan": [
2424
+ "Consolidate 17 files in /Users into fewer modules"
2425
+ ]
2426
+ }
2427
+ }
2428
+ ],
2429
+ "avgCohesion": 0.9305882352941175,
2430
+ "lowCohesionFiles": [],
2431
+ "minorIssues": 0,
2432
+ "totalPotentialSavings": 58263,
2433
+ "topExpensiveFiles": [
2434
+ {
2435
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
2436
+ "contextBudget": 22810,
2437
+ "severity": "critical"
2438
+ },
2439
+ {
2440
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
2441
+ "contextBudget": 21736,
2442
+ "severity": "critical"
2443
+ },
2444
+ {
2445
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
2446
+ "contextBudget": 20554,
2447
+ "severity": "critical"
2448
+ },
2449
+ {
2450
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
2451
+ "contextBudget": 20406,
2452
+ "severity": "critical"
2453
+ },
2454
+ {
2455
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
2456
+ "contextBudget": 19940,
2457
+ "severity": "critical"
2458
+ },
2459
+ {
2460
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
2461
+ "contextBudget": 7335,
2462
+ "severity": "info"
2463
+ },
2464
+ {
2465
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
2466
+ "contextBudget": 7048,
2467
+ "severity": "info"
2468
+ },
2469
+ {
2470
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
2471
+ "contextBudget": 6657,
2472
+ "severity": "info"
2473
+ },
2474
+ {
2475
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
2476
+ "contextBudget": 6337,
2477
+ "severity": "info"
2478
+ },
2479
+ {
2480
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
2481
+ "contextBudget": 5516,
2482
+ "severity": "info"
2483
+ }
2484
+ ],
2485
+ "config": {
2486
+ "rootDir": "/Users/pengcao/projects/aiready/packages/context-analyzer"
2487
+ }
2488
+ },
2489
+ "metadata": {
2490
+ "toolName": "context-analyzer",
2491
+ "version": "0.17.5",
2492
+ "timestamp": "2026-03-14T11:43:02.668Z",
2493
+ "config": {}
2494
+ }
2495
+ },
2496
+ "results": [
2497
+ {
2498
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
2499
+ "issues": [
2500
+ {
2501
+ "type": "context-fragmentation",
2502
+ "severity": "critical",
2503
+ "message": "Import depth 6 exceeds recommended maximum 5",
2504
+ "location": {
2505
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
2506
+ "line": 1
2507
+ },
2508
+ "suggestion": "Consider reducing dependency depth"
2509
+ },
2510
+ {
2511
+ "type": "context-fragmentation",
2512
+ "severity": "critical",
2513
+ "message": "Context budget 22,810 tokens is 50% over limit",
2514
+ "location": {
2515
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/utils/output-formatter.ts",
2516
+ "line": 1
2517
+ },
2518
+ "suggestion": "Consider reducing dependency depth"
2519
+ }
2520
+ ],
2521
+ "metrics": {
2522
+ "tokenCost": 2870,
2523
+ "complexityScore": 6
2524
+ }
2525
+ },
2526
+ {
2527
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
2528
+ "issues": [
2529
+ {
2530
+ "type": "context-fragmentation",
2531
+ "severity": "critical",
2532
+ "message": "Import depth 8 exceeds limit by 50%",
2533
+ "location": {
2534
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
2535
+ "line": 1
2536
+ },
2537
+ "suggestion": "Flatten dependency tree or use facade pattern"
2538
+ },
2539
+ {
2540
+ "type": "context-fragmentation",
2541
+ "severity": "critical",
2542
+ "message": "Context budget 21,736 tokens is 50% over limit",
2543
+ "location": {
2544
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cli.ts",
2545
+ "line": 1
2546
+ },
2547
+ "suggestion": "Flatten dependency tree or use facade pattern"
2548
+ }
2549
+ ],
2550
+ "metrics": {
2551
+ "tokenCost": 1182,
2552
+ "complexityScore": 8
2553
+ }
2554
+ },
2555
+ {
2556
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
2557
+ "issues": [
2558
+ {
2559
+ "type": "context-fragmentation",
2560
+ "severity": "critical",
2561
+ "message": "Import depth 7 exceeds recommended maximum 5",
2562
+ "location": {
2563
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
2564
+ "line": 1
2565
+ },
2566
+ "suggestion": "Consider reducing dependency depth"
2567
+ },
2568
+ {
2569
+ "type": "context-fragmentation",
2570
+ "severity": "critical",
2571
+ "message": "Context budget 20,554 tokens is 50% over limit",
2572
+ "location": {
2573
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/index.ts",
2574
+ "line": 1
2575
+ },
2576
+ "suggestion": "Consider reducing dependency depth"
2577
+ }
2578
+ ],
2579
+ "metrics": {
2580
+ "tokenCost": 148,
2581
+ "complexityScore": 7
2582
+ }
2583
+ },
2584
+ {
2585
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
2586
+ "issues": [
2587
+ {
2588
+ "type": "context-fragmentation",
2589
+ "severity": "critical",
2590
+ "message": "Import depth 6 exceeds recommended maximum 5",
2591
+ "location": {
2592
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
2593
+ "line": 1
2594
+ },
2595
+ "suggestion": "Consider reducing dependency depth"
2596
+ },
2597
+ {
2598
+ "type": "context-fragmentation",
2599
+ "severity": "critical",
2600
+ "message": "Context budget 20,406 tokens is 50% over limit",
2601
+ "location": {
2602
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/provider.ts",
2603
+ "line": 1
2604
+ },
2605
+ "suggestion": "Consider reducing dependency depth"
2606
+ }
2607
+ ],
2608
+ "metrics": {
2609
+ "tokenCost": 466,
2610
+ "complexityScore": 6
2611
+ }
2612
+ },
2613
+ {
2614
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
2615
+ "issues": [
2616
+ {
2617
+ "type": "context-fragmentation",
2618
+ "severity": "critical",
2619
+ "message": "Context budget 19,940 tokens is 50% over limit",
2620
+ "location": {
2621
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzer.ts",
2622
+ "line": 1
2623
+ },
2624
+ "suggestion": "Split into smaller modules or reduce dependency tree"
2625
+ }
2626
+ ],
2627
+ "metrics": {
2628
+ "tokenCost": 3153,
2629
+ "complexityScore": 5
2630
+ }
2631
+ },
2632
+ {
2633
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
2634
+ "issues": [
2635
+ {
2636
+ "type": "context-fragmentation",
2637
+ "severity": "info",
2638
+ "message": "No significant issues detected",
2639
+ "location": {
2640
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/summary.ts",
2641
+ "line": 1
2642
+ },
2643
+ "suggestion": "File is well-structured for AI context usage"
2644
+ }
2645
+ ],
2646
+ "metrics": {
2647
+ "tokenCost": 998,
2648
+ "complexityScore": 4
2649
+ }
2650
+ },
2651
+ {
2652
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
2653
+ "issues": [
2654
+ {
2655
+ "type": "context-fragmentation",
2656
+ "severity": "info",
2657
+ "message": "No significant issues detected",
2658
+ "location": {
2659
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/cluster-detector.ts",
2660
+ "line": 1
2661
+ },
2662
+ "suggestion": "File is well-structured for AI context usage"
2663
+ }
2664
+ ],
2665
+ "metrics": {
2666
+ "tokenCost": 711,
2667
+ "complexityScore": 4
2668
+ }
2669
+ },
2670
+ {
2671
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
2672
+ "issues": [
2673
+ {
2674
+ "type": "context-fragmentation",
2675
+ "severity": "info",
2676
+ "message": "No significant issues detected",
2677
+ "location": {
2678
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/graph-builder.ts",
2679
+ "line": 1
2680
+ },
2681
+ "suggestion": "File is well-structured for AI context usage"
2682
+ }
2683
+ ],
2684
+ "metrics": {
2685
+ "tokenCost": 1854,
2686
+ "complexityScore": 3
2687
+ }
2688
+ },
2689
+ {
2690
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
2691
+ "issues": [
2692
+ {
2693
+ "type": "context-fragmentation",
2694
+ "severity": "info",
2695
+ "message": "No significant issues detected",
2696
+ "location": {
2697
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/metrics.ts",
2698
+ "line": 1
2699
+ },
2700
+ "suggestion": "File is well-structured for AI context usage"
2701
+ }
2702
+ ],
2703
+ "metrics": {
2704
+ "tokenCost": 1534,
2705
+ "complexityScore": 3
2706
+ }
2707
+ },
2708
+ {
2709
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
2710
+ "issues": [
2711
+ {
2712
+ "type": "context-fragmentation",
2713
+ "severity": "info",
2714
+ "message": "No significant issues detected",
2715
+ "location": {
2716
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/classifier.ts",
2717
+ "line": 1
2718
+ },
2719
+ "suggestion": "File is well-structured for AI context usage"
2720
+ }
2721
+ ],
2722
+ "metrics": {
2723
+ "tokenCost": 3968,
2724
+ "complexityScore": 1
2725
+ }
2726
+ },
2727
+ {
2728
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
2729
+ "issues": [
2730
+ {
2731
+ "type": "context-fragmentation",
2732
+ "severity": "info",
2733
+ "message": "No significant issues detected",
2734
+ "location": {
2735
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/ast-utils.ts",
2736
+ "line": 1
2737
+ },
2738
+ "suggestion": "File is well-structured for AI context usage"
2739
+ }
2740
+ ],
2741
+ "metrics": {
2742
+ "tokenCost": 743,
2743
+ "complexityScore": 2
2744
+ }
2745
+ },
2746
+ {
2747
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
2748
+ "issues": [
2749
+ {
2750
+ "type": "context-fragmentation",
2751
+ "severity": "info",
2752
+ "message": "No significant issues detected",
2753
+ "location": {
2754
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/semantic-analysis.ts",
2755
+ "line": 1
2756
+ },
2757
+ "suggestion": "File is well-structured for AI context usage"
2758
+ }
2759
+ ],
2760
+ "metrics": {
2761
+ "tokenCost": 2512,
2762
+ "complexityScore": 1
2763
+ }
2764
+ },
2765
+ {
2766
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
2767
+ "issues": [
2768
+ {
2769
+ "type": "context-fragmentation",
2770
+ "severity": "info",
2771
+ "message": "No significant issues detected",
2772
+ "location": {
2773
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/scoring.ts",
2774
+ "line": 1
2775
+ },
2776
+ "suggestion": "File is well-structured for AI context usage"
2777
+ }
2778
+ ],
2779
+ "metrics": {
2780
+ "tokenCost": 1442,
2781
+ "complexityScore": 1
2782
+ }
2783
+ },
2784
+ {
2785
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
2786
+ "issues": [
2787
+ {
2788
+ "type": "context-fragmentation",
2789
+ "severity": "info",
2790
+ "message": "No significant issues detected",
2791
+ "location": {
2792
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/remediation.ts",
2793
+ "line": 1
2794
+ },
2795
+ "suggestion": "File is well-structured for AI context usage"
2796
+ }
2797
+ ],
2798
+ "metrics": {
2799
+ "tokenCost": 1099,
2800
+ "complexityScore": 1
2801
+ }
2802
+ },
2803
+ {
2804
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
2805
+ "issues": [
2806
+ {
2807
+ "type": "context-fragmentation",
2808
+ "severity": "info",
2809
+ "message": "No significant issues detected",
2810
+ "location": {
2811
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts",
2812
+ "line": 1
2813
+ },
2814
+ "suggestion": "File is well-structured for AI context usage"
2815
+ }
2816
+ ],
2817
+ "metrics": {
2818
+ "tokenCost": 2063,
2819
+ "complexityScore": 0
2820
+ }
2821
+ },
2822
+ {
2823
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
2824
+ "issues": [
2825
+ {
2826
+ "type": "context-fragmentation",
2827
+ "severity": "info",
2828
+ "message": "No significant issues detected",
2829
+ "location": {
2830
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/defaults.ts",
2831
+ "line": 1
2832
+ },
2833
+ "suggestion": "File is well-structured for AI context usage"
2834
+ }
2835
+ ],
2836
+ "metrics": {
2837
+ "tokenCost": 378,
2838
+ "complexityScore": 1
2839
+ }
2840
+ },
2841
+ {
2842
+ "fileName": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts",
2843
+ "issues": [
2844
+ {
2845
+ "type": "context-fragmentation",
2846
+ "severity": "info",
2847
+ "message": "No significant issues detected",
2848
+ "location": {
2849
+ "file": "/Users/pengcao/projects/aiready/packages/context-analyzer/src/types.ts",
2850
+ "line": 1
2851
+ },
2852
+ "suggestion": "File is well-structured for AI context usage"
2853
+ }
2854
+ ],
2855
+ "metrics": {
2856
+ "tokenCost": 1548,
2857
+ "complexityScore": 0
2858
+ }
2859
+ }
2860
+ ],
2861
+ "scoring": {
2862
+ "overall": 47,
2863
+ "rating": "Needs Work",
2864
+ "timestamp": "2026-03-14T11:43:02.671Z",
2865
+ "toolsUsed": ["context-analyzer"],
2866
+ "breakdown": [
2867
+ {
2868
+ "toolName": "context-analyzer",
2869
+ "score": 47,
2870
+ "rawMetrics": {
2871
+ "avgContextBudget": 9316,
2872
+ "maxContextBudget": 22810,
2873
+ "avgImportDepth": 3.1,
2874
+ "maxImportDepth": 8,
2875
+ "avgFragmentation": 0.69,
2876
+ "criticalIssues": 5,
2877
+ "majorIssues": 0,
2878
+ "estimatedMonthlyCost": {
2879
+ "total": 7839.63,
2880
+ "range": [5879.72, 9799.54],
2881
+ "confidence": 0.7
2882
+ },
2883
+ "estimatedDeveloperHours": 20
2884
+ },
2885
+ "factors": [
2886
+ {
2887
+ "name": "Context Budget",
2888
+ "impact": -2,
2889
+ "description": "Avg 9316 tokens per file (acceptable)"
2890
+ },
2891
+ {
2892
+ "name": "Import Depth",
2893
+ "impact": 0,
2894
+ "description": "Avg 3.1 levels (excellent)"
2895
+ },
2896
+ {
2897
+ "name": "Fragmentation",
2898
+ "impact": -5,
2899
+ "description": "69% fragmentation (high)"
2900
+ },
2901
+ {
2902
+ "name": "Critical Issues",
2903
+ "impact": -15,
2904
+ "description": "5 critical context issues"
2905
+ },
2906
+ {
2907
+ "name": "Extreme File Detected",
2908
+ "impact": -16,
2909
+ "description": "One file requires 22810 tokens (very high)"
2910
+ }
2911
+ ],
2912
+ "recommendations": [
2913
+ {
2914
+ "action": "Consolidate related code into cohesive modules",
2915
+ "estimatedImpact": 7,
2916
+ "priority": "medium"
2917
+ },
2918
+ {
2919
+ "action": "Split large file (22810 tokens) into smaller modules",
2920
+ "estimatedImpact": 8,
2921
+ "priority": "high"
2922
+ }
2923
+ ],
2924
+ "tokenBudget": {
2925
+ "totalContextTokens": 26669,
2926
+ "estimatedResponseTokens": 5334,
2927
+ "wastedTokens": {
2928
+ "total": 58263,
2929
+ "bySource": {
2930
+ "duplication": 0,
2931
+ "fragmentation": 58263,
2932
+ "chattiness": 0
2933
+ }
2934
+ },
2935
+ "efficiencyRatio": 0,
2936
+ "potentialRetrievableTokens": 46610
2937
+ }
2938
+ }
2939
+ ],
2940
+ "calculation": {
2941
+ "formula": "[(47 × 19)] / 19 = 47",
2942
+ "weights": {
2943
+ "context-analyzer": 19
2944
+ },
2945
+ "normalized": "[(47 × 19)] / 19 = 47"
2946
+ },
2947
+ "tokenBudget": {
2948
+ "totalContextTokens": 26669,
2949
+ "estimatedResponseTokens": 5334,
2950
+ "wastedTokens": {
2951
+ "total": 60930,
2952
+ "bySource": {
2953
+ "duplication": 0,
2954
+ "fragmentation": 58263,
2955
+ "chattiness": 2667
2956
+ }
2957
+ },
2958
+ "efficiencyRatio": 0,
2959
+ "potentialRetrievableTokens": 48744
2960
+ },
2961
+ "businessROI": {
2962
+ "monthlySavings": 1645,
2963
+ "productivityGainHours": 39,
2964
+ "annualValue": 54841
2965
+ }
2966
+ },
2967
+ "repository": {
2968
+ "url": "https://github.com/caopengau/aiready.git",
2969
+ "branch": "main",
2970
+ "commit": "3be4936e1c8aa50d6324b014ca8fcf791c6dcfaf",
2971
+ "author": "caopengau@gmail.com"
2972
+ }
2973
+ }