fix(lint): make the linter run again, and finish the em dash sweep

The linter had two faults stacked on top of each other.

First, the global `ajv: ^8.17.1` override starved @eslint/eslintrc, which
needs ajv 6 and passes it `missingRefs`; ajv 8 rejects that option, so ESLint
died before loading a single rule. Scoped overrides give eslint and
@eslint/eslintrc ajv 6.12.6 and leave the audit override in place everywhere
else.

Second, underneath that, `extends: ["@repo/config/eslint-preset.js"]` could
never resolve: ESLint's shareable-config naming convention rewrites it to
`@repo/eslint-config-config/...`. require.resolve hands ESLint a real path.

With the linter running it reported 35 react/no-unescaped-entities errors
across 7 files. Those are escaped rather than silenced, using ESLint's own
coordinates so only flagged text nodes were touched. Lint now exits 0. Two
@next/next/no-img-element warnings remain on the splash logos, which are
deliberate: theme-paired and fetchPriority="high".

Em dashes are also gone from the six blog posts and the README (105
occurrences), same rules as the site copy: colons for definition labels,
commas for appositives, semicolons for independent clauses.
This commit is contained in:
jwinterm
2026-08-17 05:53:16 -04:00
parent d20ae5ea1a
commit 1dc0c5f06a
17 changed files with 151 additions and 137 deletions
+1 -1
View File
@@ -57,7 +57,7 @@ pnpm test:ui # Run tests with interactive UI
## Accessibility
- **WCAG 2.2 AA** — engineered to meet, audited against (Lighthouse measured 100%)
- **WCAG 2.2 AA**: engineered to meet, audited against (Lighthouse measured 100%)
- Skip-to-main link, semantic HTML5, ARIA labels
- Proper heading hierarchy, color contrast (4.5:1+)
- `prefers-reduced-motion` support