← ClaudeAtlas

eslintlisted

ESLint as the repo's correctness gate — flat config only, zero formatting rules, overrides scoped by `files` glob rather than disabled globally, and one lint command wired through the task library. Auto-applies when editing an eslint config or .config/linter.yaml.
virajp/ai-plugins · ★ 1 · Code & Development · score 78
Install: claude install-skill virajp/ai-plugins
# ESLint — the correctness gate ESLint answers **"is this code wrong?"**. It carries **no formatting rules** — dprint owns whitespace and layout, and a formatting rule here guarantees the two tools eventually disagree on the same line with no way to satisfy both. The default in this toolkit is `@askviraj/linter`: a self-contained ESLint CLI that bundles ESLint and every plugin (TS, JSON/JSONC, CSS, HTML, Markdown, YAML, TOML, Astro) behind an opinionated flat config. It is **zero-config** — a repo using it needs no `eslint.config.*` and no plugin installs. A repo that already has its own ESLint setup keeps it; do not migrate one uninvited. ## Flat config only `eslint.config.js` (or `.mjs`/`.ts`), never `.eslintrc*`. The legacy format is end-of-life, its cascade resolution is invisible, and the two formats do not compose — a repo carrying both is running whichever one that ESLint version happens to prefer. An `.eslintrc*` file found in a repo is a migration to raise, not a file to edit. ## Scope an override; never disable globally Reach for config only when a default genuinely misfires — never to make a real finding disappear. - **`@askviraj/linter`** — add `.config/linter.yaml` (`--init` scaffolds it). Prefer, in order: extra `ignores`, a per-preset `overrides` block, or a `configs` entry targeting specific `files`. A `files`-scoped override states *where* the rule is wrong; a global one states that nobody wanted to look. - **Plain ESLint** — a trailing config o