What happened?
I can't get the Stylelint plugin to work in my monorepo.
I've tried multiple different configurations without success. Here's the latest one:
[[plugin]]
name = "stylelint"
version = "17.3.0"
prefix = "client-apps/auth"
config_files = ["stylelint.config.ts"]
package_file = "package.json"
package_filters = ["stylelint", "typescript"]
See below for the entire qlty.toml config.
Here's AI's (Opus 4.6) diagnosis:
The issue is a fundamental limitation in Qlty's Stylelint driver — it installs the packages but doesn't set up module resolution correctly for Stylelint's extends/plugins string resolver. This is different from ESLint, where the flat config uses import statements that Node resolves at load time. Qlty would need to pass --config-basedir pointing to its tool cache or set NODE_PATH — but there's no qlty.toml option to control either of those.
I'm on the latest version of Stylelint and using .ts for the config file: stylelint.config.ts.
Full qlty.toml config
# For a guide to configuration, visit https://qlty.sh/d/config
# Or for a full reference, visit https://qlty.sh/d/qlty-toml
config_version = "0"
exclude_patterns = [
"*_min.*",
"*-min.*",
"*.min.*",
"**/*.d.ts",
"**/build/**",
"**/cache/**",
"**/dist/**",
"**/node_modules/**",
"**/.pnpm-store/**",
"**/testdata/**",
"**/vendor/**",
"tools/**",
"documentation/**",
"checkbox-migrations/**",
"client/**",
"kong-sync-configuration/**",
"runtime/**",
"auth/scripts/**",
"**/coverage/**"
]
test_patterns = [
"**/test/**",
"**/spec/**",
"**/*.test.*",
"**/*.spec.*",
"**/*_test.*",
"**/*_spec.*",
"**/test_*.*",
"**/spec_*.*",
"**/__tests__/**",
]
[smells]
mode = "comment"
[[source]]
name = "default"
default = true
[[plugin]]
name = "actionlint"
[[plugin]]
name = "checkov"
[[plugin]]
name = "eslint"
prefix = "auth"
config_files = ["eslint.config.mjs"]
package_file = "package.json"
package_filters = ["eslint", "prettier"]
[[plugin]]
name = "eslint"
prefix = "validator"
config_files = ["eslint.config.mjs"]
package_file = "package.json"
package_filters = ["eslint", "prettier"]
[[plugin]]
name = "eslint"
prefix = "client-apps/auth"
config_files = ["eslint.config.js"]
package_file = "package.json"
package_filters = ["eslint", "prettier"]
[[plugin]]
name = "stylelint"
version = "17.3.0"
prefix = "client-apps/auth"
config_files = ["stylelint.config.ts"]
package_file = "package.json"
package_filters = ["stylelint", "typescript"]
[[plugin]]
name = "golangci-lint"
[[plugin]]
name = "knip"
[[plugin]]
name = "osv-scanner"
[[plugin]]
name = "radarlint-js"
[[plugin]]
name = "ripgrep"
mode = "comment"
[[plugin]]
name = "trivy"
drivers = ["config", "fs-vuln"]
[[plugin]]
name = "trufflehog"
[[plugin]]
name = "yamllint"
[[exclude]]
plugins = ["yamllint"]
file_patterns = ["**/pnpm-lock.yaml"]
[[check]]
name = "auth-frontend"
type = "coverage"
only_changed = true
on = ["pull_request"]
paths = ["client-apps/auth/**"]
[check.reports]
lcov = ["client-apps/auth/coverage/lcov.info"]
[check.thresholds]
diff = 70
total = 80
What did you expect to happen?
For it to work (report on CSS violations as per local npm lint:css)
Can you reproduce the problem?
Yes, consistently
CLI Version
N/A - Qlty cloud
Relevant log output
Running install...
sh -c curl https://qlty.sh/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
[REDACTED] 0 0 378k 0 --:--:-- --:--:-- --:--:-- 382k
###################################################### 76.0%
######################################################################## 100.0%
qlty was installed successfully to ~/.qlty/bin/qlty
Run 'qlty' to get started
sh -c qlty version --no-upgrade-check
2026-02-19T07:10:58Z INFO [T1] qlty (8.2 MB): Executing command: qlty version --no-upgrade-check
2026-02-19T07:10:58Z INFO [T1] qlty (8.2 MB): Command executed successfully in 0.00s: qlty version --no-upgrade-check
qlty 0.613.0 linux-x64 (5de6930 2026-02-14)
Running build for https://github.com/Checkbox-Technology-Pty-Ltd/cbdev...
Running checkout...
Operating System
. Debian GNU/Linux 13 (trixie)
Working directory is '/home/runner/work'
git version 2.47.3
Changing directory to /home/runner/work/cbdev
git init --quiet
Access token provided for git checkout. Using HTTPs clone URLs.
git remote add origin https://github.com/Checkbox-Technology-Pty-Ltd/cbdev
Fetching with depth 100...
Fetching refs/pull/3846/head...
git -c protocol.version=2 fetch --no-tags --no-recurse-submodules --depth=100 origin refs/pull/3846/head:refs/remotes/origin/refs/pull/3846/head
From https://github.com/Checkbox-Technology-Pty-Ltd/cbdev
* [new ref] refs/pull/3846/head -> origin/refs/pull/3846/head
Fetching dev...
git -c protocol.version=2 fetch --no-tags --no-recurse-submodules --depth=100 origin dev:refs/remotes/origin/dev
From https://github.com/Checkbox-Technology-Pty-Ltd/cbdev
* [new branch] dev -> origin/dev
git merge-base refs/remotes/origin/refs/pull/3846/head refs/remotes/origin/dev
6f30b7d4df788eceebe636b1caa071ae506182f8
Base commit for upstream branches 'refs/pull/3846/head' and 'dev' found at depth 100
Checkout refs/pull/3846/head
git checkout refs/pull/3846/head
Switched to a new branch 'refs/pull/3846/head'
branch 'refs/pull/3846/head' set up to track 'origin/refs/pull/3846/head'.
git rev-parse HEAD
17a074e06121cc547ec8276862812b0861126b0e
qlty version --no-upgrade-check
qlty 0.613.0 linux-x64 (5de6930 2026-02-14)
Skipping qlty init because config already exists.
Skipping cached tools installation due to missing cache URLs.
qlty check --no-upgrade-check --install-only --upstream origin/dev
2026-02-19T07:11:07Z INFO [T1] qlty (8.2 MB): Executing command: qlty check --no-upgrade-check --install-only --upstream origin/dev
WARNING: The `check` entry in qlty.toml is not part of the supported configuration and will be ignored.
2026-02-19T07:11:07Z INFO [T10] qlty_check::planner::plugin (9.7 MB): Found 3 workspace_entries for plugin eslint
2026-02-19T07:11:07Z INFO [T5] qlty_check::planner::plugin (9.7 MB): Found 1 workspace_entries for plugin osv-scanner
2026-02-19T07:11:07Z INFO [T4] qlty_check::planner::plugin (9.9 MB): Found 1 workspace_entries for plugin actionlint
2026-02-19T07:11:07Z INFO [T6] qlty_check::planner::plugin (9.9 MB): Found 3 workspace_entries for plugin checkov
2026-02-19T07:11:07Z INFO [T9] qlty_check::planner::plugin (9.9 MB): Found 1 workspace_entries for plugin stylelint
2026-02-19T07:11:07Z INFO [T11] qlty_check::planner::plugin (9.8 MB): Found 3 workspace_entries for plugin knip
2026-02-19T07:11:07Z INFO [T5] qlty_check::planner::plugin (9.8 MB): Found 3 workspace_entries for plugin radarlint-js
2026-02-19T07:11:07Z INFO [T11] qlty_check::planner::plugin (9.8 MB): Found 4 workspace_entries for plugin ripgrep
2026-02-19T07:11:07Z INFO [T6] qlty_check::planner::plugin (9.8 MB): Found 8 workspace_entries for plugin trufflehog
2026-02-19T07:11:08Z INFO [T4] qlty_check::planner::plugin (9.8 MB): Found 1 workspace_entries for plugin yamllint
2026-02-19T07:11:08Z INFO [T6] qlty_check::planner::driver (9.9 MB): Found 2 workspace_entries for plugins driver trivy.config
2026-02-19T07:11:08Z INFO [T6] qlty_check::planner::driver (10.0 MB): Found 1 workspace_entries for plugins driver trivy.fs-vuln
2026-02-19T07:11:08Z INFO [T1] qlty_check::planner (9.2 MB): Found 8 CPUs, setting max threads to 8
2026-02-19T07:11:08Z INFO [T1] qlty_check::planner (9.3 MB): Planned 11 invocations (0 cache hits) in 0.72s
2026-02-19T07:11:08Z INFO [T17] qlty_check::tool (9.3 MB): Setting up tool trivy@Some("0.67.2"). Logging to /home/runner/.qlty/cache/tools/trivy/0.67.2-a3319237d6b1-install.log
2026-02-19T07:11:08Z INFO [T14] qlty_check::tool (9.3 MB): Setting up tool python@Some("3.11.7"). Logging to /home/runner/.qlty/cache/tools/python/3.11.7-0b1ed67b5e8f-install.log
2026-02-19T07:11:08Z INFO [T16] qlty_check::tool (9.3 MB): Setting up tool ripgrep@Some("14.1.1"). Logging to /home/runner/.qlty/cache/tools/ripgrep/14.1.1-f36e570a0161-install.log
2026-02-19T07:11:08Z INFO [T15] qlty_check::tool (9.3 MB): Setting up tool node@Some("21.7.3"). Logging to /home/runner/.qlty/cache/tools/node/21.7.3-3f206cb4295e-install.log
2026-02-19T07:11:08Z INFO [T17] qlty_check::tool::github (9.3 MB): Fetching release assets from aquasecurity/trivy from 'v0.67.2' tag
2026-02-19T07:11:08Z INFO [T16] qlty_check::tool::github (9.3 MB): Fetching release assets from BurntSushi/ripgrep from 'v14.1.1' tag
2026-02-19T07:11:08Z INFO [T15] qlty_check::tool::download (9.3 MB): Downloading (tar.gz) https://nodejs.org/dist/v21.7.3/node-v21.7.3-linux-x64.tar.gz
2026-02-19T07:11:08Z INFO [T15] qlty_check::tool::download (9.3 MB): Downloading https://nodejs.org/dist/v21.7.3/node-v21.7.3-linux-x64.tar.gz
2026-02-19T07:11:08Z INFO [T14] qlty_check::tool::download (9.3 MB): Downloading (tar.gz) https://github.com/indygreg/python-build-standalone/releases/download/20240107/cpython-3.11.7[REDACTED]-x86_64-unknown-linux-gnu-install_only.tar.gz
2026-02-19T07:11:08Z INFO [T14] qlty_check::tool::download (9.3 MB): Downloading https://github.com/indygreg/python-build-standalone/releases/download/20240107/cpython-3.11.7[REDACTED]-x86_64-unknown-linux-gnu-install_only.tar.gz
2026-02-19T07:11:08Z INFO [T19] qlty_check::tool (9.4 MB): Setting up tool java@Some("22.0.1+8"). Logging to /home/runner/.qlty/cache/tools/java/22.0.1+8-9515e512e4f0-install.log
2026-02-19T07:11:08Z INFO [T19] qlty_check::tool::download (9.4 MB): Downloading (tar.gz) https://github.com/adoptium/temurin22-binaries/releases/download/jdk-22.0.1+8/OpenJDK22U-jdk_x64_linux_hotspot_22.0.1_8.tar.gz
2026-02-19T07:11:08Z INFO [T19] qlty_check::tool::download (9.4 MB): Downloading https://github.com/adoptium/temurin22-binaries/releases/download/jdk-22.0.1+8/OpenJDK22U-jdk_x64_linux_hotspot_22.0.1_8.tar.gz
2026-02-19T07:11:08Z INFO [T16] qlty_check::tool::github (9.6 MB): Fetching release assets from BurntSushi/ripgrep from '14.1.1' tag
2026-02-19T07:11:08Z INFO [T17] qlty_check::tool::download (9.7 MB): Downloading (tar.gz) https://github.com/aquasecurity/trivy/releases/download/v0.67.2/trivy_0.67.2_Linux-64bit.tar.gz
2026-02-19T07:11:08Z INFO [T17] qlty_check::tool::download (9.7 MB): Downloading https://github.com/aquasecurity/trivy/releases/download/v0.67.2/trivy_0.67.2_Linux-64bit.tar.gz
2026-02-19T07:11:08Z INFO [T16] qlty_check::tool::download (9.5 MB): Downloading (tar.gz) https://github.com/BurntSushi/ripgrep/releases/download/14.1.1/ripgrep-14.1.1-x86_64-unknown-linux-musl.tar.gz
2026-02-19T07:11:08Z INFO [T16] qlty_check::tool::download (9.5 MB): Downloading https://github.com/BurntSushi/ripgrep/releases/download/14.1.1/ripgrep-14.1.1-x86_64-unknown-linux-musl.tar.gz
2026-02-19T07:11:08Z INFO [T16] qlty_check::tool::download (9.7 MB): Extracting to /home/runner/.qlty/cache/tools/ripgrep/14.1.1-f36e570a0161
2026-02-19T07:11:08Z INFO [T16] qlty_check::tool (9.6 MB): Validated tool: rg --version: 14.1.1
2026-02-19T07:11:08Z INFO [T16] qlty_check::tool (9.6 MB): Set up ripgrep@Some("14.1.1") in 0.09s
2026-02-19T07:11:08Z INFO [T17] qlty_check::tool::download (9.8 MB): Extracting to /home/runner/.qlty/cache/tools/trivy/0.67.2-a3319237d6b1
2026-02-19T07:11:08Z INFO [T15] qlty_check::tool::download (9.8 MB): Extracting to /home/runner/.qlty/cache/tools/node/21.7.3-3f206cb4295e
2026-02-19T07:11:09Z INFO [T17] qlty_check::tool (9.7 MB): Validated tool: trivy --version: 0.67.2
2026-02-19T07:11:09Z INFO [T17] qlty_check::tool (9.7 MB): Set up trivy@Some("0.67.2") in 0.83s
2026-02-19T07:11:09Z INFO [T17] qlty_check::tool (9.8 MB): Setting up tool trufflehog@Some("3.82.12"). Logging to /home/runner/.qlty/cache/tools/trufflehog/3.82.12-ad67698e6a52-install.log
2026-02-19T07:11:09Z INFO [T17] qlty_check::tool::github (9.7 MB): Fetching release assets from trufflesecurity/trufflehog from 'v3.82.12' tag
2026-02-19T07:11:09Z INFO [T14] qlty_check::tool::download (9.7 MB): Extracting to /home/runner/.qlty/cache/tools/python/3.11.7-0b1ed67b5e8f
2026-02-19T07:11:09Z INFO [T17] qlty_check::tool::download (9.7 MB): Downloading (tar.gz) https://github.com/trufflesecurity/trufflehog/releases/download/v3.82.12/trufflehog_3.82.12_linux_amd64.tar.gz
2026-02-19T07:11:09Z INFO [T17] qlty_check::tool::download (9.7 MB): Downloading https://github.com/trufflesecurity/trufflehog/releases/download/v3.82.12/trufflehog_3.82.12_linux_amd64.tar.gz
2026-02-19T07:11:09Z INFO [T19] qlty_check::tool::download (9.8 MB): Extracting to /home/runner/.qlty/cache/tools/java/22.0.1+8-9515e512e4f0
2026-02-19T07:11:09Z INFO [T15] qlty_check::tool (9.7 MB): Validated tool: node --version: 21.7.3
2026-02-19T07:11:09Z INFO [T15] qlty_check::tool (9.7 MB): Set up node@Some("21.7.3") in 1.19s
2026-02-19T07:11:09Z INFO [T17] qlty_check::tool::download (9.7 MB): Extracting to /home/runner/.qlty/cache/tools/trufflehog/3.82.12-ad67698e6a52
2026-02-19T07:11:09Z INFO [T13] qlty_check::tool (9.7 MB): Setting up tool stylelint@Some("17.3.0"). Logging to /home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da-install.log
2026-02-19T07:11:09Z INFO [T16] qlty_check::tool (9.7 MB): Setting up tool eslint@Some("9.7.0"). Logging to /home/runner/.qlty/cache/tools/eslint/9.7.0-0a788f8a1b69-install.log
2026-02-19T07:11:09Z INFO [T14] qlty_check::tool (9.7 MB): Validated tool: python3 --version: 3.11.7
2026-02-19T07:11:09Z INFO [T14] qlty_check::tool (9.7 MB): Set up python@Some("3.11.7") in 1.36s
2026-02-19T07:11:09Z INFO [T14] qlty_check::tool (9.7 MB): Setting up tool checkov@Some("3.2.495"). Logging to /home/runner/.qlty/cache/tools/checkov/3.2.495-6f859b2446f4-install.log
2026-02-19T07:11:09Z INFO [T20] qlty_check::tool (9.7 MB): Setting up tool actionlint@Some("1.7.9"). Logging to /home/runner/.qlty/cache/tools/actionlint/1.7.9-dfdef16ea705-install.log
2026-02-19T07:11:09Z INFO [T20] qlty_check::tool::github (9.7 MB): Fetching release assets from rhysd/actionlint from 'v1.7.9' tag
2026-02-19T07:11:09Z INFO [T18] qlty_check::tool (9.7 MB): Setting up tool yamllint@Some("1.37.1"). Logging to /home/runner/.qlty/cache/tools/yamllint/1.37.1-00a29dd13f5c-install.log
2026-02-19T07:11:09Z INFO [T20] qlty_check::tool::download (9.7 MB): Downloading (tar.gz) https://github.com/rhysd/actionlint/releases/download/v1.7.9/actionlint_1.7.9_linux_amd64.tar.gz
2026-02-19T07:11:09Z INFO [T20] qlty_check::tool::download (9.7 MB): Downloading https://github.com/rhysd/actionlint/releases/download/v1.7.9/actionlint_1.7.9_linux_amd64.tar.gz
2026-02-19T07:11:09Z INFO [T20] qlty_check::tool::download (9.7 MB): Extracting to /home/runner/.qlty/cache/tools/actionlint/1.7.9-dfdef16ea705
2026-02-19T07:11:09Z INFO [T20] qlty_check::tool (9.7 MB): Validated tool: actionlint --version: 1.7.9
2026-02-19T07:11:09Z INFO [T20] qlty_check::tool (9.7 MB): Set up actionlint@Some("1.7.9") in 0.21s
2026-02-19T07:11:11Z INFO [T19] qlty_check::tool (9.6 MB): Validated tool: java --version: 22.0.1+8
2026-02-19T07:11:11Z INFO [T19] qlty_check::tool (9.6 MB): Set up java@Some("22.0.1+8") in 3.39s
2026-02-19T07:11:11Z INFO [T15] qlty_check::tool (9.6 MB): Setting up tool radarlint-js@Some("2.0.0"). Logging to /home/runner/.qlty/cache/tools/radarlint-js/2.0.0-23cbe5f347bb-install.log
2026-02-19T07:11:11Z INFO [T15] qlty_check::tool::download (9.6 MB): Downloading (tar.gz) https://radarlint-releases.s3.amazonaws.com/radarlint/v2.0.0/radarlint.tar.gz
2026-02-19T07:11:11Z INFO [T15] qlty_check::tool::download (9.6 MB): Downloading https://radarlint-releases.s3.amazonaws.com/radarlint/v2.0.0/radarlint.tar.gz
2026-02-19T07:11:12Z INFO [T17] qlty_check::tool (9.7 MB): Validated tool: trufflehog --version: 3.82.12
2026-02-19T07:11:12Z INFO [T17] qlty_check::tool (9.7 MB): Set up trufflehog@Some("3.82.12") in 3.24s
2026-02-19T07:11:13Z INFO [T15] qlty_check::tool::download (9.7 MB): Extracting to /home/runner/.qlty/cache/tools/radarlint-js/2.0.0-23cbe5f347bb
2026-02-19T07:11:14Z INFO [T15] qlty_check::tool (9.7 MB): Set up radarlint-js@Some("2.0.0") in 3.16s
2026-02-19T07:11:18Z INFO [T18] qlty_check::tool (9.7 MB): Validated tool: yamllint --version: 1.37.1
2026-02-19T07:11:18Z INFO [T18] qlty_check::tool (9.7 MB): Set up yamllint@Some("1.37.1") in 8.64s
2026-02-19T07:11:38Z INFO [T16] qlty_check::tool (9.7 MB): Set up eslint@Some("9.7.0") in 28.50s
2026-02-19T07:11:38Z INFO [T13] qlty_check::tool (9.7 MB): Set up stylelint@Some("17.3.0") in 29.35s
2026-02-19T07:11:54Z INFO [T14] qlty_check::tool (9.6 MB): Validated tool: checkov --version: 3.2.495
2026-02-19T07:11:54Z INFO [T14] qlty_check::tool (9.6 MB): Set up checkov@Some("3.2.495") in 45.09s
2026-02-19T07:11:54Z INFO [T1] qlty_check::executor (9.6 MB): All 12 install tasks ran in 46.48s
2026-02-19T07:11:54Z INFO [T1] qlty_check::processor (10.0 MB): Processed 0 issue results in 0.00s
No modified files for checks were found on your branch.
2026-02-19T07:11:54Z INFO [T1] qlty (8.7 MB): Command executed successfully in 47.25s: qlty check --no-upgrade-check --install-only --upstream origin/dev
✔ No issues
Validating config...
qlty config validate
2026-02-19T07:11:54Z INFO [T1] qlty (8.2 MB): Executing command: qlty config validate
WARNING: The `check` entry in qlty.toml is not part of the supported configuration and will be ignored.
2026-02-19T07:11:54Z INFO [T1] qlty (8.2 MB): Command executed successfully in 0.04s: qlty config validate
Running qlty build...
qlty build --upstream origin/dev
2026-02-19T07:11:56Z INFO [T1] qlty (8.2 MB): Executing command: qlty build --upstream origin/dev
WARNING: The `check` entry in qlty.toml is not part of the supported configuration and will be ignored.
2026-02-19T07:11:56Z INFO [T1] qlty::commands::build (8.5 MB): Starting build: 019c74bb-cd10-7423-9621-5f73e55e039c
2026-02-19T07:11:56Z INFO [T1] qlty::commands::build (8.5 MB): Identifying workspace files...
2026-02-19T07:11:56Z INFO [T4] qlty::commands::build (9.0 MB): Checking structure of 3 files...
2026-02-19T07:11:56Z INFO [T5] qlty::commands::build (9.0 MB): Computing metrics for 3 files...
2026-02-19T07:11:56Z INFO [T10] qlty::commands::build (9.0 MB): Looking for duplication across all files...
2026-02-19T07:11:56Z INFO [T8] qlty::commands::build (9.1 MB): Running plugins...
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner::plugin (22.9 MB): Found 1 workspace_entries for plugin actionlint
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner::plugin (22.9 MB): Found 3 workspace_entries for plugin checkov
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner::plugin (23.0 MB): Found 3 workspace_entries for plugin eslint
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner::plugin (23.2 MB): Found 3 workspace_entries for plugin knip
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner::plugin (23.2 MB): Found 1 workspace_entries for plugin osv-scanner
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner::plugin (23.2 MB): Found 3 workspace_entries for plugin radarlint-js
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner::plugin (23.3 MB): Found 4 workspace_entries for plugin ripgrep
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner::plugin (23.3 MB): Found 1 workspace_entries for plugin stylelint
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner::driver (23.4 MB): Found 1 workspace_entries for plugins driver trivy.fs-vuln
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner::driver (23.5 MB): Found 2 workspace_entries for plugins driver trivy.config
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner::plugin (23.5 MB): Found 8 workspace_entries for plugin trufflehog
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner::plugin (23.5 MB): Found 1 workspace_entries for plugin yamllint
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner (22.9 MB): Found 8 CPUs, setting max threads to 8
2026-02-19T07:11:57Z INFO [T8] qlty_check::planner (22.9 MB): Planned 11 invocations (0 cache hits) in 0.21s
2026-02-19T07:12:01Z INFO [T8] qlty_check::executor (296.3 MB): All 12 install tasks ran in 4.03s
2026-02-19T07:12:01Z INFO [T8] qlty_check::executor (287.4 MB): Staged 8 workspace entries and 22 config files in 0.08s
2026-02-19T07:12:01Z INFO [T8] qlty_check::executor (287.1 MB): Running 10 invocations...
2026-02-19T07:12:01Z INFO [T45] qlty_check::executor::driver (286.0 MB): g92yW6: Completed actionlint/lint in 0.032s (exit 0)
2026-02-19T07:12:01Z INFO [T46] qlty_check::executor::driver (285.5 MB): UX9Q0B: Completed ripgrep/lint-fixme in 0.034s (exit 1)
2026-02-19T07:12:01Z INFO [T43] qlty_check::executor::driver (273.5 MB): tzjtIY: Completed yamllint/lint in 0.265s (exit 0)
2026-02-19T07:12:03Z INFO [T44] qlty_check::executor::driver (72.2 MB): QDZPYF: Completed stylelint/lint/client-apps/auth in 1.960s (exit 78)
2026-02-19T07:12:03Z ERROR [T44] qlty_check::executor::invocation_result (72.2 MB): QDZPYF: stylelint/lint/client-apps/auth STDERR: (node:543) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
ConfigurationError: Could not find "stylelint-config-standard". Do you need to install the package or use the "configBasedir" option?
at getModulePath (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/utils/getModulePath.mjs:29:9)
at loadExtendedConfig (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/augmentConfig.mjs:241:21)
at extendConfig (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/augmentConfig.mjs:208:25)
at augmentConfigBasic (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/augmentConfig.mjs:73:26)
at augmentConfigFull (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/augmentConfig.mjs:126:30)
at getConfigForFile (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/getConfigForFile.mjs:102:32)
at async resolveOptionValue (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/utils/resolveOptionValue.mjs:27:24)
at async standalone (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/standalone.mjs:202:19)
2026-02-19T07:12:14Z INFO [T45] qlty_check::executor::driver (10.8 MB): SiSM3N: Completed trufflehog/lint in 13.070s (exit 0)
2026-02-19T07:12:18Z INFO [T46] qlty_check::executor::driver (10.8 MB): hvvt1O: Completed eslint/lint/client-apps/auth in 16.216s (exit 0)
2026-02-19T07:12:20Z INFO [T50] qlty_check::executor::driver (10.9 MB): M1RcdS: Completed trivy/config in 18.665s (exit 0)
2026-02-19T07:12:24Z INFO [T49] qlty_check::executor::driver (11.9 MB): CBEGrZ: Completed trivy/fs-vuln in 23.255s (exit 0)
2026-02-19T07:12:42Z INFO [T48] qlty_check::executor::driver (11.6 MB): 1rByIJ: Completed radarlint-js/lint in 41.268s (exit 0)
2026-02-19T07:13:47Z INFO [T47] qlty_check::executor::driver (11.6 MB): 4FshCl: Completed checkov/format in 106.507s (exit 0)
2026-02-19T07:13:48Z INFO [T97] qlty_check::executor::driver (11.7 MB): mPpbdM: Completed stylelint/format/client-apps/auth in 0.649s (exit 78)
2026-02-19T07:13:48Z ERROR [T97] qlty_check::executor::invocation_result (11.7 MB): mPpbdM: stylelint/format/client-apps/auth STDERR: (node:43806) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
ConfigurationError: Could not find "stylelint-config-standard". Do you need to install the package or use the "configBasedir" option?
at getModulePath (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/utils/getModulePath.mjs:29:9)
at loadExtendedConfig (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/augmentConfig.mjs:241:21)
at extendConfig (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/augmentConfig.mjs:208:25)
at augmentConfigBasic (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/augmentConfig.mjs:73:26)
at augmentConfigFull (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/augmentConfig.mjs:126:30)
at getConfigForFile (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/getConfigForFile.mjs:102:32)
at async resolveOptionValue (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/utils/resolveOptionValue.mjs:27:24)
at async getFormatter (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/utils/getFormatter.mjs:17:18)
at async standalone (file:///home/runner/.qlty/cache/tools/stylelint/17.3.0-13221c7c57da/node_modules/stylelint/lib/standalone.mjs:123:28)
2026-02-19T07:13:48Z INFO [T8] qlty_check::executor (11.6 MB): Executed 11 invocations in 107.29s
2026-02-19T07:13:49Z INFO [T8] qlty_check::processor (12.9 MB): Processed 1 issue results in 0.49s
2026-02-19T07:13:49Z INFO [T1] qlty::commands::build (9.9 MB): Reporting 1 issues...
2026-02-19T07:13:49Z INFO [T1] qlty::commands::build (9.9 MB): Reporting 8 stats...
2026-02-19T07:13:49Z INFO [T1] qlty::export::analysis (10.6 MB): Exporting analysis to: .qlty/builds/019c74bb-cd10-7423-9621-5f73e55e039c
2026-02-19T07:13:49Z ERROR [T1] qlty (8.4 MB): Lint error
2026-02-19T07:13:49Z ERROR [T1] qlty (8.4 MB): Some common debugging steps can be found at: https://qlty.sh/d/lint-error
❌ Lint error
Some common debugging steps can be found at: https://qlty.sh/d/lint-error
Build completed (failure) in 0h2m51s.
sh -c zip -qr /tmp/build.zip * -x bin/\* -x cache/\* -x plugin_cachedir/\* -x results/\*
Uploaded build archive.
What happened?
I can't get the Stylelint plugin to work in my monorepo.
I've tried multiple different configurations without success. Here's the latest one:
See below for the entire
qlty.tomlconfig.Here's AI's (Opus 4.6) diagnosis:
I'm on the latest version of Stylelint and using
.tsfor the config file:stylelint.config.ts.Full
qlty.tomlconfigWhat did you expect to happen?
For it to work (report on CSS violations as per local
npm lint:css)Can you reproduce the problem?
Yes, consistently
CLI Version
N/A - Qlty cloud
Relevant log output