devark-cli 0.1.0

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,858 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>DevArk Analytics Report - {{metadata.dateRange}}</title>
7
+
8
+ <style type="text/css">
9
+ /* CSS Reset and Dark Theme Variables */
10
+ :root {
11
+ --bg-primary: #1a1a1a !important;
12
+ --bg-secondary: #0f0f0f !important;
13
+ --bg-card: #1a1b1e !important;
14
+ --bg-card-hover: #27272a !important;
15
+ --text-primary: #e5e5e5 !important;
16
+ --text-secondary: #9ca3af !important;
17
+ --text-muted: #6b7280 !important;
18
+ --text-dim: #4a5568 !important;
19
+ --accent-purple: #8b5cf6 !important;
20
+ --accent-green: #10b981 !important;
21
+ --accent-blue: #3b82f6 !important;
22
+ --accent-yellow: #eab308 !important;
23
+ --accent-red: #ef4444 !important;
24
+ --accent-orange: #f97316 !important;
25
+ --accent-cyan: #06b6d4 !important;
26
+ --accent-pink: #ec4899 !important;
27
+ --border-color: #374151 !important;
28
+ --border-subtle: #2a2a2a !important;
29
+ --shadow-color: rgba(0, 0, 0, 0.4) !important;
30
+ }
31
+
32
+ /* Global Styles */
33
+ * {
34
+ margin: 0 !important;
35
+ padding: 0 !important;
36
+ box-sizing: border-box !important;
37
+ }
38
+
39
+ html {
40
+ scroll-behavior: smooth !important;
41
+ }
42
+
43
+ body {
44
+ background: linear-gradient(135deg, var(--bg-primary) 0%, var(--bg-secondary) 100%) !important;
45
+ color: var(--text-primary) !important;
46
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
47
+ line-height: 1.6 !important;
48
+ min-height: 100vh !important;
49
+ font-size: 16px !important;
50
+ overflow-x: hidden !important;
51
+ padding: 20px !important;
52
+ }
53
+
54
+ /* Container and Layout - FORCE CENTERING */
55
+ .container, .main-content, .content, .report-container {
56
+ max-width: 800px !important;
57
+ width: 100% !important;
58
+ margin: 0 auto !important;
59
+ padding: 20px !important;
60
+ }
61
+
62
+ /* Ensure proper centering for all content */
63
+ body > *, body > div, body > section {
64
+ max-width: 800px !important;
65
+ width: 100% !important;
66
+ margin: 0 auto !important;
67
+ }
68
+
69
+ /* Typography Hierarchy */
70
+ h1, h2, h3, h4, h5, h6 {
71
+ color: var(--text-primary) !important;
72
+ font-weight: 600 !important;
73
+ margin: 24px 0 16px 0 !important;
74
+ line-height: 1.3 !important;
75
+ }
76
+
77
+ h1 {
78
+ font-size: 2.5rem !important;
79
+ font-weight: 700 !important;
80
+ margin: 32px 0 24px 0 !important;
81
+ color: white !important;
82
+ text-align: center !important;
83
+ background: none !important;
84
+ -webkit-background-clip: initial !important;
85
+ background-clip: initial !important;
86
+ }
87
+
88
+ h2 {
89
+ font-size: 1.875rem !important;
90
+ color: var(--accent-purple) !important;
91
+ border-bottom: 2px solid var(--border-subtle) !important;
92
+ padding-bottom: 8px !important;
93
+ }
94
+
95
+ h3 {
96
+ font-size: 1.5rem !important;
97
+ color: var(--accent-green) !important;
98
+ }
99
+
100
+ h4 {
101
+ font-size: 1.25rem !important;
102
+ color: var(--accent-blue) !important;
103
+ }
104
+
105
+ /* Paragraphs and Text */
106
+ p {
107
+ color: var(--text-secondary) !important;
108
+ margin: 16px 0 !important;
109
+ line-height: 1.7 !important;
110
+ }
111
+
112
+ .subtitle {
113
+ text-align: center !important;
114
+ color: var(--text-muted) !important;
115
+ font-size: 1.125rem !important;
116
+ margin-top: -16px !important;
117
+ }
118
+
119
+ /* Lists */
120
+ ul, ol {
121
+ margin: 16px 0 !important;
122
+ padding-left: 24px !important;
123
+ }
124
+
125
+ li {
126
+ color: var(--text-secondary) !important;
127
+ margin: 8px 0 !important;
128
+ line-height: 1.6 !important;
129
+ }
130
+
131
+ li::marker {
132
+ color: var(--accent-purple) !important;
133
+ }
134
+
135
+ /* Cards and Sections */
136
+ .card, .section, .analysis-section, .metric-card, .breakdown-section {
137
+ background: var(--bg-card) !important;
138
+ border: 1px solid var(--border-color) !important;
139
+ border-radius: 12px !important;
140
+ padding: 24px !important;
141
+ margin: 24px 0 !important;
142
+ box-shadow: 0 4px 6px var(--shadow-color) !important;
143
+ transition: all 0.3s ease !important;
144
+ }
145
+
146
+ .card:hover {
147
+ background: var(--bg-card-hover) !important;
148
+ transform: translateY(-2px) !important;
149
+ box-shadow: 0 8px 12px var(--shadow-color) !important;
150
+ }
151
+
152
+ /* CTA Banner */
153
+ .cta-banner {
154
+ background: linear-gradient(135deg, rgba(139, 92, 246, 0.1) 0%, rgba(16, 185, 129, 0.1) 100%) !important;
155
+ border: 1px solid var(--accent-purple) !important;
156
+ border-radius: 8px !important;
157
+ padding: 16px !important;
158
+ margin: 20px 0 !important;
159
+ text-align: center !important;
160
+ position: relative !important;
161
+ overflow: hidden !important;
162
+ transition: all 0.3s ease !important;
163
+ }
164
+
165
+ .cta-banner:hover {
166
+ transform: translateY(-2px) !important;
167
+ box-shadow: 0 4px 8px rgba(139, 92, 246, 0.2) !important;
168
+ }
169
+
170
+ .cta-banner-text {
171
+ margin: 0 !important;
172
+ color: var(--text-primary) !important;
173
+ font-size: 1.125rem !important;
174
+ font-weight: 500 !important;
175
+ }
176
+
177
+ .cta-icon {
178
+ display: inline-block !important;
179
+ width: 20px !important;
180
+ height: 20px !important;
181
+ margin-right: 8px !important;
182
+ vertical-align: middle !important;
183
+ color: var(--accent-yellow) !important;
184
+ }
185
+
186
+ .cta-inline-link {
187
+ color: var(--accent-green) !important;
188
+ font-weight: 600 !important;
189
+ text-decoration: none !important;
190
+ margin-left: 8px !important;
191
+ transition: color 0.2s ease !important;
192
+ display: inline-block !important;
193
+ }
194
+
195
+ .cta-inline-link:hover {
196
+ color: var(--accent-purple) !important;
197
+ transform: translateX(2px) !important;
198
+ }
199
+
200
+ /* Metadata Bar */
201
+ .metadata-bar {
202
+ text-align: center !important;
203
+ font-size: 1.1rem !important;
204
+ color: var(--text-secondary) !important;
205
+ margin: 20px 0 !important;
206
+ padding: 16px !important;
207
+ background: var(--bg-card) !important;
208
+ border-radius: 8px !important;
209
+ border: 1px solid var(--border-color) !important;
210
+ }
211
+
212
+ /* Activity Distribution Section */
213
+ .activity-distribution {
214
+ margin: 24px 0 !important;
215
+ }
216
+
217
+ .activity-item {
218
+ margin: 16px 0 !important;
219
+ padding: 12px !important;
220
+ background: var(--bg-secondary) !important;
221
+ border-radius: 8px !important;
222
+ border: 1px solid var(--border-subtle) !important;
223
+ }
224
+
225
+ .activity-header {
226
+ display: flex !important;
227
+ justify-content: space-between !important;
228
+ align-items: center !important;
229
+ margin-bottom: 8px !important;
230
+ }
231
+
232
+ .activity-name {
233
+ color: var(--text-primary) !important;
234
+ font-weight: 500 !important;
235
+ }
236
+
237
+ .activity-percentage {
238
+ color: var(--accent-green) !important;
239
+ font-weight: 600 !important;
240
+ font-size: 1.125rem !important;
241
+ }
242
+
243
+ .activity-bar {
244
+ height: 8px !important;
245
+ background: var(--border-subtle) !important;
246
+ border-radius: 4px !important;
247
+ overflow: hidden !important;
248
+ position: relative !important;
249
+ }
250
+
251
+ .activity-fill {
252
+ height: 100% !important;
253
+ transition: width 0.5s ease !important;
254
+ border-radius: 4px !important;
255
+ }
256
+
257
+ /* Activity Colors */
258
+ .activity-debugging { background: #ef4444 !important; }
259
+ .activity-feature-development { background: #10b981 !important; }
260
+ .activity-refactoring { background: #3b82f6 !important; }
261
+ .activity-planning { background: #eab308 !important; }
262
+ .activity-research { background: #8b5cf6 !important; }
263
+ .activity-learning { background: #06b6d4 !important; }
264
+ .activity-testing { background: #f97316 !important; }
265
+ .activity-review { background: #ec4899 !important; }
266
+ .activity-optimization { background: #10b981 !important; }
267
+ .activity-other { background: #6b7280 !important; }
268
+ .activity-architecture { background: #8b5cf6 !important; }
269
+ .activity-integration { background: #3b82f6 !important; }
270
+
271
+ /* Project Cards */
272
+ .project-grid {
273
+ display: grid !important;
274
+ grid-template-columns: 1fr !important;
275
+ gap: 20px !important;
276
+ margin-top: 20px !important;
277
+ }
278
+
279
+ .project-card {
280
+ background: var(--bg-secondary) !important;
281
+ border: 1px solid var(--border-color) !important;
282
+ border-radius: 8px !important;
283
+ padding: 20px !important;
284
+ transition: all 0.3s ease !important;
285
+ }
286
+
287
+ .project-card:hover {
288
+ background: var(--bg-card-hover) !important;
289
+ transform: translateY(-2px) !important;
290
+ box-shadow: 0 4px 8px var(--shadow-color) !important;
291
+ }
292
+
293
+ .project-header {
294
+ display: flex !important;
295
+ justify-content: space-between !important;
296
+ align-items: center !important;
297
+ margin-bottom: 12px !important;
298
+ padding-bottom: 12px !important;
299
+ border-bottom: 1px solid var(--border-subtle) !important;
300
+ }
301
+
302
+ .project-name {
303
+ color: var(--accent-purple) !important;
304
+ font-weight: 600 !important;
305
+ font-size: 1.125rem !important;
306
+ }
307
+
308
+ .session-count {
309
+ color: var(--accent-green) !important;
310
+ font-weight: 500 !important;
311
+ }
312
+
313
+ .project-stats {
314
+ color: var(--text-muted) !important;
315
+ font-size: 0.875rem !important;
316
+ margin-bottom: 12px !important;
317
+ }
318
+
319
+ .project-focus {
320
+ color: var(--text-secondary) !important;
321
+ line-height: 1.6 !important;
322
+ }
323
+
324
+ /* Prompt Quality Section */
325
+ .quality-section {
326
+ margin: 24px 0 !important;
327
+ }
328
+
329
+ .quality-meter {
330
+ margin: 20px 0 !important;
331
+ }
332
+
333
+ .quality-score-display {
334
+ text-align: center !important;
335
+ margin: 20px 0 !important;
336
+ }
337
+
338
+ .quality-score-value {
339
+ font-size: 3rem !important;
340
+ font-weight: 300 !important;
341
+ color: var(--accent-green) !important;
342
+ display: block !important;
343
+ }
344
+
345
+ .quality-score-label {
346
+ color: var(--text-muted) !important;
347
+ font-size: 0.875rem !important;
348
+ text-transform: uppercase !important;
349
+ letter-spacing: 0.1em !important;
350
+ margin-top: 8px !important;
351
+ }
352
+
353
+ .quality-breakdown {
354
+ display: grid !important;
355
+ grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)) !important;
356
+ gap: 16px !important;
357
+ margin: 20px 0 !important;
358
+ }
359
+
360
+ .quality-item {
361
+ text-align: center !important;
362
+ padding: 12px !important;
363
+ background: var(--bg-secondary) !important;
364
+ border-radius: 8px !important;
365
+ border: 1px solid var(--border-subtle) !important;
366
+ }
367
+
368
+ .quality-label {
369
+ display: block !important;
370
+ font-size: 0.75rem !important;
371
+ text-transform: uppercase !important;
372
+ margin-bottom: 4px !important;
373
+ }
374
+
375
+ .quality-value {
376
+ font-size: 1.5rem !important;
377
+ font-weight: 600 !important;
378
+ }
379
+
380
+ .excellent { color: #10b981 !important; }
381
+ .good { color: #eab308 !important; }
382
+ .fair { color: #f97316 !important; }
383
+ .poor { color: #ef4444 !important; }
384
+
385
+ /* Info Icon and Tooltip */
386
+ .info-icon-container {
387
+ position: relative !important;
388
+ display: inline-block !important;
389
+ margin-left: 8px !important;
390
+ }
391
+
392
+ .info-icon {
393
+ display: inline-block !important;
394
+ width: 18px !important;
395
+ height: 18px !important;
396
+ cursor: help !important;
397
+ transition: all 0.3s ease !important;
398
+ vertical-align: middle !important;
399
+ color: var(--accent-blue) !important;
400
+ opacity: 0.7 !important;
401
+ }
402
+
403
+ .info-icon:hover {
404
+ color: var(--accent-purple) !important;
405
+ transform: scale(1.15) !important;
406
+ opacity: 1 !important;
407
+ }
408
+
409
+ .info-icon svg {
410
+ width: 100% !important;
411
+ height: 100% !important;
412
+ }
413
+
414
+ .tooltip-content {
415
+ position: absolute !important;
416
+ bottom: 100% !important;
417
+ left: 50% !important;
418
+ transform: translateX(-50%) !important;
419
+ width: 320px !important;
420
+ padding: 0 !important;
421
+ margin-bottom: 10px !important;
422
+ background: var(--bg-card) !important;
423
+ border: 1px solid var(--accent-blue) !important;
424
+ border-radius: 8px !important;
425
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.4) !important;
426
+ z-index: 1000 !important;
427
+ visibility: hidden !important;
428
+ opacity: 0 !important;
429
+ transition: opacity 0.3s ease, visibility 0.3s ease !important;
430
+ pointer-events: none !important;
431
+ }
432
+
433
+ .info-icon-container:hover .tooltip-content {
434
+ visibility: visible !important;
435
+ opacity: 1 !important;
436
+ }
437
+
438
+ .tooltip-content::after {
439
+ content: '' !important;
440
+ position: absolute !important;
441
+ top: 100% !important;
442
+ left: 50% !important;
443
+ margin-left: -5px !important;
444
+ border-width: 5px !important;
445
+ border-style: solid !important;
446
+ border-color: var(--accent-blue) transparent transparent transparent !important;
447
+ }
448
+
449
+ .tooltip-header {
450
+ padding: 12px 16px !important;
451
+ background: var(--bg-secondary) !important;
452
+ border-bottom: 1px solid var(--border-subtle) !important;
453
+ color: var(--accent-blue) !important;
454
+ font-weight: 600 !important;
455
+ font-size: 0.95rem !important;
456
+ border-radius: 8px 8px 0 0 !important;
457
+ }
458
+
459
+ .tooltip-body {
460
+ padding: 16px !important;
461
+ color: var(--text-secondary) !important;
462
+ font-size: 0.875rem !important;
463
+ line-height: 1.6 !important;
464
+ }
465
+
466
+ .tooltip-list {
467
+ margin: 12px 0 8px 0 !important;
468
+ padding-left: 20px !important;
469
+ list-style-type: none !important;
470
+ }
471
+
472
+ .tooltip-list li {
473
+ margin: 6px 0 !important;
474
+ position: relative !important;
475
+ padding-left: 16px !important;
476
+ }
477
+
478
+ .tooltip-list li::before {
479
+ content: '▸' !important;
480
+ position: absolute !important;
481
+ left: 0 !important;
482
+ color: var(--accent-blue) !important;
483
+ }
484
+
485
+ .tooltip-list strong {
486
+ color: var(--text-primary) !important;
487
+ font-weight: 600 !important;
488
+ }
489
+
490
+ /* Mobile adjustments for tooltip */
491
+ @media (max-width: 768px) {
492
+ .tooltip-content {
493
+ width: 280px !important;
494
+ left: -100px !important;
495
+ transform: none !important;
496
+ }
497
+ }
498
+
499
+ /* Timeline */
500
+ .timeline {
501
+ margin: 20px 0 !important;
502
+ }
503
+
504
+ .timeline-item {
505
+ display: flex !important;
506
+ justify-content: space-between !important;
507
+ align-items: center !important;
508
+ padding: 12px !important;
509
+ margin: 8px 0 !important;
510
+ background: var(--bg-secondary) !important;
511
+ border-radius: 8px !important;
512
+ border-left: 3px solid var(--accent-purple) !important;
513
+ }
514
+
515
+ .timeline-time {
516
+ color: var(--accent-blue) !important;
517
+ font-weight: 600 !important;
518
+ font-size: 0.875rem !important;
519
+ min-width: 120px !important;
520
+ }
521
+
522
+ .timeline-activity {
523
+ color: var(--text-secondary) !important;
524
+ flex: 1 !important;
525
+ margin-left: 20px !important;
526
+ }
527
+
528
+ /* Recommendations */
529
+ .recommendations {
530
+ margin: 20px 0 !important;
531
+ }
532
+
533
+ .recommendation-group {
534
+ margin: 20px 0 !important;
535
+ }
536
+
537
+ .recommendation-title {
538
+ color: var(--accent-green) !important;
539
+ font-weight: 600 !important;
540
+ font-size: 1.125rem !important;
541
+ margin-bottom: 12px !important;
542
+ }
543
+
544
+ /* Links */
545
+ a {
546
+ color: var(--accent-purple) !important;
547
+ text-decoration: none !important;
548
+ transition: color 0.2s ease !important;
549
+ }
550
+
551
+ a:hover {
552
+ color: var(--accent-green) !important;
553
+ text-decoration: underline !important;
554
+ }
555
+
556
+ /* Footer Styling */
557
+ .footer, .report-footer {
558
+ margin-top: 40px !important;
559
+ padding: 32px !important;
560
+ border-top: 1px solid var(--border-subtle) !important;
561
+ text-align: center !important;
562
+ }
563
+
564
+ /* Report Generation Stats */
565
+ .report-stats {
566
+ background: var(--bg-card) !important;
567
+ margin: 40px auto 20px !important;
568
+ padding: 25px !important;
569
+ border-radius: 12px !important;
570
+ border: 1px solid var(--border-color) !important;
571
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2) !important;
572
+ text-align: center !important;
573
+ }
574
+
575
+ .stats-header {
576
+ font-size: 16px !important;
577
+ color: var(--text-primary) !important;
578
+ margin-bottom: 20px !important;
579
+ font-weight: 600 !important;
580
+ }
581
+
582
+ .stats-grid {
583
+ display: grid !important;
584
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
585
+ gap: 15px !important;
586
+ margin-bottom: 20px !important;
587
+ }
588
+
589
+ .stat-item {
590
+ text-align: center !important;
591
+ background: var(--bg-secondary) !important;
592
+ padding: 15px !important;
593
+ border-radius: 8px !important;
594
+ border: 1px solid var(--border-subtle) !important;
595
+ }
596
+
597
+ .stat-value {
598
+ font-size: 24px !important;
599
+ font-weight: bold !important;
600
+ color: var(--accent-green) !important;
601
+ }
602
+
603
+ .stat-label {
604
+ font-size: 12px !important;
605
+ color: var(--text-muted) !important;
606
+ margin-top: 5px !important;
607
+ font-weight: 500 !important;
608
+ }
609
+
610
+ .cta-section {
611
+ text-align: center !important;
612
+ padding-top: 20px !important;
613
+ border-top: 1px solid var(--border-subtle) !important;
614
+ }
615
+
616
+ .cta-text {
617
+ font-size: 14px !important;
618
+ color: var(--text-secondary) !important;
619
+ margin-bottom: 12px !important;
620
+ font-weight: 500 !important;
621
+ }
622
+
623
+ .cta-button {
624
+ display: inline-block !important;
625
+ background: linear-gradient(135deg, #10b981 0%, #34d399 100%) !important;
626
+ color: #000000 !important;
627
+ text-decoration: none !important;
628
+ padding: 12px 28px !important;
629
+ border-radius: 6px !important;
630
+ font-size: 14px !important;
631
+ font-weight: 600 !important;
632
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
633
+ transition: transform 0.2s, box-shadow 0.2s !important;
634
+ text-shadow: none !important;
635
+ }
636
+
637
+ .cta-button:hover {
638
+ transform: translateY(-1px) !important;
639
+ box-shadow: 0 4px 8px rgba(16, 185, 129, 0.3) !important;
640
+ color: #000000 !important;
641
+ text-decoration: none !important;
642
+ }
643
+
644
+ /* Responsive Design */
645
+ @media (max-width: 768px) {
646
+ .container, .main-content, .content, .report-container {
647
+ padding: 16px !important;
648
+ }
649
+
650
+ h1 {
651
+ font-size: 2rem !important;
652
+ }
653
+
654
+ h2 {
655
+ font-size: 1.5rem !important;
656
+ }
657
+
658
+ .project-header {
659
+ flex-direction: column !important;
660
+ align-items: flex-start !important;
661
+ }
662
+
663
+ .timeline-item {
664
+ flex-direction: column !important;
665
+ align-items: flex-start !important;
666
+ }
667
+
668
+ .timeline-activity {
669
+ margin-left: 0 !important;
670
+ margin-top: 8px !important;
671
+ }
672
+ }
673
+
674
+ /* Animation Classes */
675
+ .fade-in {
676
+ animation: fadeIn 0.6s ease-in !important;
677
+ }
678
+
679
+ @keyframes fadeIn {
680
+ from { opacity: 0; transform: translateY(20px); }
681
+ to { opacity: 1; transform: translateY(0); }
682
+ }
683
+
684
+ /* Utility Classes */
685
+ strong {
686
+ color: var(--text-primary) !important;
687
+ font-weight: 600 !important;
688
+ }
689
+
690
+ .icon {
691
+ margin-right: 8px !important;
692
+ }
693
+ </style>
694
+ </head>
695
+ <body>
696
+ <div class="container">
697
+ <!-- Header Section -->
698
+ <header class="header">
699
+ <h1 class="fade-in">🔥 DevArk Analytics Report</h1>
700
+ <p class="subtitle">{{metadata.dateRange}}</p>
701
+ </header>
702
+
703
+ <!-- CTA Banner -->
704
+ <div class="cta-banner">
705
+ <p class="cta-banner-text">
706
+ <svg class="cta-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
707
+ <polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon>
708
+ </svg>
709
+ Get more detailed reports, trends, and breakdowns for free
710
+ <a href="https://devark.ai" class="cta-inline-link">
711
+ <span>devark.ai</span>
712
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display: inline-block; vertical-align: middle; margin-left: 4px;">
713
+ <line x1="5" y1="12" x2="19" y2="12"></line>
714
+ <polyline points="12 5 19 12 12 19"></polyline>
715
+ </svg>
716
+ </a>
717
+ </p>
718
+ </div>
719
+
720
+ <!-- Metadata Bar -->
721
+ <p class="metadata-bar">
722
+ Total Sessions: {{metadata.totalSessions}} •
723
+ Data Processed: {{metadata.dataProcessed}} •
724
+ Active Development: {{metadata.activeDevelopment}} •
725
+ Projects: {{metadata.projects}}
726
+ </p>
727
+
728
+ <!-- Executive Summary -->
729
+ <section class="section fade-in">
730
+ <h2>📊 Executive Summary</h2>
731
+ <ul class="bullet-list">
732
+ {{executiveSummary}}
733
+ </ul>
734
+ </section>
735
+
736
+ <!-- Activity Distribution -->
737
+ <section class="section fade-in">
738
+ <h2>📈 Activity Distribution</h2>
739
+ <div class="activity-distribution">
740
+ {{activityBars}}
741
+ </div>
742
+ </section>
743
+
744
+ <!-- Key Accomplishments -->
745
+ <section class="section fade-in">
746
+ <h2>🚀 Key Accomplishments</h2>
747
+ <ul class="bullet-list">
748
+ {{keyAccomplishments}}
749
+ </ul>
750
+ </section>
751
+
752
+ <!-- Project Breakdown -->
753
+ <section class="section fade-in">
754
+ <h2>📁 Project Breakdown</h2>
755
+ <div class="project-grid">
756
+ {{projectCards}}
757
+ </div>
758
+ </section>
759
+
760
+ <!-- Prompt Quality Analysis -->
761
+ <section class="section fade-in">
762
+ <h2>🎯 Prompt Quality Analysis</h2>
763
+ <div class="quality-section">
764
+ <div class="quality-score-display">
765
+ <span class="quality-score-value">{{promptQuality.averageScore}}/100</span>
766
+ <span class="quality-score-label">
767
+ Overall Session Quality
768
+ <span class="info-icon-container">
769
+ <svg class="info-icon" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
770
+ <circle cx="12" cy="12" r="10"></circle>
771
+ <path d="M12 16v-4"></path>
772
+ <path d="M12 8h.01"></path>
773
+ </svg>
774
+ <div class="tooltip-content">
775
+ <div class="tooltip-header">📐 How This Score Was Calculated</div>
776
+ <div class="tooltip-body">
777
+ Each session is evaluated and scored (0-100) based on:
778
+ <ul class="tooltip-list">
779
+ <li><strong>Excellent (90-100)</strong> - Clear, specific requirements with examples</li>
780
+ <li><strong>Good (70-89)</strong> - Generally clear with minor gaps</li>
781
+ <li><strong>Fair (50-69)</strong> - Somewhat vague or missing context</li>
782
+ <li><strong>Poor (0-49)</strong> - Very vague or confusing requests</li>
783
+ </ul>
784
+ The final score is the average across all analyzed sessions, considering context provided, outcome achievement, and iteration efficiency.
785
+ </div>
786
+ </div>
787
+ </span>
788
+ </span>
789
+ </div>
790
+
791
+ <div class="quality-breakdown">
792
+ <div class="quality-item">
793
+ <span class="quality-label excellent">Excellent</span>
794
+ <span class="quality-value excellent">{{promptQuality.breakdown.excellent}}%</span>
795
+ </div>
796
+ <div class="quality-item">
797
+ <span class="quality-label good">Good</span>
798
+ <span class="quality-value good">{{promptQuality.breakdown.good}}%</span>
799
+ </div>
800
+ <div class="quality-item">
801
+ <span class="quality-label fair">Fair</span>
802
+ <span class="quality-value fair">{{promptQuality.breakdown.fair}}%</span>
803
+ </div>
804
+ <div class="quality-item">
805
+ <span class="quality-label poor">Poor</span>
806
+ <span class="quality-value poor">{{promptQuality.breakdown.poor}}%</span>
807
+ </div>
808
+ </div>
809
+
810
+ <p>{{promptQuality.methodology}}</p>
811
+ <p>{{promptQuality.insights}}</p>
812
+ </div>
813
+ </section>
814
+
815
+ <!-- Timeline (if available) -->
816
+ {{timeline}}
817
+
818
+ <!-- Recommendations (if available) -->
819
+ {{recommendations}}
820
+
821
+ <!-- Footer -->
822
+ <footer class="footer">
823
+ <p class="fade-in">Generated by DevArk Analytics | {{metadata.generatedAt}}</p>
824
+ <p class="fade-in">
825
+ Enable cloud sync for real-time insights • npx devark-cli → Switch to cloud mode •
826
+ <a href="https://devark.ai">devark.ai</a>
827
+ </p>
828
+ </footer>
829
+
830
+ <!-- Report Generation Stats -->
831
+ <div class="report-stats">
832
+ <div class="stats-header">📊 Report Generation Stats</div>
833
+ <div class="stats-grid">
834
+ <div class="stat-item">
835
+ <div class="stat-value">{{reportGeneration.duration}}</div>
836
+ <div class="stat-label">⏱️ Duration</div>
837
+ </div>
838
+ <div class="stat-item">
839
+ <div class="stat-value">{{reportGeneration.apiTime}}</div>
840
+ <div class="stat-label">🚀 API Time</div>
841
+ </div>
842
+ <div class="stat-item">
843
+ <div class="stat-value">{{reportGeneration.turns}}</div>
844
+ <div class="stat-label">🔄 Turns</div>
845
+ </div>
846
+ <div class="stat-item">
847
+ <div class="stat-value">${{reportGeneration.estimatedCost}}</div>
848
+ <div class="stat-label">💰 Cost</div>
849
+ </div>
850
+ </div>
851
+ <div class="cta-section">
852
+ <div class="cta-text">💡 Get instant reports without using your Claude Code subscription</div>
853
+ <a href="https://devark.ai" class="cta-button">Visit devark.ai →</a>
854
+ </div>
855
+ </div>
856
+ </div>
857
+ </body>
858
+ </html>