Skip to main content

Packages

All packages live under the @ladamczyk/* namespace and are versioned together.

qoq-cli

The command-line entry point. Handles formatting, linting, and testing of your JS/TS code by orchestrating every other package through the --check, staged, and --fix commands. Includes the Config Wizard, config handlers, and the executors that run each underlying tool. Monorepo-aware via package.json workspaces.

qoq-eslint-v9-*

Opinionated Flat Config presets that bundle every plugin and setting needed for a given stack. Each exports both CommonJS and ESM and can be used as-is or as a base for your own rules.

Since v6.0.0 every preset exports a configs object of ready-made flat-config arrays (configs.base, plus configs.test and configs.strict on qoq-eslint-v9-ts) instead of a pre-merged default export. Each preset also exports its own delta layerjsLayer, tsLayer, reactLayer, jestLayer, … — which is what the stack presets compose with defineConfig, and what you compose yourself if you want a chain no shipped preset covers.

Every preset ships with a prebuilt ESLint Config Inspector so you can browse exactly which rules, plugins, and settings it enables — before you install it. Pick the variant that matches your language and test setup to open its dedicated page under ESLint Presets:

PackageStack
@ladamczyk/qoq-eslint-v9-jsJavaScript
@ladamczyk/qoq-eslint-v9-js-reactJavaScript + React
@ladamczyk/qoq-eslint-v9-js-jestJavaScript + Jest
@ladamczyk/qoq-eslint-v9-js-jest-rtlJavaScript + Jest + React Testing Library
@ladamczyk/qoq-eslint-v9-js-vitestJavaScript + Vitest
@ladamczyk/qoq-eslint-v9-js-vitest-rtlJavaScript + Vitest + React Testing Library
@ladamczyk/qoq-eslint-v9-tsTypeScript
@ladamczyk/qoq-eslint-v9-ts-reactTypeScript + React
@ladamczyk/qoq-eslint-v9-ts-jestTypeScript + Jest
@ladamczyk/qoq-eslint-v9-ts-jest-rtlTypeScript + Jest + React Testing Library
@ladamczyk/qoq-eslint-v9-ts-vitestTypeScript + Vitest
@ladamczyk/qoq-eslint-v9-ts-vitest-rtlTypeScript + Vitest + React Testing Library

Usage — extend the preset's array with defineConfig and scope it with your own files:

// ESM
import { configs } from '@ladamczyk/qoq-eslint-v9-ts-react';
import { defineConfig } from 'eslint/config';

export default defineConfig({
files: ['src/**/*.{ts,tsx}'],
extends: [configs.base],
});

extends keeps the preset's entries as separate config objects, so ESLint's own cascade merges them per file and your block always wins last — the pre-merged baseConfig spread of earlier versions silently dropped rule options along the way. Upgrading from v5: replace ...baseConfig with extends: [configs.base].

qoq-prettier

Base Prettier preset. Reference it directly in .prettierrc ("@ladamczyk/qoq-prettier") or import @ladamczyk/qoq-prettier/config and spread it into your own config.

qoq-prettier-with-json-sort

The same base preset plus automatic JSON key sorting. Used the same way — drop "@ladamczyk/qoq-prettier-with-json-sort" into .prettierrc or extend @ladamczyk/qoq-prettier-with-json-sort/config.

qoq-knip

Opinionated Knip configuration for detecting unused files, exports, and dependencies. Exports jsConfig, jsReactConfig, tsConfig, and tsReactConfig in both CommonJS and ESM for use in your Knip config file.

qoq-jscpd

A ready-made copy-paste detection config. Point JSCPD at the shipped config file:

jscpd -c ./node_modules/@ladamczyk/qoq-jscpd/index.json

qoq-stylelint-css

Stylelint config template for CSS.

qoq-stylelint-scss

Stylelint config template for SCSS.

structurelint

A standalone file/folder structure linter, published as @ladamczyk/structurelint in its own repository with its own release cadence — it isn't versioned lockstep with the qoq-* packages above. The CLI's optional Structurelint check installs and drives it — enable it via a structurelint block in qoq.config.js (see Configuration).

skillslint

A standalone agent-skill linter, published as @ladamczyk/skillslint in its own repository with its own release cadence — like Structurelint, it isn't versioned lockstep with the qoq-* packages. The CLI's optional Skillslint check installs and drives it — enable it via a skillslint block in qoq.config.js (see Configuration).

qoq-utils

Shared internal helpers used across the QoQ packages.

check-engine

A standalone CLI that validates your project's engines.node setting, emitting suggestions or errors when the running Node version doesn't satisfy it. Run check-engine -h for options.