@kevinrabun/judges 3.80.0 → 3.82.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.
Files changed (78) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +126 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/finding-age-tracker.d.ts +8 -0
  6. package/dist/commands/finding-age-tracker.d.ts.map +1 -0
  7. package/dist/commands/finding-age-tracker.js +153 -0
  8. package/dist/commands/finding-age-tracker.js.map +1 -0
  9. package/dist/commands/finding-cwe-map.d.ts +5 -0
  10. package/dist/commands/finding-cwe-map.d.ts.map +1 -0
  11. package/dist/commands/finding-cwe-map.js +134 -0
  12. package/dist/commands/finding-cwe-map.js.map +1 -0
  13. package/dist/commands/finding-duplicate-rule.d.ts +5 -0
  14. package/dist/commands/finding-duplicate-rule.d.ts.map +1 -0
  15. package/dist/commands/finding-duplicate-rule.js +104 -0
  16. package/dist/commands/finding-duplicate-rule.js.map +1 -0
  17. package/dist/commands/finding-false-neg-check.d.ts +9 -0
  18. package/dist/commands/finding-false-neg-check.d.ts.map +1 -0
  19. package/dist/commands/finding-false-neg-check.js +140 -0
  20. package/dist/commands/finding-false-neg-check.js.map +1 -0
  21. package/dist/commands/finding-line-blame.d.ts +8 -0
  22. package/dist/commands/finding-line-blame.d.ts.map +1 -0
  23. package/dist/commands/finding-line-blame.js +133 -0
  24. package/dist/commands/finding-line-blame.js.map +1 -0
  25. package/dist/commands/finding-pattern-match.d.ts +5 -0
  26. package/dist/commands/finding-pattern-match.d.ts.map +1 -0
  27. package/dist/commands/finding-pattern-match.js +166 -0
  28. package/dist/commands/finding-pattern-match.js.map +1 -0
  29. package/dist/commands/finding-risk-matrix.d.ts +5 -0
  30. package/dist/commands/finding-risk-matrix.d.ts.map +1 -0
  31. package/dist/commands/finding-risk-matrix.js +127 -0
  32. package/dist/commands/finding-risk-matrix.js.map +1 -0
  33. package/dist/commands/finding-summary-digest.d.ts +8 -0
  34. package/dist/commands/finding-summary-digest.d.ts.map +1 -0
  35. package/dist/commands/finding-summary-digest.js +146 -0
  36. package/dist/commands/finding-summary-digest.js.map +1 -0
  37. package/dist/commands/review-code-owner.d.ts +8 -0
  38. package/dist/commands/review-code-owner.d.ts.map +1 -0
  39. package/dist/commands/review-code-owner.js +165 -0
  40. package/dist/commands/review-code-owner.js.map +1 -0
  41. package/dist/commands/review-dependency-graph.d.ts +5 -0
  42. package/dist/commands/review-dependency-graph.d.ts.map +1 -0
  43. package/dist/commands/review-dependency-graph.js +95 -0
  44. package/dist/commands/review-dependency-graph.js.map +1 -0
  45. package/dist/commands/review-diff-stats.d.ts +5 -0
  46. package/dist/commands/review-diff-stats.d.ts.map +1 -0
  47. package/dist/commands/review-diff-stats.js +91 -0
  48. package/dist/commands/review-diff-stats.js.map +1 -0
  49. package/dist/commands/review-exclude-vendor.d.ts +5 -0
  50. package/dist/commands/review-exclude-vendor.d.ts.map +1 -0
  51. package/dist/commands/review-exclude-vendor.js +159 -0
  52. package/dist/commands/review-exclude-vendor.js.map +1 -0
  53. package/dist/commands/review-export-pdf.d.ts +8 -0
  54. package/dist/commands/review-export-pdf.d.ts.map +1 -0
  55. package/dist/commands/review-export-pdf.js +132 -0
  56. package/dist/commands/review-export-pdf.js.map +1 -0
  57. package/dist/commands/review-file-stats.d.ts +5 -0
  58. package/dist/commands/review-file-stats.d.ts.map +1 -0
  59. package/dist/commands/review-file-stats.js +131 -0
  60. package/dist/commands/review-file-stats.js.map +1 -0
  61. package/dist/commands/review-parallel-files.d.ts +8 -0
  62. package/dist/commands/review-parallel-files.d.ts.map +1 -0
  63. package/dist/commands/review-parallel-files.js +135 -0
  64. package/dist/commands/review-parallel-files.js.map +1 -0
  65. package/dist/commands/review-rule-filter.d.ts +5 -0
  66. package/dist/commands/review-rule-filter.d.ts.map +1 -0
  67. package/dist/commands/review-rule-filter.js +117 -0
  68. package/dist/commands/review-rule-filter.js.map +1 -0
  69. package/dist/commands/review-scope-lock.d.ts +8 -0
  70. package/dist/commands/review-scope-lock.d.ts.map +1 -0
  71. package/dist/commands/review-scope-lock.js +139 -0
  72. package/dist/commands/review-scope-lock.js.map +1 -0
  73. package/dist/commands/review-watch-mode.d.ts +8 -0
  74. package/dist/commands/review-watch-mode.d.ts.map +1 -0
  75. package/dist/commands/review-watch-mode.js +133 -0
  76. package/dist/commands/review-watch-mode.js.map +1 -0
  77. package/package.json +1 -1
  78. package/server.json +2 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,32 @@
