@kevinrabun/judges 3.81.0 → 3.83.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-category-stats.d.ts +5 -0
  10. package/dist/commands/finding-category-stats.d.ts.map +1 -0
  11. package/dist/commands/finding-category-stats.js +105 -0
  12. package/dist/commands/finding-category-stats.js.map +1 -0
  13. package/dist/commands/finding-compare-runs.d.ts +5 -0
  14. package/dist/commands/finding-compare-runs.d.ts.map +1 -0
  15. package/dist/commands/finding-compare-runs.js +106 -0
  16. package/dist/commands/finding-compare-runs.js.map +1 -0
  17. package/dist/commands/finding-duplicate-rule.d.ts +5 -0
  18. package/dist/commands/finding-duplicate-rule.d.ts.map +1 -0
  19. package/dist/commands/finding-duplicate-rule.js +104 -0
  20. package/dist/commands/finding-duplicate-rule.js.map +1 -0
  21. package/dist/commands/finding-hotfix-suggest.d.ts +8 -0
  22. package/dist/commands/finding-hotfix-suggest.d.ts.map +1 -0
  23. package/dist/commands/finding-hotfix-suggest.js +171 -0
  24. package/dist/commands/finding-hotfix-suggest.js.map +1 -0
  25. package/dist/commands/finding-line-blame.d.ts +8 -0
  26. package/dist/commands/finding-line-blame.d.ts.map +1 -0
  27. package/dist/commands/finding-line-blame.js +133 -0
  28. package/dist/commands/finding-line-blame.js.map +1 -0
  29. package/dist/commands/finding-summary-digest.d.ts +8 -0
  30. package/dist/commands/finding-summary-digest.d.ts.map +1 -0
  31. package/dist/commands/finding-summary-digest.js +146 -0
  32. package/dist/commands/finding-summary-digest.js.map +1 -0
  33. package/dist/commands/review-approval-gate.d.ts +8 -0
  34. package/dist/commands/review-approval-gate.d.ts.map +1 -0
  35. package/dist/commands/review-approval-gate.js +191 -0
  36. package/dist/commands/review-approval-gate.js.map +1 -0
  37. package/dist/commands/review-branch-compare.d.ts +5 -0
  38. package/dist/commands/review-branch-compare.d.ts.map +1 -0
  39. package/dist/commands/review-branch-compare.js +114 -0
  40. package/dist/commands/review-branch-compare.js.map +1 -0
  41. package/dist/commands/review-changelog-entry.d.ts +8 -0
  42. package/dist/commands/review-changelog-entry.d.ts.map +1 -0
  43. package/dist/commands/review-changelog-entry.js +110 -0
  44. package/dist/commands/review-changelog-entry.js.map +1 -0
  45. package/dist/commands/review-code-owner.d.ts +8 -0
  46. package/dist/commands/review-code-owner.d.ts.map +1 -0
  47. package/dist/commands/review-code-owner.js +165 -0
  48. package/dist/commands/review-code-owner.js.map +1 -0
  49. package/dist/commands/review-export-pdf.d.ts +8 -0
  50. package/dist/commands/review-export-pdf.d.ts.map +1 -0
  51. package/dist/commands/review-export-pdf.js +132 -0
  52. package/dist/commands/review-export-pdf.js.map +1 -0
  53. package/dist/commands/review-finding-link.d.ts +8 -0
  54. package/dist/commands/review-finding-link.d.ts.map +1 -0
  55. package/dist/commands/review-finding-link.js +116 -0
  56. package/dist/commands/review-finding-link.js.map +1 -0
  57. package/dist/commands/review-parallel-files.d.ts +8 -0
  58. package/dist/commands/review-parallel-files.d.ts.map +1 -0
  59. package/dist/commands/review-parallel-files.js +135 -0
  60. package/dist/commands/review-parallel-files.js.map +1 -0
  61. package/dist/commands/review-scope-lock.d.ts +8 -0
  62. package/dist/commands/review-scope-lock.d.ts.map +1 -0
  63. package/dist/commands/review-scope-lock.js +139 -0
  64. package/dist/commands/review-scope-lock.js.map +1 -0
  65. package/dist/commands/review-skip-list.d.ts +5 -0
  66. package/dist/commands/review-skip-list.d.ts.map +1 -0
  67. package/dist/commands/review-skip-list.js +136 -0
  68. package/dist/commands/review-skip-list.js.map +1 -0
  69. package/dist/commands/review-team-assign.d.ts +8 -0
  70. package/dist/commands/review-team-assign.d.ts.map +1 -0
  71. package/dist/commands/review-team-assign.js +212 -0
  72. package/dist/commands/review-team-assign.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.83.0] — 2026-03-14
6
+
7
+ ### Added
8
+ - Finding link: review-finding-link (link related findings together)
9
+ - Team assign: review-team-assign (assign findings to team members)
10
+ - Compare runs: finding-compare-runs (compare findings across runs)
11
+ - Skip list: review-skip-list (manage review skip list)
12
+ - Hotfix suggest: finding-hotfix-suggest (suggest quick hotfixes)
13
+ - Approval gate: review-approval-gate (configurable quality gates)
14
+ - Changelog entry: review-changelog-entry (generate changelog from findings)
15
+ - Branch compare: review-branch-compare (compare reviews between branches)
16
+ - Category stats: finding-category-stats (category statistics)
17
+
18
+ ## [3.82.0] — 2026-03-14
19
+
20
+ ### Added
21
+ - Scope lock: review-scope-lock (lock review scope to files/directories)
22
+ - Duplicate rule: finding-duplicate-rule (detect duplicate/overlapping rules)
23
+ - Watch mode: review-watch-mode (watch files and auto-trigger reviews)
24
+ - Export PDF: review-export-pdf (export results as PDF-ready markdown)
25
+ - Line blame: finding-line-blame (map findings to git blame)
26
+ - Age tracker: finding-age-tracker (track finding ages over time)
27
+ - Parallel files: review-parallel-files (batch files for parallel review)
28
+ - Summary digest: finding-summary-digest (concise finding digests)
29
+ - Code owner: review-code-owner (map findings to CODEOWNERS entries)
30
+
5
31
  ## [3.81.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;AAmwBH;;;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,CAyiG1D"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAqxBH;;;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,CAuqG1D"}
package/dist/cli.js CHANGED
@@ -598,6 +598,24 @@ USAGE:
598
598
  judges review-file-stats Per-file review statistics
599
599
  judges finding-false-neg-check Check for potential false negatives
600
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
610
+ judges review-finding-link Link related findings together
611
+ judges review-team-assign Assign findings to team members
612
+ judges finding-compare-runs Compare findings across review runs
613
+ judges review-skip-list Manage skip list for reviews
614
+ judges finding-hotfix-suggest Suggest quick hotfixes for findings
615
+ judges review-approval-gate Configurable review approval gates
616
+ judges review-changelog-entry Generate changelog from findings
617
+ judges review-branch-compare Compare reviews between branches
618
+ judges finding-category-stats Finding category statistics
601
619
  judges tune Analyze project and suggest optimal config
602
620
  judges list List all available judges
603
621
  judges version Show version information
@@ -3271,6 +3289,114 @@ export async function runCli(argv) {
3271
3289
  runReviewRuleFilter(argv);
3272
3290
  return;
3273
3291
  }
3292
+ // ─── Review Scope Lock Command ──────────────────────────────────
3293
+ if (args.command === "review-scope-lock") {
3294
+ const { runReviewScopeLock } = await import("./commands/review-scope-lock.js");
3295
+ runReviewScopeLock(argv);
3296
+ return;
3297
+ }
3298
+ // ─── Finding Duplicate Rule Command ─────────────────────────────
3299
+ if (args.command === "finding-duplicate-rule") {
3300
+ const { runFindingDuplicateRule } = await import("./commands/finding-duplicate-rule.js");
3301
+ runFindingDuplicateRule(argv);
3302
+ return;
3303
+ }
3304
+ // ─── Review Watch Mode Command ──────────────────────────────────
3305
+ if (args.command === "review-watch-mode") {
3306
+ const { runReviewWatchMode } = await import("./commands/review-watch-mode.js");
3307
+ runReviewWatchMode(argv);
3308
+ return;
3309
+ }
3310
+ // ─── Review Export PDF Command ──────────────────────────────────
3311
+ if (args.command === "review-export-pdf") {
3312
+ const { runReviewExportPdf } = await import("./commands/review-export-pdf.js");
3313
+ runReviewExportPdf(argv);
3314
+ return;
3315
+ }
3316
+ // ─── Finding Line Blame Command ─────────────────────────────────
3317
+ if (args.command === "finding-line-blame") {
3318
+ const { runFindingLineBlame } = await import("./commands/finding-line-blame.js");
3319
+ runFindingLineBlame(argv);
3320
+ return;
3321
+ }
3322
+ // ─── Finding Age Tracker Command ────────────────────────────────
3323
+ if (args.command === "finding-age-tracker") {
3324
+ const { runFindingAgeTracker } = await import("./commands/finding-age-tracker.js");
3325
+ runFindingAgeTracker(argv);
3326
+ return;
3327
+ }
3328
+ // ─── Review Parallel Files Command ──────────────────────────────
3329
+ if (args.command === "review-parallel-files") {
3330
+ const { runReviewParallelFiles } = await import("./commands/review-parallel-files.js");
3331
+ runReviewParallelFiles(argv);
3332
+ return;
3333
+ }
3334
+ // ─── Finding Summary Digest Command ─────────────────────────────
3335
+ if (args.command === "finding-summary-digest") {
3336
+ const { runFindingSummaryDigest } = await import("./commands/finding-summary-digest.js");
3337
+ runFindingSummaryDigest(argv);
3338
+ return;
3339
+ }
3340
+ // ─── Review Code Owner Command ──────────────────────────────────
3341
+ if (args.command === "review-code-owner") {
3342
+ const { runReviewCodeOwner } = await import("./commands/review-code-owner.js");
3343
+ runReviewCodeOwner(argv);
3344
+ return;
3345
+ }
3346
+ // ─── Review Finding Link Command ────────────────────────────────
3347
+ if (args.command === "review-finding-link") {
3348
+ const { runReviewFindingLink } = await import("./commands/review-finding-link.js");
3349
+ runReviewFindingLink(argv);
3350
+ return;
3351
+ }
3352
+ // ─── Review Team Assign Command ─────────────────────────────────
3353
+ if (args.command === "review-team-assign") {
3354
+ const { runReviewTeamAssign } = await import("./commands/review-team-assign.js");
3355
+ runReviewTeamAssign(argv);
3356
+ return;
3357
+ }
3358
+ // ─── Finding Compare Runs Command ───────────────────────────────
3359
+ if (args.command === "finding-compare-runs") {
3360
+ const { runFindingCompareRuns } = await import("./commands/finding-compare-runs.js");
3361
+ runFindingCompareRuns(argv);
3362
+ return;
3363
+ }
3364
+ // ─── Review Skip List Command ───────────────────────────────────
3365
+ if (args.command === "review-skip-list") {
3366
+ const { runReviewSkipList } = await import("./commands/review-skip-list.js");
3367
+ runReviewSkipList(argv);
3368
+ return;
3369
+ }
3370
+ // ─── Finding Hotfix Suggest Command ─────────────────────────────
3371
+ if (args.command === "finding-hotfix-suggest") {
3372
+ const { runFindingHotfixSuggest } = await import("./commands/finding-hotfix-suggest.js");
3373
+ runFindingHotfixSuggest(argv);
3374
+ return;
3375
+ }
3376
+ // ─── Review Approval Gate Command ───────────────────────────────
3377
+ if (args.command === "review-approval-gate") {
3378
+ const { runReviewApprovalGate } = await import("./commands/review-approval-gate.js");
3379
+ runReviewApprovalGate(argv);
3380
+ return;
3381
+ }
3382
+ // ─── Review Changelog Entry Command ─────────────────────────────
3383
+ if (args.command === "review-changelog-entry") {
3384
+ const { runReviewChangelogEntry } = await import("./commands/review-changelog-entry.js");
3385
+ runReviewChangelogEntry(argv);
3386
+ return;
3387
+ }
3388
+ // ─── Review Branch Compare Command ──────────────────────────────
3389
+ if (args.command === "review-branch-compare") {
3390
+ const { runReviewBranchCompare } = await import("./commands/review-branch-compare.js");
3391
+ runReviewBranchCompare(argv);
3392
+ return;
3393
+ }
3394
+ // ─── Finding Category Stats Command ─────────────────────────────
3395
+ if (args.command === "finding-category-stats") {
3396
+ const { runFindingCategoryStats } = await import("./commands/finding-category-stats.js");
3397
+ runFindingCategoryStats(argv);
3398
+ return;
3399
+ }
3274
3400
  // ─── Tune Command ─────────────────────────────────────────────────
3275
3401
  if (args.command === "tune") {
3276
3402
  const { runTune } = await import("./commands/tune.js");