Qodana Code Inspector
This skill runs Qodana static analysis on the current project and returns parsed inspection results in an easy-to-read format. It supports all JetBrains Qodana linters for comprehensive multi-language code analysis.
When to Use
Use this skill when you need to:
- Find code quality issues (unused code, redundant constructs, etc.)
- Detect potential bugs and problematic code patterns
- Check for JetBrains IDE inspections (IntelliJ IDEA, PyCharm, WebStorm, etc.)
- Get a list of issues to fix in the codebase
- Analyze code changes after modifications
- Perform language-specific static analysis across your tech stack
How to Use
Basic Usage
Run full project inspection (specify the appropriate linter for your project):
# Java/Kotlin project
bash .claude/skills/qodana-inspect/scripts/run-qodana.sh --linter qodana-jvm-community
# Python project
bash .claude/skills/qodana-inspect/scripts/run-qodana.sh --linter qodana-python-community
# TypeScript/JavaScript project
bash .claude/skills/qodana-inspect/scripts/run-qodana.sh --linter qodana-js
Incremental Analysis
Analyze only changes since a specific commit:
bash .claude/skills/qodana-inspect/scripts/run-qodana.sh --linter <linter-name> --diff-start <commit-hash>
Help
View all available linters and options:
bash .claude/skills/qodana-inspect/scripts/run-qodana.sh --help
Platform Fixes (Automatic)
The skill includes automatic platform-specific fixes for known Qodana issues. These fixes are applied automatically before analysis based on the selected linter.
PyCharm/Python Platform Fix
Issue: Qodana native mode for Python may fail to create jdk.table.xml, causing it to not recognize installed libraries from virtual environments (bug QD-11375).
Automatic Fix: When using qodana-python or qodana-python-community linters, the skill:
- Detects if
jdk.table.xml is missing in Qodana's config directory
- Extracts Python SDK configuration from
.idea/misc.xml
- Automatically generates
jdk.table.xml with proper paths to:
- Virtual environment site-packages
- Python standard library
- Python DLLs
Result: Eliminates false positives like:
PyTypeHintsInspection errors on valid PEP 604 union types (dict | None)
PyClassHasNoInitInspection errors on @dataclass classes
- Import resolution errors for installed packages
This fix is transparent and requires no user configuration. If the project has .idea/misc.xml with a configured Python SDK, the fix applies automatically.
Future Platform Fixes
The architecture supports adding fixes for other platforms:
- IntelliJ IDEA (JVM projects)
- WebStorm (JavaScript/TypeScript)
- Rider (.NET projects)
Output Format
The script returns results grouped by file:
=== FILE: src/main/kotlin/example/Example.kt ===
[HIGH] UnusedSymbol
Location: line 45, column 13
Message: Variable 'unusedVar' is never used
Code:
val unusedVar = "test"
---
[MODERATE] NamingConvention
Location: line 52, column 9
Message: Property name should follow naming convention
Code:
private val MyProperty = "value"
=== FILE: src/main/kotlin/example/Another.kt ===
...
Severity Levels
- HIGH: Important issues (unused code, potential bugs, API problems)
- MODERATE: Style and convention issues
- INFO: Informational notices
Available Linters
JVM Ecosystem
- qodana-jvm-community - Java, Kotlin, Groovy (Community, free)
- qodana-jvm - Java, Kotlin, Groovy (Ultimate, paid)
- qodana-jvm-android - Android development (Community, free)
- qodana-android - Android development (Ultimate, paid)
Web Development
- qodana-js - JavaScript, TypeScript (Ultimate, paid)
- qodana-php - PHP, JavaScript, TypeScript (Ultimate, paid)
.NET & C/C++
- qodana-cdnet - C#, VB.NET (Community, free)
- qodana-dotnet - C#, VB.NET, C, C++ (Ultimate, paid)
- qodana-clang - C, C++ (Community, free)
- qodana-cpp - C, C++ (Ultimate, paid)
Other Languages
- qodana-python-community - Python (Community, free)
- qodana-python - Python (Ultimate, paid)
- qodana-go - Go (Ultimate, paid)
- qodana-ruby - Ruby (Ultimate, paid)
Technical Details
- Mode: Native (no Docker required, uses
--within-docker=false)
- Output: Parsed SARIF JSON format
- Results location:
- Windows:
~/AppData/Local/JetBrains/Qodana/*/results/
- macOS:
~/Library/Caches/JetBrains/Qodana/*/results/
- Linux:
~/.cache/JetBrains/Qodana/*/results/
Requirements
- Qodana CLI must be installed (
qodana command available)
jq must be installed for JSON parsing
- Appropriate linter must be specified for the project's programming language
Notes
- Full scan typically takes 30 seconds to several minutes depending on project size
- Incremental scan with
--diff-start takes longer (analyzes two project states)
- Results include exact line/column numbers and code snippets for context
- Script filters out Qodana progress messages, showing only final results
- Cross-platform support: Windows, macOS, Linux
Limitations
- Quick-Fix auto-correction is not available in Community Edition linters
- You must manually fix identified issues using Edit tool
- Use code context and snippets provided in output to understand and fix problems
- Ultimate linters (qodana-jvm, qodana-js, qodana-python, etc.) require a license
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: qodana-inspect-23description: Run Qodana code inspection and get parsed results. Use when you need to analyze code quality, find unused code, detect potential bugs, or check for JetBrains IDE inspections. Supports all major programming languages (Java, Kotlin, Python, JavaScript, TypeScript, C#, C++, Go, Ruby, PHP). Returns structured list of problems grouped by file with severity, location, and code snippets. Use when this capability is needed.4---56# Qodana Code Inspector78This skill runs Qodana static analysis on the current project and returns parsed inspection results in an easy-to-read format. It supports all JetBrains Qodana linters for comprehensive multi-language code analysis.910## When to Use1112Use this skill when you need to:13- Find code quality issues (unused code, redundant constructs, etc.)14- Detect potential bugs and problematic code patterns15- Check for JetBrains IDE inspections (IntelliJ IDEA, PyCharm, WebStorm, etc.)16- Get a list of issues to fix in the codebase17- Analyze code changes after modifications18- Perform language-specific static analysis across your tech stack1920## How to Use2122### Basic Usage2324Run full project inspection (specify the appropriate linter for your project):2526```bash27# Java/Kotlin project28bash .claude/skills/qodana-inspect/scripts/run-qodana.sh --linter qodana-jvm-community2930# Python project31bash .claude/skills/qodana-inspect/scripts/run-qodana.sh --linter qodana-python-community3233# TypeScript/JavaScript project34bash .claude/skills/qodana-inspect/scripts/run-qodana.sh --linter qodana-js35```3637### Incremental Analysis3839Analyze only changes since a specific commit:4041```bash42bash .claude/skills/qodana-inspect/scripts/run-qodana.sh --linter <linter-name> --diff-start <commit-hash>43```4445### Help4647View all available linters and options:4849```bash50bash .claude/skills/qodana-inspect/scripts/run-qodana.sh --help51```5253## Platform Fixes (Automatic)5455The skill includes automatic platform-specific fixes for known Qodana issues. These fixes are applied automatically before analysis based on the selected linter.5657### PyCharm/Python Platform Fix5859**Issue:** Qodana native mode for Python may fail to create `jdk.table.xml`, causing it to not recognize installed libraries from virtual environments (bug QD-11375).6061**Automatic Fix:** When using `qodana-python` or `qodana-python-community` linters, the skill:621. Detects if `jdk.table.xml` is missing in Qodana's config directory632. Extracts Python SDK configuration from `.idea/misc.xml`643. Automatically generates `jdk.table.xml` with proper paths to:65 - Virtual environment site-packages66 - Python standard library67 - Python DLLs6869**Result:** Eliminates false positives like:70- `PyTypeHintsInspection` errors on valid PEP 604 union types (`dict | None`)71- `PyClassHasNoInitInspection` errors on `@dataclass` classes72- Import resolution errors for installed packages7374This fix is transparent and requires no user configuration. If the project has `.idea/misc.xml` with a configured Python SDK, the fix applies automatically.7576### Future Platform Fixes7778The architecture supports adding fixes for other platforms:79- IntelliJ IDEA (JVM projects)80- WebStorm (JavaScript/TypeScript)81- Rider (.NET projects)8283## Output Format8485The script returns results grouped by file:8687```88=== FILE: src/main/kotlin/example/Example.kt ===8990[HIGH] UnusedSymbol91Location: line 45, column 1392Message: Variable 'unusedVar' is never used93Code:94val unusedVar = "test"9596---9798[MODERATE] NamingConvention99Location: line 52, column 9100Message: Property name should follow naming convention101Code:102private val MyProperty = "value"103104=== FILE: src/main/kotlin/example/Another.kt ===105...106```107108## Severity Levels109110- **HIGH**: Important issues (unused code, potential bugs, API problems)111- **MODERATE**: Style and convention issues112- **INFO**: Informational notices113114## Available Linters115116### JVM Ecosystem117- **qodana-jvm-community** - Java, Kotlin, Groovy (Community, free)118- **qodana-jvm** - Java, Kotlin, Groovy (Ultimate, paid)119- **qodana-jvm-android** - Android development (Community, free)120- **qodana-android** - Android development (Ultimate, paid)121122### Web Development123- **qodana-js** - JavaScript, TypeScript (Ultimate, paid)124- **qodana-php** - PHP, JavaScript, TypeScript (Ultimate, paid)125126### .NET & C/C++127- **qodana-cdnet** - C#, VB.NET (Community, free)128- **qodana-dotnet** - C#, VB.NET, C, C++ (Ultimate, paid)129- **qodana-clang** - C, C++ (Community, free)130- **qodana-cpp** - C, C++ (Ultimate, paid)131132### Other Languages133- **qodana-python-community** - Python (Community, free)134- **qodana-python** - Python (Ultimate, paid)135- **qodana-go** - Go (Ultimate, paid)136- **qodana-ruby** - Ruby (Ultimate, paid)137138## Technical Details139140- **Mode**: Native (no Docker required, uses `--within-docker=false`)141- **Output**: Parsed SARIF JSON format142- **Results location**:143 - Windows: `~/AppData/Local/JetBrains/Qodana/*/results/`144 - macOS: `~/Library/Caches/JetBrains/Qodana/*/results/`145 - Linux: `~/.cache/JetBrains/Qodana/*/results/`146147## Requirements148149- Qodana CLI must be installed (`qodana` command available)150- `jq` must be installed for JSON parsing151- Appropriate linter must be specified for the project's programming language152153## Notes154155- Full scan typically takes 30 seconds to several minutes depending on project size156- Incremental scan with `--diff-start` takes longer (analyzes two project states)157- Results include exact line/column numbers and code snippets for context158- Script filters out Qodana progress messages, showing only final results159- Cross-platform support: Windows, macOS, Linux160161## Limitations162163- Quick-Fix auto-correction is not available in Community Edition linters164- You must manually fix identified issues using Edit tool165- Use code context and snippets provided in output to understand and fix problems166- Ultimate linters (qodana-jvm, qodana-js, qodana-python, etc.) require a license167168---169> Converted and distributed by [TomeVault](https://tomevault.io/claim/max-moro) — claim your Tome and manage your conversions.170<!-- tomevault:4.0:skill_md:2026-04-15 -->