2
2
 
3
3
  All notable changes to **@kevinrabun/judges** are documented here.
4
4
 
5
+ ## [3.82.0] — 2026-03-14
6
+
7
+ ### Added
8
+ - Scope lock: review-scope-lock (lock review scope to files/directories)
9
+ - Duplicate rule: finding-duplicate-rule (detect duplicate/overlapping rules)
10
+ - Watch mode: review-watch-mode (watch files and auto-trigger reviews)
11
+ - Export PDF: review-export-pdf (export results as PDF-ready markdown)
12
+ - Line blame: finding-line-blame (map findings to git blame)
13
+ - Age tracker: finding-age-tracker (track finding ages over time)
14
+ - Parallel files: review-parallel-files (batch files for parallel review)
15
+ - Summary digest: finding-summary-digest (concise finding digests)
16
+ - Code owner: review-code-owner (map findings to CODEOWNERS entries)
17
+
18
+ ## [3.81.0] — 2026-03-14
19
+
20
+ ### Added
21
+ - Dependency graph: review-dependency-graph (visualize finding relationships)
22
+ - Pattern match: finding-pattern-match (custom pattern matching for findings)
23
+ - Diff stats: review-diff-stats (git diff statistics for reviews)
24
+ - CWE map: finding-cwe-map (map findings to CWE identifiers)
25
+ - Exclude vendor: review-exclude-vendor (exclude vendor/third-party code)
26
+ - Risk matrix: finding-risk-matrix (generate risk matrices from findings)
27
+ - File stats: review-file-stats (per-file review statistics)
28
+ - False neg check: finding-false-neg-check (check for potential false negatives)
29
+ - Rule filter: review-rule-filter (filter review results by rule criteria)
30
+
5
31
  ## [3.80.0] — 2026-03-14
6
32
 
7
33
  ### Added
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AA0vBH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAcnD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAQzE;AAiBD,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,EAAE,CAwBnF;AAkUD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0+F1D"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AA4wBH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAcnD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAQzE;AAiBD,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,EAAE,CAwBnF;AAkUD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwmG1D"}
package/dist/cli.js CHANGED
@@ -589,6 +589,24 @@ USAGE:
589
589
  judges finding-context-expand Expand finding context with surrounding code
590
590
  judges review-output-format Configure and manage output formats
591
591
  judges finding-merge-results Merge results from multiple review runs
592
+ judges review-dependency-graph Visualize finding dependency relationships
593
+ judges finding-pattern-match Match findings against custom patterns
594
+ judges review-diff-stats Show git diff statistics for reviews
595
+ judges finding-cwe-map Map findings to CWE identifiers
596
+ judges review-exclude-vendor Exclude vendor/third-party code from reviews
597
+ judges finding-risk-matrix Generate risk matrices from findings
598
+ judges review-file-stats Per-file review statistics
599
+ judges finding-false-neg-check Check for potential false negatives
600
+ judges review-rule-filter Filter review results by rule criteria
601
+ judges review-scope-lock Lock review scope to specific files/directories
602
+ judges finding-duplicate-rule Detect duplicate or overlapping rules
603
+ judges review-watch-mode Watch files and auto-trigger reviews
604
+ judges review-export-pdf Export review results as PDF-ready markdown
605
+ judges finding-line-blame Map findings to git blame information
606
+ judges finding-age-tracker Track the age of findings over time
607
+ judges review-parallel-files Batch files for parallel review
608
+ judges finding-summary-digest Generate concise finding digests
609
+ judges review-code-owner Map findings to CODEOWNERS entries
592
610
  judges tune Analyze project and suggest optimal config
593
611
  judges list List all available judges
594
612
  judges version Show version information
@@ -3208,6 +3226,114 @@ export async function runCli(argv) {
3208
3226
  runFindingMergeResults(argv);
3209
3227
  return;
3210
3228
  }
