resolve-diagnostics
Skill20 starsChanged 26 days agoUnlicenseView on GitHub
Resolves IDE diagnostics (inspections and analyzer findings) at the `warning` or higher severity level for a given set of files. Use this skill when a workflow's refactoring step calls for resolving diagnostics, or when the user asks to fix warnings, inspections, or static analysis findings in specific files.
In this repository9 other files it gives its agents.
- code-writing-guideSkill
- edit-sceneSkill
- fix-bugSkill
- plan-featureSkill
- refine-testsSkill
- run-testsSkill
- test-designing-guideSkill
- test-writing-guideSkill
- unity-yaml-editing-guideSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 2 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 24
If no path argument is given, use AskUserQuestion to ask the user for the targets.
- Distinctive: line 27
If the script exits with code 3, stop and report that — there is nothing to resolve.
- Very specific: line 35
Read its resources/diagnostics-review-feedback.md before deciding any diagnostic in Step 2.
- Very specific: line 37
Never leave a warning-or-higher diagnostic unaddressed — each one is either fixed or explicitly suppressed per the criteria just read.
- Very specific: line 50
If the call errors, fall back to get_file_problems, called once per file
- Very specific: line 52
If a timeout persists, use AskUserQuestion to confirm the user is running Rider 2026.2 or later before retrying further
- Very specific: line 57
When a fix is a rename (naming-convention inspections) or a symbol removal (unused-member findings), apply it via rename_refactoring / …
- Very specific: line 61
Do not use mcp__ide__getDiagnostics (limited to files open in editor tabs) or the Unity compiler output (does not reflect .editorconfig …
- Very specific: line 66
Call reformat_file once with the full list of files resolved in Input (not one call per file), passing rootFolder as the project/solution …
- Very specific: line 71
If any file was modified in Step 2 — a fix or a suppression — load the run-tests skill (do not rely on automatic skill triggering) and run …
- Distinctive: line 78
If any diagnostic was suppressed rather than fixed, list each one for the user together with its reason.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Resolves IDE diagnostics at the warning or higher severity level for the given files, reformats
them to the solution's code style, then runs the tests.
Input
One or more file or directory path arguments. Resolve them with
${CLAUDE_SKILL_DIR}/scripts/resolve-targets.sh <unity-project-root> <path>... — it prints the
project-root-relative path of every .cs file in the solution, one per line, in the form
lint_files, get_file_problems, and reformat_file expect, and reports each dropped path
(docs, .meta, .asmdef, assets, files outside the solution) on stderr. Use that list as-is.
If no path argument is given, use AskUserQuestion to ask the user for the targets. Do not derive
targets from git status — that would silently widen the scope beyond what was requested.
If the script exits with code 3, stop and report that — there is nothing to resolve.
Workflow
Step 1: Load the Coding Guide
- Load the
code-writing-guideskill — do not rely on automatic skill triggering. Every fix applied in Step 2 must follow it. - Read its
resources/diagnostics-review-feedback.mdbefore deciding any diagnostic in Step 2.
Never leave a warning-or-higher diagnostic unaddressed — each one is either fixed or explicitly
suppressed per the criteria just read.
Step 2: Resolve Diagnostics
Resolve diagnostics at the warning or higher severity level, collecting them for all resolved
files via lint_files rather than one file at a time. By default the tools also return
suggestion- and hint-level results — those are out of scope, with one exception: a
suggestion-level diagnostic related to performance (execution speed, memory allocation, boxing,
etc.) should be considered for fixing too, though it never requires suppression when declined.
Both lint_files and its fallback get_file_problems require Rider 2026.2 or later.
lint_files— pass every resolved file in one call- If the call errors, fall back to
get_file_problems, called once per file - On a
timedOutormoreresult, retry the outstanding file(s) withget_file_problems - If a timeout persists, use
AskUserQuestionto confirm the user is running Rider 2026.2 or later before retrying further - Files reported as not analyzed carry into Step 5 as skipped
- If the call errors, fall back to
- Decide each diagnostic per the criteria read in Step 1, and apply all resulting changes as a
single set per file
- When a fix is a rename (naming-convention inspections) or a symbol removal (unused-member
findings), apply it via
rename_refactoring/safe_deleteso references are updated across the solution
- When a fix is a rename (naming-convention inspections) or a symbol removal (unused-member
findings), apply it via
Do not use mcp__ide__getDiagnostics (limited to files open in editor tabs) or the Unity compiler
output (does not reflect .editorconfig severity settings).
Step 3: Reformat
Call reformat_file once with the full list of files resolved in Input (not one call per file),
passing rootFolder as the project/solution root.
Step 4: Run Tests
If any file was modified in Step 2 — a fix or a suppression — load the run-tests skill (do not
rely on automatic skill triggering) and run the tests for the affected assemblies, then confirm they
still pass. Step 3's reformatting alone does not change behavior, so skip this step when Step 2
applied no changes.
Step 5: Report Suppressions and Known-Issue Items
If any diagnostic was suppressed rather than fixed, list each one for the user together with its reason. The suppression site itself already carries a "why not" comment per the Step 1 criteria.
Also list any files skipped in Step 2 as not analyzed, together with the reason given.
Also list any diagnostics handled under the Gotchas below, each with the user-verification request described there.
Gotchas
Suppression comment format:
- The
// ReSharper disable once <InspectionName>form works only for ReSharper's built-in inspections (e.g.,RedundantEmptySwitchSection) — it has no effect on Roslyn analyzer diagnostics. To suppress an analyzer diagnostic, wrap the code in#pragma warning disable <ID>/#pragma warning restore <ID>using the analyzer's diagnostic ID (e.g.,NUnit2007).
Known issues in lint_files / get_file_problems as of Rider 2026.2.1:
- RIDER-142275: inspections from ReSharper plugins are returned with an empty description. Do not guess what such a diagnostic means or attempt a fix — leave it as is, and in Step 5 ask the user to open the file in the editor and check what the inspection actually reports (e.g., whether it is a complexity finding).
- RIDER-142276: Roslyn analyzer diagnostics
that are already suppressed in source are still reported. Once a
#pragma warning disablefor the diagnostic is in place, treat it as resolved and move on even if the tools keep reporting it — do not re-fix or re-suppress. In Step 5, ask the user to confirm the suppression is effective in the editor.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

