Repository navigation
Stricter lint rules, unused-code checks, editor and Git defaults, and a weekly link check - #180
Conversation
Set noExplicitAny, noArrayIndexKey, noAssignInExpressions, noShadowRestrictedNames, useImportType, noParameterAssign, useExhaustiveDependencies, noForEach, noUselessFragments, and noDangerouslySetInnerHtml to error for both sites. Fix the eight findings in code, and mark the nine deliberate uses with a biome-ignore comment that gives the reason. CLAUDE.md lists the four rules that stay off, with the findings each would raise. Signed-off-by: Will Manning <will@willmanning.io>
…g notes .editorconfig gives LF, UTF-8, and 2-space defaults to the files Biome does not format. .gitattributes stores text with LF endings, keeps the license texts unchanged, and marks bun.lock as generated and src/vendor as vendored. The PR template asks for the DCO sign-off, check:ci, and a REUSE annotation for each new asset. Remove what Tailwind left behind (the VS Code extension and settings, the Renovate group, and stale notes), add the license to package.json, and bring the README up to date: Bun 1.4, Node 26, bench, and the test scripts. Signed-off-by: Will Manning <will@willmanning.io>
links.yml runs lychee (lychee-action v2.9.0, pinned by SHA) on the blog posts and on the posts from other sites that the blog index lists. It runs weekly, on a PR that changes src/content, and by hand. It is not a required check. LinkedIn and the ACM Digital Library block automated requests, so the check skips them. Signed-off-by: Will Manning <will@willmanning.io>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Assessment of the tooling backlog (2026-11-04)
New gaps found:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2eed03774b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
🔦 Lighthouse audit
Run |
lychee skips a file whose extension is not in its extension list, even when the file is named on the command line, and the default list has no ts. Pass --extensions mdx,ts. Signed-off-by: Will Manning <will@willmanning.io>
The previous commit said lychee skipped links.ts. It did not: the link check counted 106 links both before and after --extensions mdx,ts, and the files hold about 100, 32 of them in links.ts. lychee 0.24.2 checks a file named on its command line whatever the extension. Keep the flag, and say what it does. Signed-off-by: Will Manning <will@willmanning.io>
Turn on noDescendingSpecificity and noImportantStyles for both sites. The 13 descending-specificity findings are fixed by moving rules, with no change to any computed style: a check of every element on bench's landing, chart, and methodology pages (with and without JavaScript) found the same styles before and after. Each move passes no rule that sets the same property at the same specificity on the same element. The later .group-summary corner rule repeated the base rule's value, so it is gone. bench's three !important declarations stay, each with a biome-ignore that gives the reason: two beat Chart.js's inline canvas size, and one hides controls that need JavaScript. Signed-off-by: Will Manning <will@willmanning.io>
Production code now handles a missing value where it could occur: an anchor falls back to the group's own, a rank lookup uses Object.hasOwn with a fallback, and the query helpers default an absent row. mapLimit's workers now share one iterator over the items. Tests use a new helper, defined() in src/lib/defined.ts, which throws with a message when a value is null or undefined, in place of `!`. Signed-off-by: Will Manning <will@willmanning.io>
knip reports unused files, exports, and dependencies. knip.json names the entry points that no import reaches: the Lighthouse, velite, and bench PostCSS configs, and the scripts that CI or a person runs. It skips the vendored design-system renderer. Nine exports and eight exported types were used only in their own file, so they are no longer exported. Two types were not used at all, so they are gone. The GPU result's Parquet times now take their length from PARQUET_CONFIGS, the list they were documented to follow. CI runs `bun run knip` after the build, because knip resolves `#site/content` to .velite/, which the build writes. Signed-off-by: Will Manning <will@willmanning.io>
CLAUDE.md now says which rules are on, how tests replace non-null assertions, how a CSS reorder is checked, and where knip's entry points go. The README lists `bun run knip`. Signed-off-by: Will Manning <will@willmanning.io>
|
@codex review |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
This PR does the items from the tooling backlog that still help.
noImgElementstays off. The PR removes 192 non-null assertions, moves CSS rules to fix 13 specificity findings, and adds a reason comment at each deliberate exception..editorconfig,.gitattributes, and PR template.links.yml: lychee checks the blog's external links each week. It is not a required check.The first comment has the decision for each backlog item.
🤖 Generated with Claude Code