3229
+ // ─── Review Dependency Graph Command ─────────────────────────────
3230
+ if (args.command === "review-dependency-graph") {
3231
+ const { runReviewDependencyGraph } = await import("./commands/review-dependency-graph.js");
3232
+ runReviewDependencyGraph(argv);
3233
+ return;
3234
+ }
3235
+ // ─── Finding Pattern Match Command ───────────────────────────────
3236
+ if (args.command === "finding-pattern-match") {
3237
+ const { runFindingPatternMatch } = await import("./commands/finding-pattern-match.js");
3238
+ runFindingPatternMatch(argv);
3239
+ return;
3240
+ }
3241
+ // ─── Review Diff Stats Command ───────────────────────────────────
3242
+ if (args.command === "review-diff-stats") {
3243
+ const { runReviewDiffStats } = await import("./commands/review-diff-stats.js");
3244
+ runReviewDiffStats(argv);
3245
+ return;
3246
+ }
3247
+ // ─── Finding CWE Map Command ─────────────────────────────────────
3248
+ if (args.command === "finding-cwe-map") {
3249
+ const { runFindingCweMap } = await import("./commands/finding-cwe-map.js");
3250
+ runFindingCweMap(argv);
3251
+ return;
3252
+ }
3253
+ // ─── Review Exclude Vendor Command ───────────────────────────────
3254
+ if (args.command === "review-exclude-vendor") {
3255
+ const { runReviewExcludeVendor } = await import("./commands/review-exclude-vendor.js");
3256
+ runReviewExcludeVendor(argv);
3257
+ return;
3258
+ }
3259
+ // ─── Finding Risk Matrix Command ─────────────────────────────────
3260
+ if (args.command === "finding-risk-matrix") {
3261
+ const { runFindingRiskMatrix } = await import("./commands/finding-risk-matrix.js");
3262
+ runFindingRiskMatrix(argv);
3263
+ return;
3264
+ }
3265
+ // ─── Review File Stats Command ───────────────────────────────────
3266
+ if (args.command === "review-file-stats") {
3267
+ const { runReviewFileStats } = await import("./commands/review-file-stats.js");
3268
+ runReviewFileStats(argv);
3269
+ return;
3270
+ }
3271
+ // ─── Finding False Neg Check Command ─────────────────────────────
3272
+ if (args.command === "finding-false-neg-check") {
3273
+ const { runFindingFalseNegCheck } = await import("./commands/finding-false-neg-check.js");
3274
+ runFindingFalseNegCheck(argv);
3275
+ return;
3276
+ }
3277
+ // ─── Review Rule Filter Command ──────────────────────────────────
3278
+ if (args.command === "review-rule-filter") {
3279
+ const { runReviewRuleFilter } = await import("./commands/review-rule-filter.js");
3280
+ runReviewRuleFilter(argv);
3281
+ return;
3282
+ }
3283
+ // ─── Review Scope Lock Command ──────────────────────────────────
3284
+ if (args.command === "review-scope-lock") {
3285
+ const { runReviewScopeLock } = await import("./commands/review-scope-lock.js");
3286
+ runReviewScopeLock(argv);
3287
+ return;
3288
+ }
3289
+ // ─── Finding Duplicate Rule Command ─────────────────────────────
3290
+ if (args.command === "finding-duplicate-rule") {
3291
+ const { runFindingDuplicateRule } = await import("./commands/finding-duplicate-rule.js");
3292
+ runFindingDuplicateRule(argv);
3293
+ return;
3294
+ }
3295
+ // ─── Review Watch Mode Command ──────────────────────────────────
3296
+ if (args.command === "review-watch-mode") {
3297
+ const { runReviewWatchMode } = await import("./commands/review-watch-mode.js");
3298
+ runReviewWatchMode(argv);
3299
+ return;
3300
+ }
3301
+ // ─── Review Export PDF Command ──────────────────────────────────
3302
+ if (args.command === "review-export-pdf") {
3303
+ const { runReviewExportPdf } = await import("./commands/review-export-pdf.js");
3304
+ runReviewExportPdf(argv);
3305
+ return;
3306
+ }
3307
+ // ─── Finding Line Blame Command ─────────────────────────────────
3308
+ if (args.command === "finding-line-blame") {
3309
+ const { runFindingLineBlame } = await import("./commands/finding-line-blame.js");
3310
+ runFindingLineBlame(argv);
3311
+ return;
3312
+ }
3313
+ // ─── Finding Age Tracker Command ────────────────────────────────
3314
+ if (args.command === "finding-age-tracker") {
3315
+ const { runFindingAgeTracker } = await import("./commands/finding-age-tracker.js");
3316
+ runFindingAgeTracker(argv);
3317
+ return;
3318
+ }
3319
+ // ─── Review Parallel Files Command ──────────────────────────────
3320
+ if (args.command === "review-parallel-files") {
3321
+ const { runReviewParallelFiles } = await import("./commands/review-parallel-files.js");
3322
+ runReviewParallelFiles(argv);
3323
+ return;
3324
+ }
3325
+ // ─── Finding Summary Digest Command ─────────────────────────────
3326
+ if (args.command === "finding-summary-digest") {
3327
+ const { runFindingSummaryDigest } = await import("./commands/finding-summary-digest.js");
3328
+ runFindingSummaryDigest(argv);
3329
+ return;
3330
+ }
3331
+ // ─── Review Code Owner Command ──────────────────────────────────
3332
+ if (args.command === "review-code-owner") {
3333
+ const { runReviewCodeOwner } = await import("./commands/review-code-owner.js");
3334
+ runReviewCodeOwner(argv);
3335
+ return;
3336
+ }
3211
3337
  // ─── Tune Command ─────────────────────────────────────────────────
3212
3338
  if (args.command === "tune") {
3213
3339
  const { runTune } = await import("./commands/tune.js");