Skip to content

ci: raise CI floor to lint + typecheck + build - #47

Merged
catomean merged 1 commit into
mainfrom
ci/lint-build-floor
Aug 2, 2026
Merged

ci: raise CI floor to lint + typecheck + build#47
catomean merged 1 commit into
mainfrom
ci/lint-build-floor

Conversation

@catomean

Copy link
Copy Markdown
Collaborator

What

Raises the Solon CI floor from typecheck-only (grade C) to lint + typecheck + build (grade B).

Changes

  • ESLint added. eslint + eslint-config-next devDeps, standard .eslintrc.json extending next/core-web-vitals. Removed the non-functional flat eslint.config.mjs (Next 14's next lint can't read flat config — that was the source of the interactive-setup prompt). One eslint config = SSOT.
  • verify now runs lint && typecheck. CI calls npm run verify verbatim.
  • Fixed the pre-existing lint errors surfaced by turning lint on (24 errors): unescaped JSX entities in the about/integration code-display blocks, // comment textnodes wrapped in braces, and 4 stale no-explicit-any disable directives removed. Rendered output is unchanged.
  • Gated next build in CI. The build is hermetic — the Prisma-touching server components (dashboard/treasury, dashboard/voting) catch DB errors and render demo fallbacks, so no live DB is required. Verified locally: 15/15 pages generated, exit 0, with no reachable DB.
  • Added AGENTS.md (stack, dev/verify commands, note that Prisma db push / migrations are manual and out of CI scope).

Out of scope / unchanged

  • Prisma migration + deploy strategy untouched.
  • Playwright e2e smoke tests stay deferred (need a running app).

Local verification

  • npm run lint → ✔ No ESLint warnings or errors
  • npm run typecheck → clean
  • npm run build → exit 0, all 15 routes generated without a live DB
  • CI YAML validated

🤖 Generated with Claude Code

Grade C → B: the golden `verify` floor was typecheck-only because no ESLint
config existed (`next lint` dropped into interactive setup) and the build was
never gated.

- Add ESLint: `eslint` + `eslint-config-next` devDeps, standard `.eslintrc.json`
  (`next/core-web-vitals`). Remove the non-functional flat `eslint.config.mjs`
  that Next 14's `next lint` can't read (SSOT: one eslint config).
- `verify` now runs `lint && typecheck`; CI calls it verbatim.
- Fix the pre-existing lint errors surfaced (unescaped JSX entities in
  about/integration code blocks, `//` comment textnodes, and stale
  no-explicit-any disable directives) so lint is green.
- Gate `next build` in CI. Build is hermetic — the Prisma-touching server
  components catch DB errors and render demo fallbacks, so no live DB is needed.
- Add AGENTS.md (stack, dev/verify commands, Prisma db:push is manual).

Prisma migration/deploy strategy unchanged; e2e smoke tests stay deferred.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@catomean
catomean merged commit 54caeaa into main Aug 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant