@kevinrabun/judges 3.85.0 → 3.87.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 +29 -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-code-smell.d.ts +5 -0
  6. package/dist/commands/finding-code-smell.d.ts.map +1 -0
  7. package/dist/commands/finding-code-smell.js +114 -0
  8. package/dist/commands/finding-code-smell.js.map +1 -0
  9. package/dist/commands/finding-context-window.d.ts +5 -0
  10. package/dist/commands/finding-context-window.d.ts.map +1 -0
  11. package/dist/commands/finding-context-window.js +127 -0
  12. package/dist/commands/finding-context-window.js.map +1 -0
  13. package/dist/commands/finding-owner-assign.d.ts +5 -0
  14. package/dist/commands/finding-owner-assign.d.ts.map +1 -0
  15. package/dist/commands/finding-owner-assign.js +134 -0
  16. package/dist/commands/finding-owner-assign.js.map +1 -0
  17. package/dist/commands/finding-pattern-library.d.ts +5 -0
  18. package/dist/commands/finding-pattern-library.d.ts.map +1 -0
  19. package/dist/commands/finding-pattern-library.js +146 -0
  20. package/dist/commands/finding-pattern-library.js.map +1 -0
  21. package/dist/commands/finding-quality-gate.d.ts +5 -0
  22. package/dist/commands/finding-quality-gate.d.ts.map +1 -0
  23. package/dist/commands/finding-quality-gate.js +108 -0
  24. package/dist/commands/finding-quality-gate.js.map +1 -0
  25. package/dist/commands/finding-reachability.d.ts +5 -0
  26. package/dist/commands/finding-reachability.d.ts.map +1 -0
  27. package/dist/commands/finding-reachability.js +132 -0
  28. package/dist/commands/finding-reachability.js.map +1 -0
  29. package/dist/commands/finding-related-rules.d.ts +5 -0
  30. package/dist/commands/finding-related-rules.d.ts.map +1 -0
  31. package/dist/commands/finding-related-rules.js +152 -0
  32. package/dist/commands/finding-related-rules.js.map +1 -0
  33. package/dist/commands/finding-rule-explain.d.ts +5 -0
  34. package/dist/commands/finding-rule-explain.d.ts.map +1 -0
  35. package/dist/commands/finding-rule-explain.js +141 -0
  36. package/dist/commands/finding-rule-explain.js.map +1 -0
  37. package/dist/commands/finding-severity-dist.d.ts +5 -0
  38. package/dist/commands/finding-severity-dist.d.ts.map +1 -0
  39. package/dist/commands/finding-severity-dist.js +106 -0
  40. package/dist/commands/finding-severity-dist.js.map +1 -0
  41. package/dist/commands/review-ignore-pattern.d.ts +6 -0
  42. package/dist/commands/review-ignore-pattern.d.ts.map +1 -0
  43. package/dist/commands/review-ignore-pattern.js +140 -0
  44. package/dist/commands/review-ignore-pattern.js.map +1 -0
  45. package/dist/commands/review-lock-file.d.ts +5 -0
  46. package/dist/commands/review-lock-file.d.ts.map +1 -0
  47. package/dist/commands/review-lock-file.js +154 -0
  48. package/dist/commands/review-lock-file.js.map +1 -0
  49. package/dist/commands/review-merge-check.d.ts +5 -0
  50. package/dist/commands/review-merge-check.d.ts.map +1 -0
  51. package/dist/commands/review-merge-check.js +102 -0
  52. package/dist/commands/review-merge-check.js.map +1 -0
  53. package/dist/commands/review-plugin-config.d.ts +5 -0
  54. package/dist/commands/review-plugin-config.d.ts.map +1 -0
  55. package/dist/commands/review-plugin-config.js +168 -0
  56. package/dist/commands/review-plugin-config.js.map +1 -0
  57. package/dist/commands/review-plugin-list.d.ts +5 -0
  58. package/dist/commands/review-plugin-list.d.ts.map +1 -0
  59. package/dist/commands/review-plugin-list.js +100 -0
  60. package/dist/commands/review-plugin-list.js.map +1 -0
  61. package/dist/commands/review-report-merge.d.ts +5 -0
  62. package/dist/commands/review-report-merge.d.ts.map +1 -0
  63. package/dist/commands/review-report-merge.js +91 -0
  64. package/dist/commands/review-report-merge.js.map +1 -0
  65. package/dist/commands/review-status-badge.d.ts +5 -0
  66. package/dist/commands/review-status-badge.d.ts.map +1 -0
  67. package/dist/commands/review-status-badge.js +121 -0
  68. package/dist/commands/review-status-badge.js.map +1 -0
  69. package/dist/commands/review-token-budget.d.ts +5 -0
  70. package/dist/commands/review-token-budget.d.ts.map +1 -0
  71. package/dist/commands/review-token-budget.js +118 -0
  72. package/dist/commands/review-token-budget.js.map +1 -0
  73. package/dist/commands/review-workspace-scan.d.ts +5 -0
  74. package/dist/commands/review-workspace-scan.d.ts.map +1 -0
  75. package/dist/commands/review-workspace-scan.js +145 -0
  76. package/dist/commands/review-workspace-scan.js.map +1 -0
  77. package/package.json +1 -1
  78. package/server.json +2 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,35 @@
