commit-report 1.0.1 → 1.0.2

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.
@@ -0,0 +1,406 @@
1
+ <!-- Hot Files Table -->
2
+ <div class="bg-white dark:bg-slate-800 rounded-xl p-6 shadow-sm border border-slate-200 dark:border-slate-700 mb-6">
3
+ <h2 class="text-lg font-semibold mb-4">热点文件 TOP 10</h2>
4
+ <div class="overflow-x-auto">
5
+ <table class="w-full text-sm" id="hot-files-table">
6
+ <thead>
7
+ <tr class="text-left border-b border-slate-200 dark:border-slate-700">
8
+ <th class="pb-3 text-slate-500 dark:text-slate-400 font-medium">文件路径</th>
9
+ <th class="pb-3 text-slate-500 dark:text-slate-400 font-medium text-right">修改次数</th>
10
+ <th class="pb-3 text-slate-500 dark:text-slate-400 font-medium text-right">贡献者数</th>
11
+ </tr>
12
+ </thead>
13
+ <tbody id="hot-files-body"></tbody>
14
+ </table>
15
+ </div>
16
+ </div>
17
+
18
+ <!-- Solo Files Table (Knowledge Concentration Risk) -->
19
+ <div class="bg-white dark:bg-slate-800 rounded-xl p-6 shadow-sm border border-slate-200 dark:border-slate-700 mb-6">
20
+ <h2 class="text-lg font-semibold mb-4">知识集中度风险 (单人维护文件)</h2>
21
+ <div class="overflow-x-auto">
22
+ <table class="w-full text-sm" id="solo-files-table">
23
+ <thead>
24
+ <tr class="text-left border-b border-slate-200 dark:border-slate-700">
25
+ <th class="pb-3 text-slate-500 dark:text-slate-400 font-medium">文件路径</th>
26
+ <th class="pb-3 text-slate-500 dark:text-slate-400 font-medium">唯一维护者</th>
27
+ <th class="pb-3 text-slate-500 dark:text-slate-400 font-medium text-right">提交次数</th>
28
+ </tr>
29
+ </thead>
30
+ <tbody id="solo-files-body"></tbody>
31
+ </table>
32
+ </div>
33
+ </div>
34
+
35
+ <!-- Author File Type Stats Table -->
36
+ <div class="bg-white dark:bg-slate-800 rounded-xl p-6 shadow-sm border border-slate-200 dark:border-slate-700 mb-6">
37
+ <h2 class="text-lg font-semibold mb-4">作者文件类型贡献 TOP 20</h2>
38
+ <div class="overflow-x-auto">
39
+ <table class="w-full text-sm" id="author-filetype-table">
40
+ <thead>
41
+ <tr class="text-left border-b border-slate-200 dark:border-slate-700">
42
+ <th class="pb-3 text-slate-500 dark:text-slate-400 font-medium cursor-pointer hover:text-primary-500 select-none" data-sort="author">作者 <span class="sort-icon"></span></th>
43
+ <th class="pb-3 text-slate-500 dark:text-slate-400 font-medium cursor-pointer hover:text-primary-500 select-none" data-sort="extension">文件类型 <span class="sort-icon"></span></th>
44
+ <th class="pb-3 text-slate-500 dark:text-slate-400 font-medium text-right cursor-pointer hover:text-primary-500 select-none" data-sort="fileCount">文件数 <span class="sort-icon"></span></th>
45
+ <th class="pb-3 text-slate-500 dark:text-slate-400 font-medium text-right cursor-pointer hover:text-primary-500 select-none" data-sort="linesAdded">新增行 <span class="sort-icon"></span></th>
46
+ <th class="pb-3 text-slate-500 dark:text-slate-400 font-medium text-right cursor-pointer hover:text-primary-500 select-none" data-sort="linesDeleted">删除行 <span class="sort-icon"></span></th>
47
+ <th class="pb-3 text-slate-500 dark:text-slate-400 font-medium text-right cursor-pointer hover:text-primary-500 select-none" data-sort="commits">提交数 <span class="sort-icon"></span></th>
48
+ </tr>
49
+ </thead>
50
+ <tbody id="author-filetype-body"></tbody>
51
+ </table>
52
+ </div>
53
+ </div>
54
+
55
+ <!-- 高级分析区域 -->
56
+ <section id="advanced-analytics" class="bg-white dark:bg-slate-800 rounded-xl p-6 shadow-sm border border-slate-200 dark:border-slate-700 mb-6">
57
+ <div class="flex items-center gap-3 mb-6">
58
+ <div class="p-2 bg-primary-100 dark:bg-primary-900/30 rounded-lg text-primary-600 dark:text-primary-400">
59
+ <svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
60
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 002 2h2a2 2 0 002-2z" />
61
+ </svg>
62
+ </div>
63
+ <h2 class="text-xl font-bold">高级分析</h2>
64
+ </div>
65
+
66
+ <!-- Tab 导航 -->
67
+ <div class="advanced-tab-groups mb-3">
68
+ <button class="advanced-tab-group active" data-tab-group="health">健康</button>
69
+ <button class="advanced-tab-group" data-tab-group="quality">质量</button>
70
+ <button class="advanced-tab-group" data-tab-group="collaboration">协作</button>
71
+ <button class="advanced-tab-group" data-tab-group="ai">AI</button>
72
+ </div>
73
+ <div class="advanced-tabs-nav mb-6" data-tab-group-panel="health">
74
+ <button class="advanced-tab active" data-tab="team-health" data-tab-group="health">
75
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
76
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z" />
77
+ </svg>
78
+ 团队健康度
79
+ </button>
80
+ <button class="advanced-tab" data-tab="work-pressure" data-tab-group="health">
81
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
82
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
83
+ </svg>
84
+ 工作压力
85
+ </button>
86
+ <button class="advanced-tab" data-tab="contributor-churn" data-tab-group="health">
87
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
88
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z" />
89
+ </svg>
90
+ 贡献者流失
91
+ </button>
92
+ </div>
93
+ <div class="advanced-tabs-nav mb-6 hidden" data-tab-group-panel="quality">
94
+ <button class="advanced-tab" data-tab="stability" data-tab-group="quality">
95
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
96
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" />
97
+ </svg>
98
+ 代码稳定性
99
+ </button>
100
+ <button class="advanced-tab" data-tab="tech-debt" data-tab-group="quality">
101
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
102
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
103
+ </svg>
104
+ 技术债雷达
105
+ </button>
106
+ <button class="advanced-tab" data-tab="engineering-quality" data-tab-group="quality">
107
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
108
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 17v-2m3 2v-4m3 4v-6M4 19h16M5 5h14v10H5z" />
109
+ </svg>
110
+ 工程质量
111
+ </button>
112
+ <button class="advanced-tab" data-tab="change-size" data-tab-group="quality">
113
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
114
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12h2m4 0h6m4 0h2M3 6h18M3 18h18" />
115
+ </svg>
116
+ 变更尺寸
117
+ </button>
118
+ <button class="advanced-tab" data-tab="dir-coupling" data-tab-group="quality">
119
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
120
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 10h16M4 14h16M4 18h16" />
121
+ </svg>
122
+ 目录耦合
123
+ </button>
124
+ </div>
125
+ <div class="advanced-tabs-nav mb-6 hidden" data-tab-group-panel="collaboration">
126
+ <button class="advanced-tab" data-tab="collaboration" data-tab-group="collaboration">
127
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
128
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1" />
129
+ </svg>
130
+ 协作热度
131
+ </button>
132
+ </div>
133
+ <div class="advanced-tabs-nav mb-6 hidden" data-tab-group-panel="ai">
134
+ <button class="advanced-tab" data-tab="ai-quality" data-tab-group="ai">
135
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
136
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z" />
137
+ </svg>
138
+ AI×质量风险
139
+ </button>
140
+ <button class="advanced-tab" data-tab="ai-usage" data-tab-group="ai" id="ai-usage-tab" style="display: none;">
141
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
142
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
143
+ </svg>
144
+ AI 使用分析
145
+ </button>
146
+ </div>
147
+
148
+ <!-- Tab 内容容器 -->
149
+ <div id="team-health" class="advanced-tab-content fade-in-up">
150
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8 items-start">
151
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6 flex flex-col items-center justify-center min-h-[300px]">
152
+ <h3 class="text-lg font-semibold mb-6 text-slate-700 dark:text-slate-200">Bus Factor (巴士系数)</h3>
153
+ <div id="bus-factor-gauge"></div>
154
+ <p class="text-sm text-slate-500 text-center mt-4 max-w-xs">衡量项目对特定开发者的依赖程度,数值越低风险越高。</p>
155
+ </div>
156
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6 min-h-[300px]">
157
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200 flex items-center gap-2">
158
+ <svg class="w-5 h-5 text-amber-500" fill="none" viewBox="0 0 24 24" stroke="currentColor">
159
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
160
+ </svg>
161
+ 关键人员 (Key Authors)
162
+ </h3>
163
+ <div id="critical-authors-list"></div>
164
+ </div>
165
+ </div>
166
+ </div>
167
+
168
+ <div id="stability" class="advanced-tab-content hidden fade-in-up">
169
+ <div id="stability-metrics" class="mb-6"></div>
170
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
171
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200 flex items-center gap-2">
172
+ <svg class="w-5 h-5 text-rose-500" fill="none" viewBox="0 0 24 24" stroke="currentColor">
173
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" />
174
+ </svg>
175
+ 文件流失率 TOP 20
176
+ </h3>
177
+ <div id="unstable-files-list"></div>
178
+ </div>
179
+ </div>
180
+
181
+ <div id="work-pressure" class="advanced-tab-content hidden fade-in-up">
182
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-6">
183
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6 flex flex-col items-center justify-center">
184
+ <h3 class="text-lg font-semibold mb-6 text-slate-700 dark:text-slate-200">压力评分</h3>
185
+ <div id="pressure-gauge"></div>
186
+ </div>
187
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
188
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">提交时间分布</h3>
189
+ <div id="off-hours-breakdown"></div>
190
+ </div>
191
+ </div>
192
+ </div>
193
+
194
+ <div id="contributor-churn" class="advanced-tab-content hidden fade-in-up">
195
+ <div id="churn-metrics" class="mb-6"></div>
196
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
197
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
198
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">活跃度漏斗</h3>
199
+ <div id="churn-funnel"></div>
200
+ </div>
201
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
202
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">作者状态列表</h3>
203
+ <div id="author-status-list"></div>
204
+ </div>
205
+ </div>
206
+ </div>
207
+
208
+ <div id="collaboration" class="advanced-tab-content hidden fade-in-up">
209
+ <div id="collaboration-metrics" class="mb-6"></div>
210
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
211
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
212
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">强耦合文件 (Tight Coupling)</h3>
213
+ <div id="file-pairs-list"></div>
214
+ </div>
215
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
216
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">结对编程检测</h3>
217
+ <div id="pair-programming-list"></div>
218
+ </div>
219
+ </div>
220
+ </div>
221
+
222
+ <!-- Tech Debt Radar -->
223
+ <div id="tech-debt" class="advanced-tab-content hidden fade-in-up">
224
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-6">
225
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6 flex flex-col items-center">
226
+ <h3 class="text-lg font-semibold mb-6 text-slate-700 dark:text-slate-200">技术债雷达图</h3>
227
+ <div id="tech-debt-radar" class="w-full h-[350px]"></div>
228
+ </div>
229
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
230
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">代码重复度热力图</h3>
231
+ <div id="duplication-heatmap" class="h-[300px]"></div>
232
+ </div>
233
+ </div>
234
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6 mb-6">
235
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">风险趋势分析</h3>
236
+ <div id="risk-trend-chart" class="h-[250px]"></div>
237
+ </div>
238
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
239
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">高风险文件 TOP 10</h3>
240
+ <div class="overflow-x-auto">
241
+ <table class="w-full text-sm">
242
+ <thead class="text-left border-b border-slate-200 dark:border-slate-700">
243
+ <tr class="text-slate-500 dark:text-slate-400 font-medium">
244
+ <th class="pb-3">文件路径</th>
245
+ <th class="pb-3 text-right">风险指数</th>
246
+ <th class="pb-3 text-right">复杂度</th>
247
+ </tr>
248
+ </thead>
249
+ <tbody id="risk-files-body"></tbody>
250
+ </table>
251
+ </div>
252
+ </div>
253
+ </div>
254
+
255
+ <div id="engineering-quality" class="advanced-tab-content hidden fade-in-up">
256
+ <div id="engineering-empty" class="hidden text-center py-12 text-slate-500 dark:text-slate-400">
257
+ <p class="text-lg mb-2">工程质量分析</p>
258
+ <p class="text-sm">此功能仅在单仓库分析时可用</p>
259
+ </div>
260
+ <div id="engineering-content">
261
+ <div id="engineering-score-cards" class="mb-6"></div>
262
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-6">
263
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
264
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">Bug 高发文件 TOP 20</h3>
265
+ <div id="bug-hot-files-list"></div>
266
+ </div>
267
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
268
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">代码所有权 TOP 20</h3>
269
+ <div id="code-ownership-list"></div>
270
+ </div>
271
+ </div>
272
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
273
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
274
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">评审参与度</h3>
275
+ <div id="review-quality-list"></div>
276
+ </div>
277
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
278
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">重构 vs 新增</h3>
279
+ <div id="change-mix-list"></div>
280
+ </div>
281
+ </div>
282
+ </div>
283
+ </div>
284
+
285
+ <!-- 变更尺寸分布 -->
286
+ <div id="change-size" class="advanced-tab-content hidden fade-in-up">
287
+ <div id="change-size-summary" class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-6"></div>
288
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-6">
289
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
290
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">提交大小分桶</h3>
291
+ <div id="change-size-buckets" class="h-[280px]"></div>
292
+ </div>
293
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
294
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">大提交 TOP 20</h3>
295
+ <div id="large-commits-list" class="max-h-[280px] overflow-y-auto"></div>
296
+ </div>
297
+ </div>
298
+ </div>
299
+
300
+ <!-- 目录耦合 -->
301
+ <div id="dir-coupling" class="advanced-tab-content hidden fade-in-up">
302
+ <div id="dir-coupling-empty" class="hidden text-center py-12 text-slate-500 dark:text-slate-400">
303
+ <p class="text-lg mb-2">目录耦合分析</p>
304
+ <p class="text-sm">此功能仅在单仓库分析时可用</p>
305
+ </div>
306
+ <div id="dir-coupling-content">
307
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-6">
308
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
309
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">跨目录共变热力矩阵</h3>
310
+ <p class="text-xs text-slate-500 dark:text-slate-400 mb-4">单元格:两目录在同一提交中共同改动的次数</p>
311
+ <div id="dir-coupling-matrix"></div>
312
+ </div>
313
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
314
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">高耦合目录对 TOP 20</h3>
315
+ <div id="dir-coupling-list" class="max-h-[400px] overflow-y-auto"></div>
316
+ </div>
317
+ </div>
318
+ </div>
319
+ </div>
320
+
321
+ <!-- AI × 质量风险 -->
322
+ <div id="ai-quality" class="advanced-tab-content hidden fade-in-up">
323
+ <div id="ai-quality-summary" class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-6"></div>
324
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-6">
325
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
326
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">AI × Churn 散点图</h3>
327
+ <p class="text-xs text-slate-500 dark:text-slate-400 mb-2">右上角红色区域 = 高 AI + 高流失(强烈建议人审)</p>
328
+ <div id="ai-quality-scatter" class="h-[400px]"></div>
329
+ </div>
330
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
331
+ <h3 class="text-lg font-semibold mb-4 text-slate-700 dark:text-slate-200">高风险文件 TOP 20</h3>
332
+ <div id="ai-quality-files" class="max-h-[400px] overflow-y-auto"></div>
333
+ </div>
334
+ </div>
335
+ </div>
336
+
337
+ <!-- AI Usage Analysis Tab -->
338
+ <div id="ai-usage" class="advanced-tab-content hidden fade-in-up">
339
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-6">
340
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
341
+ <div class="flex items-center justify-between mb-4">
342
+ <h3 class="text-lg font-semibold text-slate-700 dark:text-slate-200">AI 目录 TOP 10</h3>
343
+ <span class="text-xs text-slate-500 dark:text-slate-400">按 AI 占比排序</span>
344
+ </div>
345
+ <div class="overflow-x-auto">
346
+ <table class="w-full text-sm">
347
+ <thead class="text-left border-b border-slate-200 dark:border-slate-700">
348
+ <tr class="text-slate-500 dark:text-slate-400 font-medium">
349
+ <th class="pb-3">目录</th>
350
+ <th class="pb-3 text-right">提交数</th>
351
+ <th class="pb-3 text-right">AI 占比</th>
352
+ <th class="pb-3 text-center">风险</th>
353
+ </tr>
354
+ </thead>
355
+ <tbody id="top-ai-dirs-body"></tbody>
356
+ </table>
357
+ </div>
358
+ </div>
359
+
360
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
361
+ <div class="flex items-center justify-between mb-4">
362
+ <h3 class="text-lg font-semibold text-slate-700 dark:text-slate-200">作者 AI 使用 TOP 10</h3>
363
+ <span class="text-xs text-slate-500 dark:text-slate-400">估算新增行占比</span>
364
+ </div>
365
+ <div class="overflow-x-auto">
366
+ <table class="w-full text-sm">
367
+ <thead class="text-left border-b border-slate-200 dark:border-slate-700">
368
+ <tr class="text-slate-500 dark:text-slate-400 font-medium">
369
+ <th class="pb-3">作者</th>
370
+ <th class="pb-3 text-right">AI 行数</th>
371
+ <th class="pb-3 text-right">总行数</th>
372
+ <th class="pb-3 text-right">AI 占比</th>
373
+ </tr>
374
+ </thead>
375
+ <tbody id="author-ai-stats-body"></tbody>
376
+ </table>
377
+ </div>
378
+ </div>
379
+ </div>
380
+
381
+ <!-- High AI Commits Leaderboard -->
382
+ <div class="bg-slate-50 dark:bg-slate-700/30 rounded-xl p-6">
383
+ <div class="flex items-center justify-between mb-4">
384
+ <h3 class="text-lg font-semibold text-slate-700 dark:text-slate-200">高 AI 提交榜单 TOP 20</h3>
385
+ <span class="text-xs text-slate-500 dark:text-slate-400">AI 评分 > 50 的提交</span>
386
+ </div>
387
+ <div class="overflow-x-auto">
388
+ <table class="w-full text-sm">
389
+ <thead class="text-left border-b border-slate-200 dark:border-slate-700">
390
+ <tr class="text-slate-500 dark:text-slate-400 font-medium">
391
+ <th class="pb-3">提交哈希</th>
392
+ <th class="pb-3">仓库</th>
393
+ <th class="pb-3">作者</th>
394
+ <th class="pb-3 text-right">AI 评分</th>
395
+ <th class="pb-3">判定原因</th>
396
+ <th class="pb-3 text-right">变更行数</th>
397
+ <th class="pb-3 text-right">文件数</th>
398
+ <th class="pb-3">日期</th>
399
+ </tr>
400
+ </thead>
401
+ <tbody id="high-ai-commits-body"></tbody>
402
+ </table>
403
+ </div>
404
+ </div>
405
+ </div>
406
+ </section>