Clustering & priorities
Rule groups, flat overflow records, and the deterministic priority 1–5 ladder.
Signalint groups diagnostics by normalized rule string, including across engines and severities. This is a deterministic heuristic—not semantic root-cause analysis or proof that one edit fixes every grouped diagnostic.
Cluster membership in schema 1.4
Section titled “Cluster membership in schema 1.4”- 2 or more issues with the same rule: one cluster, even when the group is local.
- More than 3 issues across more than 2 files: a systemic cluster.
- One occurrence: a flat
remainingIssuesrecord, not a one-issue cluster.
A summary such as 21 TS2322 issues across 11 files reports repetition and scope. It does not identify the dependency or edit responsible for it.
Priority ladder
Section titled “Priority ladder”1 is most urgent; 5 is least urgent. For each group, any error makes it an error group; fixability requires every issue to be marked fixable.
| Priority | Condition | Suggested reading order |
|---|---|---|
| 1 | Systemic group containing an error | Investigate repeated errors across files |
| 2 | Non-systemic error, not all issues fixable | Inspect the error details |
| 3 | Non-systemic error, all issues fixable | Review the diagnostics; no patch is supplied |
| 4 | Non-systemic warning, not all issues fixable | Review local warnings |
| 5 | Systemic warning or all-fixable warning | Review lower-priority warnings |
Systemic errors stay priority 1 even when every issue is marked fixable. Systemic warnings map to priority 5.
Ranking and overflow
Section titled “Ranking and overflow”Clusters are sorted by priority ascending, issue count descending, rule name, then the first issue’s deterministic ordering. The default response keeps the top 10 clusters.
Single issues and issues from demoted overflow groups are merged into a flat list. That list is sorted by each issue’s individual priority, then file, line, column, and ID, and capped at 100 records. A demoted systemic group’s records are no longer represented as a priority-1 cluster in that list.
omittedIssueCount counts flat records beyond 100. truncated: true means this flat cap was exceeded. More than 10 groups alone need not set truncated if their overflow records fit the flat list.
Request details deliberately
Section titled “Request details deliberately”Clusters with more than 2 issues include up to 2 distinct short sample IDs; two-issue clusters omit samples. Call get_issue_detail with a returned cluster ID or an emitted flat/sample issue ID.
fixable and suggestedAction are hints, not edit patches or safety guarantees. Prefixes distinguish distinct hashes within a check, not all real-world diagnostics. See reference identity limits.
Omitted flat IDs are not automatically exposed. get_live_diagnostics returns the full latest internal/buffered array, but there is no historical snapshot pagination. Use that filtered live view, narrower known paths or native engines when the summary cannot identify what you need.
CLI failure thresholds
Section titled “CLI failure thresholds”npx --no-install signalint check . --fail-on-priority 3In 1.2.1, this examines returned clusters and returned flat records. Flat records have their priority calculated from severity/fixability if no priority is present. Omitted records and engine errors do not independently force a thresholded failure. Inspect status and engines as well; see CLI thresholds.
Source: clusterEngine.ts and cli.ts.