Skip to content
DocumentationReferencev1.2.1

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.

  • 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 remainingIssues record, 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.

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.

PriorityConditionSuggested reading order
1Systemic group containing an errorInvestigate repeated errors across files
2Non-systemic error, not all issues fixableInspect the error details
3Non-systemic error, all issues fixableReview the diagnostics; no patch is supplied
4Non-systemic warning, not all issues fixableReview local warnings
5Systemic warning or all-fixable warningReview lower-priority warnings

Systemic errors stay priority 1 even when every issue is marked fixable. Systemic warnings map to priority 5.

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.

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.

Terminal window
npx --no-install signalint check . --fail-on-priority 3

In 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.