diagnostic_hotspots

[diagnostics]

Groups diagnostics into hotspots by file, project, category, or ID so you can plan cleanup before drilling into raw diagnostics.

Why this tool exists

Diagnostics are the fastest objective signal that a change broke something or that an existing hotspot needs attention.

How it helps the agent

The model can ask for filtered, paged, or grouped diagnostics before and after edits instead of waiting for a full build transcript.

Try it locally in the Glider playground

Parameters

NameTypeRequiredDescription
filePathstringNoOptional file path filter.
projectNamestringNoOptional project name filter.
diagnosticSourcestringNoDiagnostic source: 'compiler' (default), 'all', or 'analyzer'.
severitystringNoMinimum severity: 'error', 'warning', 'info', or 'hidden'. Default is 'warning'.
categorystringNoOptional category filter (e.g., 'Compiler', 'Style').
idPrefixstringNoOptional diagnostic ID prefix filter (e.g., 'CS', 'CA', 'IDE').
groupBystringNoPrimary grouping: 'file' (default), 'project', 'category', or 'id'.
includeExamplesbooleanNoInclude example diagnostics inside each hotspot group. Default is false.
maxExamplesPerGroupnumberNoMaximum example diagnostics to include per group when includeExamples=true. Default is 3. Use 0 for none.
pathStylestringNoPath style: 'absolute' (default) or 'relative' (to solution root).
sortBystringNoOptional sort: 'count' (default), 'errorCount', 'warningCount', 'infoCount', or 'key'.
sortOrderstringNoSort order: 'desc' (default) or 'asc'.
skipnumberNoPagination offset. Default is 0.
takenumberNoPagination size. Default is 50.

Examples

Group compiler diagnostics by file

Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "diagnostic_hotspots",
    "arguments": {
      "groupBy": "file"
    }
  }
}
Response
{
  "success": true,
  "data": {
    "restoreHints": [],
    "restoreHintsOmittedProjectCount": 0,
    "restoreHintsNextStep": null,
    "groupBy": "file",
    "groupCount": 1,
    "paging": {
      "skip": 0,
      "take": 50,
      "returned": 1,
      "total": 1
    },
    "comReferenceHints": [],
    "groups": [
      {
        "key": "/path/to/UserService.cs",
        "totalCount": 4,
        "errorCount": 1,
        "warningCount": 3,
        "infoCount": 0,
        "examples": [
          {
            "id": "CS8602",
            "severity": "Warning",
            "lineNumber": 42,
            "message": "Dereference of a possibly null reference."
          }
        ]
      }
    ]
  },
  "error": null
}

Show analyzer hotspots with examples

Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "diagnostic_hotspots",
    "arguments": {
      "diagnosticSource": "analyzer",
      "groupBy": "category",
      "includeExamples": true
    }
  }
}
Response
{
  "success": true,
  "data": {
    "restoreHints": [],
    "restoreHintsOmittedProjectCount": 0,
    "restoreHintsNextStep": null,
    "groupBy": "file",
    "groupCount": 1,
    "paging": {
      "skip": 0,
      "take": 50,
      "returned": 1,
      "total": 1
    },
    "comReferenceHints": [],
    "groups": [
      {
        "key": "/path/to/UserService.cs",
        "totalCount": 4,
        "errorCount": 1,
        "warningCount": 3,
        "infoCount": 0,
        "examples": [
          {
            "id": "CS8602",
            "severity": "Warning",
            "lineNumber": 42,
            "message": "Dereference of a possibly null reference."
          }
        ]
      }
    ]
  },
  "error": null
}

Response Notes

Returns grouped diagnostics with severity totals and optional examples. comReferenceHints identifies missing COM wrappers and the build or reload remedy. Analyzer-only responses have no restore hints. restoreHints lists up to 20 projects with relevant compiler errors, diagnosticIds, unverified restoreState, and restore/build plus reload advice. restoreHintsOmittedProjectCount and restoreHintsNextStep explain how to request omitted projects with projectName. Glider preserves compiler errors and does not run restore or infer restore state from asset paths or timestamps.

↑/↓ NavigateEnter OpenSpace Expand