From qlty-skills
Configure and fine-tune qlty.toml for static analysis using the Qlty CLI and Qlty Cloud. Use this skill when a user wants to set up Qlty for the first time, improve an existing qlty.toml configuration, choose which linters and security scanners to enable, configure plugin modes (block/comment/monitor), set code smell thresholds, or tune exclude patterns. Handles single repos and monorepos. Supports all Qlty-supported languages: JavaScript, TypeScript, Python, Ruby, Go, Java, Kotlin, PHP, Rust, Swift, Shell, CSS, SQL, Terraform, Docker, and more. Do NOT use for code coverage setup (use setup-coverage instead), writing or running tests, or general CI/CD changes unrelated to Qlty analysis.
How this skill is triggered — by the user, by Claude, or both
Slash command
/qlty-skills:setup-qlty-tomlThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are a senior software engineer configuring Qlty static analysis for this repository. Work through these phases in order.
You are a senior software engineer configuring Qlty static analysis for this repository. Work through these phases in order.
Scope constraint: This skill only creates or modifies files inside .qlty/. Never touch anything else in the repository — no source files, no existing tool configs, no CI workflows, nothing outside .qlty/. Files generated by qlty init itself (e.g. .qlty/.gitignore) are acceptable.
When configuring plugins, apply this decision tree — never copy or modify files outside .qlty/:
config_files to point to it in placeextra_packages.qlty/configs/ and reference it via config_files.qlty/ → comment it out with a note explaining what the user would need to do manuallyFor all plugin configuration options (config_files, extra_packages, prefix, drivers, version, affects_cache, etc.): https://docs.qlty.sh/cli/linter-extensions
Check Qlty state — this determines your mode for the entire run:
.qlty/qlty.toml → run qlty init to generate the baseline. Plugin selection is qlty init's job — do not second-guess which plugins it enables. Your job is to fine-tune the generated config (Phases 2–4)..qlty/qlty.toml → read it carefully. You are refining, not replacing. After fine-tuning, scan for plugins that are clearly absent but strongly signaled by the repo (e.g. a tool config file with no matching plugin block). Surface at most 2–3 recommendations in the PR description — do not add them automatically.Catalog the repo:
extra_packages.gitignore for hints. See https://docs.qlty.sh/cli/excluding-files.mdqlty check is already in .github/workflows/Produce a brief summary of findings before moving on.
Fetch only what you need — do not read everything upfront.
Primary source of truth — the Qlty plugins repo:
https://github.com/qltysh/qlty/tree/main/qlty-plugins/plugins
Each individual linter lives under linters/{plugin-name}/. Fetch these two files for every plugin you're enabling:
plugin.toml: https://raw.githubusercontent.com/qltysh/qlty/main/qlty-plugins/plugins/linters/{plugin-name}/plugin.toml
Ground truth for Qlty integration: known good version, valid driver values, auto-detected config files, required packages, cache invalidation files.
README.md: https://raw.githubusercontent.com/qltysh/qlty/main/qlty-plugins/plugins/linters/{plugin-name}/README.md
How the plugin behaves in Qlty: known issues, version notes, usage examples, caveats.
Secondary sources — fetch only when needed:
Plugin source repo README: upstream URL is in plugin.toml (homepage field). Fetch when you need to understand the tool's own config format, available rules, parsers, or extensions.
qlty.toml field reference: https://docs.qlty.sh/cli/qlty-toml.md
Before writing the config, use the AskUserQuestion tool to present all tunable decisions as interactive buttons in a single call (up to 4 questions). Populate plugin names from Phase 1 findings. Always put the recommended option first with "(Recommended)" in the label.
If running autonomously (eval or non-interactive): skip the prompt and apply all defaults.
Questions to ask:
Security scanners ({trivy, osv-scanner, trufflehog, …})
Language linters ({eslint, golangci-lint, rubocop, …})
Code smells & complexity — see https://docs.qlty.sh/code-smells.md and https://docs.qlty.sh/complexity.md
Complexity thresholds
Add to each question description: "You can always fine-tune these later by updating qlty.toml."
Apply choices (or defaults if dismissed) and proceed to Phase 4 — no further confirmation.
Always apply autonomously (not in the prompt):
comment.qlty/qlty.tomlFull field reference: https://docs.qlty.sh/cli/qlty-toml.md
CRITICAL — these all cause "Build errored":
[cli] or [settings] sections from qlty init output[[sources.community]] format — use [[source]] name = "default" default = true[plugins.enabled] / [[plugins.enabled]] format — use [[plugin]] blocksexclude_patterns as a section — it must be a top-level array[[source]] block is required — without it Qlty cannot resolve plugins. Do NOT set directory to a URLqlty check --sample
Catches runtime crashes that TOML syntax validation misses. For each plugin that errors: read the debug .yaml Qlty prints, check https://docs.qlty.sh/cli/debugging, attempt a fix. If not fixable, comment out the [[plugin]] block with a one-line explanation. Do not open the PR while any plugin is erroring — one erroring plugin causes "Build errored" for the entire cloud build.
qlty-setup.qlty/Plugins enabled: N
BLOCK {plugin} — {what it covers}
COMMENT {plugin} — {what it covers}
MONITOR {plugin} — {what it covers}
Smells: {enabled/disabled}, {mode}, {any non-default thresholds}
Skipped or commented out: N
{plugin} — {reason; what the user would need to do to enable it}
Plugin configs created in .qlty/configs/: N
{file} — used by {plugin}
Tell the user what to verify in Qlty Cloud (requires the web UI, not qlty.toml):
https://qlty.sh/gh/<org> — confirm the repo is listed; if not, install the Qlty GitHub Apphttps://qlty.sh/gh/<org>/projects/<repo>/settings/review — confirm block-mode plugins fail the gatehttps://qlty.sh/gh/<org>/projects/<repo>qlty check to CI if not already thereqlty-ignore comments — see https://docs.qlty.sh/cli/silencing-issues.mdnpx claudepluginhub qltysh/qlty-skills --plugin qlty-skillsGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.