js-lint-configlisted
Install: claude install-skill hmj1026/dhpk
# JS lint config — tier framework
`modules/js/references/static-checks.md` is the always-loaded index. This
skill is the **detail companion** — load it when you need the full tier
design, AST selectors, three-list sync pattern, or progress-measurement
grep templates.
> SSOT is `eslint.config.js`. This skill maps the design behind it so you
> don't have to read 1000+ lines of config to grok the tiers.
---
## Tier model
The framework scales from a clean greenfield codebase up to a legacy
monolith mid-migration. Each tier expresses a different blast-radius /
acceptable-rule trade-off.
### Tier 1 — Strict
The cleaned-up source — small leaf files in a frontend subdirectory.
- `no-undef: error` — catch undeclared global references.
- `no-implicit-globals: error` — no script-top implicit globals (IIFE OK).
- `no-restricted-syntax: error` — block bare AJAX (`$.ajax`, `fetch`, `axios`).
- `no-restricted-globals: error` — backstop the `MemberExpression` variant
(`window.fetch`, `globalThis.fetch`).
### Tier 1A — JSDoc-globals SSOT (if you use one)
If the project keeps an ambient typedef SSOT (`js/<root>/jsdoc-globals.js`),
that one file must be `no-implicit-globals: off`. The script-top declarations
are intentional ambient typedef definitions.
### Tier 1.5 — Core-exempt
Legacy monolith entry-point files (often 5–10 hand-curated bundle files at
the root of `js/`). These exempt 4 rules — `no-undef`,
`no-implicit-globals`, `no-restricted-syntax`, `no-restricted-globals` —
be