Add lint/format toolchain and split CI into concurrent jobs - #508
Merged
TheGreatAxios merged 1 commit intoAug 22, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stage 1 of CL-6802: port the workbench repo's CI/lint toolchain configuration. This PR lands the toolchain only — a separate stage 2 PR will apply the repo-wide mechanical fix batch (eslint --fix / prettier --write) after 5 currently-open PRs merge, to avoid conflicts.
eslint.config.js):@eslint/jsrecommended +typescript-eslintstrict + stylistic, zero-suppressions policy (noInlineConfig: true,reportUnusedDisableDirectives: "error"), underscore-prefixed args/vars allowed forno-unused-vars..prettierrc.json+.prettierignore(CHANGELOG.md excluded — formatting it would churn the whole file).package.jsonscripts:lint(prettier --check --cache . && eslint --cache .) andcheck(lint + typecheck + build + test, matching CI order)..github/workflows/ci.ymlsplit into concurrentlint/typecheck/build-and-testjobs, each with a bun install cache keyed onbun.lock; the lint job also caches.eslintcache+ prettier cache per-SHA with restore-keys. Concurrency group supersedes stale PR runs but never cancels main-branch commits. Existing corbits-specific steps (ripgrep install, randomized-order test run) stay inbuild-and-test.tsconfig.base.json:incremental: true. Typecheck scope unchanged (tests/evals inclusion is CL-5759).AGENTS.md: namesbun run checkas the single pre-PR gate.The codebase is not yet lint-clean (1938 ESLint problems, 599 files with Prettier formatting issues found by an initial scan), so the CI
lintjob iscontinue-on-error: truefor now with aTODO(CL-6802 stage 2)marker to flip it blocking once the mechanical fix batch lands. Thelintscript itself stays strict (non-zero exit on any violation).No
src/**code,vendor/, or Linear state touched.Part of CL-6802
https://linear.app/abklabs/issue/CL-6802
Test plan
bun run typecheck— cleanbun run lint— executes, fails as expected (599 files need Prettier formatting, 1938 ESLint problems) — confirms the toolchain runs against real violationsbun run check— chains lint → typecheck → build → test correctly, stops at lint (expected for stage 1)bunx yaml-lint .github/workflows/ci.yml— parses successfully