@jphutchins/code-review 0.1.0-alpha.44 → 0.1.0-alpha.45

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jphutchins/code-review",
3
- "version": "0.1.0-alpha.44",
3
+ "version": "0.1.0-alpha.45",
4
4
  "description": "Deterministic commenter for agentic PR review — gather, render, inline, post, adapt, extract, cost, validate, print-schema",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -56,7 +56,7 @@
56
56
  "type": "number",
57
57
  "minimum": 0,
58
58
  "maximum": 1,
59
- "description": "0..1 probability the pattern's triggering condition actually occurs in practice. Mirrors the finding field of the same name."
59
+ "description": "Set to 1 for a systemic problem. A structural/cross-cutting observation has no single triggering input — it is definitionally always present — so the convergence score treats a systemic problem's likelihood as 1 and never discounts it. (Required for schema symmetry with a finding's likelihood; the written value is not read by the score.)"
60
60
  },
61
61
  "code": {
62
62
  "type": "string",
@@ -81,7 +81,7 @@ _<%= it.unanchoredCount %> finding<%= it.unanchoredCount === 1 ? '' : 's' %> bel
81
81
  <% } %>
82
82
 
83
83
  <% it.strays.forEach(function(f) { -%>
84
- #### <%= it.severityEmoji(f.severity) %> (<%= f.severity %>) `<%= f.path %>:<%= f.start_line %><% if (f.start_line !== f.end_line) { %>–<%= f.end_line %><% } %>` — <%= f.title %> · confidence <%= it.formatConfidence(f.confidence) %>
84
+ #### <%= it.severityEmoji(f.severity) %> (<%= f.severity %>) `<%= f.path %>:<%= f.start_line %><% if (f.start_line !== f.end_line) { %>–<%= f.end_line %><% } %>` — <%= f.title %> · confidence <%= it.formatConfidence(f.confidence) %> · likelihood <%= it.formatConfidence(f.likelihood) %>
85
85
 
86
86
  <%~ f.description %>
87
87
  <% if (f.code && it.sameRootNotes && Object.prototype.hasOwnProperty.call(it.sameRootNotes, f.code)) { -%>
@@ -109,7 +109,7 @@ _<%= it.unanchoredCount %> finding<%= it.unanchoredCount === 1 ? '' : 's' %> bel
109
109
  <% } -%>
110
110
 
111
111
  > [!TIP]
112
- > <details><summary>Reasoning (<%= it.formatConfidence(f.confidence) %> confidence)</summary>
112
+ > <details><summary>Reasoning (<%= it.formatConfidence(f.confidence) %> confidence · <%= it.formatConfidence(f.likelihood) %> likelihood)</summary>
113
113
  >
114
114
  <% f.reasoning.split("\n").forEach(function(rl) { -%>
115
115
  > <%= rl %>
@@ -119,6 +119,17 @@ _<%= it.unanchoredCount %> finding<%= it.unanchoredCount === 1 ? '' : 's' %> bel
119
119
  <% }) %>
120
120
  <% } %>
121
121
 
122
+ <% if (it.suppressedNits && it.suppressedNits.length > 0) { %>
123
+ > [!NOTE]
124
+ > <details><summary>🔇 <%= it.suppressedNits.length %> nit<%= it.suppressedNits.length === 1 ? '' : 's' %> below the visibility floor (confidence × likelihood < <%= it.nitVisibilityFloor %>) — hidden</summary>
125
+ >
126
+ <% it.suppressedNits.forEach(function(n) { -%>
127
+ > - `<%= n.path %>:<%= n.startLine %>` — <%= n.title %><% if (n.code) { %> (`<%= n.code %>`)<% } %> _(m = <%= n.m %>)_
128
+ <% }) -%>
129
+ >
130
+ > </details>
131
+ <% } %>
132
+
122
133
  <% if (it.testReport) { %>
123
134
  ---
124
135
 
@@ -1,7 +1,7 @@
1
1
  <% if (it.findingsPointer) { -%>
2
2
  <%~ it.findingsPointer %>
3
3
  <% } -%>
4
- <%= it.severityEmoji(it.severity) %> <%= it.severity.charAt(0).toUpperCase() + it.severity.slice(1) %>: **<%= it.title %>** · <%= it.formatConfidence(it.confidence) %> confidence
4
+ <%= it.severityEmoji(it.severity) %> <%= it.severity.charAt(0).toUpperCase() + it.severity.slice(1) %>: **<%= it.title %>** · <%= it.formatConfidence(it.confidence) %> confidence · <%= it.formatConfidence(it.likelihood) %> likelihood
5
5
 
6
6
  <%~ it.description %>
7
7
  <% if (it.sameRootNote) { -%>