Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Code quality checks, formatting, and metrics via qlty CLI
.claude/skills/qlty-check/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 176% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -27% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -37% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 22% | 0% |
Universal code quality tool supporting 70+ linters for 40+ languages via qlty CLI.
bash# Check changed files with auto-fix uv run python -m runtime.harness scripts/qlty_check.py --fix # Check all files uv run python -m runtime.harness scripts/qlty_check.py --all # Format files uv run python -m runtime.harness scripts/qlty_check.py --fmt # Get metrics uv run python -m runtime.harness scripts/qlty_check.py --metrics # Find code smells uv run python -m runtime.harness scripts/qlty_check.py --smells
| Parameter | Description | |-----------|-------------| | --check | Run linters (default) | | --fix | Auto-fix issues | | --all | Process all files, not just changed | | --fmt | Format files instead | | --metrics | Calculate code metrics | | --smells | Find code smells | | --paths | Specific files/directories | | --level | Min issue level: note/low/medium/high | | --cwd | Working directory | | --init | Initialize qlty in a repo | | --plugins | List available plugins |
bash# Auto-fix what's possible, see what remains uv run python -m runtime.harness scripts/qlty_check.py --fix
bash# Get metrics for changed code uv run python -m runtime.harness scripts/qlty_check.py --metrics # Find complexity hotspots uv run python -m runtime.harness scripts/qlty_check.py --smells
bashuv run python -m runtime.harness scripts/qlty_check.py --init --cwd /path/to/repo
bash# Check changed files qlty check # Auto-fix qlty check --fix # JSON output qlty check --json # Format qlty fmt
servers/qlty/server.py wraps CLI.qlty/qlty.toml in repo (run qlty init first)| Tool | Use Case | |------|----------| | qlty | Unified linting, formatting, metrics for any language | | ast-grep | Structural code patterns and refactoring | | morph | Fast text search |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 5,674 | 2,698 | -52% | 1 | 1 | 0% | 935 | 957 | +2% | 0 | 0 | — |
case-02 | fail→fail | 7,523 | 4,618 | -39% | 1 | 1 | 0% | 1,221 | 985 | -19% | 0 | 0 | — |
case-03 | fail→pass | 3,269 | 5,885 | +80% | 1 | 1 | 0% | 343 | 947 | +176% | 0 | 0 | — |
case-04 | fail→pass | 7,144 | 2,073 | -71% | 1 | 1 | 0% | 1,384 | 1,006 | -27% | 0 | 0 | — |
case-05 | fail→pass | 9,365 | 2,233 | -76% | 1 | 1 | 0% | 1,699 | 1,067 | -37% | 0 | 0 | — |
case-06 | fail→fail | 7,271 | 2,762 | -62% | 1 | 1 | 0% | 1,167 | 981 | -16% | 0 | 0 | — |
case-07 | pass→fail | 5,564 | 4,272 | -23% | 1 | 1 | 0% | 1,040 | 890 | -14% | 0 | 0 | — |
case-08 | fail→pass | 7,001 | 4,412 | -37% | 1 | 1 | 0% | 1,132 | 1,379 | +22% | 0 | 0 | — |
case-09 | pass→pass | 8,280 | 2,834 | -66% | 1 | 1 | 0% | 1,659 | 1,193 | -28% | 0 | 0 | — |
case-10 | fail→pass | 7,007 | 1,348 | -81% | 1 | 1 | 0% | 1,273 | 855 | -33% | 0 | 0 | — |
case-11 | fail→pass | 8,694 | 1,875 | -78% | 1 | 1 | 0% | 1,592 | 971 | -39% | 0 | 0 | — |
case-12 | pass→pass | 6,874 | 2,775 | -60% | 1 | 1 | 0% | 1,278 | 1,148 | -10% | 0 | 0 | — |
case-13 | pass→pass | 3,901 | 1,174 | -70% | 1 | 1 | 0% | 605 | 803 | +33% | 0 | 0 | — |
case-14 | fail→pass | 7,001 | 2,555 | -64% | 1 | 1 | 0% | 1,047 | 966 | -8% | 0 | 0 | — |
case-15 | fail→pass | 4,632 | 1,550 | -67% | 1 | 1 | 0% | 733 | 871 | +19% | 0 | 0 | — |
case-16 | fail→pass | 8,850 | 1,250 | -86% | 1 | 1 | 0% | 1,698 | 822 | -52% | 0 | 0 | — |
case-17 | fail→pass | 10,631 | 3,203 | -70% | 1 | 1 | 0% | 1,904 | 1,211 | -36% | 0 | 0 | — |
case-18 | fail→pass | 11,604 | 2,884 | -75% | 1 | 1 | 0% | 1,981 | 1,131 | -43% | 0 | 0 | — |
case-19 | fail→pass | 10,605 | 2,547 | -76% | 1 | 1 | 0% | 1,864 | 1,173 | -37% | 0 | 0 | — |
case-20 | pass→pass | 10,596 | 3,168 | -70% | 1 | 1 | 0% | 1,978 | 1,269 | -36% | 0 | 0 | — |
case-21 | pass→pass | 11,811 | 4,001 | -66% | 1 | 1 | 0% | 1,943 | 1,300 | -33% | 0 | 0 | — |
case-22 | pass→pass | 10,018 | 6,892 | -31% | 1 | 1 | 0% | 1,924 | 1,956 | +2% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +55 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 7/31/2026 | +64% |
Other measured skills in the registry, with their headline benchmark lift.