repo-wrapped 0.0.6 → 0.0.9

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 (176) hide show
  1. package/.github/agents/complete.agent.md +257 -0
  2. package/.github/agents/feature-scaffold.agent.md +248 -0
  3. package/.github/agents/jsdoc.agent.md +243 -0
  4. package/.github/agents/plan.agent.md +202 -0
  5. package/.github/agents/spec-writer.agent.md +169 -0
  6. package/.github/agents/test-writer.agent.md +169 -0
  7. package/.stylelintrc.json +27 -0
  8. package/README.md +94 -94
  9. package/coverage/base.css +224 -0
  10. package/coverage/block-navigation.js +87 -0
  11. package/coverage/favicon.png +0 -0
  12. package/coverage/index.html +446 -0
  13. package/coverage/lcov-report/base.css +224 -0
  14. package/coverage/lcov-report/block-navigation.js +87 -0
  15. package/coverage/lcov-report/favicon.png +0 -0
  16. package/coverage/lcov-report/index.html +446 -0
  17. package/coverage/lcov-report/prettify.css +1 -0
  18. package/coverage/lcov-report/prettify.js +2 -0
  19. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  20. package/coverage/lcov-report/sorter.js +210 -0
  21. package/coverage/lcov.info +7039 -0
  22. package/coverage/prettify.css +1 -0
  23. package/coverage/prettify.js +2 -0
  24. package/coverage/sort-arrow-sprite.png +0 -0
  25. package/coverage/sorter.js +210 -0
  26. package/dist/commands/generate.js +262 -5
  27. package/dist/config/defaults.js +158 -0
  28. package/dist/config/index.js +10 -0
  29. package/dist/features/achievements/data/achievements.json +284 -0
  30. package/dist/features/achievements/engine.js +140 -0
  31. package/dist/features/achievements/evaluators.js +246 -0
  32. package/dist/features/achievements/helpers.js +58 -0
  33. package/dist/features/achievements/index.js +57 -0
  34. package/dist/features/achievements/loader.js +88 -0
  35. package/dist/features/achievements/template.js +155 -0
  36. package/dist/features/achievements/types.js +7 -0
  37. package/dist/features/commit-quality/analyzer.js +378 -0
  38. package/dist/features/commit-quality/analyzer.test.js +484 -0
  39. package/dist/features/commit-quality/index.js +28 -0
  40. package/dist/features/commit-quality/template.js +114 -0
  41. package/dist/features/commit-quality/types.js +2 -0
  42. package/dist/features/comparison/analyzer.js +222 -0
  43. package/dist/features/comparison/index.js +28 -0
  44. package/dist/features/comparison/template.js +119 -0
  45. package/dist/features/comparison/types.js +2 -0
  46. package/dist/features/contribution-graph/index.js +9 -0
  47. package/dist/features/contribution-graph/template.js +89 -0
  48. package/dist/features/events/index.js +31 -0
  49. package/dist/features/events/parser.js +253 -0
  50. package/dist/features/events/template.js +113 -0
  51. package/dist/features/events/types.js +2 -0
  52. package/dist/features/executive-summary/generator.js +275 -0
  53. package/dist/features/executive-summary/index.js +27 -0
  54. package/dist/features/executive-summary/template.js +80 -0
  55. package/dist/features/executive-summary/types.js +2 -0
  56. package/dist/features/gaps/analyzer.js +298 -0
  57. package/dist/features/gaps/analyzer.test.js +517 -0
  58. package/dist/features/gaps/index.js +27 -0
  59. package/dist/features/gaps/template.js +190 -0
  60. package/dist/features/gaps/types.js +2 -0
  61. package/dist/features/impact/analyzer.js +248 -0
  62. package/dist/features/impact/index.js +26 -0
  63. package/dist/features/impact/template.js +118 -0
  64. package/dist/features/impact/types.js +2 -0
  65. package/dist/features/index.js +40 -0
  66. package/dist/features/knowledge/analyzer.js +385 -0
  67. package/dist/features/knowledge/index.js +26 -0
  68. package/dist/features/knowledge/template.js +239 -0
  69. package/dist/features/knowledge/types.js +2 -0
  70. package/dist/features/streaks/calculator.js +184 -0
  71. package/dist/features/streaks/calculator.test.js +366 -0
  72. package/dist/features/streaks/index.js +36 -0
  73. package/dist/features/streaks/template.js +41 -0
  74. package/dist/features/streaks/types.js +9 -0
  75. package/dist/features/team/analyzer.js +316 -0
  76. package/dist/features/team/index.js +30 -0
  77. package/dist/features/team/template.js +146 -0
  78. package/dist/features/team/types.js +2 -0
  79. package/dist/features/time-patterns/analyzer.js +319 -0
  80. package/dist/features/time-patterns/analyzer.test.js +278 -0
  81. package/dist/features/time-patterns/index.js +37 -0
  82. package/dist/features/time-patterns/template.js +109 -0
  83. package/dist/features/time-patterns/types.js +9 -0
  84. package/dist/features/velocity/analyzer.js +257 -0
  85. package/dist/features/velocity/analyzer.test.js +383 -0
  86. package/dist/features/velocity/index.js +27 -0
  87. package/dist/features/velocity/template.js +189 -0
  88. package/dist/features/velocity/types.js +2 -0
  89. package/dist/generators/html/scripts/knowledge.js +17 -0
  90. package/dist/generators/html/styles/base.css +10 -6
  91. package/dist/generators/html/styles/components.css +121 -1
  92. package/dist/generators/html/styles/knowledge.css +21 -0
  93. package/dist/generators/html/styles/leaddev.css +1335 -0
  94. package/dist/generators/html/styles/strategic-insights.css +1337 -0
  95. package/dist/generators/html/templates/commitQualitySection.js +28 -2
  96. package/dist/generators/html/templates/comparisonSection.js +119 -0
  97. package/dist/generators/html/templates/eventsSection.js +113 -0
  98. package/dist/generators/html/templates/executiveSummarySection.js +80 -0
  99. package/dist/generators/html/templates/gapSection.js +190 -0
  100. package/dist/generators/html/templates/impactSection.js +8 -6
  101. package/dist/generators/html/templates/knowledgeSection.js +16 -2
  102. package/dist/generators/html/templates/teamSection.js +146 -0
  103. package/dist/generators/html/templates/velocitySection.js +189 -0
  104. package/dist/generators/html/types.js +7 -0
  105. package/dist/generators/html/utils/analysisRunner.js +93 -0
  106. package/dist/generators/html/utils/cardBuilder.js +47 -0
  107. package/dist/generators/html/utils/contextBuilder.js +54 -0
  108. package/dist/generators/html/utils/htmlDocumentBuilder.js +396 -0
  109. package/dist/generators/html/utils/kpiBuilder.js +76 -0
  110. package/dist/generators/html/utils/sectionWrapper.js +71 -0
  111. package/dist/generators/html/utils/styleLoader.js +2 -1
  112. package/dist/html/analysisRunner.js +93 -0
  113. package/dist/html/htmlDocumentBuilder.js +396 -0
  114. package/dist/html/index.js +29 -0
  115. package/dist/html/shared/colorUtils.js +61 -0
  116. package/dist/html/shared/commitMapBuilder.js +23 -0
  117. package/dist/html/shared/components/cardBuilder.js +47 -0
  118. package/dist/html/shared/components/index.js +18 -0
  119. package/dist/html/shared/components/kpiBuilder.js +76 -0
  120. package/dist/html/shared/components/sectionWrapper.js +71 -0
  121. package/dist/html/shared/contextBuilder.js +54 -0
  122. package/dist/html/shared/dateRangeCalculator.js +56 -0
  123. package/dist/html/shared/developerStatsCalculator.js +28 -0
  124. package/dist/html/shared/index.js +39 -0
  125. package/dist/html/shared/scriptLoader.js +15 -0
  126. package/dist/html/shared/scripts/export.js +125 -0
  127. package/dist/html/shared/scripts/knowledge.js +137 -0
  128. package/dist/html/shared/scripts/modal.js +68 -0
  129. package/dist/html/shared/scripts/navigation.js +156 -0
  130. package/dist/html/shared/scripts/tabs.js +18 -0
  131. package/dist/html/shared/scripts/tooltip.js +21 -0
  132. package/dist/html/shared/styleLoader.js +18 -0
  133. package/dist/html/shared/styles/achievements.css +387 -0
  134. package/dist/html/shared/styles/base.css +822 -0
  135. package/dist/html/shared/styles/components.css +1511 -0
  136. package/dist/html/shared/styles/knowledge.css +242 -0
  137. package/dist/html/shared/styles/strategic-insights.css +1337 -0
  138. package/dist/html/shared/weekGrouper.js +27 -0
  139. package/dist/html/types.js +7 -0
  140. package/dist/index.js +54 -21
  141. package/dist/test/helpers/commitFactory.js +166 -0
  142. package/dist/test/helpers/dateUtils.js +101 -0
  143. package/dist/test/helpers/index.js +29 -0
  144. package/dist/test/setup.js +17 -0
  145. package/dist/test/smoke.test.js +94 -0
  146. package/dist/types/achievements.js +7 -0
  147. package/dist/types/analysis.js +7 -0
  148. package/dist/types/core.js +7 -0
  149. package/dist/types/index.js +38 -0
  150. package/dist/types/options.js +7 -0
  151. package/dist/types/shared.js +7 -0
  152. package/dist/types/strategic.js +7 -0
  153. package/dist/types/summary.js +7 -0
  154. package/dist/utils/achievementDefinitions.js +22 -22
  155. package/dist/utils/analyzerContextBuilder.js +124 -0
  156. package/dist/utils/commitQualityAnalyzer.js +13 -2
  157. package/dist/utils/emptyResults.js +95 -0
  158. package/dist/utils/eventAnnotationParser.js +253 -0
  159. package/dist/utils/executiveSummaryGenerator.js +275 -0
  160. package/dist/utils/fileHotspotAnalyzer.js +4 -12
  161. package/dist/utils/gapAnalyzer.js +298 -0
  162. package/dist/utils/gitParser.test.js +363 -0
  163. package/dist/utils/htmlGenerator.js +126 -450
  164. package/dist/utils/impactAnalyzer.js +20 -19
  165. package/dist/utils/knowledgeDistributionAnalyzer.js +32 -27
  166. package/dist/utils/matrixGenerator.js +13 -13
  167. package/dist/utils/rangeComparisonAnalyzer.js +222 -0
  168. package/dist/utils/streakCalculator.js +77 -27
  169. package/dist/utils/teamAnalyzer.js +316 -0
  170. package/dist/utils/timePatternAnalyzer.js +18 -3
  171. package/dist/utils/velocityAnalyzer.js +257 -0
  172. package/dist/utils/wrappedGenerator.js +8 -8
  173. package/package.json +74 -55
  174. package/vitest.config.ts +46 -0
  175. package/dist/cli.js +0 -24
  176. package/dist/commands/index.js +0 -24