2
2
 
3
3
  All notable changes to **@kevinrabun/judges** are documented here.
4
4
 
5
+ ## [3.87.0] — 2026-03-14
6
+
7
+ ### Added
8
+ - Code smell: finding-code-smell (detect code-smell indicators among findings)
9
+ - Related rules: finding-related-rules (find related rules for a finding)
10
+ - Token budget: review-token-budget (estimate and manage token budget usage)
11
+ - Plugin list: review-plugin-list (list available and active plugins)
12
+ - Owner assign: finding-owner-assign (assign finding owners based on rules)
13
+ - Lock file: review-lock-file (analyze lock files for security issues)
14
+ - Pattern library: finding-pattern-library (manage finding pattern library)
15
+ - Status badge: review-status-badge (generate status badges for review results)
16
+ - Rule explain: finding-rule-explain (explain rules in detail with examples)
17
+
18
+ ### Tests
19
+ - All 2,267 tests passing (0 failures)
20
+
21
+ ## [3.86.0] — 2026-03-14
22
+
23
+ ### Added
24
+ - Ignore pattern: review-ignore-pattern (manage review ignore patterns)
25
+ - Quality gate: finding-quality-gate (enforce quality gates on findings)
26
+ - Reachability: finding-reachability (analyze finding reachability)
27
+ - Merge check: review-merge-check (pre-merge review validation)
28
+ - Workspace scan: review-workspace-scan (scan workspace for reviewable files)
29
+ - Context window: finding-context-window (show findings with code context)
30
+ - Severity dist: finding-severity-dist (severity distribution analysis)
31
+ - Report merge: review-report-merge (merge multiple verdict reports)
32
+ - Plugin config: review-plugin-config (manage plugin configuration)
33
+
5
34
  ## [3.85.0] — 2026-03-14
6
35
 
7
36
  ### 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;AAuyBH;;;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,CAqyG1D"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAyzBH;;;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,CAm6G1D"}
package/dist/cli.js CHANGED
@@ -634,6 +634,24 @@ USAGE:
634
634
  judges review-batch-run Run batch review on multiple files
635
635
  judges review-output-filter Filter and transform review output
636
636
  judges finding-timeline-view Show findings on a timeline
637
+ judges review-ignore-pattern Manage review ignore patterns
638
+ judges finding-quality-gate Enforce quality gates on findings
639
+ judges finding-reachability Analyze finding reachability
640
+ judges review-merge-check Pre-merge review validation
641
+ judges review-workspace-scan Scan workspace for reviewable files
642
+ judges finding-context-window Show findings with code context
643
+ judges finding-severity-dist Show severity distribution
644
+ judges review-report-merge Merge multiple verdict reports
645
+ judges review-plugin-config Manage plugin configuration
646
+ judges finding-code-smell Detect code-smell indicators
647
+ judges finding-related-rules Find related rules for a finding
648
+ judges review-token-budget Estimate token budget usage
649
+ judges review-plugin-list List available plugins
650
+ judges finding-owner-assign Assign finding owners
651
+ judges review-lock-file Analyze lock files for security issues
652
+ judges finding-pattern-library Manage finding pattern library
653
+ judges review-status-badge Generate status badges
654
+ judges finding-rule-explain Explain rules in detail
637
655
  judges tune Analyze project and suggest optimal config
638
656
  judges list List all available judges
639
657
  judges version Show version information
@@ -3523,6 +3541,114 @@ export async function runCli(argv) {
3523
3541
  runFindingTimelineView(argv);
3524
3542
  return;
3525
3543
  }
