Repository navigation
Conversation
Replace Biome with oxlint (type-aware via tsgolint) and oxfmt, as in T3 Code, and add knip. The type-aware rules catch floating or misused promises, non-exhaustive switches, unnecessary conditions and unsafe casts; knip catches unused files, exports and dependencies (it found six unused exports). tsconfig also rejects unused locals and parameters, implicit returns and unreachable code. CI now runs format, lint, typecheck, knip, build and a smoke run of the bundle in one fast job, and only then the tests on Linux and macOS. Tests assert on filesystem state and status --json instead of log text, drop incidental assertions, and now check that status never writes: the old suite still passed with the dry-run guard removed from link(). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Problem
Tests are the most expensive check to run in CI, and the static checks weren't pulling their weight. Biome's lint has no type information, so it can't see promise bugs or non-exhaustive switches; nothing caught unused code; and some test assertions were tied to log formatting instead of behavior. One real gap: no test checked that
status(a dry run) never writes. The suite still passed with the dry-run guard removed fromFiles.link().Solution
no-floating-promises,no-misused-promises,switch-exhaustiveness-check,no-unnecessary-condition,no-unsafe-type-assertion,import/no-cycle,import/no-commonjs.status --jsoninstead of log text, incidental checks are gone, and the skills test now asserts thatstatuscreates nothing.Stacked on #7.
Verification
bun run checkpasses.link(), the old suite passes 8/8 and the new suite fails.🤖 Generated with Claude Code