@@ -23,15 +23,19 @@
23
23
  --accent-blue: #58a6ff;
24
24
  --accent-blue-muted: #388bfd;
25
25
  --accent-green: #3fb950;
26
+ --accent-green-light: #69db7c;
26
27
  --accent-green-muted: #238636;
27
28
  --accent-gold: #d4a72c;
28
29
  --accent-gold-muted: #9e7a1f;
29
30
  --accent-purple: #8b5cf6;
31
+ --accent-orange: #ff922b;
32
+ --accent-orange-light: #ffa94d;
30
33
 
31
34
  /* Status Colors */
32
35
  --status-success: #238636;
33
- --status-warning: #9e6a03;
34
- --status-danger: #da3633;
36
+ --status-warning: #ffd43b;
37
+ --status-warning-muted: #9e6a03;
38
+ --status-danger: #ff6b6b;
35
39
  --status-info: #58a6ff;
36
40
 
37
41
  /* Tier Colors (Muted) */
@@ -53,6 +57,7 @@
53
57
  --radius-sm: 2px;
54
58
  --radius-md: 4px;
55
59
  --radius-lg: 6px;
60
+ --radius-xl: 12px;
56
61
 
57
62
  /* Shadows */
58
63
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.1);
@@ -130,7 +135,7 @@ body {
130
135
  border: 1px solid var(--border-default);
131
136
  border-radius: var(--radius-lg);
132
137
  padding: var(--spacing-lg);
133
- max-width: fit-content;
138
+ min-width: 70vw;
134
139
  box-shadow: var(--shadow-md);
135
140
  }
136
141
 
@@ -356,7 +361,7 @@ h3 {
356
361
 
357
362
  .filter-group {
358
363
  display: flex;
359
- align-items: center;
364
+ align-items: baseline;
360
365
  gap: var(--spacing-sm);
361
366
  }
362
367
 
@@ -547,7 +552,6 @@ h3 {
547
552
  .sidebar-header {
548
553
  padding: var(--spacing-md);
549
554
  margin-bottom: var(--spacing-md);
550
- border-bottom: 1px solid var(--border-default);
551
555
  display: flex;
552
556
  align-items: center;
553
557
  justify-content: space-between;
@@ -662,7 +666,7 @@ h3 {
662
666
  /* === Main Content === */
663
667
  .main-content {
664
668
  flex: 1;
665
- min-width: 0;
669
+ min-width: 70vw;
666
670
  }
667
671
 
668
672
  /* === Dashboard Section (Collapsible) === */
@@ -223,6 +223,49 @@
223
223
  color: var(--text-link);
224
224
  }
225
225
 
226
+ /* === Reusable Stat Card Base === */
227
+ .stat-card-base {
228
+ display: flex;
229
+ flex-direction: column;
230
+ align-items: center;
231
+ justify-content: center;
232
+ text-align: center;
233
+ gap: var(--spacing-sm);
234
+ padding: var(--spacing-md);
235
+ background: var(--bg-primary);
236
+ border: 1px solid var(--border-default);
237
+ border-radius: var(--radius-md);
238
+ transition: border-color var(--transition-fast);
239
+ }
240
+
241
+ .stat-card-base:hover {
242
+ border-color: var(--border-emphasis);
243
+ }
244
+
245
+ .stat-card-base .stat-icon {
246
+ font-size: 32px;
247
+ line-height: 1;
248
+ }
249
+
250
+ .stat-card-base .stat-label {
251
+ font-size: var(--font-size-sm);
252
+ color: var(--text-secondary);
253
+ text-transform: uppercase;
254
+ letter-spacing: 0.5px;
255
+ font-weight: var(--font-weight-medium);
256
+ }
257
+
258
+ .stat-card-base .stat-value {
259
+ font-size: 24px;
260
+ font-weight: var(--font-weight-semibold);
261
+ color: var(--text-primary);
262
+ }
263
+
264
+ .stat-card-base .stat-detail {
265
+ font-size: var(--font-size-sm);
266
+ color: var(--text-secondary);
267
+ }
268
+
226
269
  /* === Streak Section === */
227
270
  .streak-section {
228
271
  margin-top: var(--spacing-xl);
@@ -624,7 +667,51 @@
624
667
  font-weight: var(--font-weight-semibold);
625
668
  background: var(--border-subtle);
626
669
  padding: var(--spacing-xs) var(--spacing-sm);
627
- border-radius: 12px;
670
+ border-radius: var(--radius-xl);
671
+ }
672
+
673
+ /* Subject Quality Breakdown */
674
+ .subject-quality-breakdown {
675
+ margin: var(--spacing-lg) 0;
676
+ padding: var(--spacing-md);
677
+ background: var(--bg-primary);
678
+ border: 1px solid var(--border-default);
679
+ border-radius: var(--radius-md);
680
+ }
681
+
682
+ .subject-quality-breakdown h3 {
683
+ margin-top: 0;
684
+ margin-bottom: var(--spacing-md);
685
+ }
686
+
687
+ .subject-metrics-grid {
688
+ display: grid;
689
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
690
+ gap: var(--spacing-md);
691
+ }
692
+
693
+ .subject-metric {
694
+ display: flex;
695
+ flex-direction: column;
696
+ gap: var(--spacing-xs);
697
+ padding: var(--spacing-sm);
698
+ background: var(--bg-secondary);
699
+ border-radius: var(--radius-sm);
700
+ }
701
+
702
+ .subject-metric .metric-icon {
703
+ font-size: var(--font-size-lg);
704
+ }
705
+
706
+ .subject-metric .metric-name {
707
+ font-size: var(--font-size-sm);
708
+ font-weight: var(--font-weight-medium);
709
+ color: var(--text-primary);
710
+ }
711
+
712
+ .subject-metric .metric-detail {
713
+ font-size: var(--font-size-xs);
714
+ color: var(--text-muted);
628
715
  }
629
716
 
630
717
  .types-grid {
@@ -1062,6 +1149,12 @@
1062
1149
  color: var(--text-primary);
1063
1150
  }
1064
1151
 
1152
+ .impact-content {
1153
+ display: flex;
1154
+ flex-direction: column;
1155
+ gap: 8px;
1156
+ }
1157
+
1065
1158
  .impact-overview {
1066
1159
  display: flex;
1067
1160
  gap: var(--spacing-xl);
@@ -1124,12 +1217,18 @@
1124
1217
  .impact-breakdown {
1125
1218
  flex: 1;
1126
1219
  min-width: 250px;
1220
+ margin-top: 0;
1221
+ }
1222
+
1223
+ .impact-breakdown h3 {
1224
+ margin-top: 0;
1127
1225
  }
1128
1226
 
1129
1227
  .breakdown-items {
1130
1228
  display: flex;
1131
1229
  flex-direction: column;
1132
1230
  gap: var(--spacing-md);
1231
+ margin-top: var(--spacing-sm);
1133
1232
  }
1134
1233
 
1135
1234
  .breakdown-item {
@@ -1147,6 +1246,19 @@
1147
1246
  .breakdown-label { color: var(--text-secondary); }
1148
1247
  .breakdown-value { color: var(--text-primary); font-weight: var(--font-weight-medium); }
1149
1248
 
1249
+ .info-tooltip {
1250
+ color: var(--text-muted);
1251
+ cursor: help;
1252
+ font-size: 0.85em;
1253
+ margin-left: 4px;
1254
+ opacity: 0.6;
1255
+ transition: opacity 0.2s;
1256
+ }
1257
+
1258
+ .info-tooltip:hover {
1259
+ opacity: 1;
1260
+ }
1261
+
1150
1262
  .breakdown-bar {
1151
1263
  height: 8px;
1152
1264
  background: var(--border-subtle);
@@ -1225,6 +1337,14 @@
1225
1337
  color: var(--accent-blue);
1226
1338
  }
1227
1339
 
1340
+ .impact-files {
1341
+ margin-top: var(--spacing-lg);
1342
+ }
1343
+
1344
+ .impact-files h3 {
1345
+ margin-bottom: var(--spacing-sm);
1346
+ }
1347
+
1228
1348
  .insights-list,
1229
1349
  .recommendations {
1230
1350
  margin-top: var(--spacing-lg);
@@ -214,6 +214,27 @@
214
214
  text-align: center;
215
215
  }
216
216
 
217
+ .more-files-btn {
218
+ display: block;
219
+ width: 100%;
220
+ padding: var(--spacing-sm) var(--spacing-md);
221
+ margin-top: var(--spacing-sm);
222
+ background: var(--bg-tertiary);
223
+ border: 1px solid var(--border-default);
224
+ border-radius: var(--radius-sm);
225
+ color: var(--text-secondary);
226
+ font-size: var(--font-size-sm);
227
+ cursor: pointer;
228
+ transition: all 0.2s ease;
229
+ text-align: center;
230
+ }
231
+
232
+ .more-files-btn:hover {
233
+ background: var(--bg-secondary);
234
+ color: var(--text-primary);
235
+ border-color: var(--border-emphasis);
236
+ }
237
+
217
238
  /* Risk Badge Enhancement for Files */
218
239
  .file-table .risk-badge {
219
240
  font-size: var(--font-size-xs);