3544
+ // ─── Review Ignore Pattern Command ────────────────────────────────
3545
+ if (args.command === "review-ignore-pattern") {
3546
+ const { runReviewIgnorePattern } = await import("./commands/review-ignore-pattern.js");
3547
+ runReviewIgnorePattern(argv);
3548
+ return;
3549
+ }
3550
+ // ─── Finding Quality Gate Command ─────────────────────────────────
3551
+ if (args.command === "finding-quality-gate") {
3552
+ const { runFindingQualityGate } = await import("./commands/finding-quality-gate.js");
3553
+ runFindingQualityGate(argv);
3554
+ return;
3555
+ }
3556
+ // ─── Finding Reachability Command ─────────────────────────────────
3557
+ if (args.command === "finding-reachability") {
3558
+ const { runFindingReachability } = await import("./commands/finding-reachability.js");
3559
+ runFindingReachability(argv);
3560
+ return;
3561
+ }
3562
+ // ─── Review Merge Check Command ───────────────────────────────────
3563
+ if (args.command === "review-merge-check") {
3564
+ const { runReviewMergeCheck } = await import("./commands/review-merge-check.js");
3565
+ runReviewMergeCheck(argv);
3566
+ return;
3567
+ }
3568
+ // ─── Review Workspace Scan Command ────────────────────────────────
3569
+ if (args.command === "review-workspace-scan") {
3570
+ const { runReviewWorkspaceScan } = await import("./commands/review-workspace-scan.js");
3571
+ runReviewWorkspaceScan(argv);
3572
+ return;
3573
+ }
3574
+ // ─── Finding Context Window Command ───────────────────────────────
3575
+ if (args.command === "finding-context-window") {
3576
+ const { runFindingContextWindow } = await import("./commands/finding-context-window.js");
3577
+ runFindingContextWindow(argv);
3578
+ return;
3579
+ }
3580
+ // ─── Finding Severity Dist Command ────────────────────────────────
3581
+ if (args.command === "finding-severity-dist") {
3582
+ const { runFindingSeverityDist } = await import("./commands/finding-severity-dist.js");
3583
+ runFindingSeverityDist(argv);
3584
+ return;
3585
+ }
3586
+ // ─── Review Report Merge Command ──────────────────────────────────
3587
+ if (args.command === "review-report-merge") {
3588
+ const { runReviewReportMerge } = await import("./commands/review-report-merge.js");
3589
+ runReviewReportMerge(argv);
3590
+ return;
3591
+ }
3592
+ // ─── Review Plugin Config Command ─────────────────────────────────
3593
+ if (args.command === "review-plugin-config") {
3594
+ const { runReviewPluginConfig } = await import("./commands/review-plugin-config.js");
3595
+ runReviewPluginConfig(argv);
3596
+ return;
3597
+ }
3598
+ // ─── Finding Code Smell Command ───────────────────────────────────
3599
+ if (args.command === "finding-code-smell") {
3600
+ const { runFindingCodeSmell } = await import("./commands/finding-code-smell.js");
3601
+ runFindingCodeSmell(argv);
3602
+ return;
3603
+ }
3604
+ // ─── Finding Related Rules Command ────────────────────────────────
3605
+ if (args.command === "finding-related-rules") {
3606
+ const { runFindingRelatedRules } = await import("./commands/finding-related-rules.js");
3607
+ runFindingRelatedRules(argv);
3608
+ return;
3609
+ }
3610
+ // ─── Review Token Budget Command ──────────────────────────────────
3611
+ if (args.command === "review-token-budget") {
3612
+ const { runReviewTokenBudget } = await import("./commands/review-token-budget.js");
3613
+ runReviewTokenBudget(argv);
3614
+ return;
3615
+ }
3616
+ // ─── Review Plugin List Command ───────────────────────────────────
3617
+ if (args.command === "review-plugin-list") {
3618
+ const { runReviewPluginList } = await import("./commands/review-plugin-list.js");
3619
+ runReviewPluginList(argv);
3620
+ return;
3621
+ }
3622
+ // ─── Finding Owner Assign Command ─────────────────────────────────
3623
+ if (args.command === "finding-owner-assign") {
3624
+ const { runFindingOwnerAssign } = await import("./commands/finding-owner-assign.js");
3625
+ runFindingOwnerAssign(argv);
3626
+ return;
3627
+ }
3628
+ // ─── Review Lock File Command ─────────────────────────────────────
3629
+ if (args.command === "review-lock-file") {
3630
+ const { runReviewLockFile } = await import("./commands/review-lock-file.js");
3631
+ runReviewLockFile(argv);
3632
+ return;
3633
+ }
3634
+ // ─── Finding Pattern Library Command ──────────────────────────────
3635
+ if (args.command === "finding-pattern-library") {
3636
+ const { runFindingPatternLibrary } = await import("./commands/finding-pattern-library.js");
3637
+ runFindingPatternLibrary(argv);
3638
+ return;
3639
+ }
3640
+ // ─── Review Status Badge Command ──────────────────────────────────
3641
+ if (args.command === "review-status-badge") {
3642
+ const { runReviewStatusBadge } = await import("./commands/review-status-badge.js");
3643
+ runReviewStatusBadge(argv);
3644
+ return;
3645
+ }
3646
+ // ─── Finding Rule Explain Command ─────────────────────────────────
3647
+ if (args.command === "finding-rule-explain") {
3648
+ const { runFindingRuleExplain } = await import("./commands/finding-rule-explain.js");
3649
+ runFindingRuleExplain(argv);
3650
+ return;
3651
+ }
3526
3652
  // ─── Tune Command ─────────────────────────────────────────────────
3527
3653
  if (args.command === "tune") {
3528
3654
  const { runTune } = await import("./commands/tune.js");