Language-aware presets
Generate, inspect, upgrade, and safely merge analyzer configuration across supported ecosystems.
Presets configure the ecosystem tools that quality orchestrates. They remain
outside the checking path: applying a preset writes ordinary, reviewable config
files and pinned dependency declarations, while quality check continues to
run deterministic repository-local tools.
Profiles
minimalenables essential analyzers with low-ceremony defaults. Its ESLint configuration uses thebasicpreset from@santi020k/eslint-config-basic.recommendedadds balanced formatting, spelling, unused-code, and complexity policy. ESLint retains recommended severities.stricttightens size and complexity limits, promotes warnings where the analyzer supports it, and uses ESLint’spedanticstrict mode.
Preview and apply a profile:
quality preset apply recommended --dry-run
quality preset apply recommended --install
Detection covers JavaScript/TypeScript/Astro, Python, Rust, Swift, Kotlin/Android, and GitHub Actions. Limit generation when needed:
quality preset apply strict --only javascript,rust
Ownership and merging
Every application writes .quality-preset.json against the published
quality-preset.schema.json. It records the schema and catalog versions,
profile, ecosystems, dependency pins, and a fingerprint for each generated
file.
The ownership rules are deliberately conservative:
quality.ymlis parsed and merged. Existing tasks, hooks, custom adapters, output selection, and baseline path survive preset updates..editorconfigreceives a section betweenquality-preset:startandquality-preset:endmarkers. Settings outside those markers remain owned by the repository.- Whole-file configs such as
eslint.config.mjs,.swiftlint.yml, andrustfmt.tomlare replaceable only while their fingerprint matches the last generated version. User edits block an update unless--forceis supplied.
Changing profiles removes obsolete generated files only when their recorded fingerprints prove that they remain untouched.
Upgrades and compatibility
Inspect the applied state without writing:
quality preset diff
quality preset update --dry-run
preset diff exits successfully when the preset is current and with status 1
when it finds file, dependency, or catalog drift. After review, update it:
quality preset update
quality preset update --install
quality doctor reports the profile and catalog state. Metadata from a newer,
unsupported schema or catalog is marked incompatible rather than changed
automatically.
JavaScript frameworks
Recommended and strict profiles inspect workspace package manifests and add explicit config packs for Angular, Astro, Expo, Hono, Lit, Nest, Next, Nuxt, Preact, Qwik, React, React Router, Slidev, Solid, Svelte, TanStack Start, Vite, and Vue. Explicit packs avoid hidden optional dependencies while retaining framework-specific rules.
Spelling policy
Presets enable only one spelling adapter to avoid duplicate findings. CSpell is
selected for JavaScript repositories, Codespell for Python repositories, and
Typos for other recommended or strict native-language repositories. Repositories
can override that choice explicitly in quality.yml.
Native setup
Print setup guidance for the ecosystems recorded in the preset:
quality preset setup
The report includes pinned JavaScript dependencies, Rust toolchain components, SwiftLint/SwiftFormat, detekt/ktlint, Android’s Gradle and Java requirements, Codespell or Typos when selected, and Actionlint. To run supported platform commands explicitly:
quality preset setup --install
Gradle and SwiftPM integration remains guidance-only when modifying a build manifest would require project-specific decisions.